Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
188 commits
Select commit Hold shift + click to select a range
24147c4
cpu and memory optimizations
yuzawa-san Jul 20, 2024
d14374d
zero copy split
yuzawa-san Jul 26, 2024
f7b9f73
optimize fl,mt,or,tx
yuzawa-san Nov 6, 2024
8595a96
update mt
yuzawa-san Nov 6, 2024
f3f8c3f
remove microbenchmarking
yuzawa-san Dec 9, 2024
165d8ec
fewer substrings
yuzawa-san Mar 5, 2025
564bda1
fibonacci optimization
yuzawa-san Mar 5, 2025
0c9a10f
annotate tests
yuzawa-san Mar 5, 2025
68788e1
loop variables
yuzawa-san Mar 5, 2025
a79dc78
DI IA NE NH NJ TN
yuzawa-san Mar 24, 2025
c099e37
make Segments smaller
yuzawa-san Mar 24, 2025
6e6709d
optimize encoding
yuzawa-san Mar 25, 2025
4da705c
use BitSet to represent List<Integer>
yuzawa-san Mar 25, 2025
c83f58d
initialize segments once
yuzawa-san Mar 25, 2025
d30798b
more efficient grouping in range encoders
yuzawa-san Mar 28, 2025
dcc958d
store fields in list instead of map
yuzawa-san Mar 28, 2025
0702f1b
use StringBuilders to avoid copies
yuzawa-san Mar 28, 2025
8cf0bcc
store dirty on DataType
yuzawa-san Mar 28, 2025
bcee628
detect external modification of values
yuzawa-san Mar 29, 2025
949a235
fix tests
yuzawa-san Apr 1, 2025
6323d96
move and rename
yuzawa-san Apr 1, 2025
caff49f
move and rename
yuzawa-san Apr 1, 2025
62e0b2d
remove
yuzawa-san Apr 1, 2025
56a9d68
cleanup
yuzawa-san Apr 1, 2025
830665d
smaller max size
yuzawa-san Apr 10, 2025
749fc88
sonarqube fixes
yuzawa-san Apr 10, 2025
c72610f
trailing whitespace
yuzawa-san Apr 10, 2025
eb678a4
more sonarqube
yuzawa-san Apr 10, 2025
41330b7
log when exceeding IntegerBitSet.MAX_COLLECTION_SIZE
yuzawa-san Apr 10, 2025
485a5b2
validation
yuzawa-san Apr 10, 2025
ab84b32
CharSequence.isEmpty()
yuzawa-san Apr 10, 2025
2d8d330
fix tests
yuzawa-san Apr 10, 2025
2488a16
fix tests
yuzawa-san Apr 14, 2025
2613640
clean up fixed bitfields
yuzawa-san Apr 14, 2025
7240018
add rudimentary toString implementations
yuzawa-san Apr 14, 2025
4d7c38c
use lightweight Instant
yuzawa-san Apr 14, 2025
5cc4caf
do not fetch date on every parse
yuzawa-san Apr 14, 2025
0804c21
add exception message
yuzawa-san Apr 14, 2025
83e8d5a
expose integerset on rangeentry
yuzawa-san Apr 15, 2025
560f123
clean up rebase
yuzawa-san Jun 26, 2025
e3ea164
clean up rebase
yuzawa-san Jun 26, 2025
5acf45a
clean up rebase
yuzawa-san Jun 26, 2025
8a87187
set version
yuzawa-san Jun 26, 2025
6ac876f
Merge pull request #56 from yuzawa-san/cpu-memory-optimizations
lamrowena Jul 17, 2025
9812b66
optimize hot loops
yuzawa-san Jan 12, 2026
674d03f
clean up mutability collection flow
yuzawa-san Jan 12, 2026
cd9a876
use arrays
yuzawa-san Jan 12, 2026
bf62f5f
clean up dirty flow again
yuzawa-san Jan 12, 2026
56b930e
FixedIntegerList
yuzawa-san Jan 12, 2026
8f80001
avoid itable calls to IntegerSet
yuzawa-san Jan 12, 2026
1515377
update tests
yuzawa-san Jan 13, 2026
74870a8
fixed signed byte int limit
yuzawa-san Jan 13, 2026
92cbd01
javadoc
yuzawa-san Jan 13, 2026
5070310
DirtyableList
yuzawa-san Jan 13, 2026
06f6c28
fix test
yuzawa-san Jan 13, 2026
2b97c41
remove substring
yuzawa-san Jan 15, 2026
3ab0e44
fix tests
yuzawa-san Jan 15, 2026
35ace8d
fix copy
yuzawa-san Jan 16, 2026
ed4581a
own bitset
yuzawa-san Jan 16, 2026
ec6b366
wip
yuzawa-san Jan 16, 2026
c7cc6b6
remove imports
yuzawa-san Jan 16, 2026
22b1caa
style
yuzawa-san Jan 20, 2026
e966b1e
optimize fibonacci
yuzawa-san Jan 27, 2026
3645237
optimize encode
yuzawa-san Jan 27, 2026
b569dff
convert fields to enums
yuzawa-san Jan 21, 2026
af6ab8d
thin segments
yuzawa-san Jan 21, 2026
269e8a5
move
yuzawa-san Jan 21, 2026
61524c4
dry
yuzawa-san Jan 21, 2026
842af42
dry
yuzawa-san Jan 22, 2026
80abb08
use an abstract method
yuzawa-san Jan 22, 2026
e96873e
more dry
yuzawa-san Jan 22, 2026
bbaad3c
more dry
yuzawa-san Jan 22, 2026
900b542
clean up flows
yuzawa-san Jan 23, 2026
09ef2d9
clean up hierarchy
yuzawa-san Jan 23, 2026
b9817bb
style
yuzawa-san Jan 23, 2026
cd9bb63
remove extra class
yuzawa-san Jan 23, 2026
70c65ef
use fieldkey
yuzawa-san Jan 23, 2026
3f5f9c8
toString
yuzawa-san Jan 23, 2026
f9e14b0
user headers to store state
yuzawa-san Jan 24, 2026
7639aaf
clean up registry of sections
yuzawa-san Jan 24, 2026
a9e2109
cleanup
yuzawa-san Jan 24, 2026
14e87ae
notes
yuzawa-san Jan 24, 2026
45f0c2b
use array
yuzawa-san Jan 27, 2026
fba9fbb
cleanup
yuzawa-san Jan 27, 2026
647eb79
another size
yuzawa-san Jan 27, 2026
46843c7
fix sizing
yuzawa-san Jan 28, 2026
e50a578
fix dirty on init
yuzawa-san Jan 28, 2026
1ae9e6d
;
yuzawa-san Jan 28, 2026
4e73663
upgrade slicing methodology to use indexOf
yuzawa-san Jan 28, 2026
f463f6b
substring
yuzawa-san Jan 28, 2026
a8d48c5
clear only if something was there
yuzawa-san Jan 28, 2026
9ea3b08
do base64 in blocks
yuzawa-san Jan 28, 2026
5c1d473
add base 64 test
yuzawa-san Jan 28, 2026
e09b30e
clean up maven configuration
yuzawa-san Jan 29, 2026
7e1a12f
use bit set for fixed list
yuzawa-san Feb 2, 2026
dcd562f
lazy init of collections when decode does slices
yuzawa-san Feb 3, 2026
cc1ebac
make tests pass
yuzawa-san Feb 3, 2026
e0840d0
unify bit string
yuzawa-san Feb 3, 2026
2b17ddd
remove redundant code
yuzawa-san Feb 3, 2026
b785693
consolidate and rename read/write methods
yuzawa-san Feb 3, 2026
c835146
fix packages
yuzawa-san Feb 3, 2026
2638edb
fewer field updates
yuzawa-san Feb 3, 2026
51a08ab
flip byte order
yuzawa-san Feb 3, 2026
9ed3b17
faster numeric decoders
yuzawa-san Feb 3, 2026
adcdb9b
cleanup
yuzawa-san Feb 3, 2026
8df35e0
clean up DataType
yuzawa-san Feb 9, 2026
d3fff8a
unify datatype hierarchy
yuzawa-san Feb 9, 2026
6a11348
migrate to fields
yuzawa-san Feb 10, 2026
8d87d70
fix dynamic sizing
yuzawa-san Feb 10, 2026
10bd6a4
fix tests and cleanup
yuzawa-san Feb 10, 2026
c3fdad4
remove bespoke segments
yuzawa-san Feb 10, 2026
0a1ea09
clean up us hierarchy
yuzawa-san Feb 10, 2026
6e3bb4d
cleanup
yuzawa-san Feb 10, 2026
6be47f5
fix deriveds
yuzawa-san Feb 10, 2026
bff7d39
move name
yuzawa-san Feb 10, 2026
e10dedd
add some tostring
yuzawa-san Feb 10, 2026
c430b5f
presize gpp section map
yuzawa-san Feb 11, 2026
86c27fc
clean up exceptions
yuzawa-san Feb 11, 2026
dd962e9
more clean up
yuzawa-san Feb 11, 2026
f647e9b
test field names to string
yuzawa-san Feb 11, 2026
0a3f100
fix constant names
yuzawa-san Feb 11, 2026
558aaa2
optimize validator
yuzawa-san Feb 11, 2026
1fb8dab
move source and add jacoco
yuzawa-san Feb 11, 2026
ff3f858
use SNAPSHOT instead of RC1
yuzawa-san Feb 19, 2026
620be79
Merge branch '4.X-maven-fixes' of github.com:yuzawa-san/iabgpp-java i…
yuzawa-san Feb 19, 2026
0ff66ac
spotless apply
yuzawa-san Feb 19, 2026
2fd8542
remove useless formatter on/off
yuzawa-san Feb 19, 2026
d3aca85
lazy slicing
yuzawa-san Feb 19, 2026
db1c6a1
add mn
yuzawa-san Feb 19, 2026
7ecbbc7
seamless support usnatv2
yuzawa-san Feb 19, 2026
2f9f831
Merge branch '4.X-mn' into 4.X-perf-optimizations
yuzawa-san Feb 19, 2026
32e3a5f
clean up mn
yuzawa-san Feb 26, 2026
a6b7d99
support subsection headers
yuzawa-san Feb 26, 2026
1f7ed2d
add more states
yuzawa-san Mar 6, 2026
cab1c6f
fix id
yuzawa-san Mar 6, 2026
ecb38f3
clean up conditional encoding
yuzawa-san Mar 6, 2026
69f8389
fix state
yuzawa-san Mar 6, 2026
f9d16dd
update test
yuzawa-san Mar 6, 2026
448bebd
move optional
yuzawa-san Mar 6, 2026
1b49c7d
tcf 2.3 support
yuzawa-san Mar 6, 2026
9d236d0
add tests
yuzawa-san Mar 7, 2026
c049328
remove gpc segment type
yuzawa-san Mar 7, 2026
12df6ed
add more tests
yuzawa-san Mar 7, 2026
2b3341c
add new getters
yuzawa-san Mar 7, 2026
47ae49a
return proper versions
yuzawa-san Mar 7, 2026
23cd21e
more tests
yuzawa-san Mar 7, 2026
c490328
clean up isPresent
yuzawa-san Mar 7, 2026
04eb295
clean up support for optional segments
yuzawa-san Mar 26, 2026
d14a86b
tcf 2.3 support
yuzawa-san Mar 26, 2026
afe99f8
Merge branch '4.X-2.3' of github.com:yuzawa-san/iabgpp-java into 4.X-…
yuzawa-san Mar 26, 2026
ca1ffbd
do not throw exception on contains zero or negative
yuzawa-san Apr 1, 2026
93690f8
add range entry toString
yuzawa-san Apr 1, 2026
1102e11
Update IntegerSetTest.java
yuzawa-san Apr 1, 2026
210e4ae
fix dirty setting
yuzawa-san Apr 2, 2026
1d74ee6
spotless
yuzawa-san Apr 2, 2026
c21e64f
e
yuzawa-san Apr 2, 2026
6ca6d11
clean up toString
yuzawa-san Apr 2, 2026
aa7ebc9
Merge pull request #84 from yuzawa-san/4.X-perf-optimizations
iabmayank Apr 13, 2026
aea2ff3
Merge branch 'master' of https://github.com/IABTechLab/iabgpp-java in…
yuzawa-san Apr 13, 2026
c55c459
remove extra mn segments
yuzawa-san Apr 13, 2026
ecca697
Merge pull request #95 from yuzawa-san/4.X-conflict-resolution
iabmayank Apr 13, 2026
acfe1f2
Change git pull branch from master to 4.X
iabmayank Apr 17, 2026
6c77c69
Update release name and version description in workflow
iabmayank Apr 17, 2026
a698c88
workflow file changes
xdevanshux Apr 18, 2026
26f70a9
Create 4.x-release.yml
xdevanshux Apr 18, 2026
1ff453a
pom updated
xdevanshux Apr 21, 2026
ebfc180
Project name added
xdevanshux Apr 21, 2026
1fc490e
4.0.0-RC1
xdevanshux Apr 21, 2026
a723c5c
support jdk 11 baseline
yuzawa-san May 13, 2026
1f4df2f
target java 11 and bump versions
yuzawa-san Jun 4, 2026
12c26db
Fix TcfCaV1 (Canada) OptimizedRange encoding to use Fibonacci
chuff Jun 14, 2026
db7f263
Decode legacy fixed-range TcfCaV1 strings (backwards compatibility)
chuff Jun 14, 2026
1b46ba8
Merge pull request #98 from yuzawa-san/4.X-proper-baseline
xdevanshux Jun 23, 2026
b6fdb1e
4.0.1.RC1 release
xdevanshux Jun 23, 2026
47ddf67
fix bitfield off-by-one encoding
yuzawa-san Sep 11, 2026
ca23507
Merge branch '4.X' of github.com:yuzawa-san/iabgpp-java into 4.X-subs…
yuzawa-san Sep 11, 2026
686d7dc
fix md field name
yuzawa-san Sep 22, 2026
aaf5ee8
fix decoding then encoding bug
yuzawa-san Sep 22, 2026
b46a08e
add more tests
yuzawa-san Sep 22, 2026
7658f05
clean up integerset
yuzawa-san Sep 22, 2026
4ee9369
Merge pull request #106: TcfCaV1 Fibonacci encoding
Tejasshack Sep 30, 2026
74e8fd4
Merge pull request #107: TcfCaV1 legacy fixed-range decode
Tejasshack Sep 30, 2026
677e3ee
Merge pull request #108: bitfield off-by-one encoding
Tejasshack Sep 30, 2026
711a8bb
Merge pull request #109: MD, KY, RI, IN sections and TCF 2.3 segments
Tejasshack Sep 30, 2026
c4ed676
Allow vendor ids through 16384 so ids of 10000 and above round-trip.
Tejasshack Sep 30, 2026
bebe2ed
4.0.0-RC2 Release
Tejasshack Sep 30, 2026
80ff01c
remove warnings on optimized range heuristic
yuzawa-san Oct 2, 2026
c8bcf63
add old method back in
yuzawa-san Oct 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@
# GPG_PASSPHRASE - Passphrase for the GPG key
# PAT - Personal access token with repo scope (for pushing commits/tags)
#
name: IABGPP-Java Release
name: IABGPP-Java 4.X Release

