Skip to content

Conversation

@cgwalters
Copy link
Collaborator

@cgwalters cgwalters commented Sep 22, 2025

The emphasis here is on trying to have
the Justfile be the default entrypoint,
wrapping other tools.

  • Replace mentions of podman-bootc with bcvk
    since I hope the latter supercedes the former
  • Unify the unit test entrypoint
  • Set up /var/tmp as a tmpdir to fix the etc merge
    test (otherwise, selinux failures w/tmp)
  • Run the unit+container tests in integration.yml
  • Have just validate run in a container

Signed-off-by: Colin Walters [email protected]
Closes: #1635

@bootc-bot bootc-bot bot requested a review from jeckersb September 22, 2025 21:42
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request significantly refactors the build and development process by making the Justfile the main entry point. The changes improve the organization of build and test commands, update the developer documentation accordingly, and fix an issue with SELinux during tests. My review has identified a missing build dependency (jq) which could cause build failures, and a minor typo in the updated CONTRIBUTING.md. Overall, these are great improvements to the project's developer experience.

@cgwalters cgwalters changed the title Updates to build sys and CONTRIBUTING.md] Updates to build sys and CONTRIBUTING.md Sep 22, 2025
- Use &Path and not &PathBuf per general style
- Include info about which xattr failed
- Consistently use with_context + format!

Signed-off-by: Colin Walters <[email protected]>
Copy link
Contributor

@p5 p5 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All we need now is a bootc image with all dependencies preinstalled for devs! 😆

This is much nicer though. Making it easier to run tests locally through a single interface is a huge improvement.

Reminder: just --choose exists and is awesome - especially after documenting each entrypoint :)

- name: Run container tests
run:
sudo just test-container
Copy link
Contributor

@p5 p5 Sep 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps it may be nicer to invoke sudo within the justfile?

I know it goes against best practice, though if someone must remember which commands require sudo and which ones don't, I know I'd probably just default to sudoing more than needed.

Copy link
Contributor

@p5 p5 Sep 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, so this test-container entrypoint is expected to be ran both rootful and rootless depending on the executing workflow.

Yeah, there's not really anything that can be done here.


I no longer seem to be able to resolve my own threads, so feel free to resolve/ignore this one.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for looking at this btw!

Perhaps it may be nicer to invoke sudo within the justfile?

With https://github.com/bootc-dev/bcvk and bcvk to-disk in particular, everything fully supports rootless (and rootful).

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(But I still need to wire up bcvk into the CI on this repo and drop all the sudo)

@cgwalters cgwalters force-pushed the build-sys-even-more branch 3 times, most recently from fcd4a4e to 1768565 Compare September 23, 2025 13:00
The emphasis here is on trying to have
the `Justfile` be the default entrypoint,
wrapping other tools.

- Replace mentions of podman-bootc with bcvk
  since I hope the latter supercedes the former
- Unify the unit test entrypoint
- Set up /var/tmp as a tmpdir to fix the etc merge
  test (otherwise, selinux failures w/tmp)
- Run the unit+container tests in integration.yml
- Have `just validate` run in a container

Signed-off-by: Colin Walters <[email protected]>
Copy link
Collaborator

@jeckersb jeckersb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I absolutely ❤️ this. I think this is the first time I've been able to run our tmt stuff locally with any success.

Things I tested:

  • just validate
  • just test-container
  • just test-tmt-one test-20-local-upgrade

This is running against a local build of bcvk from git master, running from within a toolbox pointed at the host podman instance via systemd user socket. Worked flawlessly 🥳

# We intentionally don't gate on this for local builds in cargo.toml
# because it impedes iteration speed.
CLIPPY_CONFIG = -A clippy::all -D clippy::correctness -D clippy::suspicious -D clippy::disallowed-methods -Dunused_imports -Ddead_code
validate-rust:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am going to type make validate-rust probably 50 times before this sinks in 😆

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah fair point, though it's probably good since I think ideally we all switch to just validate.

Though, a big tension for me now is using a toolbox and not devcontainer, one ends up with needing e.g. rust-analyzer on the host system, which means you're building all the Rust code there anyways...

@cgwalters cgwalters merged commit 69395c3 into bootc-dev:main Sep 24, 2025
24 of 27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

update CONTRIBUTING.md for recent changes

3 participants