You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Assign Milestone: Assign the release version milestone to this issue.
Address Outstanding Issues: Resolve any remaining issues for the current version.
Merge Relevant Pull Requests: Merge all applicable pull requests or assign any outstanding issues to the next release cycle.
Step 2: Code and Documentation Updates
Create Release Branch: Create a new release branch named release/<version-name-with-patch-placeholder> (e.g., release/3.0) from the main branch. This branch will serve as the foundation for upcoming patch releases and facilitate versioned updates.
From the release branch (e.g., release/3.0), create a new temporary branch for the version (e.g., release-prep/3.0.0).
Update version references in the documentation and code. Refer to this PR for an example. The easiest way is to start with a search & replace on the previous version. Version Updates Checklist:
Update OrchardCore.Commons.props: Set <VersionPrefix></VersionPrefix> to the new version you're preparing for release.
Update Module Versions: Modify src/OrchardCore/OrchardCore.Abstractions/Modules/Manifest/ManifestConstants.cs to reflect the new version.
Release Notes: Finalize 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 navigation and remove it from not_in_nav.
Version Mentions: Update all references to the new version throughout the documentation, including:
Check CI Workflow: Verify that the release_ci workflow is using the correct .NET version for the release, and change it in the version branch if necessary.
Create a version PR titled Release <version number (e.g., Release 3.0.0) from the version branch (e.g., release/3.0.0) into the release branch (e.g., release/3.0`)
In GitHub, manually run the Preview - CI workflow on your branch (NOT main). This will release a new preview version on Cloudsmith for testing.
Step 3: Translation Updates
Update Translations: After finalizing code changes, update translations in the Translations project:
Update the OrchardCore.Translations.All package reference in the main repository's ./Dependencies.Packages.props file.
Step 4: Validation
Check Functionality: Update OrchardCore.Samples to the latest preview version generated in the previous step (just change the OrchardCoreVersion property in the root Directory.Build.props file). Ensure the samples work as expected.
Test Guides: Test the following guides with NuGet packages from the Cloudsmith feed:
In the "Choose a tag" menu, enter the new version number (e.g., v3.0.0) and select "+ Create tag: v... on publish."
Change the target branch from main to your release branch (e.g., release/3.0).
Enter the version number in the Title field (e.g., 3.0.0).
Click Generate release notes to automatically create release notes based on the changes.
Add a link to the release notes on the docs site: Check out the full release notes [here](https://docs.orchardcore.net/en/latest/releases/3.0.0/).
Ensure the "Set as the latest release" checkbox is checked, then click Publish release.
Step 6: Aligning Branches
Merge to main: After releasing the new version, merge the release branch into the main branch to ensure that main contains all administrative changes.
Create a pull request from the release branch (e.g., release/3.0) into main.
Resolve any merge conflicts using external tools (e.g., Fork) to avoid auto-merging main into the release branch. Important: DO NOT resolve conflicts using GitHub's interface; that will automatically merge main into the release branch, which must be avoided.
Merge the PR if all checks pass. If there are merge conflicts, then you'll need to merge to main manually using the following steps:
Fetch the latest changes from the Git repository.
git checkout the main branch.
Merge the release branch (e.g., release/3.0) into main with a merge commit (NOT a squash merge). Use the commit message pattern Merge release/3.0.0 to main.
Resolve any conflicts.
Push the changes to main. This action requires a user with the ability to force-push into main, as it is protected by default.
GitHub will automatically delete the release branch; go back to the new merged PR to restore it.
Step 7: Post-Release Tasks
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 OrchardCore.Commons.props for Next Release: Set <VersionPrefix></VersionPrefix> to the next planned release number, but at least a minor one.
Reassign Issues: Reassign all still open, postponed issues from the current version milestone to the upcoming version milestone.
Update OrchardCore.Samples to the newly released version (just change the OrchardCoreVersion property in the root Directory.Build.props file).
Send a message to the #announcements channel on Discord.
Ask .NET Foundation to amplify the release. This is the first time for this, so document if there's anything special here and add this to the release issue template.
Release Major or Minor Preparation Guide
Step 1: Housekeeping on GitHub
Step 2: Code and Documentation Updates
release/<version-name-with-patch-placeholder>(e.g.,release/3.0) from themainbranch. This branch will serve as the foundation for upcoming patch releases and facilitate versioned updates.release/3.0), create a new temporary branch for the version (e.g.,release-prep/3.0.0).OrchardCore.Commons.props: Set<VersionPrefix></VersionPrefix>to the new version you're preparing for release.src/OrchardCore/OrchardCore.Abstractions/Modules/Manifest/ManifestConstants.csto reflect the new version.mkdocs.ymlnavigation and remove it fromnot_in_nav.Release <version number(e.g.,Release 3.0.0) from the version branch (e.g.,release/3.0.0) into the release branch (e.g.,release/3.0`)Preview - CIworkflow on your branch (NOTmain). This will release a new preview version on Cloudsmith for testing.Step 3: Translation Updates
Update Translations: After finalizing code changes, update translations in the Translations project:
OrchardCore.Translations.Allpackage reference in the main repository's./Dependencies.Packages.propsfile.Step 4: Validation
OrchardCore.Samplesto the latest preview version generated in the previous step (just change theOrchardCoreVersionproperty in the rootDirectory.Build.propsfile). Ensure the samples work as expected.Step 5: Creating the New Release
v3.0.0) and select "+ Create tag: v... on publish."mainto your release branch (e.g.,release/3.0).3.0.0).Check out the full release notes [here](https://docs.orchardcore.net/en/latest/releases/3.0.0/).Step 6: Aligning Branches
Merge to
main: After releasing the new version, merge the release branch into the main branch to ensure thatmaincontains all administrative changes.release/3.0) intomain.maininto the release branch. Important: DO NOT resolve conflicts using GitHub's interface; that will automatically mergemaininto the release branch, which must be avoided.mainmanually using the following steps:git checkoutthemainbranch.release/3.0) intomainwith a merge commit (NOT a squash merge). Use the commit message patternMerge release/3.0.0 to main.main. This action requires a user with the ability to force-push intomain, as it is protected by default.Step 7: Post-Release Tasks
OrchardCore.Docsproject (e.g.,/releases/4.0.0.md). Exclude it from navigation and validation undernot_in_navinmkdocs.yml.OrchardCore.Commons.propsfor Next Release: Set<VersionPrefix></VersionPrefix>to the next planned release number, but at least a minor one.OrchardCore.Samplesto the newly released version (just change theOrchardCoreVersionproperty in the rootDirectory.Build.propsfile).Step 8: Publicizing the Release
#announcementschannel on Discord.