Skip to content

Commit 418e231

Browse files
Release 2025.10.24 (#5)
--------- Co-authored-by: Jean-Pierre Fortune <jean-pierre.fortune@ialto.com>
1 parent 60a2632 commit 418e231

File tree

6 files changed

+896
-34
lines changed

6 files changed

+896
-34
lines changed

CHANGELOG.md

Lines changed: 111 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,121 @@
22
All notable changes to this project will be documented in this file.
33

44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5-
and this project uses a **date-based versioning scheme** (`YYYY.MM.DD`).
5+
and this project uses a **date-based versioning scheme** (`YYYY.MM.DD`).
6+
7+
Legend: 🆕 New • ❌ Removed • 🟢 Patch • 🔵 Minor • 🔴 Major
68

79
## [Unreleased]
810

11+
## [2025.10.24]
12+
13+
| Component | Version | Status | Prev.<br>Version |
14+
|:------------------------------------------------|:-------:|:------:|:----------------:|
15+
| **Keypop Dependencies** | | | |
16+
| [keypop-reader-java-api] | `2.0.1` | | |
17+
| [keypop-calypso-card-java-api] | `2.1.2` | | |
18+
| [keypop-calypso-crypto-legacysam-java-api] | `0.7.0` | | |
19+
| [keypop-storagecard-java-api] | `0.3.0` | | |
20+
| | | | |
21+
| **Keyple Core** | | | |
22+
| [keyple-common-java-api] | `2.0.2` | | |
23+
| [keyple-plugin-storagecard-java-api] | `1.0.0` | | |
24+
| [keyple-service-java-lib] | `3.3.6` | 🟢 | `3.3.5` |
25+
| [keyple-service-resource-java-lib] | `3.1.0` | | |
26+
| [keyple-util-java-lib] | `2.4.0` | | |
27+
| | | | |
28+
| **Keyple Distributed** | | | |
29+
| [keyple-distributed-local-java-lib] | `2.5.2` | | |
30+
| [keyple-distributed-network-java-lib] | `2.5.1` | | |
31+
| [keyple-distributed-remote-java-lib] | `2.5.1` | | |
32+
| | | | |
33+
| **Keyple Interop** | | | |
34+
| [keyple-interop-jsonapi-client-kmp-lib] | `0.1.6` | | |
35+
| [keyple-interop-localreader-nfcmobile-kmp-lib] | `0.1.6` | | |
36+
| | | | |
37+
| **Keyple Card Extensions** | | | |
38+
| [keyple-card-calypso-java-lib] | `3.1.9` | | |
39+
| [keyple-card-calypso-crypto-legacysam-java-lib] | `0.9.0` | | |
40+
| [keyple-card-calypso-crypto-pki-java-lib] | `0.2.3` | | |
41+
| [keyple-card-generic-java-lib] | `3.1.2` | | |
42+
| | | | |
43+
| **Keyple Reader Plugins** | | | |
44+
| [keyple-plugin-android-nfc-java-lib] | `3.1.0` | | |
45+
| [keyple-plugin-android-omapi-java-lib] | `2.1.0` | | |
46+
| [keyple-plugin-cardresource-java-lib] | `2.0.1` | | |
47+
| [keyple-plugin-pcsc-java-lib] | `2.5.3` | 🟢 | `2.5.2` |
48+
| [keyple-plugin-stub-java-lib] | `2.2.1` | | |
49+
950
## [2025.09.12]
1051
First publication of the **Keyple Java BOM**.
1152
This release defines a consistent set of versions for **Keyple** and **Keypop** artifacts.
12-
### Keypop Dependencies
13-
- `org.eclipse.keypop:keypop-reader-java-api:2.0.1`
14-
- `org.eclipse.keypop:keypop-calypso-card-java-api:2.1.2`
15-
- `org.eclipse.keypop:keypop-calypso-crypto-legacysam-java-api:0.7.0`
16-
- `org.eclipse.keypop:keypop-storagecard-java-api:0.3.0`
17-
### Keyple Core
18-
- `org.eclipse.keyple:keyple-common-java-api:2.0.2`
19-
- `org.eclipse.keyple:keyple-plugin-storagecard-java-api:1.0.0`
20-
- `org.eclipse.keyple:keyple-service-java-lib:3.3.5`
21-
- `org.eclipse.keyple:keyple-service-resource-java-lib:3.1.0`
22-
- `org.eclipse.keyple:keyple-util-java-lib:2.4.0`
23-
### Keyple Distributed
24-
- `org.eclipse.keyple:keyple-distributed-local-java-lib:2.5.2`
25-
- `org.eclipse.keyple:keyple-distributed-network-java-lib:2.5.1`
26-
- `org.eclipse.keyple:keyple-distributed-remote-java-lib:2.5.1`
27-
### Keyple Interop
28-
- `org.eclipse.keyple:keyple-interop-jsonapi-client-kmp-lib:0.1.6` (+ JVM, Android, iOS variants)
29-
- `org.eclipse.keyple:keyple-interop-localreader-nfcmobile-kmp-lib:0.1.6` (+ JVM, Android, iOS variants)
30-
### Keyple Card Extensions
31-
- `org.eclipse.keyple:keyple-card-calypso-java-lib:3.1.9`
32-
- `org.eclipse.keyple:keyple-card-calypso-crypto-legacysam-java-lib:0.9.0`
33-
- `org.eclipse.keyple:keyple-card-calypso-crypto-pki-java-lib:0.2.3`
34-
- `org.eclipse.keyple:keyple-card-generic-java-lib:3.1.2`
35-
### Keyple Reader Plugins
36-
- `org.eclipse.keyple:keyple-plugin-android-nfc-java-lib:3.1.0`
37-
- `org.eclipse.keyple:keyple-plugin-android-omapi-java-lib:2.1.0`
38-
- `org.eclipse.keyple:keyple-plugin-cardresource-java-lib:2.0.1`
39-
- `org.eclipse.keyple:keyple-plugin-pcsc-java-lib:2.5.2`
40-
- `org.eclipse.keyple:keyple-plugin-stub-java-lib:2.2.1`
41-
42-
[Unreleased]: https://github.com/eclipse-keyple/keyple-java-bom/compare/2025.09.12...HEAD
53+
54+
| Component | Version | Status |
55+
|:------------------------------------------------|:-------:|:------:|
56+
| **Keypop Dependencies** | | |
57+
| [keypop-reader-java-api] | `2.0.1` | 🆕 |
58+
| [keypop-calypso-card-java-api] | `2.1.2` | 🆕 |
59+
| [keypop-calypso-crypto-legacysam-java-api] | `0.7.0` | 🆕 |
60+
| [keypop-storagecard-java-api] | `0.3.0` | 🆕 |
61+
| | | |
62+
| **Keyple Core** | | |
63+
| [keyple-common-java-api] | `2.0.2` | 🆕 |
64+
| [keyple-plugin-storagecard-java-api] | `1.0.0` | 🆕 |
65+
| [keyple-service-java-lib] | `3.3.5` | 🆕 |
66+
| [keyple-service-resource-java-lib] | `3.1.0` | 🆕 |
67+
| [keyple-util-java-lib] | `2.4.0` | 🆕 |
68+
| | | |
69+
| **Keyple Distributed** | | |
70+
| [keyple-distributed-local-java-lib] | `2.5.2` | 🆕 |
71+
| [keyple-distributed-network-java-lib] | `2.5.1` | 🆕 |
72+
| [keyple-distributed-remote-java-lib] | `2.5.1` | 🆕 |
73+
| | | |
74+
| **Keyple Interop** | | |
75+
| [keyple-interop-jsonapi-client-kmp-lib] | `0.1.6` | 🆕 |
76+
| [keyple-interop-localreader-nfcmobile-kmp-lib] | `0.1.6` | 🆕 |
77+
| | | |
78+
| **Keyple Card Extensions** | | |
79+
| [keyple-card-calypso-java-lib] | `3.1.9` | 🆕 |
80+
| [keyple-card-calypso-crypto-legacysam-java-lib] | `0.9.0` | 🆕 |
81+
| [keyple-card-calypso-crypto-pki-java-lib] | `0.2.3` | 🆕 |
82+
| [keyple-card-generic-java-lib] | `3.1.2` | 🆕 |
83+
| | | |
84+
| **Keyple Reader Plugins** | | |
85+
| [keyple-plugin-android-nfc-java-lib] | `3.1.0` | 🆕 |
86+
| [keyple-plugin-android-omapi-java-lib] | `2.1.0` | 🆕 |
87+
| [keyple-plugin-cardresource-java-lib] | `2.0.1` | 🆕 |
88+
| [keyple-plugin-pcsc-java-lib] | `2.5.2` | 🆕 |
89+
| [keyple-plugin-stub-java-lib] | `2.2.1` | 🆕 |
90+
91+
[Unreleased]: https://github.com/eclipse-keyple/keyple-java-bom/compare/2025.10.24...HEAD
92+
[2025.10.24]: https://github.com/eclipse-keyple/keyple-java-bom/compare/2025.09.12...2025.10.24
4393
[2025.09.12]: https://github.com/eclipse-keyple/keyple-java-bom/releases/tag/2025.09.12
94+
95+
[keypop-reader-java-api]: https://github.com/eclipse-keypop/keypop-reader-java-api/releases
96+
[keypop-calypso-card-java-api]: https://github.com/eclipse-keypop/keypop-calypso-card-java-api/releases
97+
[keypop-calypso-crypto-legacysam-java-api]: https://github.com/eclipse-keypop/keypop-calypso-crypto-legacysam-java-api/releases
98+
[keypop-storagecard-java-api]: https://github.com/eclipse-keypop/keypop-storagecard-java-api/releases
99+
100+
[keyple-common-java-api]: https://github.com/eclipse-keyple/keyple-common-java-api/releases
101+
[keyple-plugin-storagecard-java-api]: https://github.com/eclipse-keyple/keyple-plugin-storagecard-java-api/releases
102+
[keyple-service-java-lib]: https://github.com/eclipse-keyple/keyple-service-java-lib/releases
103+
[keyple-service-resource-java-lib]: https://github.com/eclipse-keyple/keyple-service-resource-java-lib/releases
104+
[keyple-util-java-lib]: https://github.com/eclipse-keyple/keyple-util-java-lib/releases
105+
106+
[keyple-distributed-local-java-lib]: https://github.com/eclipse-keyple/keyple-distributed-local-java-lib/releases
107+
[keyple-distributed-network-java-lib]: https://github.com/eclipse-keyple/keyple-distributed-network-java-lib/releases
108+
[keyple-distributed-remote-java-lib]: https://github.com/eclipse-keyple/keyple-distributed-remote-java-lib/releases
109+
110+
[keyple-interop-jsonapi-client-kmp-lib]: https://github.com/eclipse-keyple/keyple-interop-jsonapi-client-kmp-lib/releases
111+
[keyple-interop-localreader-nfcmobile-kmp-lib]: https://github.com/eclipse-keyple/keyple-interop-localreader-nfcmobile-kmp-lib/releases
112+
113+
[keyple-card-calypso-java-lib]: https://github.com/eclipse-keyple/keyple-card-calypso-java-lib/releases
114+
[keyple-card-calypso-crypto-legacysam-java-lib]: https://github.com/eclipse-keyple/keyple-card-calypso-crypto-legacysam-java-lib/releases
115+
[keyple-card-calypso-crypto-pki-java-lib]: https://github.com/eclipse-keyple/keyple-card-calypso-crypto-pki-java-lib/releases
116+
[keyple-card-generic-java-lib]: https://github.com/eclipse-keyple/keyple-card-generic-java-lib/releases
117+
118+
[keyple-plugin-android-nfc-java-lib]: https://github.com/eclipse-keyple/keyple-plugin-android-nfc-java-lib/releases
119+
[keyple-plugin-android-omapi-java-lib]: https://github.com/eclipse-keyple/keyple-plugin-android-omapi-java-lib/releases
120+
[keyple-plugin-cardresource-java-lib]: https://github.com/eclipse-keyple/keyple-plugin-cardresource-java-lib/releases
121+
[keyple-plugin-pcsc-java-lib]: https://github.com/eclipse-keyple/keyple-plugin-pcsc-java-lib/releases
122+
[keyple-plugin-stub-java-lib]: https://github.com/eclipse-keyple/keyple-plugin-stub-java-lib/releases

build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ dependencies {
3232
// Keyple core
3333
api("org.eclipse.keyple:keyple-common-java-api:2.0.2")
3434
api("org.eclipse.keyple:keyple-plugin-storagecard-java-api:1.0.0")
35-
api("org.eclipse.keyple:keyple-service-java-lib:3.3.5")
35+
api("org.eclipse.keyple:keyple-service-java-lib:3.3.6")
3636
api("org.eclipse.keyple:keyple-service-resource-java-lib:3.1.0")
3737
api("org.eclipse.keyple:keyple-util-java-lib:2.4.0")
3838
// Keyple distributed
@@ -61,7 +61,7 @@ dependencies {
6161
api("org.eclipse.keyple:keyple-plugin-android-nfc-java-lib:3.1.0")
6262
api("org.eclipse.keyple:keyple-plugin-android-omapi-java-lib:2.1.0")
6363
api("org.eclipse.keyple:keyple-plugin-cardresource-java-lib:2.0.1")
64-
api("org.eclipse.keyple:keyple-plugin-pcsc-java-lib:2.5.2")
64+
api("org.eclipse.keyple:keyple-plugin-pcsc-java-lib:2.5.3")
6565
api("org.eclipse.keyple:keyple-plugin-stub-java-lib:2.2.1")
6666
}
6767
}

tools/README.md

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
# Automatic CHANGELOG Update Script
2+
3+
## Description
4+
5+
`update_changelog.py` is a Python script that **automates the update** of the `CHANGELOG.md` file based on version changes detected in `build.gradle.kts`.
6+
7+
## Features
8+
9+
- **Automatic change detection** between `build.gradle.kts` and the latest version in `CHANGELOG.md`:
10+
- 🆕 **New dependencies**: automatically detected
11+
-**Removed dependencies**: displayed in their original category with their last version
12+
- 🟢 **Patch**: x.y.z → x.y.(z+n)
13+
- 🔵 **Minor**: x.y.z → x.(y+n).z
14+
- 🔴 **Major**: x.y.z → (x+n).y.z
15+
- Grouping of KMP libraries (a single line for the base library)
16+
- Preservation of the dependencies' order as defined in `build.gradle.kts`
17+
- **Automatic update of reference links**:
18+
- Version links `[Unreleased]` and `[version]`
19+
- Automatic addition of links for new dependencies (from organization eclipse-keypop or eclipse-keyple)
20+
- Automatic removal of links for dependencies that have been dropped
21+
- Compliance with the "Keep a Changelog" format
22+
23+
-----
24+
25+
## Prerequisites
26+
27+
- Python 3.7 or higher
28+
- The `build.gradle.kts` and `CHANGELOG.md` files must be located at the project root
29+
30+
-----
31+
32+
## Usage
33+
34+
**Important**: The script must be executed from the project root directory.
35+
36+
### Basic Usage (Current Date)
37+
38+
```bash
39+
# On Windows
40+
.\tools\update_changelog.bat
41+
42+
# On Linux/Mac
43+
./tools/update_changelog.sh
44+
45+
# With Python directly (all systems)
46+
python tools/update_changelog.py
47+
```
48+
49+
This command uses the current date in the format `YYYY.MM.DD` as the version number.
50+
51+
### Specifying a Custom Date
52+
53+
```bash
54+
# On Windows
55+
.\tools\update_changelog.bat 2025.10.30
56+
57+
# On Linux/Mac
58+
./tools/update_changelog.sh 2025.10.30
59+
60+
# With Python directly (all systems)
61+
python tools/update_changelog.py 2025.10.30
62+
```
63+
64+
The date format must be `YYYY.MM.DD`.
65+
66+
-----
67+
68+
## Behavior
69+
70+
1. **Dependency Parsing**: The script analyzes `build.gradle.kts` and extracts all dependencies while preserving their order
71+
2. **Comparison**: It compares these versions with those in the latest section of `CHANGELOG.md`
72+
3. **Change Detection**:
73+
- If no changes are detected: displays a message and makes no modification
74+
- If changes are detected: creates a new section with the appropriate statuses
75+
4. **Update**: Adds the new section after `[Unreleased]` and updates the reference links
76+
77+
-----
78+
79+
## Examples
80+
81+
### Example 1: No Changes
82+
83+
```bash
84+
$ python tools/update_changelog.py
85+
Updating CHANGELOG.md for version 2025.10.23...
86+
Found 23 dependencies in build.gradle.kts
87+
Latest CHANGELOG version: 2025.10.23
88+
No changes detected between build.gradle.kts and the latest CHANGELOG version.
89+
```
90+
91+
### Example 2: With Changes
92+
93+
```bash
94+
$ python tools/update_changelog.py 2025.10.30
95+
Updating CHANGELOG.md for version 2025.10.30...
96+
Found 23 dependencies in build.gradle.kts
97+
Latest CHANGELOG version: 2025.10.23
98+
CHANGELOG.md updated successfully with version 2025.10.30
99+
```
100+
101+
The `CHANGELOG.md` file will be updated with:
102+
103+
- A new section `## [2025.10.30]`
104+
- The statuses 🟢/🔵/🔴 for each modified component
105+
- The "Prev. Version" column showing the old version
106+
- Updated links:
107+
```
108+
[Unreleased]: https://github.com/eclipse-keyple/keyple-java-bom/compare/2025.10.30...HEAD
109+
[2025.10.30]: https://github.com/eclipse-keyple/keyple-java-bom/compare/2025.10.23...2025.10.30
110+
```
111+
112+
-----
113+
114+
## Generated Structure
115+
116+
The new section follows this format:
117+
118+
```markdown
119+
## [2025.10.30]
120+
121+
| Component | Version | Status | Prev.<br>Version |
122+
|:-----------------------------------|:-------:|:------:|:----------------:|
123+
| **Keypop Dependencies** | | | |
124+
| [keypop-reader-java-api] | `2.0.1` | | |
125+
| ... | | | |
126+
| | | | |
127+
| **Keyple Core** | | | |
128+
| [keyple-common-java-api] | `2.0.2` | | |
129+
| [keyple-service-java-lib] | `3.4.0` | 🔵 | `3.3.6` |
130+
| [keyple-service-resource-java-lib] | `4.0.0` | 🔴 | `3.1.0` |
131+
| [keyple-test-java-lib] | `1.0.0` | 🆕 | |
132+
| [keyple-util-java-lib] | `2.4.0` || |
133+
| ... | | | |
134+
```
135+
136+
In this example:
137+
138+
- `keyple-service-java-lib`: Minor change (3.3.6 → 3.4.0) marked 🔵
139+
- `keyple-service-resource-java-lib`: Major change (3.1.0 → 4.0.0) marked 🔴
140+
- `keyple-test-java-lib`: New dependency marked 🆕
141+
- `keyple-util-java-lib`: Removed dependency marked ❌
142+
143+
### Reference Links Update
144+
145+
The script also automatically updates the links at the bottom of the file:
146+
147+
```markdown
148+
[Unreleased]: https://github.com/eclipse-keyple/keyple-java-bom/compare/2025.10.30...HEAD
149+
[2025.10.30]: https://github.com/eclipse-keyple/keyple-java-bom/compare/2025.10.23...2025.10.30
150+
151+
[keypop-reader-java-api]: https://github.com/eclipse-keypop/keypop-reader-java-api/releases
152+
...
153+
[keyple-test-java-lib]: https://github.com/eclipse-keyple/keyple-test-java-lib/releases
154+
...
155+
```
156+
157+
- **New dependencies**: the link is automatically added in the appropriate section (eclipse-keypop or eclipse-keyple)
158+
- **Removed dependencies**: the link is automatically removed
159+
160+
-----
161+
162+
## Notes
163+
164+
- The script respects the exact order of dependencies as defined in `build.gradle.kts`
165+
- KMP libraries with variants (-jvm, -android, -iosarm64, etc.) are grouped into a single line
166+
- Only components whose version has changed will have a status and a value in "Prev. Version"
167+
- New dependencies (🆕) and version changes (🟢🔵🔴) appear in the order of the `build.gradle.kts` file
168+
- Removed dependencies (❌) appear after the current dependencies of their original category
169+
- If an entire category is removed, it appears at the end of the table with its dependencies marked ❌

tools/update_changelog.bat

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
@echo off
2+
REM Script to update CHANGELOG.md
3+
REM Usage: update_changelog.bat [YYYY.MM.DD]
4+
5+
REM Save current directory
6+
set CURRENT_DIR=%CD%
7+
8+
REM Move to project root directory (parent of tools folder)
9+
cd /d "%~dp0.."
10+
11+
REM Execute Python script from tools folder
12+
python "%~dp0update_changelog.py" %*
13+
14+
REM Restore current directory
15+
cd /d "%CURRENT_DIR%"

0 commit comments

Comments
 (0)