Contributing
Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.
You can contribute in many ways:
Types of Contributions
Report Bugs
Report bugs at https://github.com/remo-rcm/pyremo/issues.
If you are reporting a bug, please include:
Your operating system name and version.
Any details about your local setup that might be helpful in troubleshooting.
Detailed steps to reproduce the bug.
Fix Bugs
Look through the GitHub issues for bugs. Anything tagged with “bug” and “help wanted” is open to whoever wants to implement it.
Implement Features
Look through the GitHub issues for features. Anything tagged with “enhancement” and “help wanted” is open to whoever wants to implement it.
Write Documentation
The pyremo package could always use more documentation, whether as part of the official Cordex Python Package docs, in docstrings, or even on the web in blog posts, articles, and such.
Submit Feedback
The best way to send feedback is to file an issue at https://github.com/remo-rcm/pyremo/issues.
If you are proposing a feature:
Explain in detail how it would work.
Keep the scope as narrow as possible, to make it easier to implement.
Remember that this is a volunteer-driven project, and that contributions are welcome :)
Get Started!
Ready to contribute? Here’s how to set up pyremo for local development.
Forking
You will need create your own fork of the project. This is really easy using the github
interface, just go to the pyremo project page and hit the Fork
button.
From your fork, you then clone the repository to your machine:
git clone https://github.com/your-user-name/pyremo.git
cd pyremo
git remote add upstream https://github.com/remo-rcm/pyremo.git
Creating a Python Environment
For the development environment, we recommend to use the conda package manager.
Make sure your conda is up to date (
conda update conda
)cd
to the pyremo source directory
We don’t recommend to use pip installation for development since some
depdencenies (like cartopy
or xesmf
) require pre-compiled libraries
in the backend. So the safest way to go is:
Install the build dependencies
Build and install pyremo from source
# Create and activate the build environment
conda create -c conda-forge -n pyremo-tests python=3.9
conda env update -f ci/requirements/environment.yml
conda activate pyremo-tests
# Build and install pyremo in editable mode
pip install -e .
At this point you should be able to import pyremo from your locally built version:
$ python # start an interpreter
>>> import pyremo
>>> pyremo.__version__
The nice thing about the editable mode (that’s the -e
flag in the pip install command) is
that you can edit the code directly in the package and use it without having to reinstall
the package. If you work a lot in Jupyter notebooks for development, you should check out
the autoreload magic, e.g., add a cell in the top of your notebook containing:
%load_ext autoreload
%autoreload 2
This will allow you to edit the pyremo source code and use it directly in the notebook without having to restart the kernel.
See the full conda docs here.