Never report security issues on GitHub, public Jira issues or other public channels (Gitter/Twitter/etc.), follow the instruction from Jenkins Security to report it on Jenkins Jira
In the Jenkins project we appreciate any kind of contributions: code, documentation, design, etc. Any contribution counts, and the size does not matter! Check out this page for more information and links!
Many plugins and components also define their own contributing guidelines and communication channels. There is also a big number of mailing lists and chats.
If you are a newcomer contributor and have any questions, please do not hesitate to ask in the Newcomers Gitter channel.
- For larger contributions create an issue for any required discussion
- Implement solution on a branch in your fork
- Make sure to include issue ID (if created) in commit message, and make the message speak for itself
- Once you're done create a pull request and ask at least one of the maintainers for review
- Remember to title your pull request properly as it is used for release notes
Prerequisites: Java and Maven.
-
Ensure Java 17 or 21 is available.
$ java -version openjdk 17.0.13 2024-10-15 OpenJDK Runtime Environment (build 17.0.13+11-Ubuntu-2ubuntu124.04) OpenJDK 64-Bit Server VM (build 17.0.13+11-Ubuntu-2ubuntu124.04, mixed mode, sharing)
-
Ensure Maven >= 3.9.9 is installed and included in the PATH environment variable.
mvn --version
mvn hpi:run...
INFO: Jenkins is fully up and running
To work on the frontend code, two processes are needed at the same time:
On one terminal, start a development server that will not process frontend assets:
mvn hpi:run -Dskip.npm -P quick-buildOn another terminal, start a vite build command that automatically rebuilds on code changes:
npm run build:devIt's recommended that you set up the above terminal commands in your IDE of choice.
To generate the hpi package and run the test you can use:
mvn packageFor a quicker build without the tests run:
mvn package -P quick-buildCode style will be enforced by GitHub pull request checks.
For frontend code we use eslint and prettier.
You can automatically fix issues with npm run lint:fix
For java code we use spotless.
You can automatically fix issues with mvn spotless:apply