Contributing#
All 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#
Feature Requests#
If you are interested in a new Feature, you can add it as an issue with the label.
In the issues describe clearly the new feature or functionality you want to see implemented in the toolkit. If the request is specific to your application/data, make sure to add a sample of your pickled Dataset (use .save_dataset()).
Assign yourself to the issue if you want to (help) implement the new request. All help is much appreciated!
Report Bugs#
Report bugs at the as a new issue with the label.
If you are reporting a bug, please include:
Your operating system name and version.
The version of the MetObs-toolkit (use
metobs_toolkit.__version__
).Any details about your local setup that might be helpful in troubleshooting.
Detailed steps to reproduce the bug.
If possible, provide a pickled version of your dataset (use .save_dataset()). Limit the size of the dataset as much as possible.
Fix Bugs#
Look through the GitHub issues for bugs. Anything tagged with and is open to whoever wants to implement it. If you find yourself not so familiar with Python you can start by filtering to the and labels.
The label indicates that this issue might affect multiple modules of the toolkit, the data structures or is technical more challenging. Contact @vergauwenthomas to discuss a plan-of-attack in advance.
Implement Features#
Look through the GitHub issues for features. Anything tagged with and is open to whoever wants to implement it.
Write Documentation#
The MetObs-toolkit could always use more documentation or spell checkers. Use the to indicate that your issue is documentation-related.
Submit Feedback#
Any form of feedback is much appreciated. The best way to send feedback is to file an issue. If you cannot find a suitable label, you do not have to specify one.
Get Started#
Ready to make code contributions? Here is how to set up a developer’s environment for the toolkit.
Required software#
The following software (or equivalent) is required to set up a developer environment:
Make sure you have this software installed before proceeding.
Setup a developer environment#
Clone the MetObs-toolkit locally:
git clone git@github.com:vergauwenthomas/MetObs_toolkit.git
Create a conda environment and install the required packages.
# Setup a developers' environment
conda create -n metobs_dev python==3.9 poetry
conda activate metobs_dev
#optional: install Spyder as IDE
#conda install spyder
# Install dependencies in the developers' environment
cd MetObs_toolkit
poetry install --with documentation
Create a branch for local development which is a copy of the dev branch.:
# checkout the dev branch
git checkout dev
git pull
# Create a new local branch and switch to it.
git branch name-of-your-bugfix-or-feature
git checkout name-of-your-bugfix-or-feature
Now you can make local changes.
Test your changes locally. The build_and_test.sh script builds the package and runs a series of tests. All tests must be successful before your contributions can be merged in the dev branch.
source deploiment/build_and_test.sh
Push your code online:
# Add your changes to your commit git add -A # Write commit text git commit -m "Some text describing your code changes in this commit" # Push your branch online #only the first time: git push --set-upstream origin name-of-your-bugfix-or-feature #all other times git push
Pull Request Guidelines#
Once your branch has been pushed to github, you can create a Pull request in github. Make sure that you have referred the corresponding issues to the Pull request. If your code adaptations are still work-in-progress add the label to it. For each push, github will perform a list of checks (package building, version control, functionality test, os-tests, documentation build test), in order to merge your contributions these tests must all be successful.
If your code is ready for review, you can add the label to it.
After the code review, and all review marks are resolved, your contributions will be merged to the dev branch.
Versioning/Tagging#
From time to time the dev branch will be merged with the master with a new Release tag. The new release will be deployed to PyPi index with the adequate versioning specified.
Support#
For general support or questions, you can refer them to @vergauwenthomas, or by mail to (thomas.vergauwen@meteo.be).
Acknowledgement#
This file is inspired by the RavenPy project. Thank you for the inspiration!”.