Welcome to the OpenNMS community- the place where we develop the software OpenNMS Horizon and Meridian to solve monitoring problems for IT infrastructure. This document is meant for anyone interested in learning about the OpenNMS project and the surrounding ecosystem.
Where can I find documentation?
The Discourse platform is our central information portal for the following topics:
- Knowledgebase article for already know problems
- Discuss how to solve problems with OpenNMS in Community Support
- Discussions about how to extend OpenNMS in the section Development
- Announcements for releases, our weekly development update (OOH), events and security related announcements
There is also a Wiki where people explained how they solved some special problems and is not so actively changed. We would like keep it around for people in our community. There are two video training tracks on available:
On OpenNMS conferences or hackathons we sometimes record sessions, you can find them collected on the OpenNMS YouTube Channel.
Where can I talk with people?
We have a Mattermost chat which is used by people from the community people and also used by full-time contributors working for the OpenNMS Group. The OpenNMS people run an annual get-together called DevJam, which is a one week un-conference to discuss, develop, teach and learn various topics with OpenNMS. The annual conference is mostly held at the University of Minnesota in Minneapolis in June/July.
Where do you live in social media?
How can I report enhancement requests and bugs?
OpenNMS uses JIRA as software management application. This is the please where we report bugs and issues to enhance and developt the software. Software versions and releases are driven from this JIRA instance.
To create issues it is required to create a JIRA account.
How do I contribute to the project?
If you are able to fix open issues with code patches or you want to provide source code contribution with patches, you have to sign the OpenNMS Contribution Agreement. It implements the concept of a dual copyright. This allows the OpenNMS code copyright to be consolidated under one organization (The OpenNMS Group) while allowing the creator of the code to maintain all of their rights.
This is a fundamental requirement to get your source code contribution merged to the main release of OpenNMS. The OpenNMS software is developed with git and the source code is public hosted on GitHub.
To align JIRA and GitHub we use a workflow to create JIRA issues first and reference them by the JIRA issue number in the Pull Request.
The general workflow is as following:
- Master Branch: The master branch represent the code of latest stable release.
- Develop Branch: This is the default branch and is the target and integration branch for the next major release. It is the source you branch off when you want to develop new features and enhancements which need to be in the next major release.
Minor/Patch Release Branches: If you need to fix bugs with a target for a next minor/patch release, you will find a branch named
release-<major>-<minor>-<patch>and use these to branch off.
- Foundation Branch: This special branch is used to get hot- or bug fixes back from the commercial OpenNMS MERDIAN release which are also auto-merged upstream to Horizon releases. This branches are maintained by The OpenNMS Group, Inc. and gives you way to see which fixes and features get backported to long-term maintained versions of the software.
When you are finished with your work you create a Pull Requests against “Develop” when you branched off to target for the next major release or pick the “Minor/Patch” release branch where you want to have your changes be released.
This workflow ensures code changes are tracked for release management driven by JIRA. The pull request review step is important to get a shared understanding of requested code changes and improve code stability and quality.
When can I expect new releases
OpenNMS is released and distributed in two flavors HORIZON and MERIDIAN. Both distributions are released under the AGPLv3 license model. Version numbers follow the Semantic Versioning schema.
- The HORIZON major releases follows a feature/time driven release cycle of 3-5 months.
- HORIZON minor releases are targeted for every third Thursday of a month.
- The OpenNMS Group, Inc. provides the MERIDIAN distribution with commercial support and the major release cycle is ~12 months and support is given for an extended lifetime.
- Security and bugfix patches are maintained by The OpenNMS Group, Inc. and are backported between the two distributions.
- To get patches and fixes for MERIDIAN, it is required to have a MERIDIAN subscription for repository access.
Do you use Continuous Integration (CI) systems?
For quality assurance we use Atlassian Bamboo as Continuous Integration (CI) system. It is publicly available on https://bamboo.opennms.org
It is used for the following tasks:
- Checks code for compile errors
- Runs unit and integration test infrastructure
- Runs final smoke tests
- Build and generates Java API documentation
- Build and generates version related documentation
- Build and distribute RPM and DEB packages to the public server
All branches in the OpenNMS GitHub repository will be processed by the CI system. Feature branches and results are distributed to the public available repository server as YUM and DEB package. Builds are automatically triggered by changes in feature-, develop or master branches.
How is the project governed
The project is mainly driven by The OpenNMS Group, Inc. We have an elected core contribution group called OGP who earned trust in the community to have direct commit access to the project where the software is released and distributed. Most decisions will be made using a lazy consensus model.
The OpenNMS Group, Inc.
The OpenNMS Group, Inc. is the main sponsor of the project and provides a commercial product OpenNMS MERIDIAN which is similar to Red Hats Enterprise Linux subscription. Beside that, they also develop new features through OpenNMS HORIZON which is similar to Red Hats Fedora and free as in freedom. The build and packaging infrastructure is also maintained and provided by the commercial company.
Order of the Green Polo
The Order of the Green Polo (OGP) is the super secret brotherhood of developers of the OpenNMS Project. You can recognize and OGP member by their good looks as well as their super-flashy, very coveted OpenNMS Green Polo.
Back in fall of 2004, I wanted to find a way to recognize those people who make OpenNMS what it is, and to thank them in some fashion. Ever since the advent of “business casual” workplace attire, the “logo” polo shirt has become a fixture in IT departments around the world. We sell black and white polos with the OpenNMS logo on our website. But this is much, much, much, different. These are “green” polos, very rare, and they will never be available for sale. Think of them as equivalent to winning The Master’s golf tournament’s green jacket - only harder to get. In order to get one, all one has to do is give up all hope of having a life outside of OpenNMS, work long hours for free, and basically become a closed superhero, squashing bugs (or uncovering existence) in a single bound.
– Tarus Balog, Founder of the OpenNMS Project