diff --git a/CONTRIBUTING.md b/CONTRIBUTING.adoc similarity index 52% rename from CONTRIBUTING.md rename to CONTRIBUTING.adoc index d8fd3a770082..3ccfa45b2ad0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.adoc @@ -1,99 +1,105 @@ -# Contributing to Jenkins +:important-caption: :heavy_exclamation_mark: + += Contributing to Jenkins This page provides information about contributing code to the Jenkins core codebase. -:exclamation: There's a lot more to the Jenkins project than just code. For more information on the ways that you can contribute to the Jenkins project, see [Participate](https://www.jenkins.io/participate/). +IMPORTANT: There's a lot more to the Jenkins project than just code. For more information on the ways that you can contribute to the Jenkins project, see https://www.jenkins.io/participate/[Participate]. -## Getting started +== Getting started -1. Fork the repository on GitHub -2. Clone the forked repository to your machine -3. Install the necessary development tools. In order to develop Jenkins, you need the following: - - Java Development Kit (JDK) 11 or 17. - In the Jenkins project we usually use [Eclipse Temurin](https://adoptium.net/) or [OpenJDK](https://openjdk.java.net/), but you can use other JDKs as well. - - Apache Maven 3.8.1 or above. You can [download Maven here](https://maven.apache.org/download.cgi). - In the Jenkins project we usually use the most recent Maven release. - - Any IDE which supports importing Maven projects. - - Install [NodeJS 16.x](https://nodejs.org/en/). **Note:** only needed to work on the frontend assets found in the `war` module. - - Frontend tasks are run using [yarn](https://yarnpkg.com/). Run `npm install -g yarn` to install it. -4. Set up your development environment as described in [Preparing for Plugin Development](https://www.jenkins.io/doc/developer/tutorial/prepare/) +. Fork the repository on GitHub +. Clone the forked repository to your machine +. Install the necessary development tools. In order to develop Jenkins, you need the following: +* Java Development Kit (JDK) 11 or 17. In the Jenkins project we usually use https://adoptium.net/[Eclipse Temurin] or https://openjdk.java.net/[OpenJDK], but you can use other JDKs as well. +* Apache Maven 3.8.1 or above. You can https://maven.apache.org/download.cgi[download Maven here]. + In the Jenkins project we usually use the most recent Maven release. +* Any IDE which supports importing Maven projects. +* Install https://nodejs.org/en/[NodeJS 16.x]. *Note:* only needed to work on the frontend assets found in the `war` module. +** Frontend tasks are run using https://yarnpkg.com/[yarn]. Run `npm install -g yarn` to install it. +. Set up your development environment as described in https://www.jenkins.io/doc/developer/tutorial/prepare/[Preparing for Plugin Development] If you want to contribute to Jenkins, or just learn about the project, you can start by fixing some easier issues. In the Jenkins issue tracker we mark such issues as `newbie-friendly`. -You can find them by using this query (check the link) for [newbie friendly issues](). +You can find them by using this query (check the link) for https://issues.jenkins.io/issues/?jql=project%20%3D%20JENKINS%20AND%20status%20in%20(Open%2C%20%22In%20Progress%22%2C%20Reopened)%20AND%20component%20%3D%20core%20AND%20labels%20in%20(newbie-friendly)[newbie friendly issues]. -## Building and Debugging +== Building and Debugging The Jenkins core build flow is built around Maven. -You can read a description of the [building and debugging process here](https://www.jenkins.io/doc/developer/building/). +You can read a description of the https://www.jenkins.io/doc/developer/building/[building and debugging process here]. If you want simply to build the `jenkins.war` file as fast as possible without tests, run: -```sh +[source,shell] +---- mvn -am -pl war,bom -Pquick-build clean install -``` +---- The WAR file will be created in `war/target/jenkins.war`. -After that, you can start Jenkins using Java CLI ([guide](https://www.jenkins.io/doc/book/installing/war-file/#run-the-war-file)). +After that, you can start Jenkins using Java CLI (https://www.jenkins.io/doc/book/installing/war-file/#run-the-war-file[guide]). If you want to debug the WAR file without using Maven plugins, -You can run the executable with [Remote Debug Flags](https://stackoverflow.com/questions/975271/remote-debugging-a-java-application) +You can run the executable with https://stackoverflow.com/questions/975271/remote-debugging-a-java-application[Remote Debug Flags] and then attach IDE Debugger to it. To launch a development instance, after the above command, run: -```sh +[source,shell] +---- mvn -pl war jetty:run -``` +---- (Beware that `maven-plugin` builds will not work in this mode, due to class loading conflicts.) -### Building frontend assets +=== Building frontend assets To work on the `war` module frontend assets, two processes are needed at the same time: On one terminal, start a development server that will not process frontend assets: -```sh +[source,shell] +---- mvn -pl war jetty:run -Dskip.yarn -``` +---- -On another terminal, move to the war folder and start a [webpack](https://webpack.js.org/) dev server: +On another terminal, move to the war folder and start a https://webpack.js.org/[webpack] dev server: -```sh +[source,shell] +---- cd war; yarn start -``` +---- -### Gitpod +=== Gitpod -You can open this project as a [Gitpod workspace](https://www.gitpod.io/) which comes pre-configured with all the tools you will need. +You can open this project as a https://www.gitpod.io/[Gitpod workspace] which comes pre-configured with all the tools you will need. You can use IntelliJ IDEA (preferred) or VS Code (alternate) in the browser. -[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/jenkinsci/jenkins) +https://gitpod.io/#https://github.com/jenkinsci/jenkins[image:https://gitpod.io/button/open-in-gitpod.svg[Open in Gitpod]] -If you prefer using IntelliJ IDEA, you can setup Gitpod integration with JetBrains Gateway using the instructions on [gitpod.io](https://www.gitpod.io/docs/ides-and-editors/intellij), +If you prefer using IntelliJ IDEA, you can setup Gitpod integration with JetBrains Gateway using the instructions on https://www.gitpod.io/docs/ides-and-editors/intellij[gitpod.io], which will open the workspace in IntelliJ IDEA using JetBrains Gateway. -### Linting +=== Linting For linting we use a number of tools: -- [checkstyle](https://checkstyle.sourceforge.io/) -- [eslint](https://eslint.org/) -- [prettier](https://prettier.io/) -- [spotless](https://github.com/diffplug/spotless) -- [stylelint](https://stylelint.io/) +* https://checkstyle.sourceforge.io/[checkstyle] +* https://eslint.org/[eslint] +* https://prettier.io/[prettier] +* https://github.com/diffplug/spotless[spotless] +* https://stylelint.io/[stylelint] These are all configured to run as part of the Maven build, although they will be skipped if you are building with the `quick-build` profile. To automatically fix most issues run: -```bash +[source,bash] +---- mvn spotless:apply mvn -pl war frontend:yarn -Dfrontend.yarn.arguments=lint:fix -``` +---- -## Testing changes +== Testing changes Jenkins core includes unit and functional tests as a part of the repository. @@ -103,74 +109,74 @@ so there is no strict need to run full test suites before proposing a pull reque There are 3 profiles for tests: -- `light-test` - runs only unit tests, no functional tests -- `smoke-test` - runs unit tests + a number of functional tests -- `all-tests` - runs all tests, with re-run (default) +* `light-test` - runs only unit tests, no functional tests +* `smoke-test` - runs unit tests + a number of functional tests +* `all-tests` - runs all tests, with re-run (default) In addition to the included tests, you can also find extra integration and UI -tests in the [Acceptance Test Harness (ATH)](https://github.com/jenkinsci/acceptance-test-harness) repository. +tests in the https://github.com/jenkinsci/acceptance-test-harness[Acceptance Test Harness (ATH)] repository. If you propose complex UI changes, you should create new ATH tests for them. -### JavaScript unit tests +=== JavaScript unit tests In case there's only need to run the JS tests: -```sh +[source,shell] +---- cd war; yarn test -``` +---- -## Proposing Changes +== Proposing Changes The Jenkins project source code repositories are hosted at GitHub. -All proposed changes are submitted, and code reviewed, using a [GitHub pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) process. +All proposed changes are submitted, and code reviewed, using a https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests[GitHub pull request] process. To submit a pull request: -1. Commit your changes and push them to your fork on GitHub. - It is a good practice is to create branches instead of pushing to master. -2. In the GitHub Web UI, click the _New Pull Request_ button. -3. Select `jenkinsci` as _base fork_ and `master` as `base`, then click _Create Pull Request_. - - We integrate all changes into the master branch towards the Weekly releases. - - After that, the changes may be backported to the current LTS baseline by the LTS Team. - Read more about the [backporting process](https://www.jenkins.io/download/lts/). -4. Fill in the Pull Request description according to the [proposed template](.github/PULL_REQUEST_TEMPLATE.md). -5. Click _Create Pull Request_. -6. Wait for CI results/reviews, process the feedback. - - If you do not get feedback after 3 days, feel free to ping `@jenkinsci/core-pr-reviewers` in the comments. - - Usually we merge pull requests after 2 approvals from reviewers, no requested changes, and having waited some more time to give others an opportunity to provide their feedback. - See [this page](/docs/MAINTAINERS.adoc) for more information about our review process. +. Commit your changes and push them to your fork on GitHub. It is a good practice is to create branches instead of pushing to master. +. In the GitHub Web UI, click the _New Pull Request_ button. +. Select `jenkinsci` as _base fork_ and `master` as `base`, then click _Create Pull Request_. +* We integrate all changes into the master branch towards the Weekly releases. +* After that, the changes may be backported to the current LTS baseline by the LTS Team. + Read more about the https://www.jenkins.io/download/lts/[backporting process]. +. Fill in the Pull Request description according to the link:.github/PULL_REQUEST_TEMPLATE.md[proposed template]. +. Click _Create Pull Request_. +. Wait for CI results/reviews, process the feedback. +* If you do not get feedback after 3 days, feel free to ping `@jenkinsci/core-pr-reviewers` in the comments. +* Usually we merge pull requests after 2 approvals from reviewers, no requested changes, and having waited some more time to give others an opportunity to provide their feedback. + See link:/docs/MAINTAINERS.adoc[this page] for more information about our review process. Once your Pull Request is ready to be merged, the repository maintainers will integrate it, prepare changelogs, and ensure it gets released in one of upcoming Weekly releases. There is no additional action required from pull request authors at this point. -### Pull request management +=== Pull request management The Jenkins project uses a well-defined set of labels to mark the status and content of pull requests. The complete list of labels can be found at https://github.com/jenkinsci/jenkins/labels. These labels are defined as follows: -- `needs-docs` marks a pull request as lacking documentation, either for developers (e.g., Javadoc) or users (e.g., changes to the [Jenkins handbook](https://www.jenkins.io/doc/book/)). +* `needs-docs` marks a pull request as lacking documentation, either for developers (e.g., Javadoc) or users (e.g., changes to the https://www.jenkins.io/doc/book/[Jenkins handbook]). For such pull requests to be approved and merged, the corresponding changes to the documentation should be proposed. If those changes belong to a separate repository (e.g., `jenkins-infra/jenkins.io`), a secondary pull request should be created in draft state in the other repository and reviewed in tandem with the primary pull request that proposes the code change. -- `needs-fix` marks a pull request which has pending requests for change that have not yet been addressed. +* `needs-fix` marks a pull request which has pending requests for change that have not yet been addressed. Such pull requests will not be merged until the code has been fixed and the tests pass. -- `needs-justification` marks a pull request where the reasoning is unclear, incomplete or not entirely cogent. +* `needs-justification` marks a pull request where the reasoning is unclear, incomplete or not entirely cogent. To properly evaluate the solution provided in a pull request, maintainers must be able to understand the high-level problem that the pull request attempts to solve. While the context might be obvious to the author, it is not always apparent to reviewers and maintainers. - The use of design documents, high-level tracking epics, [minimal reproducible examples (MREs)](https://en.wikipedia.org/wiki/Minimal_reproducible_example), etc. is strongly encouraged. -- `needs-more-review` marks a pull request as lacking a sufficient number of reviews from subject-matter expert(s) (SME), either because the changes are complex and not sufficiently explained or because there is a lack of consensus regarding the proposed solution. -- `on-hold` marks a pull request that depends on another event and cannot be merged until the completion of that event. + The use of design documents, high-level tracking epics, https://en.wikipedia.org/wiki/Minimal_reproducible_example[minimal reproducible examples (MREs)], etc. is strongly encouraged. +* `needs-more-review` marks a pull request as lacking a sufficient number of reviews from subject-matter expert(s) (SME), either because the changes are complex and not sufficiently explained or because there is a lack of consensus regarding the proposed solution. +* `on-hold` marks a pull request that depends on another event and cannot be merged until the completion of that event. When the dependent task has been completed, the pull request will be ready for merge. -- `proposed-for-close` marks a pull request where there is either no consensus on the next steps or where the next steps have not been taken and an extended period of time has elapsed. +* `proposed-for-close` marks a pull request where there is either no consensus on the next steps or where the next steps have not been taken and an extended period of time has elapsed. Such pull requests are typically closed approximately one week after the label has been applied. They can always be reopened once consensus has been reached on the next steps or when action is taken regarding these next steps. -- `ready-for-merge` marks a pull request that has met the acceptance criteria, as defined elsewhere in this document. +* `ready-for-merge` marks a pull request that has met the acceptance criteria, as defined elsewhere in this document. If there is no negative feedback, such pull requests are typically merged within approximately 24 hours. -- `stalled` marks a pull request that is off to a promising start but requires additional effort to reach completion - effort that appears to have been abandoned. +* `stalled` marks a pull request that is off to a promising start but requires additional effort to reach completion - effort that appears to have been abandoned. If the original author lacks the time and interest to continue the original effort, we suggest that someone else pick up where the original author left off to drive the effort to completion. -- `work-in-progress` marks a pull request that remains under active development. +* `work-in-progress` marks a pull request that remains under active development. Such pull requests are not ready for final review. To ensure that pull requests are processed efficiently, the `ready-for-merge`, `stalled`, and `proposed-for-close` labels are subject to time constraints. @@ -187,56 +193,56 @@ Yet also, we recognize that some contributors prefer not to receive unsolicited When opening a pull request, enabling the _Allow edits by maintainers_ option indicates that you accept that maintainers may push new commits into your pull request branch. As some maintainers are willing to fix typographical errors and merge conflicts while reviewing pull requests, accepting edits from maintainers can speed up the integration of your pull request. -## IntelliJ suggestion +== IntelliJ suggestion In case you are using IntelliJ, please adjust the default setting in respect to whitespace fixes on save. The setting can be found in Settings -> Editor -> General -> On Save -> Remove trailing spaces on: `Modified lines` This will help minimize the diff, which makes reviewing PRs easier. -We also do not recommend `*` imports in the production code. -Please disable them in Settings > Editor > Codestyle > Java by setting _Class count to use import with '\*'_ and Names count to use import with '\*'\_ to a high value, e.g. 100. +We also do not recommend `+*+` imports in the production code. +Please disable them in Settings > Editor > Codestyle > Java by setting _Class count to use import with '+*+'_ and _Names count to use import with '+*+'_ to a high value, e.g. 100. The addition of `@{jenkins.addOpens}` to `argLine` exposes a bug in IntelliJ IDEA. -A patch has been proposed in [JetBrains/intellij-community#1976](https://github.com/JetBrains/intellij-community/pull/1976). +A patch has been proposed in https://github.com/JetBrains/intellij-community/pull/1976[JetBrains/intellij-community#1976]. Pending the merge and release of this patch, IntelliJ IDEA users should work around the problem as follows: -1. Go to **Settings** > **Build, Execution, Deployment** > **Build Tools** > **Maven** > **Running Tests**. -2. Under "Pass to JUnit process [the] following `maven-surefire-plugin` and `maven-failsafe-plugin` settings", uncheck `argLine`. +. Go to *Settings* > *Build, Execution, Deployment* > *Build Tools* > *Maven* > *Running Tests*. +. Under "Pass to JUnit process [the] following `maven-surefire-plugin` and `maven-failsafe-plugin` settings", uncheck `argLine`. Failure to work around the problem as described above will result in a `could not open '{jenkins.addOpens}'` failure when running tests in IntelliJ IDEA. -### Code formatting for frontend files +=== Code formatting for frontend files -Install the [Prettier plugin](https://www.jetbrains.com/help/idea/prettier.html). +Install the https://www.jetbrains.com/help/idea/prettier.html[Prettier plugin]. Follow the instructions on the above JetBrains page to configure it how you wish. 'On code reformatting' is a good option. -## Copyright +== Copyright -The Jenkins core is licensed under [MIT license](./LICENSE.txt), with a few exceptions in bundled classes. +The Jenkins core is licensed under link:./LICENSE.txt[MIT license], with a few exceptions in bundled classes. We consider all contributions as MIT unless it's explicitly stated otherwise. MIT-incompatible code contributions will be rejected. Contributions under MIT-compatible licenses may also be rejected if they are not ultimately necessary. -We **Do NOT** require pull request submitters to sign the [contributor agreement](https://www.jenkins.io/project/governance/#cla) +We *Do NOT* require pull request submitters to sign the https://www.jenkins.io/project/governance/#cla[contributor agreement] as long as the code is licensed under MIT, and merged by one of the contributors with the signed agreement. We still encourage people to sign the contributor agreement if they intend to submit more than a few pull requests. Signing is also a mandatory prerequisite for getting merge/push permissions to core repositories -and for joining teams like the [Jenkins Security Team](https://www.jenkins.io/security/#team). +and for joining teams like the https://www.jenkins.io/security/#team[Jenkins Security Team]. -## Continuous Integration +== Continuous Integration The Jenkins project has a Continuous Integration server... powered by Jenkins, of course. -It is located at [ci.jenkins.io](https://ci.jenkins.io/). +It is located at https://ci.jenkins.io/[ci.jenkins.io]. -The Jenkins project uses [Jenkins Pipeline](https://www.jenkins.io/doc/book/pipeline/) to run builds. -The code for the core build flow is stored in the [Jenkinsfile](./Jenkinsfile) in the repository root. +The Jenkins project uses https://www.jenkins.io/doc/book/pipeline/[Jenkins Pipeline] to run builds. +The code for the core build flow is stored in the link:./Jenkinsfile[Jenkinsfile] in the repository root. If you want to update that build flow (e.g. "add more checks"), just submit a pull request. -# Links +== Links -- [Jenkins Contribution Landing Page](https://www.jenkins.io/participate/) -- [Jenkins Chat Channels](https://www.jenkins.io/chat/) -- [Beginners Guide To Contributing](https://www.jenkins.io/participate/) -- [List of newbie-friendly issues in the core]() +* https://www.jenkins.io/participate/[Jenkins Contribution Landing Page] +* https://www.jenkins.io/chat/[Jenkins Chat Channels] +* https://www.jenkins.io/participate/[Beginners Guide To Contributing] +* https://issues.jenkins.io/issues/?jql=project%20%3D%20JENKINS%20AND%20status%20in%20(Open%2C%20%22In%20Progress%22%2C%20Reopened)%20AND%20component%20%3D%20core%20AND%20labels%20in%20(newbie-friendly)[List of newbie-friendly issues in the core] diff --git a/README.adoc b/README.adoc new file mode 100644 index 000000000000..58ca4a343143 --- /dev/null +++ b/README.adoc @@ -0,0 +1,78 @@ ++++ + + + + + + ++++ + +== About + +https://www.jenkins.io/changelog[image:https://img.shields.io/endpoint?url=https%3A%2F%2Fwww.jenkins.io%2Fchangelog%2Fbadge.json[Jenkins Regular Release]] +https://www.jenkins.io/changelog-stable[image:https://img.shields.io/endpoint?url=https%3A%2F%2Fwww.jenkins.io%2Fchangelog-stable%2Fbadge.json[Jenkins LTS Release]] +https://hub.docker.com/r/jenkins/jenkins/[image:https://img.shields.io/docker/pulls/jenkins/jenkins.svg[Docker Pulls]] +https://bestpractices.coreinfrastructure.org/projects/3538[image:https://bestpractices.coreinfrastructure.org/projects/3538/badge[CII Best Practices]] + +In a nutshell, Jenkins is the leading open-source automation server. +Built with Java, it provides over 1,800 https://plugins.jenkins.io/[plugins] to support automating virtually anything, +so that humans can spend their time doing things machines cannot. + +== What to Use Jenkins for and When to Use It + +Use Jenkins to automate your development workflow, so you can focus on work that matters most. Jenkins is commonly used for: + +* Building projects +* Running tests to detect bugs and other issues as soon as they are +introduced +* Static code analysis +* Deployment + +Execute repetitive tasks, save time, and optimize your development process with Jenkins. + +== Downloads + +The Jenkins project provides official distributions as WAR files, Docker images, native packages and installers for platforms including several Linux distributions and Windows. +See the https://www.jenkins.io/download[Downloads] page for references. + +For all distributions Jenkins offers two release lines: + +* https://www.jenkins.io/download/weekly/[Weekly] - + Frequent releases which include all new features, improvements, and bug fixes. +* https://www.jenkins.io/download/lts/[Long-Term Support (LTS)] - + Older release line which gets periodically updated via bug fix backports. + +Latest releases: +https://www.jenkins.io/changelog[image:https://img.shields.io/endpoint?url=https%3A%2F%2Fwww.jenkins.io%2Fchangelog%2Fbadge.json[Jenkins Regular Release]] +https://www.jenkins.io/changelog-stable[image:https://img.shields.io/endpoint?url=https%3A%2F%2Fwww.jenkins.io%2Fchangelog-stable%2Fbadge.json[Jenkins LTS Release]] + +== Source + +Our latest and greatest source of Jenkins can be found on https://github.com/jenkinsci/jenkins[GitHub]. Fork us! + +== Contributing to Jenkins + +Follow the link:CONTRIBUTING.md[contributing guidelines] if you want to propose a change in the Jenkins core. +For more information about participating in the community and contributing to the Jenkins project, +see https://www.jenkins.io/participate/[this page]. + +Documentation for Jenkins core maintainers is in the link:docs/MAINTAINERS.adoc[maintainers guidelines]. + +== News and Website + +All information about Jenkins can be found on our https://www.jenkins.io/[website]. +Follow us on https://twitter.com/jenkinsci[Twitter] or https://www.linkedin.com/company/jenkins-project/[LinkedIn]. + +== Governance + +See the https://www.jenkins.io/project/governance/[Jenkins Governance Document] for information about the project's open governance, our philosophy and values, and development practices. +Jenkins Code of Conduct can be found https://www.jenkins.io/project/conduct/[here]. + +== Adopters + +Jenkins is used by millions of users and thousands of companies. +See https://www.jenkins.io/project/adopters/[adopters] for the list of Jenkins adopters and their success stories. + +== License + +Jenkins is *licensed* under the *https://github.com/jenkinsci/jenkins/blob/master/LICENSE.txt[MIT License]*. diff --git a/README.md b/README.md deleted file mode 100644 index 529c8234c458..000000000000 --- a/README.md +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - -# About - -[![Jenkins Regular Release](https://img.shields.io/endpoint?url=https%3A%2F%2Fwww.jenkins.io%2Fchangelog%2Fbadge.json)](https://www.jenkins.io/changelog) -[![Jenkins LTS Release](https://img.shields.io/endpoint?url=https%3A%2F%2Fwww.jenkins.io%2Fchangelog-stable%2Fbadge.json)](https://www.jenkins.io/changelog-stable) -[![Docker Pulls](https://img.shields.io/docker/pulls/jenkins/jenkins.svg)](https://hub.docker.com/r/jenkins/jenkins/) -[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/3538/badge)](https://bestpractices.coreinfrastructure.org/projects/3538) - -In a nutshell, Jenkins is the leading open-source automation server. -Built with Java, it provides over 1,800 [plugins](https://plugins.jenkins.io/) to support automating virtually anything, -so that humans can spend their time doing things machines cannot. - -# What to Use Jenkins for and When to Use It - -Use Jenkins to automate your development workflow, so you can focus on work that matters most. Jenkins is commonly used for: - -- Building projects -- Running tests to detect bugs and other issues as soon as they are introduced -- Static code analysis -- Deployment - -Execute repetitive tasks, save time, and optimize your development process with Jenkins. - -# Downloads - -The Jenkins project provides official distributions as WAR files, Docker images, native packages and installers for platforms including several Linux distributions and Windows. -See the [Downloads](https://www.jenkins.io/download) page for references. - -For all distributions Jenkins offers two release lines: - -- [Weekly](https://www.jenkins.io/download/weekly/) - - Frequent releases which include all new features, improvements, and bug fixes. -- [Long-Term Support (LTS)](https://www.jenkins.io/download/lts/) - - Older release line which gets periodically updated via bug fix backports. - -Latest releases: -[![Jenkins Regular Release](https://img.shields.io/endpoint?url=https%3A%2F%2Fwww.jenkins.io%2Fchangelog%2Fbadge.json)](https://www.jenkins.io/changelog) -[![Jenkins LTS Release](https://img.shields.io/endpoint?url=https%3A%2F%2Fwww.jenkins.io%2Fchangelog-stable%2Fbadge.json)](https://www.jenkins.io/changelog-stable) - -# Source - -Our latest and greatest source of Jenkins can be found on [GitHub](https://github.com/jenkinsci/jenkins). Fork us! - -# Contributing to Jenkins - -Follow the [contributing guidelines](CONTRIBUTING.md) if you want to propose a change in the Jenkins core. -For more information about participating in the community and contributing to the Jenkins project, -see [this page](https://www.jenkins.io/participate/). - -Documentation for Jenkins core maintainers is in the [maintainers guidelines](docs/MAINTAINERS.adoc). - -# News and Website - -All information about Jenkins can be found on our [website](https://www.jenkins.io/). -Follow us on [Twitter](https://twitter.com/jenkinsci) or [LinkedIn](https://www.linkedin.com/company/jenkins-project/). - -# Governance - -See the [Jenkins Governance Document](https://www.jenkins.io/project/governance/) for information about the project's open governance, our philosophy and values, and development practices. -Jenkins Code of Conduct can be found [here](https://www.jenkins.io/project/conduct/). - -# Adopters - -Jenkins is used by millions of users and thousands of companies. -See [adopters](https://www.jenkins.io/project/adopters/) for the list of Jenkins adopters and their success stories. - -# License - -Jenkins is **licensed** under the **[MIT License](https://github.com/jenkinsci/jenkins/blob/master/LICENSE.txt)**.