Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Convert README to adoc, add CHANGELOG & Priorities #477

Merged
merged 3 commits into from
Nov 18, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
486 changes: 486 additions & 0 deletions CHANGELOG.adoc

Large diffs are not rendered by default.

65 changes: 65 additions & 0 deletions CONTRIBUTING.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
[[contributing-to-the-git-client-plugin]]
= Contributing to the Git Client Plugin

The git client plugin implements the https://plugins.jenkins.io/scm-api[Jenkins SCM API].
Refer to the SCM API documentation for https://github.com/jenkinsci/scm-api-plugin/blob/master/docs/implementation.adoc#naming-your-plugin[plugin naming conventions]
and for the https://github.com/jenkinsci/scm-api-plugin/blob/master/CONTRIBUTING.md#add-to-core-or-create-extension-plugin[preferred locations of new functionality].

Plugin source code is hosted on https://github.com/jenkinsci/git-client-plugin[GitHub].
New feature proposals and bug fix proposals should be submitted as https://help.github.com/articles/creating-a-pull-request[GitHub pull requests].
Your pull request will be evaluated by the https://ci.jenkins.io/job/Plugins/job/git-client-plugin/[Jenkins job].

Before submitting your change, please assure that you've added tests which verify your change.
There have been many developers involved in the git client plugin and there are many, many users who depend on the git client plugin.
Tests help us assure that we're delivering a reliable plugin, and that we've communicated our intent to other developers as executable descriptions of plugin behavior.

Code coverage reporting is available as a maven target.
Please improve code coverage with tests when you submit.

* `mvn -P enable-jacoco clean install jacoco:report` to report code coverage

Please don't introduce new spotbugs output.

* `mvn spotbugs:check` to analyze project using https://spotbugs.github.io/[Spotbugs].
* `mvn spotbugs:gui` to review Spotbugs report using GUI

Code formatting in the git client plugin varies between files.
Try to maintain reasonable consistency with the existing files where feasible.
Please don't perform wholesale reformatting of a file without discussing with the current maintainers.
New code should follow the https://github.com/jenkinsci/scm-api-plugin/blob/master/CONTRIBUTING.md#code-style-guidelines[SCM API code style guidelines].

[[pull-request-review]]
== Reviewing Pull Requests

Maintainers triage pull requests by reviewing them and by assigning labels.
Release drafter uses the labels to automate link:https://github.com/jenkinsci/git-client-plugin/releases[release notes].
link:Priorities.adoc#git-client-plugin-development-priorities[Prioritization] uses the labels to group relevant pull requests.

Others are encouraged to review pull requests, test pull request builds, and report their results in the pull request.
Refer to the link:Priorities.adoc#priorities[maintainer's priority list] for topics the plugin maintainers are considering.

=== Testing a Pull Request Build

Pull request builds merge the most recent changes from their target branch with the change proposed in the pull request.
They can be downloaded from ci.jenkins.io and used to test the pull request.
Steps to test a pull request build are:

. *Find the pull request on link:https://github.com/jenkinsci/git-client-plugin/pulls[GitHub]* - for example, link:https://github.com/jenkinsci/git-client-plugin/pull/467[pull request 467]
. *Find the link:https://ci.jenkins.io/job/Plugins/job/git-client-plugin/view/change-requests/[ci.jenkins.io] artifacts for that pull request* from the link to the link:https://ci.jenkins.io/job/Plugins/job/git-client-plugin/job/PR-676/lastSuccessfulBuild/[artifacts in the Jenkins job] in "*Show all checks*"
. *Download the `hpi` file* (like `git-client-3.0.1-rc3444.b3d767e3d46a.hpi`) to your computer
. *Upload the `hpi` file* to Jenkins from the Jenkins Plugin Manager
. *Restart your Jenkins* and you're ready to test

[[bug-triage]]
== Reviewing Bug Reports

Git client plugin bug reports are assigned to one of the maintainers by default.
link:https://issues.jenkins-ci.org/issues/?jql=project%20%3D%20JENKINS%20AND%20status%20in%20(Open)%20AND%20component%20%3D%20git-client-plugin%20and%20assignee%20in%20(rsandell%2Cmarkewaite%2Cfcojfernandez)[Open bug reports] assigned to a maintainer are assumed to have not been reviewed.
When a maintainer completes review of an issue, they include a comment on the bug report and set the 'Assignee' to 'Unassigned'.

Others are welcome to review bug reports, comment on the results of the review, and set the 'Assignee' to 'Unassigned'.
Typical bug review tasks include:

* Review summary and description
* Attempt to duplicate the issue
* Add a comment with results of the attempt to duplicate the issue
40 changes: 0 additions & 40 deletions CONTRIBUTING.md

This file was deleted.

31 changes: 31 additions & 0 deletions Priorities.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
[[git-client-plugin-development-priorities]]
= Git Client Plugin Development Priorities

[[introduction]]
== Introduction

