Skip to content
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

Package CI candidates #24266

Open
5 of 11 tasks
metagn opened this issue Oct 9, 2024 · 2 comments
Open
5 of 11 tasks

Package CI candidates #24266

metagn opened this issue Oct 9, 2024 · 2 comments
Assignees

Comments

@metagn
Copy link
Collaborator

metagn commented Oct 9, 2024

This is a general issue for packages that should be in package CI until the situation has sufficiently improved, suggestions would be appreciated.

The release of 2.2 was delayed quite a bit by breaks in packages that were not tested in CI and had to be tested individually long after the breaks were introduced. The last time a package was added to CI was constantine in July 2024, which is somewhat recent, but the last ones before that were ssostrings and cowstrings in June 2023, before the release of 2.0. I can attest to constantine for example being the only package in CI which demonstrated some breaks when developing PRs like #24005. So it's long overdue for some updates.

Status

Individual libraries

Going off the list of packages which @narimiran made PRs to add 2.2 CI, not all are necessarily feasible for Nim CI:

Other status packages that may be worth adding:

Except ssz-serialization, all of these have CI runs that last around 10 minutes at most (some don't have CI runs though). In the worst case, we don't have to run their entire test suites (as is done for stint).

Big packages

Most of the above libraries are dependencies of the bigger status toolchain repos, namely:

These are the packages that catch the most regressions by far. It might not be necessary to test all of the ones above that are dependencies to these if we just test these.

These packages are quite a bit more difficult to test however, both due to the required setup and maintenance, as well as the potential increase to the CI time, since the full CI runs of these are 30 minutes or longer. Some options we have to deal with this are:

  • Add a dedicated status batch similar to allowed_failures
  • Don't run this batch for every single commit/PR: either allow manually triggering it for particularly impactful PRs, or run it on a schedule, like once a week. Or both.
  • Do it in another repo similar to nightlies, ideally with support for CI'ing specific PRs to this repo.

This could be generalized to test any large toolchain using Nim.

Unfortunately I don't know much about the CI for these packages so I can't really go into specifics. Other opinions on this would be appreciated.

nim-lang packages

These have the advantage that we can manage & watch their CI, but it might still be useful to test them for PRs etc.

Other community packages

Unfortunately again, as someone who mainly uses Nim to work on the Nim compiler, I'm not too aware of libraries that are important to people that don't interact with this repo. Off the top of my head, I can suggest:

Potentially harder to test:

  • newer graphics libraries like owlkettle (GTK4 dependency, there is currently a problem linking to libraries in macos CI since update CI to macos 13 #24157), naylib
  • newer server libraries in jester/httpbeast's abscence, like mummy; currently prologue is tested

Not all tested packages need to be popularly used, as long as they uniquely demonstrate a use of the language that is expected to keep working. Small, vetted macro libraries for example would be useful.

@jmgomez
Copy link
Collaborator

jmgomez commented Oct 10, 2024

For nimlangserver we may want to pass --useSystemNim which recently got fixed in nimble v0.16.2 (will bump the koch version as soon as its released).
Speaking of nimble maybe its worth considering adding it to the list as well

@metagn
Copy link
Collaborator Author

metagn commented Oct 10, 2024

I didn't even consider that nimble is not tested outside of the version the compiler installs. Added separate nim-lang packages section in case we are missing more of those.

narimiran added a commit that referenced this issue Oct 11, 2024
This adds several new Status packages to the CIs:

- confutils
- eth
- metrics
- nat_traversal
- toml_serialization

Other packages mentioned in #24266
are currently not ready to test with `devel` for various reasons.

----

This also enables `criterion`, and removes other packages that had been
in the `allowFailure` category — even without them we have plenty of
packages (145) that we test, there's no point in spending CI time on
them just to see them fail every time.
If/when the authors of those packages make them work with Nim devel, we
can re-introduce them then.
narimiran added a commit that referenced this issue Oct 11, 2024
This adds several new Status packages to the CIs:

- confutils
- eth
- metrics
- nat_traversal
- toml_serialization

Other packages mentioned in #24266
are currently not ready to test with `devel` for various reasons.

----

This also enables `criterion`, and removes other packages that had been
in the `allowFailure` category — even without them we have plenty of
packages (145) that we test, there's no point in spending CI time on
them just to see them fail every time.
If/when the authors of those packages make them work with Nim devel, we
can re-introduce them then.

(cherry picked from commit 2747626)
narimiran added a commit that referenced this issue Oct 11, 2024
This adds several new Status packages to the CIs:

- confutils
- eth
- metrics
- nat_traversal
- toml_serialization

Other packages mentioned in #24266
are currently not ready to test with `devel` for various reasons.

----

This also enables `criterion`, and removes other packages that had been
in the `allowFailure` category — even without them we have plenty of
packages (145) that we test, there's no point in spending CI time on
them just to see them fail every time.
If/when the authors of those packages make them work with Nim devel, we
can re-introduce them then.

(cherry picked from commit 2747626)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants