Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
8d2cfcf
Check build hints at compile time instead of shipping them inert
shai-almog Aug 22, 2026
d243535
Commit the catalog sources that .gitignore was swallowing
shai-almog Aug 22, 2026
d727c7d
Stop the bootstrap doing its work at import time
shai-almog Aug 22, 2026
96bff90
Make the generated docs and sources survive the ASCII and prose gates
shai-almog Aug 22, 2026
a343fe3
Give ThreadSafeDatabaseTest headroom under the FormTest timeout
shai-almog Aug 22, 2026
0edef42
Refuse to migrate a project that never runs process-annotations
shai-almog Aug 22, 2026
2803847
Do not migrate the guide's snippet project, and keep Settings from du…
shai-almog Aug 22, 2026
53da7c3
Defer the generated-project templates to a follow-up
shai-almog Aug 23, 2026
8b50565
Annotate inside the integration test, not in the archetype
shai-almog Aug 23, 2026
b2e0e86
Four migration and Settings defects from review
shai-almog Aug 23, 2026
fd05dfa
Require the process-annotations binding on the module that owns the m…
shai-almog Aug 23, 2026
3037e76
Require an execution that can actually see compiled classes
shai-almog Aug 23, 2026
af8ff86
Stop the generated simulator schema duplicating the hand-written one
shai-almog Aug 23, 2026
586e6bc
Prove the annotations are processed instead of predicting it
shai-almog Aug 23, 2026
b1dff60
Round-trip the rollback snapshot, and stop trusting a stale manifest
shai-almog Aug 23, 2026
76cd1dc
Preserve source bytes, and stop comments confusing the annotation sca…
shai-almog Aug 23, 2026
8be6d5f
Refuse a build whose annotations were never processed
shai-almog Aug 23, 2026
fb5a6c7
Do not refuse a build over an annotation that sets nothing
shai-almog Aug 23, 2026
51fb76a
Tell a current annotation manifest from last build's
shai-almog Aug 23, 2026
9c5a586
Give the same answer whether or not target/classes was cleaned
shai-almog Aug 23, 2026
43f73f1
Merge remote-tracking branch 'origin/master' into build-hint-annotations
shai-almog Aug 23, 2026
b6f16f2
Catalogue the ten build hints the Wear change added
shai-almog Aug 23, 2026
eb58dac
Write the new catalog rows in the guide's own voice
shai-almog Aug 23, 2026
a5f8dbb
Merge remote-tracking branch 'origin/master' into build-hint-annotations
shai-almog Aug 24, 2026
9437da7
Stop the catalog gate claiming coverage it never checked
shai-almog Aug 24, 2026
2cf0842
Verify the migration the way a real build runs
shai-almog Aug 24, 2026
01816a1
Read the project as configured, and the source as code
shai-almog Aug 24, 2026
d013397
Retry the repository failure that was not on the list
shai-almog Aug 24, 2026
3fbc47f
Ask the build where it wrote, and key the gate by what it reads
shai-almog Aug 24, 2026
9162f41
Collapse the two capture-record spellings, and stop guessing
shai-almog Aug 24, 2026
392e2a5
Let the simulator see a duplicate declaration too
shai-almog Aug 24, 2026
01e471f
Take the published hints back out on a simulator reload
shai-almog Aug 24, 2026
cd00b3a
Read a text block the way its own language does
shai-almog Aug 24, 2026
b465921
Find the hints that live in a table
shai-almog Aug 24, 2026
a1fd203
Render the guide's hint table instead of committing it
shai-almog Aug 24, 2026
ffb6715
Migrate a legacy spelling to the name the build emits
shai-almog Aug 24, 2026
7e8e7e2
Run the docs checks when the table's inputs change
shai-almog Aug 24, 2026
186a75c
Accept what the runtime accepts, and ask Maven where the sources are
shai-almog Aug 24, 2026
a83dbff
Identify a class by what it declares, not where it sits
shai-almog Aug 24, 2026
7c6d949
Describe the plist keys we inject, individually
shai-almog Aug 24, 2026
d29969e
Ask about the main class, not about every class file
shai-almog Aug 24, 2026
3235077
Refuse the value we cannot read, and read declarations as code
shai-almog Aug 24, 2026
80e6c2a
Find the main class by what declares it, everywhere
shai-almog Aug 24, 2026
dc257e1
Migrate only a value already spelled the way the build reads it
shai-almog Aug 24, 2026
a992843
Stop skipping the attribute the orphan filter reads
shai-almog Aug 24, 2026
d8c148a
Count braces over code, and read the whole file
shai-almog Aug 24, 2026
2034b41
Follow the language's own rules for imports, packages and scope
shai-almog Aug 24, 2026
bb30a7e
Stop a hint value from forging the digest around it
shai-almog Aug 24, 2026
bd903c4
Store the spelling that works, and put the import above the annotations
shai-almog Aug 24, 2026
73974eb
Read imports forwards, and triple quotes by language
shai-almog Aug 24, 2026
fcc1c37
Guard the form the ownership rule was not applied to
shai-almog Aug 24, 2026
e4a5123
Judge a Kotlin nested path only as far as Kotlin lets us
shai-almog Aug 24, 2026
272939c
Tell a Kotlin function segment from a deleted nested type
shai-almog Aug 24, 2026
8ee8a47
Merge master, and catalogue the hints it brought
shai-almog Aug 24, 2026
4cdf81c
Find the package declaration in code, and clear the whole of it
shai-almog Aug 24, 2026
5397cf7
Treat a modifier on an earlier line as part of the declaration
shai-almog Aug 24, 2026
b80eadf
Add a hint at the value the build already uses, and let a conflict be…
shai-almog Aug 24, 2026
57850e5
Record no default where the build has none, and read a build package
shai-almog Aug 24, 2026
7c0c203
Read a qualified import component by component
shai-almog Aug 24, 2026
78ee230
Ask for a value when the build has none to inherit
shai-almog Aug 24, 2026
5040621
Read a package name the way an import is read, and see a live misplac…
shai-almog Aug 24, 2026
d4e4516
Name a found class properly, keep looking, and read imports as declar…
shai-almog Aug 24, 2026
f3194ba
Close a Kotlin block comment where Kotlin closes it, and read @Name a…
shai-almog Aug 24, 2026
5957d2e
Read the manifest out of the app's own jar, and the package name whole
shai-almog Aug 24, 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
2 changes: 1 addition & 1 deletion .github/workflows/archetype-smoke.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ jobs:
# before it had installed anything, one of several jobs Maven Central refused on this
# branch in a day. A build failure in our own code still fails on the first attempt.
env:
RETRY_ONLY_MATCHING: 'status: (403|429|50[0-9])|Could not transfer artifact|Unresolveable build extension|Non-resolvable import POM|or one of its dependencies could not be resolved|authorization failed for https://repo\.maven\.apache\.org|Connection reset|Premature end of Content-Length'
RETRY_ONLY_MATCHING: 'status: (403|429|50[0-9])|Could not transfer artifact|Failed to read artifact descriptor|Unresolveable build extension|Non-resolvable import POM|or one of its dependencies could not be resolved|authorization failed for https://repo\.maven\.apache\.org|Connection reset|Premature end of Content-Length'
RETRY_ATTEMPTS: '5'
RETRY_DELAY_SECONDS: '60'
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/designer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ jobs:
# without it, so a test that failed once and passed on a later attempt would take
# this gate green and hide the race that produced it. The wrapper's own docs
# require this filter for test-running commands.
RETRY_ONLY_MATCHING: 'status: (403|429|50[0-9])|Could not transfer artifact|Unresolveable build extension|Non-resolvable import POM|Connection reset|Premature end of Content-Length'
RETRY_ONLY_MATCHING: 'status: (403|429|50[0-9])|Could not transfer artifact|Failed to read artifact descriptor|Unresolveable build extension|Non-resolvable import POM|Connection reset|Premature end of Content-Length'
run: |
cd maven
bash $GITHUB_WORKSPACE/scripts/ci/retry.sh mvn -B -pl designer -am -DunitTests=true -Dcodename1.platform=javase \
Expand Down
22 changes: 22 additions & 0 deletions .github/workflows/developer-guide-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,14 @@ on:
- 'docs/demos/**'
- 'scripts/developer-guide/**'
- '.github/workflows/developer-guide-docs.yml'
# The build hint table is rendered from the catalog rather than committed,
# so a change to either the catalog or the renderer changes what this guide
# contains without touching a single file under docs/. While the table was
# checked in that edit showed up as a docs diff and triggered this workflow
# for free; generating it on the fly took that away, and a malformed table
# would then have merged and surfaced in the release documentation build.
- 'maven/build-hint-catalog/**'
- 'scripts/gen-build-hint-table.sh'
release:
types: [published]
workflow_dispatch:
Expand Down Expand Up @@ -39,6 +47,11 @@ jobs:
- 'scripts/developer-guide/migrate-inline-guide-snippets.py'
- 'scripts/developer-guide/validate-guide-snippets.py'
- '.github/workflows/developer-guide-docs.yml'
# Triggering the workflow is not enough on its own: the HTML and PDF
# build and the steps beside it are gated on this filter, so the
# inputs the table is rendered from have to satisfy it too.
- 'maven/build-hint-catalog/**'
- 'scripts/gen-build-hint-table.sh'
workflow:
- '.github/workflows/developer-guide-docs.yml'

