plantuml/plantuml-stdlib

Update all sources to newer versions

Potherca opened this issue · 9 comments

I've been looking into the various sources used in this repo and there seems to be updates possible.

This is an overview of what needs to be done:

Source (Repo) Current Available MR Info
aws
milo-minderbinder/AWS-PlantUML
18.2.22 Up To Date -
awslib
awslabs/aws-icons-for-plantuml
7.0.0 Up To Date #27 Merged
Azure
RicardoNiepel/Azure-PlantUML
2.1.0 Up To Date -
C4
RicardoNiepel/C4-PlantUML
1.0.0 No info TODO Version information requested
(plantuml-stdlib/C4-PlantUML#26)
cloudinsight
rabelenda/cicon-plantuml-sprites
1.0.0 Up To Date #11 Merged
cloudogu
cloudogu/plantuml-cloudogu-sprites
1.0.2 Up To Date #12 Merged
Elastic
Crashedmind/PlantUML-Elastic-icons
0.0.1 Up To date -
logos
rabelenda/gilbarbara-plantuml-sprites
1.0.0 Up To Date #25 Merged
kubernetes
michiel/plantuml-kubernetes-sprites
5.3.45 Up To Date #26 Merged
MaterialDesign
Templarian/MaterialDesign
0.0.1 4.0.96 TODO
office
Roemer/plantuml-office
1.0.0 Up To Date #14 Merged
osa
Crashedmind/PlantUML-opensecurityarchitecture-icons
0.0.1 Up To Date -
tupadr3
tupadr3/plantuml-icon-font-sprites
2.2.0 Up To Date #30 Merged

MRs:

Well, it will help if you create a PR about this :-)

I'm hoping to check all libraries for updates and open MRs where needed this coming weekend.

I've opened the following merge-requests:

#11 to update the Cloudinsight version number Merged
#12 to update the Cloudogu sourceMerged
#13 to update the tupadr3 source. Superseded by #30 which has been merged
#14 to update the Office version numberMerged

I've made a first stab at automating the update of libs as well:
https://gist.github.com/Potherca/d52275853c3fb46e8244616676790b80

I might follow up on that later...

UPDATE:

  • Added Elastic, gilbarbara, kubernetes, and osa to the overview table.
  • Add MRs to update the INFO fies of logos #25 and kubernetes #26 and awslib #27

@Potherca is there a "simple" tutorial how to add an icon library?

Not that I know of. As usual, once you know how, it isn't all that hard.

The steps to add an icon library are:

  1. Generate PlantUML sprite files
  2. Put all of the sprites in a repo
  3. Open an MR here to get the sprite repo included into stdLib
    • Including an INFO file

1. Generate PlantUML sprite files

Generating.puml files from a bunch of SVGs can be done using plantuml.jar -encodesprite1

It is quite common for icon-sets to either exist out of SVGs or be generated from SVGs, so source SVGs are often already available.

Figuring out which settings to use with encodesprite can take some trial-and-error.2

I remember looking into https://github.com/tupadr3/font-icon-generator but I can really remember how things work, so for now YMMV.

2. Put all of the sprites in a repo

Once you have a bunch of generated .puml files, it is a good idea to create a common/main file that includes all the sprites, to save users the hassle of having to load each sprite individually.3

Adding a README explaining things a bit is also a good move.

3. Open an MR here to get the sprite repo included into stdLib

To add an icon library to this project (i.e.e the PlantUML stdLib), open a merge request with:4

  • A folder containing all of your PlantUML sprite files
  • An entry to README file
  • An INFO file

Including an INFO file

The INFO file should contain the version (i.e. the git tag or github release) of the icon-set you are adding and the source repo.

For instance:

VERSION=1.2.0
SOURCE=https://github.com/path-to/project

If the source repo tags newer versions when things change, updating things here can be automated.5

In the long run, it could even be possible to add/update icon-sets here without an intermediary repo, but for now, this is how it is done.

Footnotes

  1. To quote the manual entry on sprites:

    To encode sprite, you can use the command line like: java -jar plantuml.jar -encodesprite 16z foo.png where foo.png is the image file you want to use (it will be converted to gray automatically). After -encodesprite, you have to specify a format: 4, 8, 16, 4z, 8z or 16z. The number indicates the gray level and the optional z is used to enable compression in sprite definition.

  2. This blog post by Hubert Klein Ikkink might be of some help

  3. Look at existing sprite sets for inspiration

  4. A good example of this is #18

  5. That is in fact what I have been doing for all MRs opened for this ticket

Update:

  • MR #13 has been superseded by #30 which has been merged, so tupadr3 is now also up-to-date.
  • MR #12 and #14 have also been merged

The only two items remaining are RicardoNiepel/C4-PlantUML which seems to be dead in the water and Templarian/MaterialDesign which has moved to https://github.com/Templarian/MaterialDesign-SVG.

As both of these will require separate attention, I am closing this issue.

Any follow-ups can be separate tickets/MRs.

RicardoNiepel/C4-PlantUML has been revived and a v2.0.0 has been tagged!