We want to make sure that changes to stem master don't break tor's CI. (I realise it's usually the other way around.)
I'm going to write a patch to chutney to test against all supported tor versions and tor nightly (see #28170 (closed)). Then I'll copy the tor version matrix into stem's travis CI config, and update this ticket with the branch.
If you could review and merge my patch to stem's travis ci config, that would be great.
We want to make sure that changes to stem master don't break tor's CI.
Gotcha. I should be made aware of regressions on my side by Stem's Jenkins runs. That tests against tor's tip (not against multiple tor versions) but I've found this tends to be sufficient for bugs on my end.
We want to make sure that changes to stem master don't break tor's CI.
Gotcha. I should be made aware of regressions on my side by Stem's Jenkins runs. That tests against tor's tip (not against multiple tor versions) but I've found this tends to be sufficient for bugs on my end.
Before resolving this I'd like to check - does it make sense for the travis config to live in this repository? I use Jenkins for my CI. I don't use this configuration, and as such don't have an opinion about what's in it or know if it breaks.
I'd be happy to merge changes if you'd like to keep it here, but I'm unsure if there's value in requiring me to be in the loop on its maintenance.
Oh! And to be clear, if you'd care to suggest that I use Travis rather than Jenkins for my CI I'd be open to discussing that too. Personally I don't have any strong opinions at the moment about what kind of CI Stem uses for itself.
Before resolving this I'd like to check - does it make sense for the travis config to live in this repository? I use Jenkins for my CI. I don't use this configuration, and as such don't have an opinion about what's in it or know if it breaks.
I'd be happy to merge changes if you'd like to keep it here, but I'm unsure if there's value in requiring me to be in the loop on its maintenance.
If the Travis CI config is in the Stem repository, then anyone can run Travis CI on their Stem pull requests. That's the standard config for CIs like Travis and Appveyor.
Using git for the CI config also allows different CI config for different release branches. That isn't as important for Stem, because your backports are usually pretty small.
Oh! And to be clear, if you'd care to suggest that I use Travis rather than Jenkins for my CI I'd be open to discussing that too. Personally I don't have any strong opinions at the moment about what kind of CI Stem uses for itself.
The network team uses Travis and Appveyor to check our Tor branches. Our Travis and Appveyor tests are more comprehensive, because they run different build options, Windows, Stem, and soon Chutney. Travis and Jenkins also let us run CI on our branches before we merge them.
We use Jenkins to test rarer architectures, and build binary packages.
Tor's CI runs a Stem job. To avoid breaking Tor's CI, we need all of Stem's changes to pass Stem's CI. (And we need Stem's CI tests to be roughly equivalent to Tor's CI tests.) So we would really like to have Stem's Travis and Jenkins CIs pass all the time.
I don't know if you want to check both Travis and Jenkins after you merge, or if you want to standardise on one of them. (Checking multiple CI platforms adds more work.) But we'll check Stem's CI when Tor's Stem job fails, so we can work out if it was Tor or Stem that broke first.
We can also use Stem's Travis CI to check our Stem branches, but we don't write very many of them.
Thanks for the detailed explanation. Can we configure our Stem CI to email me when there are failures?
Personally for me my ideal CI tests are...
Run 'run_tests.py --all' with python 2.6.
Run 'run_tests.py --all' with python 2.7.
Run 'run_tests.py --all' with python 3.x.
Run 'run_tests.py --all --target ONLINE' with python 2.7.
... and email me when any of these fail. Jenkins provides #2 (closed) but that's it, so swapping over to Travis sounds like it would be an improvement.
I have opened tickets #30650 (closed) through #30653 (closed) for follow up, I'll probably do them all in the same branch, because they all modify .travis.yml.