Skip to content

ICU-22993 Prototype of Modernize Calendar API #3308

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 140 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
140 commits
Select commit Hold shift + click to select a range
53615a3
ICU-22993 Prototype of Modernize Calendar API
FrankYFTang Dec 16, 2024
4c3622f
ICU-23000 Replace CharString for LocaleBased
FrankYFTang Jan 4, 2025
6091406
ICU-22991 Reduce fStamp to 8 bits
FrankYFTang Jan 6, 2025
b2a47f9
ICU-22954 Delete copy & assign from IcuTestErrorCode.
roubert Dec 30, 2024
df0422e
ICU-22954 Workaround: Replace std::u16string member with UnicodeString&.
roubert Dec 30, 2024
c49a9c2
ICU-22713 Delete long since dead code.
roubert Dec 20, 2024
b1acce6
ICU-22713 Delete unused files.
roubert Dec 20, 2024
a8d9f47
ICU-22713 Delete layout/DataDrivenTest.
roubert Dec 20, 2024
6f93c07
ICU-22954 Revert to using std::u16string instead of UnicodeString.
roubert Jan 7, 2025
9eafd8c
ICU-22991 Reduce Calendar object size
FrankYFTang Jan 8, 2025
ba5cf31
ICU-22921 Add windows script doing jar extraction
mihnita Jan 4, 2025
bd50f8b
ICU-22991 Reduce unnecessary Grego calculation
FrankYFTang Jan 9, 2025
f8aa68b
ICU-22940 MF2 ICU4C: Error checking improvements in parser
catamorphism Dec 13, 2024
13a5e29
ICU-22929 Improve fuzzer to find leak from udat_open
FrankYFTang Jan 14, 2025
2d6a418
ICU-22979 Support inverse rule for [] span in RBNF
grhoten Jan 7, 2025
2c5e021
ICU-22921 Add howto guide to try MF 2.0 final candidate draft impls
echeran Jan 15, 2025
384c54c
ICU-22966 Fix -Wshadow warnings in unicode/uset.h
th1722 Jan 10, 2025
373cbaf
ICU-22781 Adding support for constant denominators
younies Jan 21, 2025
2c667e3
ICU-22973 Fix buffer overflow by using CharString
FrankYFTang Jan 22, 2025
0369192
ICU-22781 Fix and Add unit tests for withConstantDenominator in Measu…
younies Jan 23, 2025
242bf96
ICU-22781 Add a test case for unit constant behaviour
younies Jan 23, 2025
ba4d4d3
ICU-22781 Adding support for constant denominators (C++)
younies Jan 24, 2025
16e50b2
ICU-22921 Fix broken link in userguide
th1722 Jan 13, 2025
4df4eb4
ICU-22781 Add support for constant denominators in unit conversion
younies Jan 24, 2025
d70b252
ICU-22781 Add support for converting units with constant denominators…
younies Jan 24, 2025
4fc1b7e
ICU-22991 Simplified Grego code
FrankYFTang Jan 8, 2025
6d8b63c
ICU-22984 Generate old Java monkeys
eggrobin Jan 27, 2025
7153a3d
ICU-23006 Fix Chinese Calendar getActualMaximize
FrankYFTang Jan 28, 2025
a154b58
ICU-22984 code motion: move SegmentationRule before RBBIMonkeyKind
eggrobin Jan 27, 2025
8a11097
ICU-22984 Generate the C++ UAX29 monkeys
eggrobin Jan 27, 2025
8dfcbb5
ICU-22984 Generate the Java UAX29 monkeys
eggrobin Jan 28, 2025
92b52ae
ICU-23025 Fix cldr-to-icu deletes code files
mihnita Jan 29, 2025
d61ec78
ICU-23011 Add else branch for remove possible CWE-476
wooffie Jan 21, 2025
fb64693
ICU-22920 Avoid "return by const value" antipattern
Quuxplusone Jan 24, 2025
90e3e1e
ICU-22922 Integrate CLDR 47 release alpha1, part 1, binary files
DraganBesevic Jan 28, 2025
06c2096
ICU-22922 Integrate CLDR 47 release alpha1, part 2, data files
DraganBesevic Jan 28, 2025
d49c124
ICU-22922 Integrate CLDR 47 release alpha1, part 3, source files
DraganBesevic Jan 28, 2025
4e1d9b3
ICU-22922 Integrate CLDR 47 release alpha1, part 4, updated unit test
DraganBesevic Jan 29, 2025
95afc45
ICU-22922 Integrate CLDR 47 release alpha1, part 5, updated unit test…
DraganBesevic Jan 30, 2025
cb43440
ICU-23026 skip test for QNX
fxing-qnx Jan 28, 2025
ede201c
ICU-22994 Use C++ typeid() instead of Calendar::getType() for calenda…
FrankYFTang Jan 30, 2025
9ad9c03
ICU-23022 Update ICU data to TZDB 2025a.
Yqwed Jan 31, 2025
bf675e3
ICU-23033 Regenerate scx value array
Manishearth Jan 28, 2025
9cbc8d7
ICU-22922 Integrate CLDR 47 release alpha2, part 1, binary files
DraganBesevic Feb 2, 2025
c6e1c09
ICU-22922 Integrate CLDR 47 release alpha2, part 2, locale fallback b…
DraganBesevic Feb 2, 2025
0ceea4b
ICU-22922 Integrate CLDR 47 release alpha2, part 3, data files
DraganBesevic Feb 2, 2025
a262e87
ICU-23032 Change appendNumber method to accept long instead of int
younies Feb 3, 2025
bc7ccb0
ICU-22781 Fix &Improve MeasureUnit identifier generation for constant…
younies Feb 3, 2025
0112e42
ICU-22962 Fix int32_t overflow issue when month is large
FrankYFTang Feb 4, 2025
f9ee689
ICU-22922 Promoted all @draft ICU 75 APIs to @stable ICU 75.
richgillam Feb 4, 2025
4a7a4c7
ICU-22954 USet C++ iter samples no UnicodeString
markusicu Feb 5, 2025
697f7c0
ICU-22781 Fix &Improve MeasureUnit identifier generation for constant…
younies Feb 5, 2025
362a4aa
ICU-23032 Update MeasureUnit documentation for `forIdentifier` method
younies Jan 31, 2025
5d7f0b8
ICU-23041 Hard-code the code citations and remove jcite
mihnita Feb 6, 2025
d9505ae
ICU-22967 Remove the git lfs support: recover old-xmls.tar.bz2
mihnita Feb 6, 2025
ddabf0f
ICU-22967 Remove the git lfs support: remove tools/multi
mihnita Feb 6, 2025
f495d10
ICU-22781 Support Arbitrary Constant Unit Formatting (Java)
younies Feb 6, 2025
c4acc44
ICU-22922 initial ICU 77 download page; incomplete
markusicu Feb 6, 2025
e8c179d
ICU-22967 Remove explicit manipultaion of old-xmls.tar.bz2 in workflows
mihnita Feb 7, 2025
ee8806e
ICU-22954 Make UCollator predicates usable without U_SHOW_CPLUSPLUS_API.
roubert Feb 6, 2025
db42c87
ICU-22954 A build test for C++ header-only APIs with C++ APIs disabled.
roubert Nov 21, 2024
40c3253
ICU-23035 Fix bound check at `u_strToPunycode`
wooffie Feb 3, 2025
bbaa684
ICU-22411 Fixed a ISO currency data file download problem in the curr…
yumaoka Jun 8, 2023
624a260
ICU-22950 Do not initialize currency redundantly
nightelf3 Oct 21, 2024
7b8110f
ICU-22907 MF2: Finish updating spec tests and implement required test…
catamorphism Sep 25, 2024
5ae7f06
ICU-23042 CLDR-to-ICU, generate rbnf data for Gujarati
mihnita Feb 8, 2025
b2026ec
ICU-22781 Bring back the data generation of concentr/perbillion
mihnita Feb 7, 2025
19458b7
ICU-22781 Data generated with the concentr/perbillion on, ICU4C
mihnita Feb 7, 2025
53e40b1
ICU-22781 Data generated with the concentr/perbillion on, ICU4J
mihnita Feb 7, 2025
fe4549d
ICU-22781 Data generated with the concentr/perbillion on, tests
mihnita Feb 7, 2025
339ebb3
ICU-22781 Data generated with the concentr/perbillion on, code update
mihnita Feb 7, 2025
84599e1
ICU-22781 Comment out the failing tests
mihnita Feb 10, 2025
b7b2a14
ICU-22781 Add tests for portion unit formatting (Java)
younies Feb 10, 2025
03021a9
ICU-22922 BRS77 update license file
yumaoka Feb 10, 2025
c9ca3cd
ICU-22920 Migrate from setup-bazelisk to setup-bazel.
roubert Feb 11, 2025
42e3b43
ICU-22781 Add test for portion format with parts per billion (C++)
younies Feb 11, 2025
030c79f
ICU-22781 Enhance portion unit formatting tests in NumberFormatTest
younies Feb 11, 2025
59af52b
ICU-23043 Propogate error in Calendar.
FrankYFTang Feb 11, 2025
35c9778
ICU-22781 Support Arbitrary Constant Unit Formatting
younies Feb 11, 2025
e20b71a
ICU-22781 Add CLDR-18274 failing comments to portion unit formatting …
younies Feb 12, 2025
b81956e
ICU-22808 Correct a factually incorrect doc comment.
DavidBarts Oct 30, 2024
59719f0
ICU-22934 Fix typo in PR#3230
FrankYFTang Oct 2, 2024
8372626
ICU-23031 Reinstate special case for "-u-va-posix" lost by ICU-22520.
roubert Feb 7, 2025
aa724e1
ICU-22901 Move calls to uloc_getDefault() out of _canonicalize().
roubert Feb 11, 2025
5463eac
ICU-22901 Update ulocimp_getKeywords() to use std::string_view.
roubert Dec 19, 2024
afa06d2
ICU-22901 Update _canonicalize() to use std::string_view.
roubert Oct 4, 2024
3f5fd0d
ICU-22901 Update ulocimp_canonicalize() &co. to use std::string_view.
roubert Feb 11, 2025
ecd22c1
ICU-22185 Add docs for using VS Code to develop in ICU4J
echeran Feb 12, 2025
acc69ce
ICU-23044 MF2, ICU4J, bring the implementation close to the spec at L…
mihnita Feb 13, 2025
3c85be1
ICU-22781 Uncomment and enable constant denominator tests
younies Feb 11, 2025
7da5e90
ICU-22901 Update Locale::init() to use StringPiece.
roubert Feb 11, 2025
61b2dbc
ICU-22901 Replace fixed size buffer with CharString.
roubert Feb 11, 2025
3b2bd4b
ICU-22921 Fix some javadoc issues
mihnita Feb 16, 2025
66c6771
ICU-22922 Update ICU4J status
sven-oly Feb 18, 2025
5798405
ICU-22920 Bump the github-actions group across 1 directory with 2 upd…
echeran Feb 19, 2025
215131c
ICU-22984 Remove some obnoxious tests from 2003
eggrobin Feb 19, 2025
d69d452
ICU-22922 BRS_77_RC: Update version number to 77.1-SNAPSHOT
mihnita Feb 19, 2025
b42e725
ICU-22922 ICU4J RC APIChangeReport.html
sven-oly Feb 20, 2025
cfc208f
ICU-22922 ICU4C RC APIChangeReport updates
sven-oly Feb 20, 2025
2339ae4
ICU-22922 Organize import statements
mihnita Feb 20, 2025
6cc1618
ICU-22922 ICU4C produce search doxygen doc by default
mihnita Feb 21, 2025
1b48d26
ICU-22922 Scrubbing closed issues
sven-oly Feb 21, 2025
1f1c090
ICU-22922 BRS77 Add ICU4J API signature file
mihnita Feb 21, 2025
9f51147
ICU-22922 BRS77 Update ICU4J serialization test data
mihnita Feb 21, 2025
950ddc2
ICU-22922 ICU 77rc download page
markusicu Feb 21, 2025
7aae07a
ICU-22922 BRS77 Fix version in release-icu4c-ubuntu.yml
mihnita Feb 21, 2025
60a0d9f
ICU-23055 Update PR template to reflect v78 tickets after ICU 77rc cut
echeran Feb 22, 2025
0748442
ICU-23059 ICU4C MF2: Update spec tests
catamorphism Feb 25, 2025
0b88b1c
ICU-23060 Fix heap-buffer-overflow when UnicodeString size too large
FrankYFTang Feb 25, 2025
c210730
ICU-22923 Integrate CLDR 47 release beta2, part 1, binary files
DraganBesevic Feb 26, 2025
7931e6f
ICU-22923 Integrate CLDR 47 release beta2, part 2, data files
DraganBesevic Feb 26, 2025
19dd858
ICU-22923 Integrate CLDR 47 release beta2, part 3, source and test files
DraganBesevic Feb 26, 2025
d6ca2ba
ICU-22923 Integrate CLDR 47 release beta2, part 4, remove unused vari…
DraganBesevic Feb 26, 2025
53adb4b
ICU-23060 Fix TestLargeAppend
FrankYFTang Feb 27, 2025
443c8c5
ICU-23064 Fix for POSIX_MADV_RANDOM undefined
mihnita Feb 27, 2025
9cc28a6
ICU-23056 Add workflow to generate commit checker report
echeran Feb 26, 2025
faa80a2
ICU-23062 Added null check in one spot in genrb where we know we've s…
richgillam Mar 5, 2025
30e23b0
ICU-23054 Bump the github-actions group with 4 updates
dependabot[bot] Mar 1, 2025
27cc39a
ICU-23067 Add test option to ignore runtime time zone data sensitive …
yumaoka Mar 7, 2025
cc9adb6
ICU-22923 BRS_77_GA Update version number to 77.1 (No more -SNAPSHOT)
mihnita Mar 10, 2025
457157a
ICU-22923 Workaround for addLikelySubtags(und-Latn-RS) bug
mihnita Mar 10, 2025
c5b7dce
ICU-23073 Use string_view constants for option names and formatter names
catamorphism Feb 25, 2025
f23af97
ICU-22923 ICU 77 release page updates
markusicu Mar 12, 2025
72406ed
ICU-23056 merge maint/maint-77 to main (#3436)
markusicu Mar 13, 2025
ba0f39b
ICU-22817 Use LocalArray to fix memory leak
FrankYFTang Mar 18, 2025
545bf26
ICU-22817 Fix potential memory leak by using LocalPointer
FrankYFTang Mar 18, 2025
cdf5239
ICU-22817 Fix memory leak in basictz by using LocalPointer
FrankYFTang Mar 18, 2025
255eb4e
ICU-23069 Fix Hebrew calendar calculation
FrankYFTang Mar 18, 2025
3edd9c8
ICU-22303 Support parsing infinity/NaN when decimal pattern match is …
stevedlawrence Oct 27, 2023
b65650b
ICU-23077 Correct the internalGet call inside Calendar
FrankYFTang Mar 18, 2025
d78cf74
ICU-23055 Update buildtool.md to point to hjson.github.io
marcprux Mar 14, 2025
37e7693
ICU-23040 Move taglets to their own artifact
mihnita Mar 19, 2025
57eaf49
ICU-23040 Extract inner classes as standalone
mihnita Mar 19, 2025
434ef42
ICU-23040 The real move from the JDK 8 APIs
mihnita Mar 19, 2025
dcff47f
ICU-23040 Fix invalid html5 tags and attributes
mihnita Mar 20, 2025
ad0df7e
ICU-22817 Use LocalPointer/Memory/Array to clarify ownership transfer
FrankYFTang Mar 19, 2025
f6894e2
ICU-23083 Optimize LSR loaded from langinfo.res
gvictor Apr 17, 2024
a16a9a4
ICU-22993 Prototype of Modernize Calendar API
FrankYFTang Dec 16, 2024
1e2dffb
ICU-22993
FrankYFTang Mar 25, 2025
82daf4a
Merge branch 'CalendarInterface' of https://github.com/FrankYFTang/ic…
FrankYFTang Mar 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
4 changes: 2 additions & 2 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ Thank you for your pull request!
* Associating PRs with Jira issues
- We require each pull request to be associated with a [Jira issue](https://icu.unicode.org/bugs).
- Reuse existing issues for minor changes:
* ICU 77 docs minor fixes: ICU-22921 — User Guide & API docs typos etc., and version updates (e.g., dependabot for User Guide)
* ICU 77 code warnings/version updates: ICU-22920 — Fix compiler warnings. Update versions of code-related dependencies (e.g., dependabot).
* ICU 78 docs minor fixes: ICU-23055 — User Guide & API docs typos etc., and version updates (e.g., dependabot for User Guide)
* ICU 78 code warnings/version updates: ICU-23054 — Fix compiler warnings. Update versions of code-related dependencies (e.g., dependabot).
* Contributors license agreement (CLA):
- You will be automatically asked to sign the CLA before the PR is accepted.
- To sign the CLA: https://cla-assistant.io/unicode-org/icu
Expand Down
64 changes: 64 additions & 0 deletions .github/workflows/brs-commit-checker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: BRS Commit Checker Report
on:
workflow_dispatch:
inputs:
fix_version:
type: string
required: true
description: The ICU Jira "Fix Version" semver
from_git_ref:
type: string
required: true
description: The git ref start of comparison range. Prefix branches with `origin/`.
end_git_ref:
type: string
required: true
description: The git ref end of comparison range. Must be descendant of `from_git_ref`. Prefix branches with `origin/`.
# Jira user name & API token is used for processing sensitive tickets comes from Github Secrets
# stored in the repository

jobs:
commit-report:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-tags: true
fetch-depth: 0
# workaround for bug in checkout action. this step should be redundant.
# https://github.com/actions/checkout/issues/1471
# https://github.com/actions/checkout/issues/1781
# https://github.com/actions/checkout/issues/701#issuecomment-1133937950
- name: Fetch all tags
run: |
git fetch --tags origin
- name: Fetch all branches
run: |
git fetch origin
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12.8'
cache: 'pipenv'
cache-dependency-path: |
tools/commit-checker/Pipfile
tools/commit-checker/Pipfile.lock
- name: Install pipenv
run: |
sudo pip3 install pipenv
- name: Generate report
env:
JIRA_USERNAME: ${{ secrets.COMMIT_CHECKER_JIRA_EMAIL }}
JIRA_PASSWORD: ${{ secrets.COMMIT_CHECKER_JIRA_TOKEN }}
run: |
pushd ./tools/commit-checker
pipenv install
pipenv run python3 check.py \
--jira-query "project=ICU AND fixVersion=${{ inputs.fix_version }}" \
--rev-range "${{ inputs.from_git_ref }}..${{ inputs.end_git_ref }}" > REPORT.md
popd
# https://github.blog/news-insights/product-news/supercharging-github-actions-with-job-summaries/
- name: Reproduce report as workflow job summary
run: |
cat ./tools/commit-checker/REPORT.md >> $GITHUB_STEP_SUMMARY
echo "View the Summary page of this GHA Workflow instance to view the rendered Markdown of this report."
2 changes: 1 addition & 1 deletion .github/workflows/cache_retain.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ jobs:
distribution: 'temurin'
java-version: '11'
- name: Restore read-only cache of local Maven repository
uses: actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
uses: actions/cache/restore@v4.2.0
id: cache
with:
path: ~/.m2/repository
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cifuzz.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:
path: ./out/artifacts
- name: Upload Sarif
if: always() && steps.build.outcome == 'success'
uses: github/codeql-action/upload-sarif@v3.26.6
uses: github/codeql-action/upload-sarif@v3.28.10
with:
# Path to SARIF file relative to the root of the repository
sarif_file: cifuzz-sarif/results.sarif
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/icu4c.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
./runConfigureICU Linux --disable-renaming;
# Fail if 'warning:' appears in doxygen's output, but ignore warnings from file Doxyfile.
# Regex note: (?! ... ) is a negative lookahead. Succeed if the pattern is not present.
set +o pipefail && make doc 2>&1 | tee doxygen.log && ( ! grep -P 'warning:(?! .* file .?Doxyfile)' doxygen.log )
set +o pipefail && make doc-searchengine 2>&1 | tee doxygen.log && ( ! grep -P 'warning:(?! .* file .?Doxyfile)' doxygen.log )

# gcc debug build.
# Includes dependency checker.
Expand Down Expand Up @@ -740,13 +740,13 @@ jobs:
runs-on: ubuntu-22.04 # Updated in BRS
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- uses: bazelbuild/setup-bazelisk@b39c379c82683a5f25d34f0d062761f62693e0b2 # v3.0.0
- uses: bazel-contrib/setup-[email protected].0
- name: Get CI Linux runner VM version
id: linux-version
run: |
echo "LINUX_VERSION=$(grep -F VERSION_ID /etc/os-release | cut -d'"' -f2)" >> $GITHUB_OUTPUT
- name: Mount bazel cache
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
uses: actions/cache@v4.2.0
with:
path: "~/.cache/bazel"
key: bazel-${{ runner.os }}-${{ steps.linux-version.outputs.LINUX_VERSION }}
Expand Down
52 changes: 11 additions & 41 deletions .github/workflows/icu_merge_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jobs:
- name: Checkout lfs objects
run: git lfs pull
- name: Cache local Maven repository
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
uses: actions/cache@v4.2.0
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
Expand All @@ -71,7 +71,7 @@ jobs:
- name: Checkout lfs objects
run: git lfs pull
- name: Lookup read-only cache of local Maven repository
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
uses: actions/cache@v4.2.0
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
Expand Down Expand Up @@ -144,7 +144,7 @@ jobs:
- name: Create directory for lib files
run: mkdir icu4c/source/perflib
- name: Get ICU libs
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4.1.9
with:
name: icu-perf-libs
path: icu4c/source/lib
Expand Down Expand Up @@ -218,7 +218,7 @@ jobs:
- name: Create directory for lib files
run: mkdir icu4c/source/perflib
- name: Get ICU libs
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4.1.9
with:
name: icu-perf-libs
path: icu4c/source/lib
Expand Down Expand Up @@ -283,7 +283,7 @@ jobs:
- name: Create directory for lib files
run: mkdir icu4c/source/perflib
- name: Get ICU libs
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4.1.9
with:
name: icu-perf-libs
path: icu4c/source/lib
Expand Down Expand Up @@ -335,7 +335,7 @@ jobs:
- name: Checkout lfs objects
run: git lfs pull
- name: Lookup read-only cache of local Maven repository
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
uses: actions/cache@v4.2.0
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
Expand All @@ -349,11 +349,6 @@ jobs:

- name: Build and run unicodesetperf test
run: |
# This file needs to be restored otherwise GHA cannot
# check-out the perfdata branch. Setting up this task with GH lfs
# modifies the file but the details of why and how are unknown.
git restore --staged tools/multi/proj/icu4cscan/old-xmls.tar.bz2;
git restore tools/multi/proj/icu4cscan/old-xmls.tar.bz2;
cd icu4j;
mvn ${SHARED_MVN_ARGS} verify -DskipITs -DskipTests;
git status
Expand Down Expand Up @@ -397,7 +392,7 @@ jobs:
- name: Checkout lfs objects
run: git lfs pull
- name: Lookup read-only cache of local Maven repository
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
uses: actions/cache@v4.2.0
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
Expand All @@ -411,11 +406,6 @@ jobs:

- name: Build and run ucharacterperf test
run: |
# This file needs to be restored otherwise GHA cannot
# check-out the perfdata branch. Setting up this task with GH lfs
# modifies the file but the details of why and how are unknown.
git restore --staged tools/multi/proj/icu4cscan/old-xmls.tar.bz2;
git restore tools/multi/proj/icu4cscan/old-xmls.tar.bz2;
cd icu4j;
mvn ${SHARED_MVN_ARGS} verify -DskipITs -DskipTests;
cd perf-tests;
Expand Down Expand Up @@ -461,7 +451,7 @@ jobs:
- name: Checkout lfs objects
run: git lfs pull
- name: Lookup read-only cache of local Maven repository
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
uses: actions/cache@v4.2.0
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
Expand All @@ -475,11 +465,6 @@ jobs:

- name: Build and run decimalformatperf
run: |
# This file needs to be restored otherwise GHA cannot
# check-out the perfdata branch. Setting up this task with GH lfs
# modifies the file but the details of why and how are unknown.
git restore --staged tools/multi/proj/icu4cscan/old-xmls.tar.bz2;
git restore tools/multi/proj/icu4cscan/old-xmls.tar.bz2;
cd icu4j;
mvn ${SHARED_MVN_ARGS} verify -DskipITs -DskipTests;
cd perf-tests;
Expand Down Expand Up @@ -530,7 +515,7 @@ jobs:
- name: Checkout lfs objects
run: git lfs pull
- name: Lookup read-only cache of local Maven repository
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
uses: actions/cache@v4.2.0
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
Expand All @@ -546,11 +531,6 @@ jobs:
env:
DATA_FILE_PATH: data/collation
run: |
# This file needs to be restored otherwise GHA cannot
# check-out the perfdata branch. Setting up this task with GH lfs
# modifies the file but the details of why and how are unknown.
git restore --staged tools/multi/proj/icu4cscan/old-xmls.tar.bz2;
git restore tools/multi/proj/icu4cscan/old-xmls.tar.bz2;
cd icu4j;
mvn ${SHARED_MVN_ARGS} verify -DskipITs -DskipTests;
cd perf-tests;
Expand Down Expand Up @@ -669,7 +649,7 @@ jobs:
- name: Checkout lfs objects
run: git lfs pull
- name: Lookup read-only cache of local Maven repository
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
uses: actions/cache@v4.2.0
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
Expand All @@ -685,11 +665,6 @@ jobs:
env:
DATA_FILE_PATH: data/conversion
run: |
# This file needs to be restored otherwise GHA cannot
# check-out the perfdata branch. Setting up this task with GH lfs
# modifies the file but the details of why and how are unknown.
git restore --staged tools/multi/proj/icu4cscan/old-xmls.tar.bz2;
git restore tools/multi/proj/icu4cscan/old-xmls.tar.bz2;
cd icu4j;
mvn ${SHARED_MVN_ARGS} verify -DskipITs -DskipTests;
cd perf-tests;
Expand Down Expand Up @@ -752,7 +727,7 @@ jobs:
- name: Checkout lfs objects
run: git lfs pull
- name: Lookup read-only cache of local Maven repository
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
uses: actions/cache@v4.2.0
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
Expand All @@ -771,11 +746,6 @@ jobs:
echo "DDIR=${ddir: -1}" >> $GITHUB_ENV
- name: Build and run dateformatperf
run: |
# This file needs to be restored otherwise GHA cannot
# check-out the perfdata branch. Setting up this task with GH lfs
# modifies the file but the details of why and how are unknown.
git restore --staged tools/multi/proj/icu4cscan/old-xmls.tar.bz2
git restore tools/multi/proj/icu4cscan/old-xmls.tar.bz2
cd icu4j;
mvn ${SHARED_MVN_ARGS} verify -DskipITs -DskipTests;
cd perf-tests;
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/release-icu4c-ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,14 +60,14 @@ jobs:
source /etc/os-release
# Get the ICU version in artifact_version
source icu4j/releases_tools/shared.sh
# Convert 76.1 to 76_1
# Convert 77.1 to 77_1
underscore_version=$(echo $artifact_version | sed 's/\./_/g')
pushd ${RELEASE_FOLDER}
tar -czf icu4c-${underscore_version}-Ubuntu${VERSION_ID}-x64.tgz icu
rm -fr icu
popd
mv icu4c/source/dist/icu4c-76_1-d* ${RELEASE_FOLDER}
mv icu4c/source/dist/icu4c-76_1-src.* ${RELEASE_FOLDER}
mv icu4c/source/dist/icu4c-77_1-d* ${RELEASE_FOLDER}
mv icu4c/source/dist/icu4c-77_1-src.* ${RELEASE_FOLDER}

- name: Upload build results
uses: actions/[email protected]
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
persist-credentials: false

- name: "Run analysis"
uses: ossf/scorecard-action@62b2cac7ed8198b15735ed49ab1e5cf35480ba46 # v2.4.0
uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1
with:
results_file: results.sarif
results_format: sarif
Expand All @@ -59,6 +59,6 @@ jobs:

# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@9b41ced437d4a4f34bf0b740f80b4e52d3c4bccd # v2.25.15
uses: github/codeql-action/upload-sarif@83923549f688e42b34d0b90ee94725f7c30532fc # v2.25.15
with:
sarif_file: results.sarif
2 changes: 1 addition & 1 deletion .github/workflows/wait-for-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
checks: read
steps:
- name: Wait for Triggered Required GH Checks
uses: poseidon/wait-for-status-checks@6988432d64ad3f9c2608db4ca16fded1b7d36ead # v0.5.0
uses: poseidon/wait-for-status-checks@899c768d191b56eef585c18f8558da19e1f3e707 # v0.6.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
# This regex matches everything since almost all (if not all) CI checks are required.
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ UNICODE LICENSE V3

COPYRIGHT AND PERMISSION NOTICE

Copyright © 2016-2024 Unicode, Inc.
Copyright © 2016-2025 Unicode, Inc.

NOTICE TO USER: Carefully read the following legal agreement. BY
DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR
Expand Down
45 changes: 42 additions & 3 deletions docs/devsetup/java/maven.md → docs/devsetup/java/maven/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,11 +110,50 @@ These instructions have not yet verified Eclipse's handling of the import of the

### VS Code

VS Code's support of Maven projects is not as robust as IntelliJ's when it comes to the non-standard file layout for sources and tests.
The Maven support comes from the standard Java extension (which depends on the standard Maven extension) from the extension marketplace.
VS Code's support of Maven projects has not been as robust as IntelliJ's when it comes to multi-module Maven projects such as what ICU4J has.
This situation has gotten better recently, and workable solutions are documented below..

The Maven extension that is mostly likely to top search result comes from [the Extension Pack for Java extension](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack) that is maintained by the maintainers of VS Code itself. However, this extension and its dependencies do not work together satisfactorily for the ICU4J codebase.
Source and test code files are not recognized properly, and it is not clear how to execute the tests.
This may improve in the future.

For now (Jan 2025), there are a couple of different options for running Maven build commands for ICU4J in VS Code.

#### Install the Java extension from Oracle

Oracle's [Java extension for VS Code](https://marketplace.visualstudio.com/items?itemName=Oracle.oracle-java) includes support for Maven projects, including multi-module Maven projects.

You can view the Java extension's view of the Maven project through the "Projects" tab of the workspace explorer accordion widget.
The project will display the list of Maven sub-modules.
Within a submodule, click on "Source Pakcages" to view the Java class packages.
From there, you can navigate to specific classes according to the package structure.

> :point_right: **Note**: This extension will use the version of Java according to the location of Java that you have defined in your `JAVA_HOME` system environment variable.

> :point_right: **Note**: You will also need the Maven command (`mvn`) in your `PATH` system environment variable for the extension to work.

![](open-sources-uniset.png)

To run all of the tests in a Maven submodule, right-click on the module and selecting "Test Project".

![](run-tests-main-core.png)

To run all of the tests in a single test class, open the test class, and click on the triangular play button on level with the class declaration line. You can right click on that button to run in debug mode and enable other options.

Every individual test will have a similar button on level with the test signature to run only that one test.

![](test-class-run-all-tests.png)

The output for a test run invocation will appear in the Debug Console tab of the bottom panel.

> :point_right: **Note**: In the Test Results tab, if the the formatting of the output that is provided per test is not formatted correctly, it may be related to formatting in the Maven CLI command's output (ex: allowing ANSI color code escape characters, which some system's Maven installtions enable by default).

![](test-class-run-tests-result.png)

#### Run Maven shell commands with a command palette

However, a workaround exists for those who want to use VS Code as their preferred editor and still execute commands to recompile or run tests.
If none of the Java/Maven extensions for VS Code work with your instance of VS Code,
there is still a way to execute commands to recompile or run tests.
The workaround relies on invoking the Maven commands in a shell, and using a VS Code extension to create shortcuts within the IDE to invoke those commands.

The extension is [Command Runner](https://marketplace.visualstudio.com/items?itemName=edonet.vscode-command-runner).
Expand Down
Binary file added docs/devsetup/java/maven/open-sources-uniset.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading