Welcome and thank you for your interest in contributing to OS2mo! We appreciate your support.
OS2mo encourages and welcomes new contributors. Our documentation contains guidance for first-time contributors, including:
- Getting Started: Getting a local stack up and running.
- Development: A more detailed installation guide, including setup on exotic operating systems (Microsoft Windows).
- GraphQL: A primer on the API.
- Events: A detailed overview of OS2mo's event system for integration developers.
The full documentation is available at https://rammearkitektur.docs.magenta.dk/os2mo/.
The following applies to all OS2mo repositories, including OS2mo itself and all of its integrations.
Before beginning your work, please search for related issues:
- https://github.com/os2mo/os2mo/issues
- https://github.com/magenta-aps/os2mo/issues
- https://os2web.atlassian.net/projects/MO/issues
- https://redmine.magenta.dk/projects/rammearkitektur/issues
Or existing patches:
If there are no relevant issues yet, and you are not sure whether your change is likely to be accepted, consider opening an issue yourself. We strongly recommend first-time contributors not submit large changes or features without first consulting the maintainers.
Before requesting a code review, ensure your patch passes all CI checks including pre-commit hooks (lint, typing, etc.) and tests. Unit- and integration-tests can be executed locally in the development environment using pytest:
# Run all tests
docker compose exec mo pytest
# Iterate on a single test
docker compose exec mo pytest backend/tests/graphapi/test_classes.py::test_integration_names_filterDon't write your integration as an hourly/daily/weekly batch job! Instead, consider utilising OS2mo's event system.
Most of the integrations in the ecosystem are available at https://github.com/orgs/OS2mo/repositories. End-user friendly documentation for most of OS2mo's integrations is available at https://rammearkitektur.docs.magenta.dk/os2mo/integrations/ldap_ad_amqp_integration.html.
The documentation for OS2mo and most of its integrations is hosted on
https://rammearkitektur.docs.magenta.dk/os2mo/. The underlying source files
are located in docs/. Changes to the documentation follow the same
procedure as any other code change.
Check out the security policy.
Whenever you are stuck, or do not know how to proceed, you can always ask for help. We invite you to use the discussions here on GitHub to ask questions.