Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cake 4.2.0 Release #53

Open
62 of 100 tasks
devlead opened this issue Oct 23, 2024 · 0 comments
Open
62 of 100 tasks

Cake 4.2.0 Release #53

devlead opened this issue Oct 23, 2024 · 0 comments

Comments

@devlead
Copy link
Member

devlead commented Oct 23, 2024

Useful information

Repository Pre-requisites

Automated Approach

  • Run the Prereqs.ps1 file, using the following as an example .\Prereqs.ps1 -GithubUsername devlead (use your own username). This will clone a new version of all required repositories.

Let people know that things are happening...

  • Please go to the General Channel in the Slack Team for Cake-Contrib and let people know that a release is away. Use a message similar to the following @channel We will soon start preparing for the [4.2.0 release](https://github.com/cake-build/cake/milestone/92?closed=1) of Cake. So this is a friendly reminder to pin your Cake version! :pushpin: :cake:
  • Using the Cake Twitter account, tweet to let people know that the release is away to happen. Use something like the following We are starting to prepare our next release, 4.2.0 (https://github.com/cake-build/cake/milestone/92?closed=1). This is your friendly reminder that if you haven't pinned to a specific version of Cake, you should do it now :-) 📌 🍰 https://cakebuild.net/docs/writing-builds/reproducible-builds/
  • Retweet the above from the cake-contrib Twitter account

GitHub Issues Pre-requisites

  • Make sure all issues within the milestone are tagged with either Bug, Feature, Improvement, Documentation, Breaking change, or Build
  • Make sure all issues associated with the milestone are closed
  • Make sure that all issues only have 1 label associated with them
  • Raise an issue in the Cake.AddinDiscoverer repo if there are any breaking changes so the discoverer can be modified to generate a new markdown report and also an Excel report to track which addins are compatible with this new release of Cake.

When doing a release

  • Create a branch locally to match the name of the release, for example, git checkout -b release/4.2.0 develop
  • Update ReleaseNotes.md to include the next version number as a placeholder and save the file
  • Create release notes on GitHub using the ReleaseNotes task (.\build.ps1 --target=ReleaseNotes)
  • Update ReleaseNotes.md with generated content (making sure to keep the formatting the same)
  • Build everything (./build.ps1) to make sure it works.
  • Commit the changes to ReleaseNotes.md and SolutionInfo.cs. Use comment like (build) Updated version and release notes
  • At this point, if you want to share the work to date, and validate something, push the local release branch to GitHub
  • Assuming everything is ok, switch to main branch (git checkout main)
  • Merge release branch to the main git merge --no-ff release/4.2.0
  • Build everything (./build.ps1) to make sure it works (we can never be too sure).
  • Push main branch.
  • Make sure that all builds succeed before going any further.
  • Assuming that everything went ok, go to the draft release in GitHub and click Edit
  • Click the Publish Release button
  • This will trigger another build in AppVeyor, but this time with a tag.
  • Switch to develop branch git checkout develop
  • Merge release branch into develop git merge --no-ff release/4.2.0
  • Resolve any merge conflicts
  • Bump the Cake Tool Version number in .config\dotnet-tools.json to the latest released version, i.e. the version you just released
  • Build everything (./build.ps1) to make sure it works.
  • Commit the changes to .config\dotnet-tools.json. Use commit message like (build) Updated Cake Tool to version 4.2.0
  • Push develop branch.
  • Delete the local release branch that was created git branch -d release/4.2.0 (and the remote one, if pushed to GitHub git push origin --delete release/4.2.0)

After a release/hotfix

  • Make sure that everything has been pushed correctly to NuGet
  • Move to example repository
    • Bump the Cake Tool Version number in .config\dotnet-tools.json to the latest released version, i.e. the version you just released
    • Build everything (./build.ps1 or ./build.sh) to make sure it works.
    • Commit changes. Use message similar to (build) Updated Cake tool to version 4.2.0
    • Push branch
  • Move to resources repository
    • Open the dotnet-tool/.config/dotnet-tools.json file
    • Update the Cake version number to be the same as the version that you have just released
    • Commit changes. Use message similar to (build) Updated Cake tool to version 4.2.0
    • Push branch git push
  • Trigger new container builds on GitHub Actions.
  • Move to bakery repository
    • Create an issue Update Cake to version 4.2.0
    • Create a branch for example git checkout -b feature/gh-xxx develop
    • Update Cake.Core to 4.2.0 in src\Cake.Bakery\Cake.Bakery.csproj
    • Update Cake.Core to 4.2.0 in src\Cake.Scripting\Cake.Scripting.csproj
    • Update Cake.Core to 4.2.0 in src\Cake.Scripting.Tests\Cake.Scripting.Tests.csproj
    • Update Cake.NuGet to 4.2.0 in src\Cake.Bakery\Cake.Bakery.csproj
    • Update Cake.Common to 4.2.0 in src\Cake.Scripting\Cake.Scripting.csproj
    • Update Cake.Testing to 4.2.0 in src\Cake.Scripting.Tests\Cake.Scripting.Tests.csproj
    • Build everything (./build.ps1 or ./build.sh) to make sure it works.
    • Commit changes. Use message similar to (GH-xxx) Updated Cake tool to version 4.2.0
    • Push the branch and submit a pull request
    • Have someone else verify the contents
  • Move to website repository
    • Create a branch for a new blog post git checkout -b 4.2.0-Blog-Post master
    • You can get a draft blog post using the console secrets\Processes\FetchContributors
      • dotnet restore
      • dotnet run -- "cake-build" "cake" "v4.1.0" "13fe6c38b31cfe8133e4cbfefc8518aedba42996" "../../../../cake-build/website/input/blog/" v4.2.0
    • Bump the Cake Tool Version number in .config\dotnet-tools.json to the latest released version, i.e. the version you just released
    • Commit changes to .config\dotnet-tools.json file using message similar to (build) Updated Cake tool to version 4.2.0
  • Commit blog post using a message similar to v4.2.0 Blog Post
  • Push the branch and submit a pull request
  • Have someone else verify the contents
  • Merge the Pull Request
  • Go to develop.cakebuild.net once you receive the Azure notification in Slack to say that the development site is deployed. Make sure that it works as expected.
  • Go to cakebuild.net once you receive the Azure notification in Slack to say that the development site is deployed. Make sure that it works as expected.
  • Go to the Cake-Contrib Slack Team and in the General Room let people know that it was released. Use something like @channel Version 4.2.0 of the Cake has just been released, https://www.nuget.org/packages/Cake.Tool :cake: :rocket:
  • Go to reddit and submit link reddit.com/r/cakebuild,
  • Go to LinkedIn and create a new post
  • Go to Medium
    • Log into Medium as the cake-build twitter user
    • Click on the Cake logo at top right of screen, then click on Stories
    • Click on Import a Story
    • Enter url of blog post and click Import (if this errors out, just try it again)
    • Click on see your story
    • Click Publish and enter the tagsDevOps Csharp Release Notes Dotnet Continuous Integration
    • Click on Publish Now
    • https://cakebuildnet.medium.com/...
  • .NET Foundation Newsletter
  • Submit news to form forms.office.com/r/8hAv7S659s
  • Submit a request for content amplification by the .NET Foundation
  • Go to the Cake Slack Channel and share the links to Medium, LinkedIn, and Reddit so that other team members can share them
  • Go and have a drink!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant