- Fix "unnnecessary trailing semicolon" warning on Rust 1.51
- Fix nightly breakage of doctests in workspaces (#69)
- Parse
--version
argument without subcommand (bootimage --version
) (#67)
- Breaking: Consider all other exit codes besides 'test-success-exit-code' as failures (#65)
- Also runs tests with
-no-reboot
by default, configurable through a newtest-no-reboot
config key
- Also runs tests with
- Breaking: Make
cargo bootimage
usecargo build
instead ofcargo xbuild
(#63)
- Add support for building bootloaders using `-Zbuild-std (#62)
- Breaking: Rewrite: Remove support for
bootimage {run, test}
(#55)
- Add support for doctests (#52)
- Set empty RUSTFLAGS to ensure that no .cargo/config applies (#51)
- Don't exit with expected exit code when failed to read QEMU exit code (#47)
- Pass location of kernel's Cargo.toml to bootloader (#45)
- If the bootloader has a feature named
binary
, enable it (#43)
- Align boot image size on a 512 byte boundary to fix boot in VirtualBox (see #35)
- Fix
cargo bootimage
on Windows (there was a bug in the argument parsing)
- New features for
bootimage runner
- Pass additional arguments to the run command (e.g. QEMU)
- Consider all binaries in the
target/deps
folder as test executables - Apply
test-timeout
config key when running tests inbootimage runner
- Don't apply
run-args
for test executables - Add a new
test-args
config key for test arguments - Add a new
test-success-exit-code
config key for interpreting an exit code as success- This is useful when the
isa-debug-exit
QEMU device is used.
- This is useful when the
- Improve printing of the run command (print string instead of array, print non-canonicalized executable path, respect
--quiet
)
- Fix for backwards compatibility: Ignore
test-
executables forbootimage run
.- This ensures that
bootimage run
still works without the need for a--bin
argument if all other executables are integration tests. - This only changes the default, you can still run test executables by passing
--bin test-.
- This ensures that
- Rewrite for new bootloader build system
- Compatible with bootloader 0.5.1+
- Remove the following config options:
output
,bootloader.*
,minimum_image_size
, andpackage_filepath
- The bootloader is now fully controlled through cargo dependencies.
- For using a bootloader crate with name different than
bootloader
use cargo's rename feature.
- Remove support for
bootloader_precompiled
- The
bootloader
crate compiles fine on all architectures for some time and should be prefered
- The
- Require the
llvm-tools-preview
rustup component - Pass the QEMU exit code in
bootimage run
- Add support for default targets declared in
.cargo/config
files - Add a
cargo-bootimage
executable that is equivalent tobootimage build
and can be used as cargo subcommand (cargo bootimage
) - Add a new
bootimage runner
subcommand that can be used astarget.[…].runner
in.cargo/config
files - Make test timeout configurable and increase default to 5 minutes
- Move crate to 2018 edition
- Refactor and cleanup the code
- Remove the dependency on
failure
- Use a custom
ErrorMessage
type instead
- Use a custom
- Add a new
run-args
config key - Add a new
--quiet
argument to suppress output
- Update dependencies
- You can now mark integration tests as success/failure by setting the exit code in the QEMU
isa-debug-exit
device. See #32 for more information.
- Canonicalize paths before comparing them when invoking
bootimage test
- This caused an error on Windows where the path in the cargo metadata is not fully canonicalized
- Improve CI infrastructure
- Canonicalize paths before comparing them when invoking
bootimage build
- This caused an error on Windows where the path in the cargo metadata is not fully canonicalized
- Fix build on Windows (don't use the
.
directory)
- Fix: bootimage should now work correctly with
--manifest-path
(Yanked from crates.io because of a bug fixed in 0.6.1.)
Breaking:
- When no
--manifest-path
argument is passed,bootimage
defaults to theCargo.toml
in the current directory instead of the workspace root.- This fixes compilation of projects that are part of a workspace