APNSwift follows a standard open source release process
The primary objective of managing Issues and Pull Requests (PRs) is to enable easy reference to them in the future and to ensure a clear record of when specific issues were addressed in a release.
-
Creating GitHub Issues and Linking PRs: Every significant task should have an associated GitHub issue, and when a PR resolves an issue, it should be linked using GitHub's "resolves #1234" mechanism or another clear indication of the associated issue.
-
Closing Issues and PRs: When a PR gets merged, the related issue is automatically closed, and the issue is assigned to the milestone corresponding to the release in which the change will be included.
-
Handling PRs without Associated Issues: In cases where a pull request is made directly without an associated issue, it should be linked to the relevant milestone for the release. However, it's essential not to assign both an issue and a pull request related to the same task to the same milestone, as this could lead to confusion regarding duplicated issue resolutions.
When preparing for a new release, APNSWift will follow these steps. Let's use version 1.2.3
as an example:
-
Check all outstanding PRs, and if any can be merged for the current release (
1.2.3
), consider doing so. -
Ensure that all recently closed PRs or issues are appropriately assigned to the milestone (
1.2.3
), if not already done. -
Ensure all documentation is up to date
-
Create a new milestone for the next release, e.g.,
1.2.4
or1.3.0
, and move any remaining issues to it. This way, these tasks are carried over to the "next" release and can be easily located and prioritized. -
Close the current milestone (
1.2.3
). -
Finally, go to the GitHub releases page and draft a new release with the details of the release version (
1.2.3
in this case) and any relevant release notes or changes. Be sure to include and create the new tag1.2.3
.