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

[proposal] run whitelist of popular nimble packages as a part of non-blocking CI suite, to catch regressions early #8638

Closed
timotheecour opened this issue Aug 14, 2018 · 9 comments
Labels

Comments

@timotheecour
Copy link
Member

timotheecour commented Aug 14, 2018

proposal

  • add a tool to install, build, run testsuite of nimble packages (from https://github.com/nim-lang/packages/blob/master/packages.json)
  • add a line in CI (travis, appveyor) that calls this tool on a subset all nimble packages, using a whitelist
  • whitelist favors packages that are commonly used (using download statistics, which should be irrespective of direct vs indirect nimble install calls), that are fast to build and test (to avoid adding too much stress on travis/appveyor), and that are not broken on devel
  • this whitelist can specify for each package an optional tag (but default of #head should be preferred to make sure we're current; Note: that revision can itself depend on non-head dependencies, that's fine)
  • failures should be considered as "Allowed Failures" but can still be used for figuring out whether a PR breaks some packages
  • a html page containing summary of passed/failed/skipped results is generated
  • all this should be written in Nim, except a 1 line shell call in travis/appveyor

Note

looks like support is already there; just not being run in CI:
Nim/tests/testament/categories.nim:

  of "nimble-core":
    testNimblePackages(r, cat, pfCoreOnly)
  of "nimble-extra":
    testNimblePackages(r, cat, pfExtraOnly)
  of "nimble-all":
    testNimblePackages(r, cat, pfAll)

(also, on OSX, ./koch tests cat nimble-core ran into dom96/choosenim#80)

links

motivation

@timotheecour timotheecour changed the title [proposal] [CI] run whitelist of popular nimble packages as a part of CI, to catch regressions early [proposal] [CI] run whitelist of popular nimble packages as a part of non-blocking CI suite, to catch regressions early Aug 15, 2018
@dom96
Copy link
Contributor

dom96 commented Aug 15, 2018

This could (and probably should) be done in a separate repo/CI.

@timotheecour
Copy link
Member Author

possibly, but then how would one run CI automatically for each PR ?
another option is to run a cron-job regularly (eg every x hours or every day); that would probably be more economical than after each PR update.
what would u recommend for running this kind of kron-job?

@dom96
Copy link
Contributor

dom96 commented Aug 15, 2018

another option is to run a cron-job regularly (eg every x hours or every day); that would probably be more economical than after each PR update.

Indeed. Travis can do this.

@FedericoCeratto
Copy link
Member

@timotheecour The package regression testing was already being performed by https://github.com/FedericoCeratto/nim-ci but at the time it attracted little interest. The tool was monitoring the Nim repos and triggering rebuilds.

@andreaferretti
Copy link
Collaborator

andreaferretti commented Aug 27, 2018

I have been proposing this since forever, really hope this takes off!

@FedericoCeratto was nim-ci actually building anything? Last time I remembered it was just doing nimble install, which in most cases just does nothing. It really should have been calling nimble test or (even better) letting users register packages and specify how to test them

@timotheecour timotheecour changed the title [proposal] [CI] run whitelist of popular nimble packages as a part of non-blocking CI suite, to catch regressions early [proposal] run whitelist of popular nimble packages as a part of non-blocking CI suite, to catch regressions early Oct 24, 2018
@genotrance
Copy link
Contributor

I'll be happy to help with this. I am already doing a small subset with nimgen and nimterop which test over 30 wrapper packages daily with devel, stable and stable - 1 and have found and reported issues in the past.

Please let me know how I can contribute.

@Araq
Copy link
Member

Araq commented Dec 31, 2018

I would patch "nightlies" to do the stress testing. One question then is how to integrate this with CIs.

@timotheecour
Copy link
Member Author

timotheecour commented Dec 31, 2018

@genotrance might be worth starting from (a fork of) https://github.com/FedericoCeratto/nim-ci instead of from scratch /cc @FedericoCeratto

timotheecour added a commit to timotheecour/Nim that referenced this issue Jan 9, 2019
timotheecour added a commit to timotheecour/Nim that referenced this issue Jan 9, 2019
timotheecour added a commit to timotheecour/Nim that referenced this issue Jan 9, 2019
timotheecour added a commit to timotheecour/Nim that referenced this issue Jan 10, 2019
timotheecour added a commit to timotheecour/Nim that referenced this issue Jan 10, 2019
timotheecour added a commit to timotheecour/Nim that referenced this issue Jan 11, 2019
timotheecour added a commit to timotheecour/Nim that referenced this issue Jan 11, 2019
@Araq
Copy link
Member

Araq commented Feb 9, 2019

This has been implemented. Add your packages to important_packages.nim please.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants