Skip to content

Conversation

@KrystalDelusion
Copy link
Member

@KrystalDelusion KrystalDelusion commented Nov 1, 2025

What are the reasons/motivation for this change?

While responding to a Discourse topic I remembered that I wanted to split the package dependencies to improve clarity and distinguish between requirements for building and testing (and to a lesser degree documenting). I also discovered the cache-apt-packages action, and while setting up the build environment isn't a huge overhead, it is done very frequently and so caching it seems reasonable. And iverilog was previously being installed/cached in two separate places, so we can reduce the redundancy there.

Explain how this is achieved.

  • Cache apt package installs
  • Split (Linux) dependencies in the setup-build-env action
    • Only install packages required for the task, e.g. running the tests doesn't need all of the build prereqs
    • Move iverilog install to a separate action, called during setup-build-env
  • Update existing documentation for prereqs
  • Add basic documentation for tests (in particular for their prereqs)
  • Drop boost-python (no longer needed since pyosys: rewrite using pybind11 #5370)

@mmicko
Copy link
Member

mmicko commented Nov 3, 2025

Not to overload this PR too much, but think moving to macos-14 or macos-15-intel would be needed since old one is getting deprecated, there are already changes needed added in #5434 but that one is on hold. For wheels I would keep what @donn added (so 15) but for compile and tests not sure, but looks like 15 is more available so better move to it.

@donn
Copy link
Contributor

donn commented Nov 3, 2025

yeah sorry i haven't had the time to get back to 5434 yet, will do when i can

@KrystalDelusion
Copy link
Member Author

That was actually on my to-do list for today :)
For the non-wheel CI jobs it's only test-compile which uses macos-13 and that should just be a one-line change, since we already use macos-latest everywhere else.

KrystalDelusion and others added 10 commits November 4, 2025 07:39
Called during setup-build-env.
We still want to cache iverilog even if the rest of the action fails, so explicitly save/restore instead of standard cache.
Split into common + build/docs/test (common always installs, build/docs/test are installed as requested with `build-*-deps` input flag).
Add comments in setup-build-env/action.yml for where to document prereqs (and the separation between build/run and test).
Add some initial (very basic) text for `test_suites.rst`, listing prereqs and how to run the tests (with subsections for the different optional tests, which is currently docs, functional and unit).
Add sphinx-inline-tabs, use it for tidying up prereq instructions based on OS/platform (mostly helpful in the test suites doc where there are multiple sections split by OS).
Also fixes some single backticks that should be double backtick.
@mmicko mmicko merged commit f170c0f into main Nov 4, 2025
13 of 29 checks passed
@mmicko mmicko deleted the krys/cache-apt branch November 4, 2025 08:59
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.

4 participants