We use Milestones for release planning.
A milestone represents a release. Issues and/or PRs should be associated with proper Milestones where the changes are planned to be delivered.
All issues/PRs associated with a milestone must be resolved before the release, which means unresolved issues/PRs in a milestone are blockers for the release. Release managers should consider how to address blockers. Some may be resolved by developers, and others may be postponed to future releases.
Once the release is done, the Milestone should be closed then a new Milestone for the next release should be created.
You can see the list of current active (opened) Milestones here. https://github.com/apache/lucene/milestones
See GitHub documentation for more details.
The Milestone associated with an Issue/PR should be the same version in CHANGES. For instance, if an Issue/PR appears in the CHANGES section 10.0.0, it should be marked as Milestone 10.0.0.
There are a few pre-defined label families to organize/search issues.
type (color code #ffbb00) : issue typetype:bug is attached to bug reportstype:enhancement is attached to enhancement requests or suggestionstype:test is attached to test improvements or failure reportstype:task is attached to general taskstype:documentation is attached to tasks relate to documentationaffects-version (color code #f19072) : the versions in which a bug was foundtype:bugaffects-version:9.1.0module (color code #a0d8ef) : Lucene modulemodule:core/index, module:analysistool (color code #a0d8ef) : toolingtool:build, tool:release-wizardA type label is automatically attached to an issue by the issue template that the reporter selected. Other labels such as affects-version may be manually added by committers.
If necessary, uncategorized labels may also be used.
good first issuediscussduplicatewebsiteCommitters can add/edit labels manually or programmatically using Labels API.
Each issue template (web form) is associated with one type label. You should add an issue template when adding a new type label and vice versa.
Bug Report is associated with type:bug labelEnhancement Request/Suggestion is associated with type:enhancement labelTest Improvement / Failure Report is associated with type:test labelTask is associated with type:task labelDocumentation is associated with type:documentation labelIssue templates are written in YAML format and committed in .github/ISSUE_TEMPLATE. See GitHub documentation for details.
It's up to you.
From a broader viewpoint, there are no differences between issues and pull requests. You can associate both issues and PRs with Milestones/Labels and mention both issues and PRs in the CHANGES in the very same manner. Sometimes a pull request would be sufficient, and sometimes you may want to open an issue and PRs on it, depending on the context.