All sounds good, thanks for looking into this.

I'd say that running everything on every pull request would be my preference, and I don't think it takes that long to run (at least, it hasn't on travis). Nightly is an option if we have to, but if the nightly run fails there is a debugging step of figuring out which of the pull requests merged that day caused the problem.

On 11/18/20 6:33 PM, David A. Wheeler wrote:
All:

I propose that we move from using Travis CI to something else, probably GitHub 
Actions, for the set.mm repo.  This is proposed here:
https://github.com/metamath/set.mm/issues/1867

I intend to work to implement this, though help is always welcome. Details 
below.

--- David A. Wheeler

=== DETAILS ===

One great thing about the set.mm repository is that every proposed change is 
examined by multiple checking tools (including a number of verifiers). This helps 
provide extraordinarily high confidence that the proofs follow from the given 
axioms & definitions. While it focuses on the set.mm database, there are also 
checks on set.mm (based on intuitionistic logic). This checking of each potential 
change is a normal process in software development, and is often called a 
continuous integration (CI) pipeline. The CI pipeline for the set.mm repository is 
implemented using Travis.

Unfortunately Travis has become increasingly unreliable, showing as increasing 
delays or occasional unexpected failures. There are also reasons to think we 
may not be able to use it in the future. Travis has been having a number of 
problems as a company; those who are curious about more can look at these:
https://www.jeffgeerling.com/blog/2020/travis-cis-new-pricing-plan-threw-wrench-my-open-source-works
https://blog.travis-ci.com/2020-11-02-travis-ci-new-billing
https://news.ycombinator.com/item?id=25003387

I propose switching to something else. The “obvious” answer is GitHub actions. 
It’s free for OSS (and we are), and we’re already on GitHub. This basically 
requires creating a new .yml file to implement it. GitHub actions trivially 
supports parallel jobs.

I intend to start implementing this. Someone else had done a first step at 
that, so I’ll certainly look at that.

Mario would like to see fewer verifiers run on *each* commit, and instead run 
the “rest” of the verifiers separately (e.g., nightly). I’m skeptical that will 
save anything we care about, and doing that will complicate things. More 
importantly, trying to make that change *and* simultaneously moving our jobs 
from Travis to GitHub Actions is more complex.

So I intend to move the Travis jobs to GitHub Actions *first*, while doing my best 
to isolate the jobs. We can then *separately* consider if we should split jobs into 
“nightly” and “per-commit” jobs, and how to split them, once we have confidence 
that the jobs have been correctly moved. It’ll be much easier to discuss trade-offs 
& implementation difficulty once we have our CI pipeline moved to a more 
reliable service.


--
You received this message because you are subscribed to the Google Groups 
"Metamath" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/metamath/2e344656-52bb-5d83-1634-d92c89bf90a7%40panix.com.

Reply via email to