Contributions to this project are welcome and are in fact greatly appreciated!
Every little bit helps and credit will always be given. Whether you're a junior
Python programmer looking for a open source project to contribute to, an advanced
programmer that can help us make ricecooker more efficient, we'd love to hear
from you. We've outlined below some of the ways you can contribute.
Use your Python and ricecooker knowledge to help with the content integration of content sources that will benefit offline learners from around the world.
Report bugs at https://github.com/learningequality/ricecooker/issues
If you are reporting a bug, please include:
- Which version of
ricecookeryou're using. - Which operating system you're using (name and version).
- Any details about your local setup that might be helpful in troubleshooting.
- Detailed steps to reproduce the bug.
The best way to send us your feedback is to file an issue at https://github.com/learningequality/ricecooker/issues.
If you are proposing a new feature:
- Explain in detail how it would work.
- Try to keep the scope as narrow as possible to make it easier to implement.
- Remember this is a volunteer-driven project, and contributions are welcome :)
The ricecooker project is open for code, testing, and documentation contributions. The ricecooker.utils package is constantly growing with new helper methods that simplify various aspects of the content extraction, transformations, and upload to Studio.
First, visit Contributing to our open code base where you will find general contributing guidelines and how to find an issue to work on.
Ready to contribute? In order to work on the ricecooker code you'll first need
to have Python 3.9+ on your computer.
Here are the steps for setting up ricecooker for local development:
-
Fork the
ricecookerrepo on GitHub. The result will be your very own copy repository for the ricecooker codebasehttps://github.com/<your-github-username>/ricecooker. -
Clone your fork of the repository locally, and go into the
ricecookerdirectory:git clone git@github.com:<your-github-username>/ricecooker.git cd ricecooker/ -
Install uv if you don't have it already:
curl -LsSf https://astral.sh/uv/install.sh | shOn Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" -
Install the
ricecookercode and its dependencies:uv sync --group dev -
Create a branch for local development:
git checkout -b name-of-your-bugfix-or-featureNow you can make your changes locally.
-
When you're done making changes, check that your changes pass linting and the
ricecookertest suite:Run linting:
uvx prek run --all-filesRun the tests:
uv run --group test pytestRun tests across all supported Python versions:
make test-all -
Commit your changes and push your branch to GitHub:
git add . git commit -m "A detailed description of your changes." git push origin name-of-your-bugfix-or-feature -
Open a pull request through the GitHub web interface.
Before you submit a pull request, check that it meets these guidelines:
- The pull request should include tests.
- If the pull request adds functionality, the docs should be updated. Put
your new functionality into a function with a docstring, and add the
feature to the list in
README.md. - The pull request should work for Python 3.9+. Check the GitHub Actions CI and make sure that the tests pass for all supported Python versions.
To run a subset of tests, you can specify a particular module name:
$ py.test tests.test_licenses