Description
As originally discussed in #25562 (comment):
I think it might be helpful to give a high level description of our CI somewhere in the doc, both for new contributors and maintainers. In particular, we should summarize the various missions of our CI:
- building and testing PRs to give feedback to contributors and reviewers prior to merging (triggered by commits pushed to the PR branch on the contributor's fork),
- building the stable and dev doc websites (triggered by commits pushed to the
main
andX.Y.Z
branches on the main repo respectively), - building and testing scikit-learn against the development versions of its dependencies (triggered as scheduled jobs),
- building, testing, and publishing nightly wheels against stable dependencies (triggered as scheduled jobs),
- building, testing, and publishing release wheels to pypi.org (triggered by commits pushed to the
X.Y.Z
branch on the main repo + manually triggered upload github action workflow),
Ideally this doc should only describe the high level objectives of the CI infrastructure and point the readers to the config files and the build_tools
folder for the details (which typically evolve faster than we update the doc).
We should carefully use inline comments in those config files and scripts to make sure that people easily understand how they operate and how to conduct common maintenance operations (e.g. rotating secret tokens).
This doc should also consolidate the list of commit message trigger keywords (currently present in the contributors guide if I am not mistaken).
I think the CI doc deserves its own page in our usage guide and should be cross-linked from the contributors and the maintainers docs.