|
| 1 | +# Release Process |
| 2 | + |
| 3 | +> Documentation guide based on the releases of `1.0.0-beta.5` on March 17, 2023. |
| 4 | +> |
| 5 | +> -kenjis |
| 6 | +
|
| 7 | +## Changelog |
| 8 | + |
| 9 | +When generating the changelog each Pull Request to be included must have one of |
| 10 | +the following [labels](https://github.com/codeigniter4/shield/labels): |
| 11 | +- **bug** ... PRs that fix bugs |
| 12 | +- **enhancement** ... PRs to improve existing functionalities |
| 13 | +- **new feature** ... PRs for new features |
| 14 | +- **refactor** ... PRs to refactor |
| 15 | +- **lang** ... PRs for new/update language |
| 16 | + |
| 17 | +PRs with breaking changes must have the following additional label: |
| 18 | +- **breaking change** ... PRs that may break existing functionalities |
| 19 | + |
| 20 | +### Check Generated Changelog |
| 21 | + |
| 22 | +This process is checking only. Do not create a release. |
| 23 | + |
| 24 | +To auto-generate, navigate to the |
| 25 | +[Releases](https://github.com/codeigniter4/shield/releases) page, |
| 26 | +click the "Draft a new release" button. |
| 27 | + |
| 28 | +* Tag: "v1.0.0-beta.5" (Create new tag) |
| 29 | +* Target: develop |
| 30 | + |
| 31 | +Click the "Generate release notes" button. |
| 32 | + |
| 33 | +Check the resulting content. If there are items in the *Others* section which |
| 34 | +should be included in the changelog, add a label to the PR and regenerate |
| 35 | +the changelog. |
| 36 | + |
| 37 | +## Preparation |
| 38 | + |
| 39 | +* Clone **codeigniter4/shield** and resolve any necessary PRs |
| 40 | + ```console |
| 41 | + git clone [email protected]:codeigniter4/shield.git |
| 42 | + ``` |
| 43 | +* Merge any Security Advisory PRs in private forks |
| 44 | + |
| 45 | +## Process |
| 46 | + |
| 47 | +> **Note** Most changes that need noting in the User Guide and docs should have |
| 48 | +> been included with their PR, so this process assumes you will not be |
| 49 | +> generating much new content. |
| 50 | + |
| 51 | +* Create a new branch `release-1.x.x` |
| 52 | +* Update **src/Auth.php** with the new version number: |
| 53 | + `const SHIELD_VERSION = '1.x.x';` |
| 54 | +* Commit the changes with "Prep for 1.x.x release" and push to origin |
| 55 | +* Create a new PR from `release-1.x.x` to `develop`: |
| 56 | + * Title: "Prep for 1.x.x release" |
| 57 | + * Description: "Updates version references for `1.x.x`." (plus checklist) |
| 58 | +* Let all tests run, then review and merge the PR |
| 59 | +* Create a new PR from `develop` to `master`: |
| 60 | + * Title: "1.x.x Ready code" |
| 61 | + * Description: blank |
| 62 | +* Merge the PR |
| 63 | +* Create a new Release: |
| 64 | + * Version: "v1.x.x" |
| 65 | + * Target: master |
| 66 | + * Title: "v1.x.x" |
| 67 | + * Click the "Generate release notes" button |
| 68 | + * Remove "### Others (Only for checking. Remove this category)" section |
| 69 | + * Check "Create a discussion for this release" |
| 70 | + * Click the "Publish release" button |
| 71 | +* Watch for the "docs" action and verify that the user guide updated: |
| 72 | + * [docs](https://github.com/codeigniter4/shield/actions/workflows/docs.yml) |
| 73 | +* Fast-forward `develop` branch to catch the merge commit from `master` |
| 74 | + (note: pushing to develop is restricted to administrators): |
| 75 | + ```console |
| 76 | + git fetch origin |
| 77 | + git checkout develop |
| 78 | + git merge origin/develop |
| 79 | + git merge origin/master |
| 80 | + git push origin HEAD # Only administrators can push to the protected branch. |
| 81 | + ``` |
| 82 | +* Publish any Security Advisories that were resolved from private forks |
| 83 | + (note: publishing is restricted to administrators) |
| 84 | +* Announce the release on the forums and Slack channel |
| 85 | + (note: this forum is restricted to administrators): |
| 86 | + * Make a new topic in the "News & Discussion" forums: |
| 87 | + https://forum.codeigniter.com/forum-2.html |
| 88 | + * The content is somewhat organic, but should include any major features and |
| 89 | + changes as well as a link to the User Guide's changelog |
0 commit comments