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

A brand new Release Notes feature for Releases being made by 'build.cake' script #1716

Merged
merged 12 commits into from
Oct 6, 2023

Conversation

raman-m
Copy link
Member

@raman-m raman-m commented Oct 5, 2023

New Feature

  • Release Notes looks more user friendly to have a fun 😄
  • Upgrade build.cake script

This is preparation PR for upcoming release 19.1.x or a brand new 20.0.0 one. So, after delivering script upgrade to develop branch, a new release branch release/20.0.0 will be created.

Proposed Changes

  • Release Notes file aka ReleaseNotes.md was renamed and content now can contain a header templates for Release Notes. Now placeholder {0} is used to substitute current SemVer version (release version) to the release name in the header
  • The ReleaseNotes.md file processing has changed.
    Old process: 1) Read all commits from Git → 2) Transform to notes item with hash, author, feature/commit message; → 3) Flush string stream to ReleaseNotes.md for NuGet packaging → 4) finally calling Version task and ignoring SemVer.
    New process: 1) Run Version task first → 2) Paste SemVer value into Release Notes placeholders → 3) Generate new Notes style 3) Flush string stream to ReleaseNotes.md for NuGet packaging → 4) finally not calling Version task, but reusing SemVer where applicable.
  • Refactor the CreateReleaseNotes task completely defining new local helper functions: introduce new generator for new Notes style, use more git statistics on features delivered, create Top 3 contributors, describe release influencers, get more info on features delivered
  • Refactor some tasks to remove ugly warnings from building log
  • Change tasks dependencies: create release notes in Release task only (not calling for Version or Compile tasks, no sense). That means all PR builds will not generate Release notes calling CreateReleaseNotes task. So, there is no sense to generate ReleaseNotes.md file for PRs. And, only Release mode on CircleCI during making a Release build for main branch will call this task. So, we will have a little bit faster PR builds. Currently we save 10-20 milliseconds 🤣
  • Add DONE status for each task after completion. Better to check the name of finished task, and watch for process chain (tasks dependencies). This can be enhanced in future.
  • Add reference to Spectre.Console package to use fantastic AnsiConsole helper for logging with colored messages

Samples and Examples of new Release Notes

...can be found here, in #1711 : final version of new style.
Release name (header) aka main release message September 2023 (version 19.1.0) was reused from Visual Code release notes 😋

@raman-m raman-m self-assigned this Oct 5, 2023
@raman-m raman-m added feature A new feature release Pre/Release (minor, major) labels Oct 5, 2023
@raman-m raman-m merged commit fcdd274 into develop Oct 6, 2023
@raman-m raman-m deleted the feature/19.1.0 branch October 6, 2023 06:15
@raman-m
Copy link
Member Author

raman-m commented Oct 6, 2023

September 2023 (version 20.0.0-beta0001) aka Polish Apple release

Codenamed as Polish Apple

Honoring 🏅 aka Top Contributors 👏

1st 🥇 goes to Raman Maksimchuk for delivering 5 features
2nd 🥈 goes to jlukawska for delivering 3 features
3rd 🥉 goes to Guillaume Gnaegi for delivering 2 features

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature A new feature release Pre/Release (minor, major)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants