Skip to content

Cake 1.0.0-rc0002 Release #31

@devlead

Description

@devlead

As this is a pre-release to Cake 1.0.0 might not complete all steps.

Useful information

Repository Pre-requisites

Automated Approach

  • Make sure you have a fork of Homebrew/homebrew-core.
  • Run the Prereqs.ps1 file, using the following as an example .\Prereqs.ps1 -GithubUsername gep13 (use your own username). This will clone a new version of all required repositories.

Let people know that things are happening...

  • Go to the Gitter room for Cake and inform people that a release is away to happen. Use a message similar to the following @/all We will soon start preparing for the [1.0.0-rc0002 release](https://github.com/cake-build/cake/milestone/74?closed=1) of Cake. So this is a friendly reminder to pin your Cake version.
  • Go to the Gitter room for Cake-Contrib and inform people that a release is away to happen. Use a message similar to the following @/all We will soon start preparing for the [1.0.0-rc0002 release](https://github.com/cake-build/cake/milestone/74?closed=1) of Cake. So this is a friendly reminder to pin your Cake version.
  • Go to the General Channel in the Slack Team for Cake-Contrib and inform peoploe that a release is away to happen. Use a message similar to the following @channel We will soon start preparing for the 1.0.0-rc0002 release ( https://github.com/cake-build/cake/milestone/74?closed=1 ) of Cake. So this is a friendly reminder to pin your Cake version.
  • 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, 1.0.0-rc0002 (https://github.com/cake-build/cake/milestone/74?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/tutorials/pinning-cake-version
  • 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 Excel report to track which addins are compatible with this new release of Cake.

When doing a release

  • Create branch locally to match the name of the release, for example git checkout -b release/1.0.0-rc0002 release/1.0.0
  • Update releasenotes.md to include 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/1.0.0-rc0002
  • Build everything (./build.ps1) to make sure it works (we can never be too sure).
  • Push main branch.
  • Make sure that both the AppVeyor, Bitrise Ubuntu and Bitrise OSX 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.
  • From the AppVeyor Log, take a note of the generated Hash from the Publish-HomeBrew task ENTERARCHIVEHASH
  • Switch to release/1.0.0 branch git checkout release/1.0.0
  • Merge release branch into release/1.0.0 git merge --no-ff release/1.0.0-rc0002
  • Resolve any merge conflicts
  • Bump the Cake Tool Version number in build.config to the latest released version, i.e. the version you just released
  • Build everything (./build.ps1) to make sure it works.
  • Commit the changes tobuild.config. Use commit message like (build) Updated Cake tool to version 1.0.0-rc0002
  • Push release/1.0.0 branch.
  • Delete the local release branch that was created git branch -d release/1.0.0-rc0002 (and the remote one, if pushed to GitHub git push origin --delete release/1.0.0-rc0002)

After a release/hotfix

  • Make sure that everything has pushed correctly to nuget
  • Make sure that everything has pushed correctly to chocolatey
    • cake.portable NOTE: This package might be subject to moderation, and might not appear immediately
  • Move to homebrew repository
  • Create a new branch for current release git checkout -b cake-1.0.0-rc0002
  • Open the Formula/cake.rb
  • Update the url (line 7) to be the new download location
  • Update the sha256 (line 8) to be the value that was generated earlier by the Publish-HomeBrew task
  • Commit the changes to cake.rb NOTE: Commit message should use the following format cake 1.0.0-rc0002 NOTE: Make sure to use a lower case C as that is the preferred formatting in the Homebrew repo
  • Push the new branch to your fork
  • Open a PR against the master branch of Homebrew/homebrew-core
  • Move to example repository
  • Open the tools/packages.config file
  • Update the Cake version number to be the same as the version that you have 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 1.0.0-rc0002
  • Push branch
  • Move to resources repository
  • Switch to the release/1.0.0 branch git checkout release/1.0.0
  • Open the packages.config 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 1.0.0-rc0002
  • Push branch git push
  • Checkout master git checkout master
  • Merge changes from release/1.0.0 branch git merge --no-ff release/1.0.0
  • Push branch git push
  • Trigger new container builds on Azure Pipelines.
  • Move to website repository
  • Create a branch for a new blog post git checkout -b 1.0.0-rc0002-Blog-Post master
  • You can get draft blog post using the console secrets\Processes\FetchContributors
    • dotnet restore
    • dotnet run "cake-build" "cake" "v1.0.0-rc0001" "61083a9138d23ddbbd7089aefe7689922ffe8368" "website\input\blog" "v1.0.0"
  • Bump the Cake Tool Version number in build.config to the latest released version, i.e. the version you just released
  • Commit changes to build.config file using message similar to (build) Updated Cake tool to version 1.0.0-rc0002
  • Commit blog post using message similar to v1.0.0-rc0002 Blog Post
  • Push branch and submit 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 release/1.0.0ment 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 release/1.0.0ment site is deployed. Make sure that it works as expected.
  • Go to the Cake-Contrib Gitter Room and let people know that it was released. Use something like @/all Version 1.0.0-rc0002 of the Cake has just been released, https://www.nuget.org/packages/Cake.
  • Go to the Cake-Contrib Slack Team and in the General Room let people know that it was released. Use something like @channel Version 1.0.0-rc0002 of the Cake has just been released, https://www.nuget.org/packages/Cake.
  • Go to the On .Net Link submission form and add link to the post
  • Go to reddit and submit link reddit.com/r/dotnet,
  • 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)
    • Import failed this time so used medium Create post API to create draft with canonicalUrl
    • Click on see your story
    • Remove the first line of the imported story
    • Click Publish and enter the tagsDevOps Csharp Release Notes Dotnet Continuous Integration
    • Click Publish
    • https://cakebuildnet.medium.com/cake-v1-0-0-rc0002-released-853ba23195a1
  • .NET Foundation Newsletter
  • 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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions