scikit-learn-contrib is a github organization for gathering high-quality scikit-learn compatible projects. Each project's team is responsible for maintaining the project. This includes fixing bugs, reviewing pull requests and making releases.
- Visibility: be part of a growing ecosystem of scikit-learn compatible projects
- Collaboration: volunteers from around the world can join you in improving the project
- Quality: benefit from scikit-learn's experience in producing high-quality machine learning software
- Transfer: most popular estimators can eventually be promoted to scikit-learn
- URL: http://contrib.scikit-learn.org
In scikit-learn, we are pretty selective on the algorithms we include: notoriety (number of citations), general usefulness, no external dependencies. See scikit-learn's FAQ for more details. In contrast, these conditions are not necessary for inclusion in scikit-learn-contrib (although we do have a few technical requirements, see below). scikit-learn-contrib is the ideal choice for cutting-edge algorithms (e.g., the latest ICML or NIPS paper), domain-specific algorithms, library wrappers.
In addition, pull-requests on scikit-learn tend to take from a few weeks to a few months to review. In constrat, if the requirements below are satisfied, projects are expected to be accepted to scikit-learn-contrib within a few days.
- scikit-learn compatible (check_estimator passed)
- Available on github
- Open-source license (BSD preferred but not mandatory)
- Documentation (guide, API reference, example gallery)
- Unit tests
- Python3 compatible
- PEP8 compliant
- Continuous integration
To satisfy these requirements, the easiest way is to start your project from project-template, although this is not mandatory.
- File a request for inclusion into scikit-learn-contrib.
- The project undergoes a simple review by scikit-learn or scikit-learn-contrib members to check that the above requirements are satisfied.
- A team is created in the scikit-learn-contrib organization for your project.
- Transfer your project to the scikit-learn-contrib organization (transfer retains branches, stars, etc).
- Fork the project in your account (this way, the old project URL is still valid).
- Project name on pypi is sklearn-contrib-project-name (e.g., sklearn-contrib-lightning).
- Upload documentation to your gh-pages branch.
- When changing the signature of a public function or class, the old signature must be supported for two releases.
- The options of all estimators must have sensitible default values.