From e0b299d2ef63316fdfc1150b82cb041e27fdb3c2 Mon Sep 17 00:00:00 2001 From: The-Lum <86879521+The-Lum@users.noreply.github.com> Date: Tue, 14 Nov 2023 17:25:13 +0100 Subject: [PATCH 1/7] docs: update `README.md`: add javadoc link + emoji - Add javadoc link - Add emoji (conform to the 'https://plantuml.com' page) --- README.md | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 7ed326e3c..c0bdb5ca9 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# PlantUML +# 🌱 PlantUML Generate UML diagrams from textual descriptions. @@ -17,6 +17,7 @@ Generate UML diagrams from textual descriptions. [![Release (latest by date)](https://img.shields.io/github/v/release/plantuml/plantuml)](https://github.com/plantuml/plantuml/releases/latest) [![Release Date](https://img.shields.io/github/release-date/plantuml/plantuml?color=blue)](https://github.com/plantuml/plantuml/releases/latest) [![GitHub commits since latest release (by date)](https://img.shields.io/github/commits-since/plantuml/plantuml/latest)](https://github.com/plantuml/plantuml/commits/) +[![javadoc](https://javadoc.io/badge2/net.sourceforge.plantuml/plantuml-gplv2/javadoc.svg)](https://javadoc.io/doc/net.sourceforge.plantuml/plantuml-gplv2) [![Pre-release (latest by date)](https://img.shields.io/github/v/release/plantuml/plantuml?color=chocolate&include_prereleases)](https://github.com/plantuml/plantuml/releases/tag/snapshot) [![Pre-release Date](https://img.shields.io/github/release-date-pre/plantuml/plantuml?color=chocolate)](https://github.com/plantuml/plantuml/releases/tag/snapshot) @@ -26,13 +27,13 @@ Generate UML diagrams from textual descriptions. > [!IMPORTANT] > [PlantUML is **not** affected by the log4j vulnerability.](https://github.com/plantuml/plantuml/issues/826) -## About +## ℹī¸ About PlantUML is a component that allows you to create various UML diagrams through simple textual descriptions. From sequence diagrams to deployment diagrams and beyond, PlantUML provides an easy way to create visual representations of complex systems. -### Supported Diagram Types +### 🗃ī¸ Supported Diagram Types -- UML Diagrams +- 🧩 UML Diagrams - [Sequence diagram](http://plantuml.com/sequence-diagram) - [Use case diagram](http://plantuml.com/use-case-diagram) - [Class diagram](http://plantuml.com/class-diagram) @@ -43,7 +44,7 @@ PlantUML is a component that allows you to create various UML diagrams through s - [Deployment diagram](http://plantuml.com/deployment-diagram) - [State diagram](http://plantuml.com/state-diagram) - [Timing diagram](http://plantuml.com/timing-diagram) -- Non-UML Diagrams +- 📈 Non-UML Diagrams - [JSON data](http://plantuml.com/json) - [YAML data](http://plantuml.com/yaml) - [EBNF (Extended Backus-Naur Form)](http://plantuml.com/ebnf) @@ -59,35 +60,35 @@ PlantUML is a component that allows you to create various UML diagrams through s - [Mathematical Notations (AsciiMath, JLaTeXMath)](http://plantuml.com/ascii-math) - [IE/ER (Information Engineering/Entity Relationship)](http://plantuml.com/ie-diagram) -### Additional Features +### đŸ“Ŗ Additional Features - [Hyperlinks and tooltips](http://plantuml.com/link) - [Rich text (Creole) with emoticons, unicode, and icons](http://plantuml.com/creole) - [OpenIconic icons](http://plantuml.com/openiconic) - [Sprite icons](http://plantuml.com/sprite) -### Learn More +### 📖 Learn More For a more detailed overview, visit [PlantUML Official Website](https://plantuml.com/). -## Getting Started +## 🚀 Getting Started Whether you're looking to use PlantUML as a standalone application or as a component in your own project, getting started is simple. Check out the official [PlantUML setup guide](https://plantuml.com/starting) for instructions on how to set up PlantUML on your system. -## Building from Source +## ⚙ī¸ Building from Source To build PlantUML from source, you'll need to have certain prerequisites installed and follow a series of steps outlined in our build guide. Find detailed instructions in our [BUILDING.md](https://github.com/plantuml/plantuml/blob/master/BUILDING.md) file. -## Contributing +## 🧱 Contributing PlantUML is an open-source project, and we welcome contributions of all kinds. Whether you're helping us fix bugs, improve the docs, or spread the word, we appreciate your support. See our [contributing guide](CONTRIBUTING.md) for more information on how to get started. -## Support and Community +## 🧑‍🤝‍🧑 Support and Community - [GitHub issues](https://github.com/plantuml/plantuml/issues/) - [Community Forum](https://forum.plantuml.net/) -## License +## 📃 License PlantUML is licensed under several licenses; you can choose the one that suits you best: From 61b1e4f0f064a7c5edd03496a8ac1f881b2d3741 Mon Sep 17 00:00:00 2001 From: Arnaud Roques Date: Tue, 14 Nov 2023 19:29:54 +0100 Subject: [PATCH 2/7] chore: try to add javadoc to GitHub Pages --- .github/workflows/ci.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dc38eb398..5c6e17e6f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -217,6 +217,29 @@ jobs: key: "libs-${{ github.run_id }}" enableCrossOsArchive: true + deploy_javadoc: + needs: [ build_artifacts ] + runs-on: ubuntu-latest + steps: + - name: Checkout the repository + uses: actions/checkout@v4 + + - name: Set up java + uses: actions/setup-java@v3 + with: + java-version: 17 + distribution: temurin + + - name: Build Javadoc + run: gradle javadoc + + - name: Deploy Javadoc to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./build/docs/javadoc + + upload: if: | needs.workflow_config.outputs.do_release == 'true' || From 4f0f8d7821bf995d0bd11c55d0ce44e48d84475e Mon Sep 17 00:00:00 2001 From: Arnaud Roques Date: Tue, 14 Nov 2023 21:31:05 +0100 Subject: [PATCH 3/7] chore: remove windows test and generate javadoc with frames --- .github/workflows/ci.yml | 41 ++-------------------------------------- build.gradle.kts | 1 + 2 files changed, 3 insertions(+), 39 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5c6e17e6f..c46cf60d5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -116,43 +116,6 @@ jobs: name: ${{ github.run_number }}-${{ matrix.os }}-java-${{ matrix.java_version }}-test-reports path: build/reports/tests/ - test_windows: - needs: workflow_config - strategy: - fail-fast: false - matrix: - java_version: [ 8 ] - os: [ windows-latest ] - runs-on: ${{ matrix.os }} - steps: - - name: Checkout the repository - if: needs.workflow_config.outputs.do_test_windows == 'true' - uses: actions/checkout@v4 - - - name: Set up java - if: needs.workflow_config.outputs.do_test_windows == 'true' - uses: actions/setup-java@v3 - with: - java-version: ${{ matrix.java_version }} - distribution: temurin - cache: gradle - - # Compile / Test / Package are separate steps so the reason for any failure is more obvious in GitHub UI - - name: Compile - if: needs.workflow_config.outputs.do_test_windows == 'true' - run: gradle -q compileJava --no-daemon - - - name: Test - if: needs.workflow_config.outputs.do_test_windows == 'true' - run: gradle test --no-daemon -i - - - name: Upload test reports - uses: actions/upload-artifact@v3 - if: needs.workflow_config.outputs.do_test_windows == 'true' - with: - # Using github.run_number here to reduce confusion when downloading & comparing from several builds - name: ${{ github.run_number }}-${{ matrix.os }}-java-${{ matrix.java_version }}-test-reports - path: build/reports/tests/ build_artifacts: needs: [ workflow_config ] @@ -218,7 +181,7 @@ jobs: enableCrossOsArchive: true deploy_javadoc: - needs: [ build_artifacts ] + needs: [ build_artifacts, test_linux ] runs-on: ubuntu-latest steps: - name: Checkout the repository @@ -323,7 +286,7 @@ jobs: gradle --debug publish push_to_docker_registry: - needs: [ workflow_config, upload, test_linux, test_windows ] + needs: [ workflow_config, upload, test_linux ] if: needs.workflow_config.outputs.do_release == 'true' runs-on: ubuntu-latest steps: diff --git a/build.gradle.kts b/build.gradle.kts index 72fb2d760..ab022ce26 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -150,6 +150,7 @@ tasks.withType().configureEach { tasks.withType().configureEach { options { this as StandardJavadocDocletOptions + addBooleanOption("frames", true) addBooleanOption("Xdoclint:none", true) addStringOption("Xmaxwarns", "1") encoding = "UTF-8" From 3a10503cc8c43cd0dee6815f954e1351f690fc14 Mon Sep 17 00:00:00 2001 From: Arnaud Roques Date: Tue, 14 Nov 2023 21:34:47 +0100 Subject: [PATCH 4/7] chore: suppress frame for javadoc --- build.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index ab022ce26..72fb2d760 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -150,7 +150,6 @@ tasks.withType().configureEach { tasks.withType().configureEach { options { this as StandardJavadocDocletOptions - addBooleanOption("frames", true) addBooleanOption("Xdoclint:none", true) addStringOption("Xmaxwarns", "1") encoding = "UTF-8" From 91ead316321d305942bc6070b5c7c3819f52a1e8 Mon Sep 17 00:00:00 2001 From: The-Lum <86879521+The-Lum@users.noreply.github.com> Date: Wed, 15 Nov 2023 13:52:49 +0100 Subject: [PATCH 5/7] docs: update `README.md`: add javadoc link for snapshot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c0bdb5ca9..6fc50fd5d 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ Generate UML diagrams from textual descriptions. [![Pre-release Date](https://img.shields.io/github/release-date-pre/plantuml/plantuml?color=chocolate)](https://github.com/plantuml/plantuml/releases/tag/snapshot) [![GitHub last commit](https://img.shields.io/github/last-commit/plantuml/plantuml?color=chocolate)](https://github.com/plantuml/plantuml/commits/) [![CI](https://github.com/plantuml/plantuml/actions/workflows/ci.yml/badge.svg?color=chocolate)](https://github.com/plantuml/plantuml/actions/workflows/ci.yml) +[![snapshot javadoc](https://img.shields.io/badge/javadoc-snapshot-chocolate.svg?logo=github)](https://plantuml.github.io/plantuml/) > [!IMPORTANT] > [PlantUML is **not** affected by the log4j vulnerability.](https://github.com/plantuml/plantuml/issues/826) From b63f2ab4cdae6ec3dc5a9bbd48abb82607d4155d Mon Sep 17 00:00:00 2001 From: Arnaud Roques Date: Wed, 15 Nov 2023 18:18:55 +0100 Subject: [PATCH 6/7] chore: filter javadoc generation --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c46cf60d5..23d6d9110 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -182,6 +182,7 @@ jobs: deploy_javadoc: needs: [ build_artifacts, test_linux ] + if: needs.workflow_config.outputs.do_release == 'true' runs-on: ubuntu-latest steps: - name: Checkout the repository From 333d0b1a1fd9eae536807cad9ea88b497d496cfd Mon Sep 17 00:00:00 2001 From: Arnaud Roques Date: Wed, 15 Nov 2023 19:50:47 +0100 Subject: [PATCH 7/7] chore: update javadoc even for snapshot --- .github/workflows/ci.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 23d6d9110..1bc3effb2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,6 +26,7 @@ jobs: do_release: ${{ steps.config.outputs.do_release }} do_snapshot_release: ${{ steps.config.outputs.do_snapshot_release }} pom_version: ${{ steps.config.outputs.pom_version }} + do_javadoc: ${{ steps.config.outputs.do_javadoc }} do_test_linux: ${{ steps.config.outputs.do_test_linux }} do_test_windows: ${{ steps.config.outputs.do_test_windows }} steps: @@ -53,7 +54,6 @@ jobs: # Do a release when a git tag starting with 'v' has been created by a suitable user. # (We match against github.repository_owner as a kludge so that forked repos can release themselves when testing the workflow) - if [[ "${GITHUB_EVENT_NAME}" == "create" && "${REF_TYPE}" == "tag" && "${REF}" == v* && \ ( "${ACTOR}" == "arnaudroques" || "${ACTOR}" == "${GITHUB_REPOSITORY_OWNER}" ) \ ]]; then @@ -61,6 +61,8 @@ jobs: echo "do_release=true" >> $GITHUB_OUTPUT echo "pom_version=${REF#v}" echo "pom_version=${REF#v}" >> $GITHUB_OUTPUT # pom_version is the tag without the 'v' prefix + echo "do_javadoc=true" >> $GITHUB_OUTPUT + echo "This run will update the Javadoc" elif [[ "${GITHUB_EVENT_NAME}" =~ push|workflow_dispatch && "${REF}" == "refs/heads/master" && "${ACTOR}" == "arnaudroques" ]]; then echo "::notice title=::This run will release a snapshot" @@ -68,9 +70,13 @@ jobs: V=$(perl -ne 'if (/return (\d{6,7});/) {$v=$1} if (/final int beta = (\d+);/) {$b=$1} END{print(substr($v, 0, 1),".", substr($v, 1, 4),"."); if ($b) {print(int(substr($v+1, 5)), "beta", $b);} else {print(int(substr($v, 5)))}}' src/net/sourceforge/plantuml/version/Version.java) echo "pom_version=$V-SNAPSHOT" echo "pom_version=$V-SNAPSHOT" >> $GITHUB_OUTPUT # pom_version is taken from Version.java + echo "do_javadoc=true" >> $GITHUB_OUTPUT + echo "This run will update the Javadoc" else echo "This run will NOT make a release" + echo "do_javadoc=false" >> $GITHUB_OUTPUT + echo "This run will NOT update the Javadoc" fi echo "do_test_linux=true" >> $GITHUB_OUTPUT echo "do_test_windows=false" >> $GITHUB_OUTPUT @@ -182,7 +188,7 @@ jobs: deploy_javadoc: needs: [ build_artifacts, test_linux ] - if: needs.workflow_config.outputs.do_release == 'true' + if: needs.workflow_config.outputs.do_javadoc == 'true' runs-on: ubuntu-latest steps: - name: Checkout the repository