plantuml-stdlib / C4-PlantUML

C4-PlantUML combines the benefits of PlantUML and the C4 model for providing a simple way of describing and communicate software architectures

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/v2.4.0/C4_Component.puml actually get related v2.4.0 files instead of files from master.
  • 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?

A new release is a good idea.
Can you give me 2 weekends?
I would try to fix #232, #235 and #247 too (but I'm not sure if I have time next weekend)
BR Helmut

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 license MIT build result

[![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

Hi @Potherca

  • I finished #259 and #260, please review it
  • Can you check my #255 solution, If it is OK i can create a PR for it
  • related to update of the copyright year in the license file, maybe you can add all c4-plantuml-maintainers as authors too

BR Helmut

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 do you have time for the release?

@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)

(copy of closed #271)
@Potherca: I create a pre-release that the includes are working again. Can you please check/update the release notes,...?

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.
  1. the C4Version() is updated in master branch (e.g. v2.5.1)
  2. 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
  1. 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
  1. 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)
grafik

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).