on:
workflow_dispatch:
inputs:
version:
description: 'The release version (e.g., 3.x.x)'
description: 'The release version (e.g., 4.x.x)'
required: true
default: ''

Expand Down Expand Up @@ -66,7 +66,7 @@ jobs:

# Pull latest changes from master
- name: Pull latest changes
run: git pull origin master
run: git pull origin 4.X

# Set the release version in pom.xml
- name: Set release version
Expand Down
109 changes: 109 additions & 0 deletions .github/workflows/main-workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
# Release to Maven Central via Central Publisher Portal
# https://central.sonatype.org/publish/publish-portal-guide/
#
# Required GitHub secrets (Settings → Secrets and variables → Actions):
# CENTRAL_TOKEN_USERNAME - Portal token username (from https://central.sonatype.com/usertoken)
# CENTRAL_TOKEN_PASSWORD - Portal token password (from same page; save on first view, cannot be retrieved later)
# GPG_SECRET_KEY - Armored GPG private key for signing
# GPG_PASSPHRASE - Passphrase for the GPG key
# PAT - Personal access token with repo scope (for pushing commits/tags)
#
name: IABGPP-Java 4.X Release

on:
workflow_dispatch:
inputs:
version:
description: 'The release version (e.g., 4.x.x)'
required: true
default: ''

