-
-
Notifications
You must be signed in to change notification settings - Fork 78
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Panic when checking bootloader
crate
#376
Comments
Hi! Thanks for the detailed bug report, and I'm sorry you ran into this. I just released v0.18.2 from Could I trouble you to try the new version and let me know if it works as expected? If it's still broken, could you post the new error / crash report? It sounds like the issue (if it still exists) is with the manifest-parsing code in our upstream dependency, and if the issue is still present then I'll coordinate with the maintainers of that crate to try to get it fixed. |
Thanks a lot! I just tried the new version and it indeed solves our main issue. Checking the two main crates of our workspace now works without problems. However, there is still an error when trying to check the whole workspace using
I think it has the same cause as the panic in This seems to be an issue in the |
I'll open an issue in the |
Perfect, thanks! |
The underlying cause is a combination of an unusual repo organization causing a
Moving the diff --git a/Cargo.toml b/Cargo.toml
index c4cc6e7..8010714 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -12,7 +12,7 @@ edition = "2021"
[workspace]
members = [
"api",
- "common",
+ "common/x86_64",
"common/config",
"uefi",
"bios/boot_sector",
@@ -37,7 +37,7 @@ repository = "https://github.com/rust-osdev/bootloader"
[workspace.dependencies]
bootloader_api = { version = "0.11.0", path = "api" }
-bootloader-x86_64-common = { version = "0.11.0", path = "common" }
+bootloader-x86_64-common = { version = "0.11.0", path = "common/x86_64" }
bootloader-boot-config = { version = "0.11.0", path = "common/config" }
bootloader-x86_64-bios-common = { version = "0.11.0", path = "bios/common" }
diff --git a/common/Cargo.toml b/common/x86_64/Cargo.toml
similarity index 100%
rename from common/Cargo.toml
rename to common/x86_64/Cargo.toml
diff --git a/common/src/entropy.rs b/common/x86_64/src/entropy.rs
similarity index 100%
rename from common/src/entropy.rs
rename to common/x86_64/src/entropy.rs
diff --git a/common/src/framebuffer.rs b/common/x86_64/src/framebuffer.rs
similarity index 100%
rename from common/src/framebuffer.rs
rename to common/x86_64/src/framebuffer.rs
diff --git a/common/src/gdt.rs b/common/x86_64/src/gdt.rs
similarity index 100%
rename from common/src/gdt.rs
rename to common/x86_64/src/gdt.rs
diff --git a/common/src/legacy_memory_region.rs b/common/x86_64/src/legacy_memory_region.rs
similarity index 100%
rename from common/src/legacy_memory_region.rs
rename to common/x86_64/src/legacy_memory_region.rs
diff --git a/common/src/level_4_entries.rs b/common/x86_64/src/level_4_entries.rs
similarity index 100%
rename from common/src/level_4_entries.rs
rename to common/x86_64/src/level_4_entries.rs
diff --git a/common/src/lib.rs b/common/x86_64/src/lib.rs
similarity index 100%
rename from common/src/lib.rs
rename to common/x86_64/src/lib.rs
diff --git a/common/src/load_kernel.rs b/common/x86_64/src/load_kernel.rs
similarity index 100%
rename from common/src/load_kernel.rs
rename to common/x86_64/src/load_kernel.rs
diff --git a/common/src/logger.rs b/common/x86_64/src/logger.rs
similarity index 100%
rename from common/src/logger.rs
rename to common/x86_64/src/logger.rs
diff --git a/common/src/serial.rs b/common/x86_64/src/serial.rs
similarity index 100%
rename from common/src/serial.rs
rename to common/x86_64/src/serial.rs (I hereby confirm that the above diff should be considered "intentionally submitted for inclusion in the work" by me, and may be licensed and redistributed under the terms of your projects' licenses.) |
There are still a couple of opportunities for |
Opened https://gitlab.com/crates.rs/cargo_toml/-/issues/23 upstream for the underlying issue. |
Thanks a lot for looking into this in such detail! This is very useful! |
Happy to help! Thanks for using In the next release (hopefully in ~1hr or so), |
https://gitlab.com/crates.rs/cargo_toml/-/issues/23 was just closed as fixed, so I'll include the updated version of P.S.: I noticed you have quite a few GitHub sponsors, that's awesome! I recently opened my own GitHub sponsors account where people can support my work on |
Steps to reproduce the bug with the above code
Run
cargo semver-checks check-release
on the https://github.com/rust-osdev/bootloader repository usingcargo-semver-checks v0.18.1
.Actual Behaviour
cargo-semver-checks
errors and creates a crash report:With the latest
main
commit 3edfdc9 it works as expected, presumably because theManifest::parse
method now errors instead of panics andRustdocFromProjectRoot::new
ignores anyCargo.toml
files with parsing errors.(But
cargo semver-checks check-release --workspace
throws an "Error: packagebootloader-boot-config
not found in /home/philipp/repos/bootloader/common/config" now.)Expected Behaviour
All other cargo commands work, so I don't understand why the "not all fields of
bootloader-boot-config
have been present in workspace.package" error occurs. So I would expect that parsing the manifest file succeeds.Generated System Information
Software version
cargo-semver-checks 0.18.1
Operating system
Linux 6.0.12-76060006-generic
Command-line
cargo version
Compile time information
Build Configuration
No response
Additional Context
No response
The text was updated successfully, but these errors were encountered: