Release v2.5.0 :tada:
Potherca opened this issue · comments
As there have been many improvements and changes since the last release, it is time for a new release!
Full Changelog: v2.4.0...HEAD
This issue is a placeholder for all tasks that need to be completed to release a new version (2.5.0):
- Resolve all open issues related to the v2.5.0 milestone
So all desired features are present in the planned release - Update the
!include
paths to point to the new release URL
So users that includehttps://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/v2.4.0/C4_Component.puml
actually get relatedv2.4.0
files instead of files frommaster
. - Update the version in
C4.puml
So user can debug/output the version they are using - Check if anything else that needs changing. Copyright year? Any contrib files? URLS?
Making everything is in order before the release, so we do not have to make minor releases afterwards - Open an MR to incorporate the changes needed for version release into the
main
branch.
So there is a fixed/traceable moment in time that marks the change - Create a new release of the latest changes (using "Generate Release Notes").
So there is a fixed/traceable moment in time that marks the change - Create a merge-request for the release at PlantUML-stdlib
So PlantUML users also have access to the latest greatest C4-PlantUML
It also serves to be a first step in documenting how releases are made. Eventually a complete write-up should be added as part of a CONTRIBUTING.md
(see #276 )
@kirchsth Which issues / MRs should we wait on before drafting a new release?
Can you give me 2 weekends?
I would suggest we do not make the scope time based but function based.
Take the time you need, and once #232, #235 #247 we'll roll out a release.
I would rather wait a few weeks (or even months) and have a more complete release, than set a date and miss out on features that are already in progress.
Should we add status badges to the README.md too?
I could create a PR for it from my branch.
Adding badges is okay but I wouldn't add too many. Also, based on experience from maintaining other projects, I'd use link references rather than inline links:
[![release][Release Badge]][Release Page]
[![license MIT][License Badge]][License Page]
[![build result][Tests Badge]][Tests Page]
[License Badge]: https://img.shields.io/github/license/plantuml-stdlib/C4-PlantUML
[License Page]: https://github.com/plantuml-stdlib/C4-PlantUML/blob/master/LICENSE
[Release Badge]: https://img.shields.io/github/v/release/plantuml-stdlib/C4-PlantUML?display_name=tag
[Releases Page]: https://github.com/plantuml-stdlib/C4-PlantUML/releases/latest
[Tests Badge]: https://github.com/plantuml-stdlib/C4-PlantUML/actions/workflows/run-percy-tests.yml/badge.svg?label=checks
[Tests Page]: https://github.com/plantuml-stdlib/C4-PlantUML/actions/workflows/run-percy-tests.yml
Reviewed and commented. 👍
@Potherca Related to the possible tasks, can you add following, that a user can use a concrete released version?
[] the include paths should be updated too.
E.g. I want to check/use the 2.4.0 release via
https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/v2.4.0/C4_Component.puml
and the file still references .../master/... instead of .../v2.4.0/...
' convert it with additional command line argument -DRELATIVE_INCLUDE="." to use locally
!if %variable_exists("RELATIVE_INCLUDE")
!include %get_variable_value("RELATIVE_INCLUDE")/C4_Container.puml
!else
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
!endif
....
Good point! Added.
@Potherca Should I create a new release (I think we should finish it this year)?
I would
- (only) update the version, (related to copyright year... I don't know what you plan in details)
- create a PR and as soon the PR is merged
- finish Release note
- create a new release\v2.5.0 and update the C4_.puml files with the v2.5.0 related include paths
- make a PlantUML stdlib version PR
I'll be rolling out the 2.5 release this weekend.
Maybe obsolete, I uploaded my releases/v250 branch (it was finished already and so we have an up-to-date version of the current active PlantUML Standard Library C4 version)
To avoid the breakage that occured by the last commit/MR being merged bu a tag not existing, I think we need to do something (not sure what yet) to make sure the final commit/MR for the release automatically creates a tag (or even the full a release) upon merge.
Regarding:
Create a merge-request for the release at PlantUML-stdlib
We need to document the steps that need to be taken when opening that MR
Hi @Potherca,
related to the breaking "master": I think the safes (maybe not simplest) solution is
- we never change the used branches in the master branch.
- the C4Version() is updated in master branch (e.g. v2.5.1)
- all changes are are done in a release-branch release/vX.Y.Z (e.g. release/v2.5.1) based on master
- this branch uses the include branches which matches with the tagged-branches ...plantuml-stdlib/C4-PlantUML/vX.Y.Z/... (e.g. ...plantuml-stdlib/C4-PlantUML/v2.5.1/...)
- this branch will be tagged with the vX.Y.Z
- Update all include paths in the *.md files, optional the images too
- Add/update comment in the README.md if the images are updated or not
- Update the badges definitions with concrete versions
- create the release (notes) with all changes based on the release-branch
- for the PlantUML/PlantUML-stdlib integration we
- first time:
- create a deployed/v.X.Y.Z branch based on release/vX.Y.Z branch
- and update all include paths to <C4/.....>
- remove all files from release branch except C4_*.puml (?)
- add INFO file with correct version
- add Deployed.md with the info that the corresponding release version documentation can be found in the release.vX.Y.Z branch
- all following:
- create a deployed/v.X.Y.Z based on the last deployed/v.XOld.YOld.ZOld branch
- merge release/vX.Y.Z branch into deployed/v.X.Y.Z
- remove all files from release branch except C4_*.puml (?)
- update INFO and Deployed.md file with correct version
- in all cases
- create in PlantUML/PlantUML-stdlib a merge request with deployed/vX.Y.Z C4_*.puml and INFO file
- If all is done we could optional update the C4Version() in master branch to next beta version (e.g. vX.Y.Z+1beta1)
after all it should look like below (and the release branches have the tags)
related to current release
- I could fix the master branch with correct include path (atm it includes the tagged version)
- remove my releases/v250
- create the correct release and deployed branches/versions based on previous steps
- (and optional update the version in the master branch to the next beta)
What do you think?
BR Helmut
Hi @Potherca,
I tried to semi automate all steps that a new release is created in release\v2.5.0 (details see new files in feature/148 branch)
Maybe next time we
a) create the new release directly in a releases/v2.6.0 branch (incl. version update, replaced include paths, ....) with the
(improved) "148" scripts;
b) and in the master branch we update only the version to next beta "(v)2.7.0beta1"
c) and create the PR for the "PlantUML Standard Library C4" manually
Created a PR to PlantUML Standard Library C4
BR Helmut
Closing this issue as the release has been completed.
@kirchsth I suggest we take the discussion for various improvements and fixes to new issue(s).