jgabaut / amboso Goto Github PK
View Code? Open in Web Editor NEWBuild tool wrapping make. Written in bash.
License: GNU General Public License v3.0
Build tool wrapping make. Written in bash.
License: GNU General Public License v3.0
Describe the bug
With 1.9.1
, amboso
's source_amboso_api()
function was rewritten in an attempt to move to a POSIX shell. This backfired as there's some errors in the reformat of the function.
To Reproduce
Steps to reproduce the behavior:
anvil -v
/usr/local/bin/anvil: line 69: [: : integer expression expected
/usr/local/bin/anvil: line 81: [: : integer expression expected
Expected behavior
The mentioned check is done correctly.
>= 1.9.1
ATM we are adding just -lm to the single gcc call, it would be nice to be able to pass compiler arguments.
Even though, when using a Makefile you're writing that already so it should be fine.
To align with invil
expectations, any test file should be checked to ensure it ends with .k
.
A call with no arguments could be handled to just run make
if a Makefile
is available, or try generating it if possible.
See relevant invil
issue at this link.
To align with invil
, version tags should be checked to ensure they are valid semver values.
This means accepting only version core
as valid keys, and returning a proper error when attempting to use an extended key (build or pre-release metadata). If neither of the conditions is met, a different error is returned.
verbose_flag
is currently expected to be 0
when not otherwise specified.
All checks for -gt 0
and similar should be upated to use well-defined levels that could be used to selectively print log output.
At the moment, multiple occurrences of -V
are used to express verbose level.
Changing this to expecting a u8
argument would align behaviour invil, the early-stage Rust port of amboso
.
Alternatively, the invil
implementation could be made to accept multiple -V occurrences and handle it with the same logic as current amboso
.
A CHANGELOG.md
file should be added to enable easier access to version changes info.
I tested the repo on a M1 Macbook (I think it had bash 3.x
) and many errors happened during operation.
Will need further investigation on last version, and I suspect the added git submodule update --init
after a switch -
may break stuff.
1.4.6
should not have this problem, while still having colliding filenames for the test folder...
amboso
2.0
should deprecate recording tests by passing -ti
.
To align with invil
, version tags should be ordered in a way that ensures valid semver ordering.
Optional extensions to the version core
part (MAJOR.MINOR.PATCH
) should be sorted as lower than bare version core
tags.
Ie:
0.2.0
> 0.2.0-rc1
0.2.0
> 0.1.0-rc2
0.2.0
< 0.10.0
At the moment, tags are compared using natural order.
Ie:
0.2.0
< 0.2.0-rc1
Previous amboso
versions may have backwards incompatible changes at minor version level.
This could be addressed in 2.x
by adding some logic to handle each breaking change in 1.x
.
Proposed cutoffs | Handling | Reasoning |
---|---|---|
<=1.4.2 |
โ๏ธ | amboso_fn.sh does not contain AMBOSO_API_LVL="X.Y.Z" |
>1.4.2, <1.6.6 |
โ | Unstable |
>=1.6.6, <=1.7.4 |
โ | Incompatible stego.lock format |
>1.7.4, <= 1.9.6 |
โ | Unstable, incompatible flag -C and test mode |
>1.9.6, < 2.x |
โ | Unstable, incompatible with invil < 0.2.x |
Describe the bug
The call to awk
to parse stego.lock
seems to fail on a system where awk
is mawk
.
To Reproduce
Steps to reproduce the behavior:
./amboso
awk invalid line
reportsExpected behavior
Either a sane parsing of stego.lock
, or exit with a proper error.
Linux
>=1.8.0
Additional context
My version of awk
(working):
$ awk -W version
GNU Awk 5.2.2, API 3.2, PMA Avon 8-g1, (GNU MPFR 4.2.1, GNU MP 6.3.0)
Copyright (C) 1989, 1991-2023 Free Software Foundation.
Version of awk
on the reporter machine:
$ awk -W version
mawk 1.3.4 20200120
Copyright 2008-2019,2020, Thomas E. Dickey
Copyright 1991-1996,2014, Michael D. Brennan
Version 1.9.9
updated the -C
flag to behave as expected by invil
(ie: pass a filepath to read config arguments from). This closed this issue:
However, calls made when doing init
are not being passed the flag when it was asserted.
Version 1.9.9
changes the -C
flag to pass a file whose contents will be used as the config argument, rather than using the argument directly.
This was done because invil 0.1.4
seemed to have problems passing a literal string with double dashes as argument to a flag for clap
.
This is still not backwards compatible with <=1.9.7
, as -C
was used to pass start time.
Also see:
A log format function should be added to enable easier changes of the wanted color output behaviour.
Allowing quoted leftvalues and using them for version
scope (where we expect semver keys) would enable parsing the stego
file as TOML
without using dotted keys.
Describe the bug
Any executable in kulpo
directory is ignored on 1.7.1
and never runs from -t
macro.
It seems the checks for the whole directory have been broken with the update.
Introduced with #51, from this commit.
To Reproduce
Steps to reproduce the behavior:
kazoj/kulpo/
./anvilt -t
kazoj/kulpo/
Expected behavior
The test macro picks up all executables from kazoj/kulpo/
and runs them.
>1.7.0
Additional context
These are the last output lines from a -t
run:
[INFO] Using tests dir: ( kazoj ).
[TEST] Expected:
type:
name:
path:
[VERB] Test path was empty but we have [-].
[VERB] testpath was empty, query was not empty: ( error_42 ).
[TEST] Can't proceed further with no valid target path, query was ( error_42 ).
[TEST] Supported tests:
[DEBUG] Tests dir is: ( kazoj ).
[DEBUG] Cases dir is: ( bone ).
[DEBUG] ( 2 ) cases ready.
[DEBUG] Errors dir is: ( kulpo ).
[DEBUG] ( 0 ) error cases ready.
[DEBUG] ( 2 ) total tests ready.
[TEST] Quitting.
All test record files have a trailing $
on each line. This could be related to the escaping done on the output.
To Reproduce
Steps to reproduce the behavior:
amboso -Tb
for any testtest.stdout
or test.stderr
Expected behavior
Test output does not embed extra characters.
1.9.6
Situation
When building a version supporting automake
, amboso
runs a plain ./configure
with no options.
It would be nice to support passing arguments to the ./configure
line.
One possible implementation would use a still free flag to pass the arguments as a single string, like:
-<FLAG> "<ARGUMENTS AS ONE STRING>"
With version 1.9.7
, test mode changed and it breaks backwards compatibility for repos with amboso <=1.9.6
.
<=1.9.6
$
on each line end. This was deemed a bug, see issue at this link.@@ -522,7 +522,7 @@ function escape_colorcodes_tee {
cat -e "$file" | tee "$outfile"
1.9.7
$
to each line, and no escaping will be done on the cat $file
.@@ -522,7 +522,7 @@ function escape_colorcodes_tee {
cat "$file" | tee "$outfile"
invil
, the Rust port of this repo (at this link), is mostly compliant with amboso 1.9.7
.
An effort should be made to reach clear parity and release 2.0
before archiving the repo.
At the time of opening this issue, current issues should be closed:
Edit:
New issues that should be updated and closed:
This PR should provide most of the needed changes:
Situation
amboso_fn.sh
has many unnecessary bashisms.
Removing them would be ideal to run under /bin/sh
, which could be faster than bash
.
This could help solve #21 .
With version 1.9.8
, the -C
flag was changed.
<=1.9.7
-C <START_TIME>
1.9.8
-C <CONFIGURE_ARG>
-Y <START_TIME>
(new flag)1.9.9
-C <CONFIGURE_FILE>
unchanged -Y
Also see:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.