The maintainers of this plugin use this file to list the work areas which are receiving more attention from them.
Higher priority items will generally receive more attention from maintainers than lower priority items.
Others are encouraged to help with the plugin in areas of their own interest.
When others provide additional help on an item, it tends to raise the priority of the item.

== Priorities

. link:CONTRIBUTING.adoc#bug-triage[Bug report triage]
. link:https://github.com/jenkinsci/git-client-plugin/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aunmerged+label%3AShortTerm[Short term improvements]
. link:https://github.com/jenkinsci/git-client-plugin/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aunmerged+label%3ACaching[Caching and performance improvements]
. link:https://github.com/jenkinsci/git-client-plugin/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aunmerged+label%3AnotifyCommit[notifyCommit and webhook improvements]
. link:https://github.com/jenkinsci/git-client-plugin/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aunmerged+label%3AChangelog+[Changelog improvements]
. link:https://github.com/jenkinsci/git-client-plugin/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aunmerged+label%3ASubmodules[Submodule improvements]
. link:https://github.com/jenkinsci/git-client-plugin/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aunmerged+label%3ABuildData[BuildData memory bloat]

[[bug-reports]]
== Bug Reports

Report issues and enhancements in the https://issues.jenkins-ci.org[Jenkins issue tracker].
link:CONTRIBUTING.adoc#bug-triage[Review bug reports] and provide comments to submitters.

[[contributing-to-the-plugin]]
== Contributing to the Plugin

Refer to link:CONTRIBUTING.adoc#contributing-to-the-git-client-plugin[contributing to the plugin] for contribution guidelines.
68 changes: 68 additions & 0 deletions README.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
[[git-client-plugin]]
= Git Client Plugin

[[introduction]]
== Introduction

image:https://git-scm.com/images/logos/downloads/Git-Logo-2Color.png[Git logo,width=303,role=center,float=right]

The git client plugin provides git application programming interfaces (APIs) for Jenkins plugins.
It can fetch, checkout, branch, list, merge, and tag repositories.
Refer to the https://javadoc.jenkins-ci.org/plugin/git-client/[API documentation] for specific API details.

The https://javadoc.jenkins-ci.org/plugin/git-client/org/jenkinsci/plugins/gitclient/GitClient.html[GitClient interface] provides the primary entry points for git access.
It supports username / password credentials and private key credentials using the https://plugins.jenkins.io/credentials[Jenkins credentials plugin].

[[changelog]]
== Changelog in https://github.com/jenkinsci/git-plugin/releases[GitHub Releases]

Release notes are recorded in https://github.com/jenkinsci/git-client-plugin/releases[GitHub] beginning with git client plugin 2.8.1.
Prior release notes are recorded in the git client plugin repository link:CHANGELOG.adoc#changelog-moved-to-github-releases[change log].

[[implementations]]
== Implementations

The git client plugin default implementation requires that https://git-scm.com/downloads[command line git] is installed on the master and on every agent that will use git.
Command line git implementations working with large files should also install https://git-lfs.github.com/[git LFS].
The command line git implementation is the canonical implementation of the git interfaces provided by the git client plugin.

Command line git is *enabled by default* when the git client plugin is installed.

[[jgit]]
=== JGit

The git client plugin also includes two optional implementations that use https://www.eclipse.org/jgit/[Eclipse JGit].
Eclipse JGit is a pure Java implementation of git.
The JGit implementation in the git client plugin provides most of the functionality of the command line git implementation.
When the JGit implementation is incomplete, the gap is noted in console logs.

JGit is *disabled by default* when the git client plugin is installed.

[[enabling-jgit]]
=== Enabling JGit

Click the "*Add Git*" button in the "*Global Tool Configuration*" section under "*Manage Jenkins*" to add JGit or JGit with Apache HTTP Client as a git implementation.

image::images/enable-jgit.png[Enable JGit or JGit with Apache HTTP Client]

=== JGit with Apache HTTP Client

The original JGit implementation inside the git client plugin had issues with active directory authentication.
A workaround was implemented to provide JGit but use Apache HTTP client for authentication.
The issue in JGit has now been resolved and delivered in git client plugin releases.
JGit with Apache HTTP Client continues to delivered to assure compatibility.

== Windows Credentials Manager

Git for Windows is able to integrate with the Windows Credentials Manager for secure storage of credentials.
Windows Credentials Manager works very well for interactive users on the Windows desktop.
Windows Credentials Manager does not work as well for batch processing in the git client plugin.
It is best to disable Windows Credentials Manager when installing Git on Jenkins agents running Windows.

== Bug Reports

Report issues and enhancements with the https://issues.jenkins-ci.org[Jenkins issue tracker].

== Contributing to the Plugin

Refer to link:CONTRIBUTING.adoc#contributing-to-the-git-client-plugin[contributing to the plugin] for contribution guidelines.
66 changes: 0 additions & 66 deletions README.md

This file was deleted.