Travis is backtracking on the unlimited build minutes allowance for public projects. Now, we only have 1000 build minutes / month / organization. It is not much, even for a single project running a cron job with 3 jobs that last 10 minutes every day (30310=900 minutes). So it seems time to migrate all coq-community projects to GitHub Actions even if that means dropping Nix testing for now.
One question is: should we keep the Travis template or should we remove it?
I vote for keeping the template but marking it as deprecated/legacy
I agree with @Karl Palmskog . There are likely projects outside of coq-community
that use the templates to set up CI and for whom this restriction is not a problem.
right, I actually have personal projects where I will be too lazy to switch, so if nothing else I will do the minimum to maintain the Travis template
@Théo Zimmermann , can you point me (us) to the announcement for this? When does this restriction become effective? I'm asking because graph theory is currently using Travis and takes several minutes, and that isn't counting my internal branch relying on fourcolor (for which there isn't an image yet).
I've received an e-mail today. Then I went to https://travis-ci.com/organizations/coq-community/plan and saw the build credits (one minute on Linux is worth 10 credits and we have 10,000). Can you access this page?
And the "purchase date" is Nov 20th, so today.
Note that we can also reach out to Travis support to apply for OSS credits. But our recent experience applying for the OSS program at GitLab for Coq was pretty bad (application was one or two months ago and we still didn't get anything) so I'm wondering if we should bother for Travis.
ah, background is described here seemingly: https://www.theregister.com/2020/11/02/travis_ci_pricng/
Well, reaching out to Travis won't hurt, and it might be good to have this option back eventually. After all, there is no guarantee that other options will remain free indefinitely.
if you read the article, it seems they are scaling down anything to do with open source (and the background is likely new owners), so I wouldn't hope for too much
Well, asking could allow us to discern how much this is about limiting "abuse" and how much this is about scaling back support for the OSS community. :shrug:
seems dystopian that we might be heading towards a future where open source developers pay out of pocket for infrastructure to sustain something they are giving away (somehow reminds me of many conferences/journals going "author pays")
instructions for the Travis OSS credit application are here: https://blog.travis-ci.com/2020-11-02-travis-ci-new-billing
also, I'm reading their blogpost as: they give you 10k credits once, and that's it, the plan won't renew monthly unless you apply for OSS credits
hmm, if I'm right about the 10k-without-renewal it seems wise to switch low-hanging fruit to GitHub Actions right away
also, this gives a somber perspective on Docker: https://www.theregister.com/2020/10/28/docker_pull_rate_limit_1_november/ -- we should probably look in more detail on GitHub Docker caching (even though we didn't run into issues with pulls yet)
GitHub proposes more than Docker caching, it proposes a Docker registry that we could use (and transparently switch our GitHub Action users to) if the need appeared.
Okay, graph-theory
is doing its first GitHub action CI run. This was really as simple as replacing travis
with action
, calling generate.sh and pushing. :tada:
Yeah, it's that simple. That's why my first thought was "we move" rather than "we apply for more credits and we wait".
Well, my approach would be: We move and we apply for credits in case GitHub follows suit after a sudden influx of former Travis users...
in case GitHub follows suit after a sudden influx of former Travis users...
Ah ah! I don't except this to happen any time soon. GitHub created this generous CI offer quite recently and in particular after they were acquired by Microsoft. They play in a whole different league (not the same pressure for profits and a lot more ways of generating revenues).
Travis used to be the leader in CI but this went down and down and when GitHub announced their CI/CD service, this was the death sentence IMHO.
I didn't say I'm expecting this to happen. On the other hand, given the pittance of credits we currently have for Travis, just a few projects in coq-community
transitioning slowly might churn through those credits really quickly. Do you know of projects who rely on features of Travis that have no analog for GitHub actions (e.g., projects using only Nix for CI)?
No, I don't think that there are any projects that only test with Nix.
hmm, I've been using Travis to test both regular make
and Dune builds at the same time
You mean that the Travis templates are more flexible?
One issue is that the Travis app has a simple button to enable weekly or nightly builds (cf. https://github.com/coq-community/templates/issues/77)
Théo Zimmermann said:
You mean that the Travis templates are more flexible?
Dune builds were via opam and make
builds were via Nix
We should hurry up the transition: we have already spent 34% of all our credits!
I'll try to open a few PRs now.
I'm taking a break. I've only done Paramcoq for now: https://github.com/coq-community/paramcoq/pull/59
In https://github.com/coq-community/math-classes/pull/93, I got a 403 error during the dev build. I thought it may be spurious so wanted to re-run it to check but it turns out I can only re-run all jobs at once :sad:
It's fascinating to discover this very active thread where no GitHub team member has ever replied: https://github.community/t/ability-to-rerun-just-a-single-job-in-a-workflow/17234
I'll ask them about it via the feedback form since they are usually pretty responsive to those messages.
Update: we've now spent more than half of our free Travis CI allowance.
I will switch all the projects I maintain later today
Théo Zimmermann said:
Update: we've now spent more than half of our free Travis CI allowance.
Do you have any idea which projects are consuming the bulk of these credits, so that we can prioritize those projects?
looks like: corn, lemma-overloading, aac-tactics (I will fix this), math-classes, bertrand. All of these have daily builds.
I can see everything recent at: https://travis-ci.com/github/coq-community (but maybe not available to people who are not owners)
I think we should decide carefully which projects should have daily builds, e.g., I don't think aac-tactics needs one, since it's in Coq's CI
A single build of corn
takes a total time of 2h45. One of the owners might want to disable nightly checking for that one ASAP.
sigh, I didn't see the RegLang PR, just looked at master
, can you merge yours?
sure, I thought I create a PR and let you push the button
In any event reglang
has no periodic builds, so I actually needed to fix something for the dev build to succeed.
CPP reviewing turned out to be a nightmare, so I think you will have to explicitly ping me in for PRs these days...
@Karl Palmskog , can you disable the nightly for corn
in the settings? I suppose everything else can wait until the sun is back up.
@Christian Doczkal OK, cron job for corn is gone.
in fact, I removed all cron jobs I could find
Still, corn receives PRs / commits quite often and each build takes a lot of minutes, so I've opened https://github.com/coq-community/corn/pull/148 to switch it to GitHub Actions.
I'll stop for now. With the cron jobs disabled and the most resource-intensive projects switched, the other projects should have more time to react.
VsCoq uses Travis but each build is about 1 minute, so it can last a bit longer even if it receives frequent PRs.
Théo Zimmermann said:
I'll stop for now. With the cron jobs disabled and the most resource-intensive projects switched, the other projects should have more time to react.
Yes, I guess we can just check the list of coq-community builds on travis from time to time and notify everyone who shows up in this list.
somewhat amusing:
4 Unique users who are running builds
A user is anyone who triggers the use of the compute resources you will be charged monthly for.
You exceeded the number of users allowed for your plan. Please switch to a bigger plan
Oh, wow! So we are already hitting hard limits!?
this might be a soft limit
FTR, I've just changed the Travis GitHub App permissions so that it can only be used on the 30 repositories that have already used it in the past (including those that migrated in case of commits being pushed to other branches).
This means that new coq-community projects cannot use Travis CI.
It's probably time to document the Travis template as deprecated.
I agree.
is there an obvious way to specify multiple opam files in the Actions CI? This was straightforward for Travis, but not so much now.
I have started to split some projects into 2-3 opam files since they make sense to package separately
@Erik Martin-Dorel do you maybe have some example of setting up a project to check several name.opam
files with the same Docker image using Docker-Coq-Action? This was something we used with Travis in some cases, so would be nice to retain after migrating away from Travis.
Karl Palmskog said:
somewhat amusing:
4 Unique users who are running builds A user is anyone who triggers the use of the compute resources you will be charged monthly for. You exceeded the number of users allowed for your plan. Please switch to a bigger plan
I see the first two lines but not the last. But then, I'm not an owner of the organization. Still, even more amusing ...
Karl Palmskog said:
do you maybe have some example of setting up a project to check several
name.opam
files with the same Docker image using Docker-Coq-Action? This was something we used with Travis in some cases, so would be nice to retain after migrating away from Travis.
there is a similar feature since https://github.com/coq-community/docker-coq-action/releases/tag/v1.1.0
cf. the doc (https://github.com/coq-community/docker-coq-action#opam_file):
Note-2: if this value is a directory (e.g.,
.
), relying on thecustom_script
default value, the action will install all the*.opam
packages stored in this directory.
do you believe this would be enough for your needs?
unfortunately, the default script does not work well when there are multiple opam files. Basically, one needs to be able to specify both:
Christian Doczkal said:
Karl Palmskog said:
somewhat amusing:
4 Unique users who are running builds A user is anyone who triggers the use of the compute resources you will be charged monthly for. You exceeded the number of users allowed for your plan. Please switch to a bigger plan
I see the first two lines but not the last. But then, I'm not an owner of the organization. Still, even more amusing ...
Actually, I also do not see the last line either (even though I'm an owner) but I see this:
Plan information
Free
Unlimited unique users
@Théo Zimmermann , indeed. Also, it looks like the nosedive of the credit counter has been halted. :+1:
sigh, how are we supposed to test non-Dockerized versions of Coq in CI?
with Travis, I could use Nix and just use a GitHub URL
Hopefully, @Cyril Cohen will come up with a template soon. In the meantime, maybe take a look at what he did in math-comp.
you mean https://github.com/math-comp/math-comp/blob/master/.github/workflows/nix.yml ? A bit too much to wrap my head around, and also seems to be centered around released Coq versions.
for mathcomp you can substitute with any branch, I am supposed to generalize it to Coq
(any branch in any repo)
(or local directory)
Karl Palmskog said:
unfortunately, the default script does not work well when there are multiple opam files. Basically, one needs to be able to specify both:
- "current opam file", i.e., the opam file to pin, install dependencies for, and then actually build/install
- "base opam files", i.e., list of local opam files which may be dependencies for the current opam file; all of these need to be pinned (some may get built when all deps of the current file is built)
OK Karl, so I guess you'll need to provide your custom_script
(unless the feature request https://github.com/coq-community/docker-coq-action/issues/22#issuecomment-695803544 would be handy for your use case?)
parameterizing on the "pin script" would help a bit for sure, but the ideal would be to just list the stuff to pin
OK so, it turns out that my attempt at limiting Travis to projects where it was previously installed made it not run any new build (if I believe what I see on VsCoq).
A small update on this:
Karl was right: the new free plan is a trial plan. The 10,000 build credits is one time only and the plan expires after a year anyway.
Cf. https://blog.travis-ci.com/2020-11-02-travis-ci-new-billing
Travis claims to have heard from the OSS community but actually haven't announced any change: https://blog.travis-ci.com/oss-announcement
We have very few projects left using Travis:
Also, here is a quote from the answer received by someone who asked for Travis open source credits:
At the moment, credit allocation for OSS projects is on hold as per directives from management.
We will provide updates once we get additional approval from management.
thanks, good to know
This is really getting from bad to worse. Makes me wonder whether the money they save for no longer supporting OSS projects makes up for the damage to the companies image...
Last updated: Jun 03 2023 at 15:31 UTC