jobs:
release:
runs-on: ubuntu-latest
steps:
# Checkout the repository with full history for tagging
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

# Set up Java
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'

# Import GPG secret key for signing
- name: Import GPG key
run: |
echo "${{ secrets.GPG_SECRET_KEY }}" > secret_key.asc
gpg --import --no-tty --batch secret_key.asc || { echo "GPG import failed"; cat secret_key.asc; exit 1; }
rm -f secret_key.asc

# Generate settings.xml with Central Publisher Portal token credentials
# Token from: https://central.sonatype.com/usertoken
- name: Create settings.xml
env:
CENTRAL_TOKEN_USERNAME: ${{ secrets.CENTRAL_TOKEN_USERNAME }}
CENTRAL_TOKEN_PASSWORD: ${{ secrets.CENTRAL_TOKEN_PASSWORD }}
run: |
mkdir -p ~/.m2
cat > ~/.m2/settings.xml << EOF
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>central</id>
<username>${CENTRAL_TOKEN_USERNAME}</username>
<password>${CENTRAL_TOKEN_PASSWORD}</password>
</server>
</servers>
</settings>
EOF

# Pull latest changes from master
- name: Pull latest changes
run: git pull origin 4.X

# Set the release version in pom.xml
- name: Set release version
run: mvn versions:set -DnewVersion=${{ github.event.inputs.version }} -DgenerateBackupPoms=false

# Build and deploy to Central Publisher Portal (mvn deploy uploads bundle and publishes)
- name: Deploy release
run: |
echo "pinentry-mode loopback" > ~/.gnupg/gpg.conf
echo "use-agent" >> ~/.gnupg/gpg.conf
export GPG_TTY=$(tty || echo /dev/tty)
mvn clean deploy --settings ~/.m2/settings.xml -Dgpg.passphrase="${{ secrets.GPG_PASSPHRASE }}" -Prelease

# Commit the release version and create a tag
- name: Commit and tag release
run: |
git config user.email "mayank@iabtechlab.com"
git config user.name "Mayank Mishra"
git add .
git commit -m "${{ github.event.inputs.version }}"
git tag "${{ github.event.inputs.version }}"

# Set the next snapshot version
- name: Set next snapshot version
run: mvn versions:set -DnextSnapshot=true -DgenerateBackupPoms=false

# Commit the snapshot version
- name: Commit snapshot version
run: |
NEW_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
git add .
git commit -m "$NEW_VERSION"

# Push commits and tags to GitHub
- name: Push changes
run: |
git status
git push; git push --tags
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
Loading
Loading