Contribute to InvenioRDM¶
InvenioRDM is a vibrant open-source project with a community spanning the globe. We cover almost all time zones during our major online workshops! Here we highlight how you can contribute and how we work.
Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.
How the project is governed is outlined here.
InvenioRDM's development is split into monthly releases with the occasional help from Invenio (the underlying framework) sprints. For example, the "November release" is worked on during the month of November and is released during the first week of December.
A monthly board is setup on GitHub with high-level goals and lower-level tasks:
The monthly work starts with a planning and an initial release of the upcoming month's packages
invenio-cli. This typically includes new versions of:
Releasing new versions of the packages at the beginning of the monthly sprint rather than at the end reduces coordination problems during typically busy last days, prevents repeated ad-hoc version increases during the same month, isolates new changes from the previously released modules and makes releasing for production a continuous process throughout the month.
At the end of the month, only
invenio-cli needs to be released. It shifts the window
of acceptable dependencies, and coordinates and exposes the already released modules widely.
For maintainers, releasing
<version X> (release commit merged in
master already) is simply:
git checkout master git tags -a <version X> -m "<version X>" git push upstream --follow-tags
Types of Contributions¶
Report Bugs and ask for features¶
Submit an issue at https://github.com/inveniosoftware/invenio-app-rdm/issues. Select bug or feature and you will have a prepopulated GitHub issue created for you. Fill it out!
InvenioRDM is made up of a collection of modules. As you become more familiar with them, you may want to submit your ticket to their respective repositories.
Look through the GitHub issues for bugs. Anything tagged with "bug" is open to whoever wants to implement it.
Follow the module's
CONTRIBUTING.md file to ensure you are adhering to our process.
Look through the GitHub issues for features. Anything tagged with "good first issue" is a good place to start. Otherwise, reach out on the chat and ask.
Just as for fixing bugs, follow the module's
CONTRIBUTING.md for the practical details.
InvenioRDM could always use more documentation, whether as part of these official docs, in docstrings, or even on the web in blog posts, articles, and such.
The best way to send feedback is to file an issue at https://github.com/inveniosoftware/invenio-app-rdm/issues or reply to the month's release on our Discourse forum.
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 :)