All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
0.9.0 - 26-07-2024
- Define default CPUs for
x86-64
using microarchitecture levels:x86-64,x86-64-v2,x86-64-v3,x86-64-v4
. It helps to limit build times (#6).
- Update dependencies.
- MSRV is now 1.80.
0.8.1 - 17-02-2024
- Update dependencies.
- Build of
multivers-runner
with recent nightly
0.8.0 - 27-12-2023
- A GitHub Action
cargo-multivers
is available to help build a binary in your CI and make it available during a release. --out-dir
to copy the final binaries to a directory.
- Update dependencies.
- Do not propagate the
CARGO_UNSTABLE_BUILD_STD
environment variable to the build of the runner (#7). - Return an error on invalid CPUs from
--cpus
or fromcpu
list in[package.metadata.multivers.ARCH]
. - Fix build error when
--target-dir
is given as an argument to cargo build (e.g.,cargo multivers -- --target-dir target_dir
)
0.7.0 - 18-12-2023
--color
option to control the color preferences of the output (possible values: auto, always, never. default: auto).--profile
option to select a profile to build artifacts with (default: release).
- The messages like
warning: unstable feature specified for -Ctarget-feature
are now hidden to limit the noise.
RUSTFLAGS
is no longer overwritten completely (discarding it previous value). There was a typo when reading its current value (RUST_FLAGS
instead ofRUSTFLAGS
).- Do not pass the cargo args from the CLI to the build of the runner. These arguments are meant to specify additional args for the builds, not the runner itself.
- Improve how the executable being built is found when parsing cargo messages.
- Fix building a binary in a workspace.
0.6.0 - 15-12-2023
- You can now specify the version of the runner with
--runner-version
(defaults to the latest published version of the runner).
- The runner no longer depends on a Git repository.
std_detect
has been forked and an up-to-date version callednotstd_detect
has been uploaded tocrates.io
to access the required features. - The runner has been uploaded to
crates.io
as a separate cratemultivers-runner
. - Update dependencies.
- MSRV is now 1.74.
0.5.0 - 12-08-2023
cargo multivers
now stops on the first error it encounters.- The file that contains the list of versions built given to the runner is now in JSON.
- Updated dependencies to fix build with Rust nightly and proc-macro2.
- MSRV is now 1.66.
- Removed duplicated error messages.
- Do not display a false ETA for the first build.
0.4.1 - 18-06-2023
- You can now specify the list of CPUs you want to target with
--cpus
on the command line or by specifying it in yourCargo.toml
like:
[package.metadata.multivers.x86_64]
cpus = ["generic", "alderlake", "skylake", "sandybridge", "ivybridge"]
- Updated dependencies to remove the duplicated ones
- Removed unneeded unsafe code
0.4.0 - 20-05-2023
- Changed the runner to use compressed binary patches instead of compressing each version to reduce the size of the resulting runner. The runner now contains a compressed source binary and a set of compressed binary patches. When executed, the runner will find the patch the source binary with a patch that relies on CPU features that the host has and run the resulting binary.
- Updated dependencies
- Improved the error messages of the runner's build script.
0.3.2 - 14-04-2023
- Improved the runner performance
- Reduced the size of the runner
- Updated dependencies
0.3.1 - 14-04-2023
- Improved the runner performance
- Reduced the size of the runner
- Updated dependencies
0.3.0 - 28-03-2023
- A hash of each version built is computed to filter out duplicates (the ones requiring more features are removed) before building the runner. It means it can reduce the number of versions included in the runner, thus reducing its size.
- When building with MSVC the
/Brepro
linker flag is added to have reproducible builds and to ensure we can filter out duplicated versions. - The runner is no longer built if only one version is left after removing the duplicated builds (the original binary is used).
⚠️ Breaking change: The final binary (the runner) has now the same name as the original name of the binary built (instead ofmultivers-runner
).
0.2.1 - 05-03-2023
- Check that
cargo multivers
is running with Rust nightly channel before building everything.
- Do not overwrite each build with the next one (fix of the previous refactoring)
0.2.0 - 27-02-2023
- The last arguments are now forwarded to
cargo build
. - The runner compresses the builds during its compilation.
- The runner no longer depends on
bincode
, since it does not serialize the builds anymore (they are only compressed). ⚠️ Breaking change: The--rebuild-std
option has been removed. The last arguments are now forwarded tocargo build
, the same can be achieved by giving-- -Zbuild-std=std
.
0.1.0 - 09-02-2023
This was the initial release of cargo-multivers
.