diff --git a/.github/workflows/check-links.yml b/.github/workflows/check-links.yml
new file mode 100644
index 00000000..348d6009
--- /dev/null
+++ b/.github/workflows/check-links.yml
@@ -0,0 +1,40 @@
+name: Check links in documentation
+
+on:
+ push:
+ paths:
+ - '.github/workflows/check-links.yml'
+ - 'lychee.toml'
+ - '**/*.md'
+ schedule:
+ # Run on the first of each month at 9:00 AM
+ - cron: "0 9 1 * *"
+ workflow_dispatch:
+
+concurrency:
+ group: "${{ github.workflow }}-${{ github.head_ref }}"
+ cancel-in-progress: true
+
+jobs:
+ lychee:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout source code
+ uses: actions/checkout@v4
+ with:
+ submodules: true
+ fetch-depth: 0
+
+ - name: Restore lychee cache
+ uses: actions/cache@v4
+ with:
+ path: .lycheecache
+ key: cache-lychee-${{ github.sha }}
+ restore-keys: cache-lychee-
+
+ - name: Check links
+ id: lychee
+ uses: lycheeverse/lychee-action@v1.9.3
+ with:
+ fail: true
+ args: --max-concurrency 1 --cache --no-progress --exclude-all-private './**/*.md'
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 6b3e6d20..9735f218 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -39,7 +39,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
- uses: github/codeql-action/init@v2
+ uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -50,7 +50,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
- uses: github/codeql-action/autobuild@v2
+ uses: github/codeql-action/autobuild@v3
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@@ -64,4 +64,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v2
+ uses: github/codeql-action/analyze@v3
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index 245aead3..f5b183b6 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -20,7 +20,7 @@ jobs:
fetch-depth: 0
- name: Setup Java
- uses: actions/setup-java@v3
+ uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17
@@ -60,7 +60,7 @@ jobs:
with:
ref: 'gh-pages'
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
with:
path: /root/.jbang
key: $-jbang-$
diff --git a/.github/workflows/hugo-geekdoc.yml b/.github/workflows/hugo-geekdoc.yml
index 6bb75be1..a3cb5800 100644
--- a/.github/workflows/hugo-geekdoc.yml
+++ b/.github/workflows/hugo-geekdoc.yml
@@ -22,7 +22,7 @@ jobs:
fetch-depth: 0
- name: Setup Java
- uses: actions/setup-java@v3
+ uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17
@@ -43,7 +43,7 @@ jobs:
- name: Create Pull Request
id: cpr
- uses: peter-evans/create-pull-request@v5
+ uses: peter-evans/create-pull-request@v6
with:
commit-message: Bump ${{ env.DEP_PROP }} to ${{ steps.lr.outputs.release }}
title: Bump ${{ env.DEP_PROP }} to ${{ steps.lr.outputs.release }}
diff --git a/.github/workflows/java-ea-maven.yml b/.github/workflows/java-ea-maven.yml
index 7906c032..53906f4d 100644
--- a/.github/workflows/java-ea-maven.yml
+++ b/.github/workflows/java-ea-maven.yml
@@ -11,7 +11,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- java: [ 20 ]
+ java: [ 21 ]
os: [ ubuntu-latest ]
name: JDK${{ matrix.java }} on ${{ matrix.os }}
@@ -25,7 +25,7 @@ jobs:
fetch-depth: 0
- name: Setup Java
- uses: actions/setup-java@v3
+ uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
diff --git a/.github/workflows/java8-maven.yml b/.github/workflows/java8-maven.yml
index 428d73b2..b7ce6ae6 100644
--- a/.github/workflows/java8-maven.yml
+++ b/.github/workflows/java8-maven.yml
@@ -8,9 +8,9 @@ jobs:
strategy:
fail-fast: false
matrix:
-# java: [ 8, 17 ]
+# java: [ 8, 21 ]
# os: [ ubuntu-latest, macOS-latest, windows-latest ]
- java: [ 17 ]
+ java: [ 21 ]
os: [ ubuntu-latest ]
name: JDK${{ matrix.java }} on ${{ matrix.os }}
@@ -24,7 +24,7 @@ jobs:
fetch-depth: 0
- name: Setup Java
- uses: actions/setup-java@v3
+ uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
@@ -36,7 +36,10 @@ jobs:
- name: Build and (headless) test with Maven
uses: smithki/xvfb-action@v1.1.2
with:
- run: mvn -U -B -ntp package
+ run: mvn -U -B -ntp install
+
+ - name: Ensure reproducible builds with Maven
+ run: mvn -U -B -ntp clean verify artifact:compare -DskipTests
auto-merge-job:
needs: build-and-test-job
@@ -58,7 +61,7 @@ jobs:
if: startsWith(github.repository, 'nbbrd/') && startsWith(github.ref, 'refs/heads/develop')
strategy:
matrix:
- java: [ 17 ]
+ java: [ 21 ]
os: [ ubuntu-latest ]
name: Snapshot on develop
@@ -72,7 +75,7 @@ jobs:
fetch-depth: 0
- name: Setup Java
- uses: actions/setup-java@v3
+ uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
@@ -96,7 +99,7 @@ jobs:
- name: Upload JReleaser output
if: always()
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: assets-snapshot-log
path: |
@@ -108,7 +111,7 @@ jobs:
if: startsWith(github.repository, 'nbbrd/') && startsWith(github.ref, 'refs/tags/v')
strategy:
matrix:
- java: [ 17 ]
+ java: [ 21 ]
os: [ ubuntu-latest ]
name: Release on tag
@@ -122,7 +125,7 @@ jobs:
fetch-depth: 0
- name: Setup Java
- uses: actions/setup-java@v3
+ uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
@@ -148,7 +151,7 @@ jobs:
- name: Upload JReleaser output
if: always()
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: assets-release-log
path: |
diff --git a/.github/workflows/jbang-example.yml b/.github/workflows/jbang-example.yml
index 05543c29..6fc234b9 100644
--- a/.github/workflows/jbang-example.yml
+++ b/.github/workflows/jbang-example.yml
@@ -8,7 +8,7 @@ jobs:
name: sdmx-dl version
steps:
- name: Setup cache
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ~/.jbang
key: ${{ runner.os }}-jbang-${{ hashFiles('*.java') }}
diff --git a/.github/workflows/qodana.yml b/.github/workflows/qodana.yml
index 92ffd0a1..10e1d582 100644
--- a/.github/workflows/qodana.yml
+++ b/.github/workflows/qodana.yml
@@ -15,7 +15,7 @@ jobs:
with:
fetch-depth: 0
- name: 'Qodana Scan'
- uses: JetBrains/qodana-action@v2023.2.6
+ uses: JetBrains/qodana-action@v2023.3.1
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
diff --git a/lychee.toml b/lychee.toml
new file mode 100644
index 00000000..5f8ee446
--- /dev/null
+++ b/lychee.toml
@@ -0,0 +1 @@
+exclude_path = ["sandbox-cli/src/test/resources/Main.md"]
\ No newline at end of file
diff --git a/modernizer.xml b/modernizer.xml
new file mode 100644
index 00000000..ed40a762
--- /dev/null
+++ b/modernizer.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index dd327fa5..09fc6413 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
com.github.nbbrd.sandbox
sandbox-parent
- 2.3.3
+ 2.3.4
pom
sandbox
@@ -35,6 +35,10 @@
http://github.com/nbbrd/sandbox/tree/master
+
+ 2024-02-08T15:10:11Z
+
+
@@ -42,12 +46,12 @@
org.apache.maven.plugins
maven-clean-plugin
- 3.3.1
+ 3.3.2
org.apache.maven.plugins
maven-compiler-plugin
- 3.11.0
+ 3.12.1
org.apache.maven.plugins
@@ -77,28 +81,35 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.1.2
+ 3.2.5
+
+
+ org.apache.maven.surefire
+ surefire-junit-platform
+ 3.2.5
+
+
org.apache.maven.plugins
maven-dependency-plugin
- 3.6.0
+ 3.6.1
org.apache.maven.plugins
maven-shade-plugin
- 3.5.0
+ 3.5.1
com.github.nbbrd.heylogs
heylogs-maven-plugin
- 0.6.0
+ 0.7.2
de.thetaphi
forbiddenapis
- 3.5.1
+ 3.6
@@ -313,7 +324,7 @@
org.kordamp.maven
pomchecker-enforcer-rules
- 1.9.0
+ 1.10.0
org.codehaus.mojo
@@ -356,6 +367,42 @@
+
+
+ enforce-modern-api
+
+
+ !skipEnforceModernAPI
+
+
+
+
+
+ org.gaul
+ modernizer-maven-plugin
+ 2.7.0
+
+ 1.8
+
+
+
+ modernizer
+ verify
+
+ modernizer
+
+
+
+
+
+
+
+
+
+
+
+
+
gitflow-automation
@@ -369,7 +416,7 @@
com.amashchenko.maven.plugin
gitflow-maven-plugin
- 1.20.0
+ 1.21.0
v
@@ -393,7 +440,7 @@
com.github.siom79.japicmp
japicmp-maven-plugin
- 0.18.0
+ 0.18.3
true
@@ -441,7 +488,7 @@
org.apache.maven.plugins
maven-javadoc-plugin
- 3.6.0
+ 3.6.3
attach-javadocs
diff --git a/sandbox-api/pom.xml b/sandbox-api/pom.xml
index c862c9e9..5a86a4e6 100644
--- a/sandbox-api/pom.xml
+++ b/sandbox-api/pom.xml
@@ -5,7 +5,7 @@
sandbox-parent
com.github.nbbrd.sandbox
- 2.3.3
+ 2.3.4
4.0.0
diff --git a/sandbox-bom/pom.xml b/sandbox-bom/pom.xml
index 17b7f951..02d5f4f3 100644
--- a/sandbox-bom/pom.xml
+++ b/sandbox-bom/pom.xml
@@ -7,7 +7,7 @@
sandbox-parent
com.github.nbbrd.sandbox
- 2.3.3
+ 2.3.4
sandbox-bom
@@ -18,7 +18,7 @@
https://github.com/nbbrd/sandbox
- v0.41.1
+ v0.44.1
@@ -41,7 +41,7 @@
org.codehaus.mojo
flatten-maven-plugin
- 1.5.0
+ 1.6.0
bom
${project.build.directory}
@@ -99,7 +99,7 @@
com.googlecode.maven-download-plugin
download-maven-plugin
- 1.6.8
+ 1.8.0
download-hugo-theme
@@ -151,7 +151,7 @@
org.jreleaser
jreleaser-maven-plugin
- 1.8.0
+ 1.10.0
release-assets
diff --git a/sandbox-cli/pom.xml b/sandbox-cli/pom.xml
index c53cc6c6..6b9109af 100644
--- a/sandbox-cli/pom.xml
+++ b/sandbox-cli/pom.xml
@@ -5,7 +5,7 @@
sandbox-parent
com.github.nbbrd.sandbox
- 2.3.3
+ 2.3.4
4.0.0
@@ -19,12 +19,12 @@
com.github.nbbrd.sandbox
sandbox-api
- 2.3.3
+ 2.3.4
com.github.nbbrd.sandbox
sandbox-impl
- 2.3.3
+ 2.3.4
info.picocli
diff --git a/sandbox-cli/src/test/resources/Main.md b/sandbox-cli/src/test/resources/Main.md
new file mode 100644
index 00000000..145e79f0
--- /dev/null
+++ b/sandbox-cli/src/test/resources/Main.md
@@ -0,0 +1,206 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [Unreleased]
+
+### Added
+
+- Added Dutch translation
+
+### Fixed
+
+- Fixed foldouts in Dutch translation
+
+## [1.1.0] - 2019-02-15
+
+### Added
+
+- Danish translation from [@frederikspang](https://github.com/frederikspang).
+- Georgian translation from [@tatocaster](https://github.com/tatocaster).
+- Changelog inconsistency section in Bad Practices
+
+### Changed
+
+- Fixed typos in Italian translation from [@lorenzo-arena](https://github.com/lorenzo-arena).
+- Fixed typos in Indonesian translation from [@ekojs](https://github.com/ekojs).
+
+## [1.0.0] - 2017-06-20
+
+### Added
+
+- New visual identity by [@tylerfortune8](https://github.com/tylerfortune8).
+- Version navigation.
+- Links to latest released version in previous versions.
+- "Why keep a changelog?" section.
+- "Who needs a changelog?" section.
+- "How do I make a changelog?" section.
+- "Frequently Asked Questions" section.
+- New "Guiding Principles" sub-section to "How do I make a changelog?".
+- Simplified and Traditional Chinese translations from [@tianshuo](https://github.com/tianshuo).
+- German translation from [@mpbzh](https://github.com/mpbzh) & [@Art4](https://github.com/Art4).
+- Italian translation from [@azkidenz](https://github.com/azkidenz).
+- Swedish translation from [@magol](https://github.com/magol).
+- Turkish translation from [@emreerkan](https://github.com/emreerkan).
+- French translation from [@zapashcanon](https://github.com/zapashcanon).
+- Brazilian Portuguese translation from [@Webysther](https://github.com/Webysther).
+- Polish translation from [@amielucha](https://github.com/amielucha) & [@m-aciek](https://github.com/m-aciek).
+- Russian translation from [@aishek](https://github.com/aishek).
+- Czech translation from [@h4vry](https://github.com/h4vry).
+- Slovak translation from [@jkostolansky](https://github.com/jkostolansky).
+- Korean translation from [@pierceh89](https://github.com/pierceh89).
+- Croatian translation from [@porx](https://github.com/porx).
+- Persian translation from [@Hameds](https://github.com/Hameds).
+- Ukrainian translation from [@osadchyi-s](https://github.com/osadchyi-s).
+
+### Changed
+
+- Start using "changelog" over "change log" since it's the common usage.
+- Start versioning based on the current English version at 0.3.0 to help
+ translation authors keep things up-to-date.
+- Rewrite "What makes unicorns cry?" section.
+- Rewrite "Ignoring Deprecations" sub-section to clarify the ideal
+ scenario.
+- Improve "Commit log diffs" sub-section to further argument against
+ them.
+- Merge "Why can’t people just use a git log diff?" with "Commit log
+ diffs"
+- Fix typos in Simplified Chinese and Traditional Chinese translations.
+- Fix typos in Brazilian Portuguese translation.
+- Fix typos in Turkish translation.
+- Fix typos in Czech translation.
+- Fix typos in Swedish translation.
+- Improve phrasing in French translation.
+- Fix phrasing and spelling in German translation.
+
+### Removed
+
+- Section about "changelog" vs "CHANGELOG".
+
+## [0.3.0] - 2015-12-03
+
+### Added
+
+- RU translation from [@aishek](https://github.com/aishek).
+- pt-BR translation from [@tallesl](https://github.com/tallesl).
+- es-ES translation from [@ZeliosAriex](https://github.com/ZeliosAriex).
+
+## [0.2.0] - 2015-10-06
+
+### Changed
+
+- Remove exclusionary mentions of "open source" since this project can
+ benefit both "open" and "closed" source projects equally.
+
+## [0.1.0] - 2015-10-06
+
+### Added
+
+- Answer "Should you ever rewrite a change log?".
+
+### Changed
+
+- Improve argument against commit logs.
+- Start following [SemVer](https://semver.org) properly.
+
+## [0.0.8] - 2015-02-17
+
+### Changed
+
+- Update year to match in every README example.
+- Reluctantly stop making fun of Brits only, since most of the world
+ writes dates in a strange way.
+
+### Fixed
+
+- Fix typos in recent README changes.
+- Update outdated unreleased diff link.
+
+## [0.0.7] - 2015-02-16
+
+### Added
+
+- Link, and make it obvious that date format is ISO 8601.
+
+### Changed
+
+- Clarified the section on "Is there a standard change log format?".
+
+### Fixed
+
+- Fix Markdown links to tag comparison URL with footnote-style links.
+
+## [0.0.6] - 2014-12-12
+
+### Added
+
+- README section on "yanked" releases.
+
+## [0.0.5] - 2014-08-09
+
+### Added
+
+- Markdown links to version tags on release headings.
+- Unreleased section to gather unreleased changes and encourage note
+ keeping prior to releases.
+
+## [0.0.4] - 2014-08-09
+
+### Added
+
+- Better explanation of the difference between the file ("CHANGELOG")
+ and its function "the change log".
+
+### Changed
+
+- Refer to a "change log" instead of a "CHANGELOG" throughout the site
+ to differentiate between the file and the purpose of the file — the
+ logging of changes.
+
+### Removed
+
+- Remove empty sections from CHANGELOG, they occupy too much space and
+ create too much noise in the file. People will have to assume that the
+ missing sections were intentionally left out because they contained no
+ notable changes.
+
+## [0.0.3] - 2014-08-09
+
+### Added
+
+- "Why should I care?" section mentioning The Changelog podcast.
+
+## [0.0.2] - 2014-07-10
+
+### Added
+
+- Explanation of the recommended reverse chronological release ordering.
+
+## [0.0.1] - 2014-05-31
+
+### Added
+
+- This CHANGELOG file to hopefully serve as an evolving example of a
+ standardized open source project CHANGELOG.
+- CNAME file to enable GitHub Pages custom domain
+- README now contains answers to common questions about CHANGELOGs
+- Good examples and basic guidelines, including proper date formatting.
+- Counter-examples: "What makes unicorns cry?"
+
+[unreleased]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.1.0...HEAD
+[1.1.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.0.0...v1.1.0
+[1.0.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.3.0...v1.0.0
+[0.3.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.2.0...v0.3.0
+[0.2.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.1.0...v0.2.0
+[0.1.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.8...v0.1.0
+[0.0.8]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.7...v0.0.8
+[0.0.7]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.6...v0.0.7
+[0.0.6]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.5...v0.0.6
+[0.0.5]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.4...v0.0.5
+[0.0.4]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.3...v0.0.4
+[0.0.3]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.2...v0.0.3
+[0.0.2]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.1...v0.0.2
+[0.0.1]: https://github.com/olivierlacan/keep-a-changelog/releases/tag/v0.0.1
\ No newline at end of file
diff --git a/sandbox-desktop/pom.xml b/sandbox-desktop/pom.xml
index bc9b1779..c80263b5 100644
--- a/sandbox-desktop/pom.xml
+++ b/sandbox-desktop/pom.xml
@@ -7,7 +7,7 @@
sandbox-parent
com.github.nbbrd.sandbox
- 2.3.3
+ 2.3.4
sandbox-desktop
@@ -20,12 +20,12 @@
com.github.nbbrd.sandbox
sandbox-api
- 2.3.3
+ 2.3.4
com.github.nbbrd.sandbox
sandbox-impl
- 2.3.3
+ 2.3.4
com.github.nbbrd.java-desktop-util
diff --git a/sandbox-impl/pom.xml b/sandbox-impl/pom.xml
index 80aec168..0adcd737 100644
--- a/sandbox-impl/pom.xml
+++ b/sandbox-impl/pom.xml
@@ -5,7 +5,7 @@
sandbox-parent
com.github.nbbrd.sandbox
- 2.3.3
+ 2.3.4
4.0.0
@@ -19,7 +19,7 @@
com.github.nbbrd.sandbox
sandbox-api
- 2.3.3
+ 2.3.4
com.github.lalyos