Skip to content

Commit

Permalink
Merge pull request jenkinsci#3624 from jsoref/markdown
Browse files Browse the repository at this point in the history
markdown
  • Loading branch information
oleg-nenashev authored Jan 27, 2019
2 parents aa43ab0 + 2f168f5 commit b8d5706
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 21 deletions.
56 changes: 36 additions & 20 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,40 +2,40 @@

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 information on contributing to the Jenkins project overall, check out https://jenkins.io/participate/.
:exclamation: There's a lot more to the Jenkins project than just code. For information on contributing to the Jenkins project overall, check out [Participate].

## Getting started

1. Fork the repository on GitHub
2. Clone the forked repository to your machine
3. Install the development tools. In order to develop Jenkins, you need the following tools:
* Java Development Kit (JDK) 8.
- In Jenkins project we usually use [OpenJDK](http://openjdk.java.net/),
- In Jenkins project we usually use [OpenJDK],
but you can use other JDKs as well.
- Java 9 is **not supported** in Jenkins.
* Maven 3.5.3 or above. You can download it [here](https://maven.apache.org/download.cgi)
* Any IDE which supports importing Maven projects
4. Setup your development environment as described in [Preparing for Plugin Development](https://jenkins.io/doc/developer/tutorial/prepare/)
- Java 9+ is **not supported** in Jenkins.
* Maven 3.5.3 or above. You can [download maven].
* Any IDE which supports importing Maven projects.
4. Setup your development environment as described in [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
using [this query](https://issues.jenkins-ci.org/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)).
using this query for [newbie friendly issues].

## Building and Debugging

The build flow for Jenkins core is built around Maven.
Building and debugging process is described [here](https://jenkins.io/doc/developer/building/).
There is a description of the [building and debugging process].

If you want simply to have the `jenkins.war` file as fast as possible without tests, run:

mvn clean package -pl war -am -DskipTests -Dfindbugs.skip

The WAR file will be created in `war/target/jenkins.war`.
After that you can start Jenkins using Java CLI ([guide](https://wiki.jenkins.io/display/JENKINS/Starting+and+Accessing+Jenkins)).
After that you can start Jenkins using Java CLI ([guide]).
If you want to debug this WAR file without using Maven plugins,
You can just start the executable with [Remote Debug Flags](https://stackoverflow.com/questions/975271/remote-debugging-a-java-application)
You can just start the executable with [Remote Debug Flags]
and then attach IDE Debugger to it.

## Testing changes
Expand All @@ -53,7 +53,7 @@ There are 3 profiles for 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 [Acceptance Test Harness (ATH)] repository.
If you propose complex UI changes, you should create new ATH tests for them.

## Proposing Changes
Expand All @@ -69,8 +69,8 @@ It is a good practice is to create branches instead of pushing to master.
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.
The backporting process is described [here](https://jenkins.io/download/lts/).
4. Fill in the Pull Request description according to the [proposed template](.github/PULL_REQUEST_TEMPLATE.md).
Read more about the [backporting process]
4. Fill in the Pull Request description according to the [proposed template].
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/code-reviewers` to CC.
Expand All @@ -83,25 +83,25 @@ There is no additional action required from pull request authors at this point.

## Copyright

Jenkins core is licensed under [MIT license](./LICENSE.txt), with a few exceptions in bundled classes.
Jenkins core is licensed under [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 be also rejected if they are not ultimately necessary.

We **Do NOT** require pull request submitters to sign the [contributor agreement](https://wiki.jenkins.io/display/JENKINS/Copyright+on+source+code)
We **Do NOT** require pull request submitters to sign the [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 [Jenkins Security Team](https://jenkins.io/security/#team).
and for joining teams like [Jenkins Security Team].

## 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 [ci.jenkins.io].

The Jenkins project uses [Jenkins Pipeline](https://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 [Jenkins Pipeline] to run builds.
The code for the core build flow is stored in the [Jenkinsfile] in the repository root.
If you want to update that build flow (e.g. "add more checks"),
just submit a pull request.

Expand All @@ -112,4 +112,20 @@ just submit a pull request.
* [Beginners Guide To Contributing](https://wiki.jenkins.io/display/JENKINS/Beginners+Guide+to+Contributing)
* [List of newbie-friendly issues in the core](https://issues.jenkins-ci.org/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))


[download maven]: https://maven.apache.org/download.cgi
[Preparing for Plugin Development]: https://jenkins.io/doc/developer/tutorial/prepare/
[newbie friendly issues]: https://issues.jenkins-ci.org/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)
[OpenJDK]: http://openjdk.java.net/
[Participate]: https://jenkins.io/participate/
[building and debugging process]: https://jenkins.io/doc/developer/building/
[guide]: https://wiki.jenkins.io/display/JENKINS/Starting+and+Accessing+Jenkins
[Remote Debug Flags]: https://stackoverflow.com/questions/975271/remote-debugging-a-java-application
[Acceptance Test Harness (ATH)]: https://github.com/jenkinsci/acceptance-test-harness
[backporting process]: https://jenkins.io/download/lts/
[proposed template]: .github/PULL_REQUEST_TEMPLATE.md
[MIT license]: ./LICENSE.txt
[contributor agreement]: https://wiki.jenkins.io/display/JENKINS/Copyright+on+source+code
[Jenkins Security Team]: https://jenkins.io/security/#team
[ci.jenkins.io]: https://ci.jenkins.io/
[Jenkins Pipeline]: https://jenkins.io/doc/book/pipeline/
[Jenkinsfile]: ./Jenkinsfile
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Non-source downloads such as WAR files and several Linux packages can be found o
Our latest and greatest source of Jenkins can be found on [GitHub]. Fork us!

# Contributing to Jenkins
Follow [contributing](CONTRIBUTING.md) file.
Follow the [contributing](CONTRIBUTING.md) file.

# News and Website
All information about Jenkins can be found on our [website]. Follow us on Twitter [@jenkinsci].
Expand Down

0 comments on commit b8d5706

Please sign in to comment.