Maven GitHub Conventions

This document describes how Maven developers and contributors should use GitHub Issues and Pull Request.

GitHub Issues, Pull Request - Recommendations.

A GitHub Issue should be created to report a bug or request a new feature.

A GitHub Issue can be created to discuss of change before starting work on it. The developer mailing list can also be used to discuss proposed work.

When you provide a Pull Request - creating separate issue is not necessary as you can describe your proposition in Pull Request.

When fixing the issue by providing Pull Request, reference the issue in the commit message by #issue-number.

A GitHub Issue and Pull Request should have a label with the type, like bug, enhancement and so on. Pull Request without labels will be not categorized in Release Notes.

Closed GitHub Issue and Pull Request should have milestone in which was resolved.

Pull Request title is used to generate Release Notes - should be similar or the same as merged commit.

We should always provide changes by Pull Request. Direct commits will be not visible in Release Notes.

Release Notes

Only Pull Requests with status Merged will be visible in Release Notes.

We use GitHub Release Notes.

We use the Release Drafter Action to prepare Release Notes.

Default label configurations are in the maven-gh-actions-shared project.

How To Use Issue and Pull Request Details?

Assignee

Committers can assign a GitHub Issue or Pull Request to a specific committer if that person seems to be well-placed to address it.

Reviewers

We should invite persons to review for every change, even it is simply one, review can increase code quality.

Priority

For priority, we can use labels:

  • priority:low
  • priority:medium
  • priority:high
  • priority:critical

Type

For GitHub Issue and Pull Requests we use labels, like:

  • bug
  • dependencies
  • documentation
  • enhancement
  • maintenance

Component/s

To assign an issue/PR to component we can use labels, like: component:name

Fix Version/s

We use Milestones to assign to fix versions.

Milestones are public available so we can use it during voting.

Further Links