Skip to content

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

Merged
raman-m merged 12 commits intodevelopfrom
feature/19.1.0
Oct 6, 2023
Merged

A brand new Release Notes feature for Releases being made by 'build.cake' script#1716
raman-m merged 12 commits intodevelopfrom
feature/19.1.0

Conversation

@raman-m
Copy link
Copy Markdown
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
Copy Markdown
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