Expand All @@ -48,6 +61,15 @@ jobs:
distribution: 'temurin'
java-version: '17'

# Before anything that reads the guide. The build hint table is rendered
# from maven/build-hint-catalog rather than checked in, so the lint, the
# image and snippet checks, the HTML and PDF build and Vale all need it on
# disk -- and asciidoctor reports a missing include as an error, so getting
# this order wrong fails loudly rather than dropping the table quietly.
# Unconditional, because every one of those steps is not.
- name: Render the build hint table
run: scripts/gen-build-hint-table.sh

- name: Install local Codename One Maven artifacts
if: github.event_name != 'pull_request' || steps.changes.outputs.docs == 'true' || steps.changes.outputs.demos == 'true' || steps.changes.outputs.workflow == 'true'
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/identity-stack.yml
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ jobs:
# without it, so a test that failed once and passed on a later attempt would take
# this gate green and hide the race that produced it. The wrapper's own docs
# require this filter for test-running commands.
RETRY_ONLY_MATCHING: 'status: (403|429|50[0-9])|Could not transfer artifact|Unresolveable build extension|Non-resolvable import POM|Connection reset|Premature end of Content-Length'
RETRY_ONLY_MATCHING: 'status: (403|429|50[0-9])|Could not transfer artifact|Failed to read artifact descriptor|Unresolveable build extension|Non-resolvable import POM|Connection reset|Premature end of Content-Length'
run: |
set -euo pipefail
# Targeted run: OidcCoreTest is the new suite; the *Connect / Login /
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/parparvm-tests-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ jobs:
# exists for. A blanket loop lets an intermittent product regression pass on
# attempt two and turns a blocking gate green -- which is the opposite of what
# a gate is for, and worse than the flake it was hiding.
$resolutionFailure = 'status: (403|429|50[0-9])|Could not transfer artifact|Unresolveable build extension|Non-resolvable import POM|Could not resolve dependencies'
$resolutionFailure = 'status: (403|429|50[0-9])|Could not transfer artifact|Failed to read artifact descriptor|Unresolveable build extension|Non-resolvable import POM|Could not resolve dependencies'
$ok = $false
foreach ($delay in 0, 30, 90, 180, 300) {
if ($delay -gt 0) {
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/parparvm-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ jobs:
retry mvn -B clean package -pl JavaAPI -am -DskipTests
retry mvn -B test -pl tests -am -DexcludedGroups=benchmark
env:
RETRY_ONLY_MATCHING: 'status: (403|429|50[0-9])|Could not transfer artifact|Unresolveable build extension|Non-resolvable import POM|Connection reset|Premature end of Content-Length'
RETRY_ONLY_MATCHING: 'status: (403|429|50[0-9])|Could not transfer artifact|Failed to read artifact descriptor|Unresolveable build extension|Non-resolvable import POM|Connection reset|Premature end of Content-Length'
JDK_8_HOME: ${{ env.JDK_8_HOME }}
JDK_11_HOME: ${{ env.JDK_11_HOME }}
JDK_17_HOME: ${{ env.JDK_17_HOME }}
Expand All @@ -139,7 +139,7 @@ jobs:
# without it, so a test that failed once and passed on a later attempt would take
# this gate green and hide the race that produced it. The wrapper's own docs
# require this filter for test-running commands.
RETRY_ONLY_MATCHING: 'status: (403|429|50[0-9])|Could not transfer artifact|Unresolveable build extension|Non-resolvable import POM|Connection reset|Premature end of Content-Length'
RETRY_ONLY_MATCHING: 'status: (403|429|50[0-9])|Could not transfer artifact|Failed to read artifact descriptor|Unresolveable build extension|Non-resolvable import POM|Connection reset|Premature end of Content-Length'
JDK_8_HOME: ${{ env.JDK_8_HOME }}
JDK_11_HOME: ${{ env.JDK_11_HOME }}
JDK_17_HOME: ${{ env.JDK_17_HOME }}
Expand Down
38 changes: 36 additions & 2 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,16 @@ on:
- 'scripts/ci/retry.sh'
- 'scripts/ci/apt-get-update.sh'
- 'scripts/ci/apt-get-install.sh'
# The build hint gates are run from this workflow and nowhere else, and one
# of them holds an empty baseline. Ignoring the whole directory meant a
# change that breaks a gate, or that adds a line to the baseline, could
# merge without the gate it weakens ever running.
- 'scripts/check-build-hint-catalog.sh'
- 'scripts/check-build-hint-catalog.py'
- 'scripts/build_hint_miner.py'
- 'scripts/build-hint-catalog-baseline.txt'
- 'scripts/build-hint-computed-sites.txt'
- 'scripts/gen-build-hint-annotations.sh'
- '!docs/**'
Comment thread
shai-almog marked this conversation as resolved.
- '!**/*.md'
- '!.github/workflows/developer-guide-docs.yml'
Expand Down Expand Up @@ -59,6 +69,16 @@ on:
- 'scripts/ci/retry.sh'
- 'scripts/ci/apt-get-update.sh'
- 'scripts/ci/apt-get-install.sh'
# The build hint gates are run from this workflow and nowhere else, and one
# of them holds an empty baseline. Ignoring the whole directory meant a
# change that breaks a gate, or that adds a line to the baseline, could
# merge without the gate it weakens ever running.
- 'scripts/check-build-hint-catalog.sh'
- 'scripts/check-build-hint-catalog.py'
- 'scripts/build_hint_miner.py'
- 'scripts/build-hint-catalog-baseline.txt'
- 'scripts/build-hint-computed-sites.txt'
- 'scripts/gen-build-hint-annotations.sh'
- '!docs/**'
- '!**/*.md'
- '!.github/workflows/developer-guide-docs.yml'
Expand Down Expand Up @@ -140,7 +160,7 @@ jobs:
# RETRY_ONLY_MATCHING keeps a failing test failing on the first attempt
# rather than letting a re-run launder a flake into a pass.
env:
RETRY_ONLY_MATCHING: 'status: (403|429|50[0-9])|Could not transfer artifact|Unresolveable build extension|Non-resolvable import POM'
RETRY_ONLY_MATCHING: 'status: (403|429|50[0-9])|Could not transfer artifact|Failed to read artifact descriptor|Unresolveable build extension|Non-resolvable import POM'
run: |
MVN_GOAL="verify"
MVN_ARGS=""
Expand Down Expand Up @@ -416,6 +436,20 @@ jobs:
- name: Run SpotBugs for ByteCodeTranslator
if: ${{ matrix.java-version == 8 }}
run: mvn -B -DskipTests=true -f vm/ByteCodeTranslator/pom.xml verify
# A build hint is a string nothing checks: a misspelled name is accepted,
# never read, and silently does nothing. The catalog in
# maven/build-hint-catalog is what gives every hint a type, a default and a
# value domain, and it is what the @Ios/@Android annotations, the developer
# guide table and the Settings tool are generated from. These two steps keep
# the catalog complete and the generated files in step with it.
- name: Check build hint catalog
if: ${{ matrix.java-version == 8 }}
run: scripts/check-build-hint-catalog.sh
Comment thread
shai-almog marked this conversation as resolved.
- name: Check generated build hint annotations
if: ${{ matrix.java-version == 8 }}
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"
scripts/gen-build-hint-annotations.sh --check
# ParparVM's CHECKCAST is unchecked, so a failed cast does not throw
# ClassCastException on iOS -- code written to catch it silently uses the
# wrong object instead (issue #5531). core/android/ios are already compiled
Expand Down Expand Up @@ -449,7 +483,7 @@ jobs:
# could not be resolved" before a single test had run -- a Maven Central failure, which a
# missing plugin version fails identically on every attempt anyway.
env:
RETRY_ONLY_MATCHING: 'status: (403|429|50[0-9])|Could not transfer artifact|Unresolveable build extension|Non-resolvable import POM|or one of its dependencies could not be resolved|authorization failed for https://repo\.maven\.apache\.org|Connection reset|Premature end of Content-Length'
RETRY_ONLY_MATCHING: 'status: (403|429|50[0-9])|Could not transfer artifact|Failed to read artifact descriptor|Unresolveable build extension|Non-resolvable import POM|or one of its dependencies could not be resolved|authorization failed for https://repo\.maven\.apache\.org|Connection reset|Premature end of Content-Length'
# Five attempts a minute apart rather than three at thirty seconds: Central
# refused two different jobs on this branch today, and a window of about a
# minute is shorter than the incidents have been. It costs nothing on a real
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/protocol-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
# here with "Unresolveable build extension: archetype-packaging ... could not be resolved"
# before anything was compiled, which is Maven Central rather than this repository.
env:
RETRY_ONLY_MATCHING: 'status: (403|429|50[0-9])|Could not transfer artifact|Unresolveable build extension|Non-resolvable import POM|or one of its dependencies could not be resolved|authorization failed for https://repo\.maven\.apache\.org|Connection reset|Premature end of Content-Length'
RETRY_ONLY_MATCHING: 'status: (403|429|50[0-9])|Could not transfer artifact|Failed to read artifact descriptor|Unresolveable build extension|Non-resolvable import POM|or one of its dependencies could not be resolved|authorization failed for https://repo\.maven\.apache\.org|Connection reset|Premature end of Content-Length'
# Five attempts a minute apart rather than three at thirty seconds: Central
# refused two different jobs on this branch today, and a window of about a
# minute is shorter than the incidents have been. It costs nothing on a real
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/purchase-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ jobs:
# with "authorization failed for https://repo.maven.apache.org/maven2" against the JUnit
# BOM and the publishing plugin -- Maven Central, not this repository.
env:
RETRY_ONLY_MATCHING: 'status: (403|429|50[0-9])|Could not transfer artifact|Unresolveable build extension|Non-resolvable import POM|or one of its dependencies could not be resolved|authorization failed for https://repo\.maven\.apache\.org|Connection reset|Premature end of Content-Length'
RETRY_ONLY_MATCHING: 'status: (403|429|50[0-9])|Could not transfer artifact|Failed to read artifact descriptor|Unresolveable build extension|Non-resolvable import POM|or one of its dependencies could not be resolved|authorization failed for https://repo\.maven\.apache\.org|Connection reset|Premature end of Content-Length'
# Five attempts a minute apart rather than three at thirty seconds: Central
# refused two different jobs on this branch today, and a window of about a
# minute is shorter than the incidents have been. It costs nothing on a real
Expand Down
21 changes: 13 additions & 8 deletions .github/workflows/release-on-maven-central.yml
Original file line number Diff line number Diff line change
Expand Up @@ -113,12 +113,13 @@ jobs:
# "Deployment failed while publishing" even when the bundle was
# actually accepted and published. As a safety net for that
# false-positive case, poll Maven Central for the key artifacts:
# the codenameone-maven-plugin (proxy for the core release), its
# platform-feature-catalog dependency, and both archetypes. The
# catalog is a separate reactor artifact used by the local builders
# for built-in platform dependency selection, so confirming only the
# plugin could leave a released plugin with an unavailable runtime
# dependency. Skipped when the deploy already reported success (the
# the codenameone-maven-plugin (proxy for the core release), the two
# catalogs it depends on at runtime, and both archetypes. Each catalog
# is a separate reactor artifact -- platform-feature-catalog for
# built-in platform dependency selection, build-hint-catalog for the
# build hint table the plugin reads -- so confirming only the plugin
# could leave a released plugin whose own dependency will not resolve.
# Skipped when the deploy already reported success (the
# artifacts may still be propagating from Sonatype Central to repo1;
# that propagation can take 30+ minutes and isn't worth blocking on).
set +e
Expand All @@ -127,16 +128,19 @@ jobs:
"https://repo1.maven.org/maven2/com/codenameone/codenameone-maven-plugin/${GITHUB_REF_NAME}/codenameone-maven-plugin-${GITHUB_REF_NAME}.pom")
catalog_code=$(curl -s -o /dev/null -w "%{http_code}" \
"https://repo1.maven.org/maven2/com/codenameone/codenameone-platform-feature-catalog/${GITHUB_REF_NAME}/codenameone-platform-feature-catalog-${GITHUB_REF_NAME}.pom")
hints_code=$(curl -s -o /dev/null -w "%{http_code}" \
"https://repo1.maven.org/maven2/com/codenameone/codenameone-build-hint-catalog/${GITHUB_REF_NAME}/codenameone-build-hint-catalog-${GITHUB_REF_NAME}.pom")
app_code=$(curl -s -o /dev/null -w "%{http_code}" \
"https://repo1.maven.org/maven2/com/codenameone/cn1app-archetype/${GITHUB_REF_NAME}/cn1app-archetype-${GITHUB_REF_NAME}.pom")
lib_code=$(curl -s -o /dev/null -w "%{http_code}" \
"https://repo1.maven.org/maven2/com/codenameone/cn1lib-archetype/${GITHUB_REF_NAME}/cn1lib-archetype-${GITHUB_REF_NAME}.pom")
if [ "$plugin_code" = "200" ] && [ "$catalog_code" = "200" ] && \
[ "$hints_code" = "200" ] && \
[ "$app_code" = "200" ] && [ "$lib_code" = "200" ]; then
echo "Confirmed plugin + platform-feature-catalog + cn1{app,lib}-archetype ${GITHUB_REF_NAME} on Maven Central"
echo "Confirmed plugin + platform-feature-catalog + build-hint-catalog + cn1{app,lib}-archetype ${GITHUB_REF_NAME} on Maven Central"
exit 0
fi
echo "[$i/90] Waiting on Maven Central (plugin=$plugin_code, catalog=$catalog_code, cn1app=$app_code, cn1lib=$lib_code)"
echo "[$i/90] Waiting on Maven Central (plugin=$plugin_code, catalog=$catalog_code, hints=$hints_code, cn1app=$app_code, cn1lib=$lib_code)"
sleep 20
done
echo "Artifacts ${GITHUB_REF_NAME} did not appear on Maven Central within 30 minutes"
Expand All @@ -153,6 +157,7 @@ jobs:
# this keeps the release green even if that rule is ever removed.
set -e
for artifact in codenameone-core codenameone-maven-plugin codenameone-platform-feature-catalog \
codenameone-build-hint-catalog \
cn1app-archetype cn1lib-archetype; do
url="${R2_BASE_URL}/com/codenameone/${artifact}/${GITHUB_REF_NAME}/${artifact}-${GITHUB_REF_NAME}.pom?cb=${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}"
code=$(curl -s -o /dev/null -w "%{http_code}" "$url")
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/windows-cross-build-run.yml
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ jobs:
# translation failure that came and went would have passed on attempt two and taken
# the gate green with it -- laundering exactly the kind of intermittent product bug
# this job exists to catch. The unit test workflow narrows it for the same reason.
RETRY_ONLY_MATCHING: 'status: (403|429|50[0-9])|Could not transfer artifact|Unresolveable build extension|Non-resolvable import POM|Connection reset|Premature end of Content-Length'
RETRY_ONLY_MATCHING: 'status: (403|429|50[0-9])|Could not transfer artifact|Failed to read artifact descriptor|Unresolveable build extension|Non-resolvable import POM|Connection reset|Premature end of Content-Length'
run: |
cd vm
# Through the retry wrapper: this resolves plugins from Maven Central and the runner
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/windows-cross-compile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ jobs:
# retries reuse the previous attempt's target directories, so a partial output
# can decide the result. Matching the output keeps a real failure terminal on
# its first occurrence, and the retry starts from clean.
resolution='status: (403|429|50[0-9])|Could not transfer artifact|Unresolveable build extension|Non-resolvable import POM|Could not resolve dependencies'
resolution='status: (403|429|50[0-9])|Could not transfer artifact|Failed to read artifact descriptor|Unresolveable build extension|Non-resolvable import POM|Could not resolve dependencies'
goal=install
for delay in 30 120 300 0; do
# PIPESTATUS, not the pipeline's status: tee succeeds even when mvn does not,
Expand Down
Loading