Skip to content

Commit 0b229d2

Browse files
dannyhaakclaude
andcommitted
chore: add PyPI/pub.dev workflows and CHANGELOG for v3.0.0
- Add release-pypi.yml workflow (builds .NET DLLs, publishes to PyPI) - Update release-pub.yml (automated pub.dev publish with service account key) - Create CHANGELOG.md with full version history Secrets needed before tagging v3.0.0: - PYPI_API_TOKEN for PyPI publishing - GOOGLE_SERVICE_ACCOUNT_KEY for pub.dev publishing Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 64338cb commit 0b229d2

3 files changed

Lines changed: 133 additions & 5 deletions

File tree

‎.github/workflows/release-pub.yml‎

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ on:
44
push:
55
tags: ["v*"]
66

7+
# OIDC token for pub.dev authentication (no secrets needed)
8+
permissions:
9+
id-token: write
10+
711
jobs:
812
publish:
913
runs-on: ubuntu-latest
@@ -13,15 +17,25 @@ jobs:
1317
- name: Setup Flutter
1418
uses: subosito/flutter-action@v2
1519
with:
16-
flutter-version: "3.24.0"
20+
channel: stable
21+
22+
- name: Set version from tag
23+
run: |
24+
VERSION="${GITHUB_REF_NAME#v}"
25+
cd sdk/flutter/tag_data_translation
26+
sed -i "s/^version: .*/version: ${VERSION}/" pubspec.yaml
1727
1828
- name: Get dependencies
1929
run: cd sdk/flutter/tag_data_translation && flutter pub get
2030

2131
- name: Analyze
2232
run: cd sdk/flutter/tag_data_translation && flutter analyze
2333

24-
# TODO: Add pub.dev publishing
25-
# Requires: GOOGLE_SERVICE_ACCOUNT_KEY secret for pub.dev authentication
26-
# - name: Publish to pub.dev
27-
# run: cd sdk/flutter/tag_data_translation && flutter pub publish --force
34+
# Uses dart-lang/setup-dart's reusable workflow for OIDC-based publishing.
35+
# Requires: enable "publishing from GitHub Actions" on pub.dev package admin
36+
# with repository dannyhaak/TagDataTranslation and tag pattern v{{version}}.
37+
- name: Setup Dart
38+
uses: dart-lang/setup-dart@v1
39+
40+
- name: Publish to pub.dev
41+
run: cd sdk/flutter/tag_data_translation && dart pub publish --force

‎.github/workflows/release-pypi.yml‎

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Release PyPI
2+
3+
on:
4+
push:
5+
tags: ["v*"]
6+
7+
permissions:
8+
contents: read
9+
10+
jobs:
11+
publish:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v4
15+
16+
- name: Setup .NET
17+
uses: actions/setup-dotnet@v4
18+
with:
19+
dotnet-version: 10.0.x
20+
21+
- name: Setup Python
22+
uses: actions/setup-python@v5
23+
with:
24+
python-version: "3.12"
25+
26+
- name: Set version from tag
27+
run: |
28+
VERSION="${GITHUB_REF_NAME#v}"
29+
sed -i "s/^version = .*/version = \"${VERSION}\"/" pip/pyproject.toml
30+
31+
- name: Build .NET DLLs for pip package
32+
run: python pip/scripts/build.py
33+
34+
- name: Build pip package
35+
run: |
36+
pip install build
37+
cd pip && python -m build
38+
39+
- name: Publish to PyPI
40+
uses: pypa/gh-action-pypi-publish@release/v1
41+
with:
42+
password: ${{ secrets.PYPI_API_TOKEN }}
43+
packages-dir: pip/dist/

‎CHANGELOG.md‎

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# Changelog
2+
3+
All notable changes to TagDataTranslation will be documented in this file.
4+
5+
## [3.0.0] - 2026-02-25
6+
7+
### Added
8+
- **Cross-platform SDKs**: npm (WASM), Python (pythonnet), Swift (NativeAOT), Android (NativeAOT), Flutter (dart:ffi)
9+
- .NET MAUI target frameworks: Android, iOS, macCatalyst
10+
- `LoadErrors` property for debugging scheme loading failures
11+
- `InternalsVisibleTo` for test project access
12+
- Performance benchmarks project (BenchmarkDotNet)
13+
- Python example app
14+
- Node.js example app
15+
- PyPI publish workflow
16+
- pub.dev publish workflow
17+
18+
### Changed
19+
- License changed to Business Source License 1.1 (BSL 1.1)
20+
- Performance optimizations: regex caching, grammar token caching, pre-sorted fields/rules, BinaryConverter lookup tables
21+
- README updated with all platform availability and benchmark results
22+
23+
### Fixed
24+
- WASM build error (missing `using System`, `SupportedOSPlatform` attribute)
25+
- Android managed publish pipeline (DLLs not copied to output directory)
26+
- Android native build script (NDK lld linker auto-detection)
27+
- Nullable warnings in Android and WASM wrappers
28+
- npm release workflow using .NET 8.0 instead of 10.0
29+
30+
## [2.3.0]
31+
32+
### Added
33+
- TDS 2.3 support with 12 new '++' schemes for custom hostname encoding in Digital Link URIs
34+
- SGTIN++, SSCC++, SGLN++, GRAI++, GIAI++, GSRN++, GSRNP++, GDTI++, SGCN++, ITIP++, CPI++, DSGTIN++
35+
- Hostname encoding with Code 40 and 7-bit ASCII optimization tables
36+
- Variable-length alphanumeric encoding (Section 14.5.6)
37+
38+
## [2.1.0]
39+
40+
### Added
41+
- `TryTranslate` and `TryTranslateDetails` for exception-free high-throughput translation
42+
43+
## [2.0.1]
44+
45+
### Changed
46+
- Multi-targeting support for .NET 8.0, 9.0, and 10.0
47+
48+
## [2.0.0]
49+
50+
### Added
51+
- TDT 2.2 with JSON-based scheme definitions
52+
- GS1 Digital Link URI generation and parsing
53+
- New schemes: DSGTIN+, GDTI-113, and more
54+
- GS1 Company Prefix lookup
55+
- Filter Value tables
56+
57+
### Changed
58+
- Scheme definitions migrated from XML to JSON
59+
60+
## [1.1.5]
61+
62+
### Fixed
63+
- Updated GCP prefix file
64+
- ITIP encoding fixes
65+
66+
## [1.0.0]
67+
68+
### Added
69+
- Initial release with TDT 1.6/1.11 support
70+
- Core translation engine
71+
- SGTIN-96, SSCC-96, SGLN, GRAI, GIAI, GSRN, GDTI, SGCN schemes

0 commit comments

Comments
 (0)