Hi all,

We have just completed a migration from using Travis as our CI system
to using Github Actions. This was discussed in several issues and pull
requests but the main motivation is here:
https://github.com/sympy/sympy/issues/20374

I don't know how long SymPy has been using Travis but they have given
us a fantastic service (free of charge) for many years. We should
definitely be thankful to them for the huge expense that they have
provided in CPU cycles that we have depended on as part of testing the
correctness of any proposed changes to the main SymPy codebase.
Travis' model for providing services to open source projects has
changed though and it does not look like the new version of their
service would be usable for SymPy.

Although the main changes in Travis' service were due to kick in at
the end of 2020 it seems that they began winding down their provision
of the old service in advance of that which meant that we needed to
switch ASAP. Slowdowns in CI contributed to the delay of the 1.7
release and then made it difficult to keep contributions to SymPy
ticking over after the release.

The situation became urgent and there wasn't much time to discuss
possible alternatives to Travis but Github Actions seemed an obvious
choice so in the little time I had I built a new CI config for Actions
here:
https://github.com/sympy/sympy/blob/8b2b7e4c616677e054d01e997ab940b3150aa89d/.github/workflows/runtests.yml

Today I have disabled Travis from running on pull requests (it will
still run on the master branch after a PR is merged). I have also made
the Actions jobs "required" so that a PR can not be merged unless it
passes the tests on Github Actions. That mostly completes the
migration to Actions but I'm sure that there will be more teething
problems or things that I've missed.

For a while now it may be necessary to close and reopen PRs when
reviewing to make sure they run under the new CI. Any PR that
previously failed on Travis will still show with a red "fail" cross
even if subsequent changes have fixed any errors (Travis will not run
again after changes now). The PR will be mergeable if the tests have
passed under Actions but it will still show as having "failed" in
Travis. This also applies to any of the most recently pushed PRs for
which I cancelled the Travis build (Github shows a cancelled Travis
build as having "failed").

In the short term when reviewing a PR:
1) Close and open to rerun the tests under the new CI
2) Ignore any report of failure from Travis

Also could reviewers please pay careful attention to Actions and the
output of the different test jobs for a while?

It is very likely that I have overlooked something in the migration so
that the codebase is not as rigorously tested as it was before and
some things that should fail might pass. This is why changes to CI are
risky and need careful review. There hasn't been as much time as I
would like to test out the new CI in parallel with the old.

Finally having worked with both the Travis and Actions CI systems I
can say that I think this is an improvement in the long term. The
config format for Actions is significantly better (I hated editing the
.travis.yml and test_travis.sh files!) but also right now Actions are
giving us much more computing power than Travis ever did. We should
still focus on reducing the time taken to run the tests but it's good
that we now have a system that has more capacity to run our extremely
slow test suite.

Oscar

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" 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/sympy/CAHVvXxTUqPWFLxmgdCE-Pba1_n%2BNFTcX7kTA%2B3GU7B5Sv6prJg%40mail.gmail.com.

Reply via email to