Thanks for taking the time to contribute to the prmon
project. We are very
happy to get contributions for
- Bug reports, for things that don't work properly
- Feature requests, for things that prmon could do in the future
- Documentation improvements, for things that could be better explained
That does not cover all possible contributions, so if you believe something can be useful to the project, please raise the issue.
All of our interactions in the project are governed by the code of conduct. Thanks for respecting it!
Raise bug reports and general issues using the issues feature. For bug reports make sure that you:
- are using the latest release of prmon
- explain how are are running the code
- state what the problem is clearly
- say what you would expect the behaviour to be
It is really ideal if you can give instructions using a Docker container so that the project maintainers can verify the problem and validate a fix.
Do bear in mind the scope of prmon is Linux systems (the availability of /proc
is critical), so if the issue is that something does not work on another
platform, that is out of scope for us.
If you would like to contribute a new feature to prmon, please fork the project and develop your feature. Then make a pull request back to the main repository.
- the feature should be supported by an integration test
- the code should be commented as needed so that others can understand it
- C++ code should be formatted using the Google style of
clang-format
- i.e.
clang-format --style=Google ...
- There is a
clang-format
CMake target that will do this automatically so we recommend that is run before making the pull request
- i.e.
- Python code should be formatted with
black
(following the Scikit-HEP recommendation) and should also be clean with theflake8
linter- See the
.flake8
file for the configuration to be compatible withblack
- There are
black
andflake8
build targets that will run the formatter and linter respectively
- See the
We will review the code before accepting the pull request.
Please bear in mind the scope of prmon, which is to do lightweight monitoring of vast numbers of jobs. Thus features which are heavy or not of general interest across millions of jobs are out of scope for the project. In particular prmon focuses on resource consumption, it is not a profiling and optimisation tool.
If you are not sure if the feature makes sense for the project, use a GitHub issue to first discuss with the maintainers.
If you want to add a new monitoring component please take a look at this guide.
It is almost a truism that documentation can always be improved! If you are not sure how to improve an area of documentation you can just raise an issue and we will discuss how to do it. If you have concrete contribution then please submit it as a feature request. Documentation includes code comments as well as more specific files (like this one) and all improvements are welcome.
As members of the High-Energy Physics community, our host laboratory, CERN, holds copyright on this project.
All contributions need to agree to pass copyright to CERN.
Every significant author of prmon will be acknowledged in our AUTHORS file.