From 052d270d53012d098dd039d186f8f3c27a9c9701 Mon Sep 17 00:00:00 2001 From: Mike Alhayek Date: Mon, 25 Nov 2024 13:30:08 -0800 Subject: [PATCH] Update GitHub release issue templates --- .github/ISSUE_TEMPLATE/patch_release.md | 71 +++++++++++++++ .github/ISSUE_TEMPLATE/release.md | 109 +++++++++++------------- 2 files changed, 120 insertions(+), 60 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/patch_release.md diff --git a/.github/ISSUE_TEMPLATE/patch_release.md b/.github/ISSUE_TEMPLATE/patch_release.md new file mode 100644 index 00000000000..442ff328af2 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/patch_release.md @@ -0,0 +1,71 @@ +--- +name: Publish a patch release +about: Publish a new Orchard Core patch release +title: 'Release v' +labels: release +assignees: '' + +--- + +# Release Patch Preparation Guide + +## Step 1: Backporting Pull Requests + +1. **Identify PRs**: Review any pull requests (PRs) that need to be backported to the release branch. +2. **Backporting Process**: For PRs merged into the main branch that need to be applied to `release/2.1`, comment on the merged PR with `/backport to release/2.1`. This action will trigger GitHub to create a new PR with the same changes for the `release/2.1` branch. +3. **Merge PRs**: Once all necessary PRs are created, merge them into the `release/2.1` branch. + +## Step 2: Administration Tasks + +#### Create Pull Request: + + - From the `release/2.1` branch, create a new branch for your release (e.g., `release-2.1.1`). + - Update version references in the documentation. Refer to [this PR](https://github.com/OrchardCMS/OrchardCore/pull/17065/files) for an example. + - **Version Updates Checklist**: + - [ ] **Update `OrchardCore.Commons.props`**: Set `` to prevent preview build numbers. Ensure `VersionPrefix` matches the released version. + - [ ] **Update Module Versions**: Modify `src/OrchardCore/OrchardCore.Abstractions/Modules/Manifest/ManifestConstants.cs` as needed. + - [ ] **Release Notes**: Finalize release notes in the documentation, including: + - Highlights and goals of the release. + - Prerequisites for running the new version. + - Upgrade steps and any breaking changes. + - [ ] **Update Documentation Navigation**: Add the release notes page to `mkdocs.yml` navigation and remove it from `not_in_nav`. + - [ ] **Version Mentions**: Update all references to the new version throughout the documentation, including: + - [Status in the root README](https://docs.orchardcore.net/en/latest/#status) + - CLI templates and commands. + - Relevant guides, such as the [Creating a new decoupled CMS Website](https://docs.orchardcore.net/en/latest/guides/decoupled-cms/) guide. + +## Step 3: Create New Release + +1. Navigate to the [GitHub Releases page](https://github.com/OrchardCMS/OrchardCore/releases/new). +2. In the "**Choose a tag**" menu, enter the new version number including `v` (e.g., `v2.1.1`) and select "**+ Create tag: v... on publish**." +3. Change the target branch from `main` to your target branch (e.g., `release/2.1`). +4. Enter the version number in the Title field (e.g., `2.1.1`). +5. Click **Generate release notes** to auto-generate release notes. +6. Ensure the "Set as the latest release" checkbox is checked, then click **Publish release**. + +## Step 4: Align Branches + +1. **Merge to Main**: After releasing the new version, merge the release branch into the main branch to ensure main contains all administration changes. + - Create a pull request from the release branch into main. + - **Important**: DO NOT resolve conflicts using GitHub's interface; use other tools (e.g., Fork) to manage conflicts and avoid auto-merging main into the release branch. Resolving conflicts using GitHub will automatically merge main into the release branch which MUST be avoided. + - Once conflicts are resolved, merge the PR into main. + +## Step 5: Housekeeping + +- [ ] Assign the milestone of the release version to the issue. +- [ ] Close any remaining issues for this version or assign them to the next release. + +## Step 6: Validation + +1. **Check Functionality**: Ensure that the [`OrchardCore.Samples`](https://github.com/OrchardCMS/OrchardCore.Samples) works as expected. +2. **Test Guides**: Test the following guides with NuGet packages from the Cloudsmith feed: + - [Creating a modular ASP.NET Core application](https://docs.orchardcore.net/en/latest/guides/create-modular-application-mvc/) + - [Creating an Orchard Core CMS website](https://docs.orchardcore.net/en/latest/guides/create-cms-application/) + - [Creating a new decoupled CMS Website](https://docs.orchardcore.net/en/latest/guides/decoupled-cms/) + +## Step 7: Publicize the Release + +1. Announce the new release: + - [ ] Tweet using the Orchard-Core-X-Twitter project. + - [ ] Post in the [Orchard Core LinkedIn group](https://www.linkedin.com/groups/13605669/). + - [ ] Share on the [Orchard Core Facebook page](https://www.facebook.com/OrchardCore/). diff --git a/.github/ISSUE_TEMPLATE/release.md b/.github/ISSUE_TEMPLATE/release.md index 42c91145722..844b5540776 100644 --- a/.github/ISSUE_TEMPLATE/release.md +++ b/.github/ISSUE_TEMPLATE/release.md @@ -1,86 +1,75 @@ --- -name: Publish a release +name: Publish a major or minor release about: Publish a new Orchard Core release title: 'Release v' labels: release assignees: '' --- - -### Prepare the project +# Release Major or Minor Preparation Guide -Do some housekeeping on GitHub in the [main repo](https://github.com/OrchardCMS/OrchardCore). +## Housekeeping on GitHub -- [ ] Assign the milestone of the release's version to this issue. -- [ ] Close remaining issues for the version (including merging corresponding pull requests if suitable) or assign them to the next one. -- [ ] Assign all issues that were closed for an upcoming version (including a wildcard version like "1.0.x") to this version (milestone). +- [ ] **Address Outstanding Issues**: Resolve any remaining issues for the current version. +- [ ] **Merge Relevant Pull Requests**: Merge any applicable pull requests or assign outstanding issues to the next release. -### Prepare the code and documentation +## Code and Documentation Updates -Update the source, so everything looks like on the new version. +- [ ] **Create Release Branch**: Create a new `release/` branch (e.g., `release/3.0.0`) from the `main` branch to facilitate future patch releases. +- [ ] **Check CI Workflow**: Verify that the [release_ci](https://github.com/OrchardCMS/OrchardCore/blob/main/.github/workflows/release_ci.yml) workflow is using the correct .NET version. +- [ ] **Update Documentation**: Open a new pull request for the following updates: + - **Update `OrchardCore.Commons.props`**: Set `` to prevent preview build numbers and ensure `VersionPrefix` matches the released version. + - **Update Module Versions**: Modify `src/OrchardCore/OrchardCore.Abstractions/Modules/Manifest/ManifestConstants.cs` as necessary. + - **Finalize Release Notes**: Complete the release notes in the documentation, including: + - Highlights and goals of the release. + - Prerequisites for running the new version. + - Upgrade steps and any breaking changes. + - **Update Documentation Navigation**: Add the release notes page to `mkdocs.yml` and remove it from `not_in_nav`. + - **Revise Version Mentions**: Update all references to the new version throughout the documentation, including: + - [Status in the root README](https://docs.orchardcore.net/en/latest/#status) + - CLI templates and commands. + - Relevant guides, such as [Creating a new decoupled CMS Website](https://docs.orchardcore.net/en/latest/guides/decoupled-cms/). -- [ ] Create a `release/` branch (e.g., `release/1.8.0`) from `main` or the previous release branch. This is necessary to target pull requests for the upcoming release. -- [ ] Create an issue branch out of this branch as usual. -- [ ] Check the [release_ci](https://github.com/OrchardCMS/OrchardCore/blob/main/.github/workflows/release_ci.yml) workflow is using the expected .NET version to build the Docker images. -- [ ] Update the `OrchardCore.Commons.props` file with `` such that preview build numbers are not injected in packages. Verify the `VersionPrefix` tag matches the released version. -- [ ] Update module versions in `src/OrchardCore/OrchardCore.Abstractions/Modules/Manifest/ManifestConstants.cs`. -- [ ] Create a new milestone. -- [ ] Add final updates to the release notes in the documentation. It should include the following, at least: - - Overview of the release's highlights and goals. What do you want people to remember this release for? - - Prerequisites. What framework version do you need, anything else to work with Orchard? - - Upgrade steps, any migration necessary from previous versions, and any breaking changes. -- [ ] Add the release notes documentation page to the documentation site's navigation in `mkdocs.yml` and remove it from `not_in_nav`. -- [ ] Update the documentation to mention the version in all places where the latest version is referenced, for example, but not limited to (do a search for the package version string): [Status in the root README](https://docs.orchardcore.net/en/latest/#status), CLI templates, commands, the [Creating a new decoupled CMS Website](https://docs.orchardcore.net/en/latest/guides/decoupled-cms/) guide. +## Translation Updates -### Test the release +- [ ] **Update Translations**: After finalizing code changes, update translations in the [Translations project](https://github.com/OrchardCMS/OrchardCore.Translations): + - Update .po files using [PoExtractor](https://github.com/lukaskabrt/PoExtractor) to refresh [Crowdin](https://crowdin.com/project/orchard-core). + - Publish the new version on NuGet. + - Update the `OrchardCore.Translations.All` package reference in the main repository's `./Dependencies.Packages.props` file. -Make sure everything works all right. +## Creating the New Release -- [ ] Make sure that [`OrchardCore.Samples` works](https://github.com/OrchardCMS/OrchardCore.Samples). -- [ ] Test the [guides](https://docs.orchardcore.net/en/latest/guides/) with the NuGet packages from the Cloudsmith feed (branches under `release/` are automatically published too). Test at least the following guides: - - [Creating a modular ASP.NET Core application](https://docs.orchardcore.net/en/latest/guides/create-modular-application-mvc/) - - [Creating an Orchard Core CMS website](https://docs.orchardcore.net/en/latest/guides/create-cms-application/) - - [Creating a new decoupled CMS Website](https://docs.orchardcore.net/en/latest/guides/decoupled-cms/) -- [ ] Re-certify Orchard Core for the latest major version of Red Hat Enterprise Linux if a new version has been released (e.g., v10 after v9). Refer to Orchard's [Red Hat Ecosystem Catalog profile](https://catalog.redhat.com/software/applications/detail/223797) for the previously certified version, the [Red Hat Customer Portal](https://access.redhat.com/articles/3078) for the latest version, and [our certification guide](https://docs.orchardcore.net/en/latest/topics/red-hat-ecosystem-catalog-certification/) for the certification steps. - -### Prepare and publish Orchard Core Translations - -Update everything in the [Translations project](https://github.com/OrchardCMS/OrchardCore.Translations). Only do this once all the code changes are done since localized strings can change until then. - -- [ ] Update .po files with [PoExtractor](https://github.com/lukaskabrt/PoExtractor). This will also update [Crowdin](https://crowdin.com/project/orchard-core). -- [ ] Publish the new version on NuGet. -- [ ] Update the `OrchardCore.Translations.All` package reference in the main repo's _./Dependencies.Packages.props_ file to refer to the new NuGet package. - -### Publish the release +1. Navigate to the [GitHub Releases page](https://github.com/OrchardCMS/OrchardCore/releases/new). +2. In the "**Choose a tag**" menu, enter the new version number (e.g., `v3.0.0`) and select "**+ Create tag: v... on publish**." +3. Change the target branch from `main` to your release branch (e.g., `release/3.0`). +4. Enter the version number in the Title field (e.g., `3.0.0`). +5. Click **Generate release notes** to automatically create release notes. +6. Ensure the "Set as the latest release" checkbox is checked, then click **Publish release**. -Do the harder parts of making the release public. This should come after everything above is done. +## Validation -- [ ] Tag the head of `release/` with the version. Include `v` in the name, e.g. `v1.8.0`. -- [ ] Merge `release/` to `main`. - - You'll need to create a pull request. - - If this is a main branch release (release/x.y), squash merge the PR. If this is a patch release (release/x.y.z for instance) don't resolve the conflicts in GH (as it would merge main to release/x.y.z) but in git. Then push from git. - - Restore the branch that GH deletes automatically from the merged PR. -- [ ] Create and publish a release [on GitHub](https://github.com/OrchardCMS/OrchardCore/releases/new). - - Generate release notes. - - Add a link to the release notes in the docs (something like `For details on this version see the [release notes in the documentation](link here).`). Note that the docs will only be built once the branch is merged to `main`. -- [ ] Test the [guides](https://docs.orchardcore.net/en/latest/guides/) with the packages now automatically published to NuGet. Test at least the following guides: +- [ ] **Test Samples**: Confirm that [`OrchardCore.Samples`](https://github.com/OrchardCMS/OrchardCore.Samples) functions correctly. +- [ ] **Validate Guides**: Test the following guides using the latest NuGet packages from the Cloudsmith feed: - [Creating a modular ASP.NET Core application](https://docs.orchardcore.net/en/latest/guides/create-modular-application-mvc/) - [Creating an Orchard Core CMS website](https://docs.orchardcore.net/en/latest/guides/create-cms-application/) - [Creating a new decoupled CMS Website](https://docs.orchardcore.net/en/latest/guides/decoupled-cms/) -- [ ] Update [Try Orchard Core](https://github.com/OrchardCMS/TryOrchardCore). +- [ ] **Re-certify for Red Hat**: If a new major version of Red Hat Enterprise Linux is released (e.g., v10 after v9), re-certify Orchard Core. Refer to: + - Orchard's [Red Hat Ecosystem Catalog profile](https://catalog.redhat.com/software/applications/detail/223797) for the last certified version. + - [Red Hat Customer Portal](https://access.redhat.com/articles/3078) for the latest version details. + - [Certification guide](https://docs.orchardcore.net/en/latest/topics/red-hat-ecosystem-catalog-certification/) for certification steps. -### Publicize the release +## Post-Release Tasks -Let the whole world know about our shiny new release. Savor this part! These steps will make the release public so only do them once everything else is ready. +- [ ] **Create New Milestone**: Set up a new milestone for the next release and close the previous one. +- [ ] **Prepare Documentation for Next Version**: Create a new release notes file for the next version in the `OrchardCore.Docs` project (e.g., `/releases/4.0.0.md`). Exclude it from navigation and validation under `not_in_nav` in `mkdocs.yml`. +- [ ] **Update Commons.props for Next Release**: Modify `OrchardCore.Commons.props` with the next release number and set `preview` for preview builds. +- [ ] **Reassign Issues**: Reassign all closed issues from the current version milestone to the upcoming version milestone. -- [ ] Tweet -- [ ] Post to the [Orchard Core LinkedIn group](https://www.linkedin.com/groups/13605669/) -- [ ] Post to the [Orchard Core Facebook page](https://www.facebook.com/OrchardCore/) +## Publicize the Release -### After the release is done +Share the news of the new release with the community: -- [ ] Create a new milestone with the next release number and close the old milestone. -- [ ] Create a new release notes documentation file for the next version in the `OrchardCore.Docs` project. (e.g., `/releases/1.8.0.md`). Don't add it to the docs navigation and exclude it from validation under `not_in_nav` with `mkdocs.yml`. -- [ ] Update the `OrchardCore.Commons.props` file with the next release number, and `preview` such that preview builds use the new one. +- [ ] Tweet about the release. +- [ ] Post on the [Orchard Core LinkedIn group](https://www.linkedin.com/groups/13605669/). +- [ ] Share on the [Orchard Core Facebook page](https://www.facebook.com/OrchardCore/).