All notable changes to this project will be documented in this file.
- Linux binaries are signed with
cosign. The signature can be verified by the user with the following command, using the cert file provided in the archive:
cosign verify-blob <linux-binary-name> --certificate-identity-regexp ".*" --bundle <linux-binary-name>.sigstore.json --certificate-oidc-issuer https://token.actions.githubusercontent.com
- Added an optional --download-server-url flag to the
installsubcommand to specify the base URL of the download server.
1.5.1 - 2025-07-28
- Resolved an issue on aarch64-apple-darwin where liblzma was required to be installed on the user's system. The dependency is now statically linked.
1.5.0 - 2025-07-17
- Added improved caching support using HTTP caching. Before installing packages,
they are validated to be correct and available against the server via HTTP caching
using
If-None-MatchandETagheaders. - Added a 90 second connect/idle timeouts in the download client, which should reduce the risk of long hangs in exotic networking situations.
- Altered the location of the binary proxies to enable clean integration with
rustup toolchain link. Previously, binary proxies were in thebin/folder of the CriticalUp home, now they are inproxy/bin/.
- Added a
--log-format $FORMATflag, with the options ofdefault,pretty,tree, andjson. Thedefaultoption preserves existing behavior, whileprettyshows the previous--verboseformat,jsonoutputs as JSON, andtreedisplays logging span structure. - Added support registering the CriticalUp binary proxies as a
rustuptoolchain. You can now runcriticalup link createthen use, for example,cargo +ferrocene build.
- Removed support for package revocation via signatures. Instead, cached packages are
validated to be still available online before use, except when
--offlineis passed. - Removed an experimental feature that attempted to integrate with Docker secrets. After more testing, our team was unsatisfied with its behavior and opted not to mature it.
1.4.0 - 2025-03-05
- The reworked
criticalup runbehavior was not correctly checking that the toolchain specified incriticalup.tomlwas installed. This lead to some situations where users could accidentally run a non-Ferrocene tool when they meant to run Ferrocene tools. This behavior has been altered and CriticalUp will now present users with an error suggesting they install the toolchain.
- New subcommand
initcreates a simple project manifest file in the current directory. A flag--printcan be passed to not save the file and only print the contents.
1.3.0 - 2025-01-30
criticalup runnow behaves more similar torustup runanduv run, allowing you to runcriticalup run $WHATEVERand have the respective tool see the appropriate CriticalUp-managed tools within the$PATH(or equivalent). A--strictflag was added to make it possible to ensure only tools within the installation are run.
- Added a
criticalup doccommand which opens the documentation of the relevant Ferrocene version. - Release instructions to README.
- Subscription management docs.
- Running Clean command now ensures that there are no leftover unused binary proxies.
1.2.0 - 2024-11-25
- Standardized error messages as close to English rules as possible.
- Changed several CriticalTrust APIs to be async.
- Added a
criticalup verifycommand that can be used to verify that a locally installed toolchain. is not corrupted or tampered with. - Added
criticalup archivewhich creates an archive of the toolchain for cold storage or backup.
- Bug when using
--offlinemode to install with expired revocation info ends in installation failure. To support proper--offlinemode, the expiration date on revocation info hash must be ignored.
1.1.0 - 2024-08-28
- Support for package revocation added,
criticalup installwill verify packages have not been revoked (due to, for example, a security event) before installation. - An
--offlineflag has been added tocriticalup install, when enabled only the download cache will be used where possible, and the cache will not be populated on cache miss. - Caching of downloaded keys, manifests, and installation tarballs has been added. Newly downloaded
artifacts will also be stored in the OS-specific cache directory. The cache can be cleaned with
criticalup cleanor any relevant OS behaviors. tracingsupport was added for structured and multi-level logging.--verboseand-vare now generally accepted and enable debug logging. Passing the flag twice (eg.-vv) will enable trace logging as well. The--log-levelargument can accept arbitrary tracing directives for fine grained control over logging where required.- Moved
criticalupto an async runtime (tokio), this resulted in resolving some intermittent networking issues on low bandwidth or unreliable connections.
1.0.2 - 2024-07-11
- Retry downloads in case of network issue (#28).
1.0.1 - 2024-05-29
- Versioning issue where
--versionwas still showing0.0.0(#24).
- Update dependencies for all crates in the project workspace (#10).
1.0.0 - 2024-05-27
- Initial public release (#22).
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.