12.0.4 (2024-10-20)
- properly passthrough environment variables (2477f1c)
- Revert "fix: do not use shell for user initiated docker exec" (b4b400c)
- Revert "fix: fix ENOENT issues on macOS" (42d27c5)
- Revert "fix: only invoke a shell for docker commands known to cause problems on macos" (8635ac0)
- Revert "fix: run all commands in a shell and quote all user provided parameters" (887893f)
- Revert "Remove potentially unnecessary shell" (48b9b8f)
12.0.3 (2024-10-20)
- do not use shell for user initiated docker exec (4eb5910)
12.0.2 (2024-10-20)
- run all commands in a shell and quote all user provided parameters (9383222)
12.0.1 (2024-10-20)
- only invoke a shell for docker commands known to cause problems on macos (bc88f2e)
12.0.0 (2024-10-19)
- drop support for NPM dependency management (84f02b3), closes #77 #60
- stop using container git (ce4ae92)
- NPM dependency system will not work anymore
- Host system must have git installed after this update.
11.4.4 (2024-10-18)
11.4.3 (2024-09-30)
- print version string to stdout for version action (8245649)
11.4.2 (2024-09-28)
- bundle the cli with the correct version (2a74c7a)
11.4.1 (2024-09-28)
- get rid of the experimental warning (b0894e9)
11.4.0 (2024-09-27)
- start packaging with node SEA (9709082)
11.3.0 (2024-09-27)
11.2.0 (2024-09-23)
- enable CVE-2024-27980 compatibility (73bd360)
- fix --branch flag wasn't working on a non-Windows system (dfc4be0)
- fix a potential condition causing an empty branch name (ff86777)
- output stderr of a command failure for better context for submodule creation (17867e6)
- recover the branch only if the new project is initiated as a submodule (c8cfd7a)
11.1.3 (2024-09-17)
- streamline dependencies (49aa08e)
11.1.2 (2024-09-17)
- include the installer in the release (46299ba)
11.1.1 (2024-09-17)
- include the cli with the correct version in the installer (a8a9804)
11.1.0 (2024-09-16)
- add experimental Windows installer (83aab64)
11.0.3 (2024-02-16)
11.0.2 (2024-02-13)
- find parent git root in case running in a submodule (e34c30b)
11.0.1 (2024-02-09)
11.0.0 (2023-11-11)
- install.js: remove docker image update support from install action (8c768fd)
- project-info.js: drop support for legacy configuation file (880f38d)
- project-info.js: The cli will no longer migrate the
.libdragon/docker-image
Either make sure you run the 10.x version once for your project or remove the file manually. - install.js: Providing --image/-i flag to the install action will now error out.
10.9.1 (2023-06-01)
- release with the updated dependencies (af7a8fb)
10.9.0 (2022-11-13)
- add support for running inside a container (ac9c80b)
10.8.2 (2022-09-25)
- make ts more stricter and fix potential edge cases (5890be0)
10.8.1 (2022-09-23)
- init.js: prevent premature failure when the vendor target already exists (9c76ece)
- init.js: show a custom error when the submodule operation fails (bd40a9f), closes #57
- revert changelog removal (e34b21d)
10.8.0 (2022-05-14)
- init.js: add vendored library detection (4465d08)
- Migrating from and old version was incorrectly erroring out to do an additional
init
, which is not necessarily required.
- Do not print usage information when a command fails.
- Logs properly goes to stderr now. Previously they were written to stdout. This
means the id output of the
start
action is now written to stdout while we can also display other information on the terminal. This allowed enabling the docker logs for a more responsive experience. The output ofhelp
still goes to stdout.
- Stdin consumption support. Now it is possible to pipe anything to
exec
and it will pass it through to the target. In case of no running container, it will keep a copy of the stdin stream until the docker process is ready. This enables piping in data from the host if ever needed for some reason. This enables usages likecat file.txt | libdragon exec cat - | less
. - Automatically convert host paths into posix format so that the user can use the host's path autocompletion. It will also convert absolute host paths into relative container paths automatically. Previously all paths were assumed to be container paths relative to the location corresponding to the host cwd. Closes #24.
- Refactored process spawns.
- Refactored main flow and separated parsing logic.
- Reorder actions & correction on flag usage for help output.
- Setting
--verbose
forstart
does not guarantee the only-id output anymore. - Refactored parameter parsing.
- Update submdule for local development.
- Fix a path bug that would cause incorrect behaviour when the command is run deeper than a single level in the project folder.
- Fix a potential issue where
build.sh
might be incorrectly found inexistant if the OS is picky about the paths to have native separators. - Only save project information when necessary. Previously actions like
help
were saving project info mistakenly.
disasm
action to simplify disassembling ELF files generated by the toolchain.version
action to display current version.destroy
action to remove the libdragon project.- Additional documentation for flags.
- Print duration information when verbose.
- Refactored out NPM related functions.
- Moved usage parameters to respective actions files as a refactor.
- It is possible to provide an absolute path to init
--directory
as long as it is inside the project directory. Previously it was possible to provide somewhere outside the project, but it would fail with an unexpected error. - Simplify saving mechanism. Each action now internally resolves into the data to save if any.
- Make sure actions depending on an
init
fail in a non-project directory to keep the project state consistent. This fixes #51. update
action now tries to update the toolchain image as well. Previously this was not the case contrary to what someone would expect. Considering it won't change the behaviour for non-latest images and the toolchain did not have any breaking changes for a long time, this is not considered a breaking change either.start
action was printing stuff other than the container id. It doesn't anymore.- Stop unnecessarily printing container id and a few messages related to updates.
- Fix a potential race condition that might cause unexpected failures.
- Correct some errors' exit codes.
- A new exit code (
4
) to represent unexpected conditions.
- Deprecated providing the image flag for
install
action by displaying a warning and removing it from documentation, without changing behaviour even though it is higly unlikely this feature was ever used. It mainly exists for historical reasons and it wil be removed in next major release. - Update documentation to warn against changing strategy is a one way operation.
- Update documentation to reflect
update
action changes. - Minor refactors.
- Update submodule for local environment.
- Update the root makefile to utilize
SOURCE_DIR
for example builds. Then we are able to map container files to local files properly with a generic regex in the problem matcher. This fixes #13 and does not change any behaviour. - Add missing examples to the vscode run configurations.
- Install and build libdragon related things in the container when
exec
andmake
causes a new container run. This was previously prevented onv10.3.1
because it was unnecessarily delaying all exec operations when the container is started. Refactoring things allowed me to realize this can be improved instead of forcing the user to do a manualinstall
. - Fix a potential issue that may cause the git commands to run in current folder instead of the project root.
- Attach the error handler once for spawnProcess.
- Update vulnerable dependencies.
--directory
option to customize vendoring location.--strategy
option to select a vendoring strategy. Currently supported options aresubmodule
,subtree
andmanual
. The default issubmodule
andmanual
can be used to opt-out of auto vendoring. Useful if the user wants to utilize a different vendoring strategy and opt-out of the auto-managed git flows.
- Migrate to a json file for persistent project information.
- Only save the configuration file on successful exit except for the initial migration.
- Do not prevent init if there is a file named libdragon in the target folder.
This used to cause problems on windows but I cannot reproduce it anymore
with
2.33.1.windows.1
. It may be something caused by my old configuration. - Minor performance improvements.
- Do not try to parse arguments after exec/make. They used to get evaluated as libdragon paramaters previously, preventing passing down -v to the container make for example.
- Docker image update issues
- Attempt an image update whenever the image flag is provided. Previously this was only done if a different image name is provided, preventing the update of the latest image. Previously not providing an image name was behaving the same so this is not a breaking change.
- Start action used to update the image if provided but this bug was already prevented by previous fixes by not accepting the image flag for actions other than init/update/install. Start action no longer tries to update the image regardless.
- Only accept the image flag for init, install, and update actions as documented.
- Improve documentation for the
init
andinstall
actions. - Do not attempt an
install
when runningexec
, just start the container. If there is a half-baked container, a manualinstall
will potentially restore it. - Update libdragon.
- Extra information for skipping the image flag when doing init for an already initialized project.
- Update dependencies.
- Detailed help output.
- Move action descriptions to
libdragon help
. - Update libdragon to latest version for local build.
- Shorthand flag support.
- Updated ed64.
- Fix skeleton project to match latest libdragon.
- Container discovery. The tool can now find a container even if
.git
is lost. - A few additional error messages for some potentially confusing cases such as
already having a file with
libdragon
like name.
- Show more output for downloading the container and initial git operations.
- Remove an extra log during initialization.
- The submodule was always being initialized when a container is started. This
was making some actions inconsistent. For example
install
ormake
action was trying to re-initialize the submodule unnecessarily. This is fixed by only initializing it with theinit
action. If any of those need to re-init the container, now they assume there is an intact libdragon folder to use. - Similarly a git repository is not initialized unnecessarily anymore.
update
andinstall
are now able to start containers if necessary.- Always try to copy skeleton files, they won't overwrite anything already.
- Do not re-initialize if there is a
.libdragon
folder. We now only try to start it in this case. If it is not a complete container, it can probably be recovered by alibdragon install
orlibdragon update
.
- Fix wording for libdragon install on the container.
- Improve image name persitence such that the tool finds and updates it more consistently.
exec
action to execute arbitrary commands in the container with TTY support. This also improves the color output support as docker now knows it is using TTY.- Add more verbose logging for skeleton project copy.
- Removed partially not working
--byte-swap
option. It does not already work with the new libdragon build system so there is no need keeping it in the tool.
- Publish skeleton project files to NPM.
- A complete re-write of the tool. Check documentation for the new usage. It is
much more straightforward to use now.
libdragon make
behaves almost the same.