-
Notifications
You must be signed in to change notification settings - Fork 12
Cargo.toml: switch to a workspace #114
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
Cargo.toml: switch to a workspace #114
Conversation
|
I think I'm starting to sour a little on this idea already. We could be using something like Just or just straight-up make or shellscripts to get us the xtask thing and features would get us the rest... |
|
I think splitting things up into separate crates is often a good idea anyways, there's clearly a "core composefs" and "boot stuff" at least. I don't have a really strong opinion though. |
|
Seems we're both kinda stuck in the same "meh" place on this one :) |
shawn111
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@allisonkarlitskaya just add two small cargo comments
25a7709 to
be8021d
Compare
1d29ead to
75adc8b
Compare
|
The same error, three times, even when it looks completely unrelated to the PR, and even when it's rawhide, but when it works on main (cf #124) and I've never seen anything like it before? hmmmmm |
|
OK. After a lot of fighting, I got this reproduced locally. The issue is caused by the crate separation commit (works before, fails after) and the result is that |
|
It's getting clearer: pre-6.15 is the default flags for the composefs crate. Pretty sure the fix is to declare that we take no-default-features on the composefs crate and wire it through... |
a60b584 to
8d0ce1c
Compare
Newer versions of dracut throw thousands of errors when trying to copy files into the initramfs in some container setups, and in some cases of symlinks can fail to include files entirely. This has led to a long-lingering problem that makes it difficult to build images locally (despite them working in CI). Here's the workaround: DRACUT_NO_XATTR=1. Thanks to Dick Marinus for that. See https://discussion.fedoraproject.org/t/146603/3 This lets us finally increase our Fedora version in the examples to 42. Signed-off-by: Allison Karlitskaya <allison.karlitskaya@redhat.com>
Signed-off-by: Allison Karlitskaya <allison.karlitskaya@redhat.com>
Split into a few separate crates:
- libraries:
- composefs
- composefs-oci
- composefs-boot
- binaries:
- cfsctl
- composefs-setup-root
- erofs-debug
Move our lint config (which only forbids missing debug impls) to the
workspace level and have all crates inherit from that.
Add a new workflow for testing that we can `cargo package` everything.
We need a nightly cargo in order to do this with workspaces containing
inter-dependent crates: rust-lang/cargo#13947
Make 'oci' an optional feature of cfsctl, but enable it by default.
Adjust our rawhide bls example (which included --no-default-features) to
*not* disable that.
This is not a huge improvement in terms of compile speed, and it has
some drawbacks (like 'cargo run' no longer defaulting to cfsctl) but it
seems like the right step at this point. I want to start to add some
more experimental code without making it part of the main crate.
Signed-off-by: Allison Karlitskaya <allison.karlitskaya@redhat.com>
Recent changes in the 6.15-rc kernel series have broken composefs-setup-root when running without using the newest features of the mount API (ie: with the pre-6.15 feature left enabled, which is the default). Add a case to the examples for testing that. Once it gets working again it would be useful to make sure it continues to work. Signed-off-by: Allison Karlitskaya <allison.karlitskaya@redhat.com>
We need to add a couple of exceptions in order to make ioctls. Hopefully we can remove those and set this to forbid, but for now it's a pretty strong statement going forward. Signed-off-by: Allison Karlitskaya <allison.karlitskaya@redhat.com>
This is the suggested config from samply. Signed-off-by: Allison Karlitskaya <allison.karlitskaya@redhat.com>
Copy the config from bootc. This results in an impressive (> 50%) amount of savings. Signed-off-by: Allison Karlitskaya <allison.karlitskaya@redhat.com>
8d0ce1c to
2bec6a6
Compare
|
Ok, so the I wrote to fsdevel: https://lore.kernel.org/linux-fsdevel/CAOYeF9WQhFDe+BGW=Dp5fK8oRy5AgZ6zokVyTj1Wp4EUiYgt4w@mail.gmail.com/ |
travier
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM from a quick look.
Split into a few separate crates:
This is not a huge improvement in terms of compile speed, and it has some drawbacks (like 'cargo run' no longer defaulting to cfsctl) but we might want to do it anyway, for two reasons:
I have a couple of experimental pieces of work (like a fuse filesystem implementation and an HTTP downloader) that I'd like to commit somewhere, but don't want to add to the main composefs crate, mostly for dependency reasons. Features could help there..
I've wanted to do xtask stuff for a long time, but it requires workspaces...
This is something like the transformation required to make it work. Maybe let's start discussing it.