Compare commits
3 Commits
v0.3.1
...
release/v0
| Author | SHA1 | Date | |
|---|---|---|---|
| 3f166ef5f0 | |||
| 41bd49826a | |||
| 05c75bafa7 |
@@ -399,21 +399,29 @@ jobs:
|
|||||||
sed -i -e '/./,$!d' release-notes.md
|
sed -i -e '/./,$!d' release-notes.md
|
||||||
fi
|
fi
|
||||||
[ -s release-notes.md ] || echo "_See CHANGELOG.md for ${VERSION}._" > release-notes.md
|
[ -s release-notes.md ] || echo "_See CHANGELOG.md for ${VERSION}._" > release-notes.md
|
||||||
# The pipeline creates the tag via the Gitea API, which the push mirror
|
# Forgejo 500s on POST /releases when the tag ALREADY exists, and a
|
||||||
# (sync_on_commit only fires on real git pushes) doesn't propagate
|
# bare tag is not a release — so GET /releases/tags then 404s and the
|
||||||
# promptly — so a release POST that carries a target_commitish can
|
# upsert has no id to fall back on ("Could not resolve Codeberg
|
||||||
# outrun the mirror and 500 on a commit/tag Codeberg hasn't received.
|
# release id", the 0.3.1 failure). Pushing the tag first therefore
|
||||||
# Push the tag straight to Codeberg so it's guaranteed present, then
|
# guarantees the 500 rather than avoiding it; 0.3.0 published because
|
||||||
# attach the release to that existing tag with NO target_commitish
|
# it POSTed while the tag was still absent. So: POST with the tag
|
||||||
# (which is what triggered the 500).
|
# ABSENT and let the API mint tag + release together from
|
||||||
git tag -f "$TAG" "$SHA"
|
# target_commitish. Branches mirror reliably, so the commit is already
|
||||||
git push -f "https://jlmakiola:${TOKEN}@codeberg.org/jlmakiola/agendula.git" \
|
# on Codeberg — only a tag the mirror raced in ahead of us is in the
|
||||||
"refs/tags/$TAG"
|
# way, and clearing it is safe precisely because no release owns it.
|
||||||
python3 - "$TAG" "$PRERELEASE" <<'PY' > cb-payload.json
|
ID=$(curl -s -H "Authorization: token $TOKEN" "$API/releases/tags/$TAG" | jq -r '.id // empty')
|
||||||
|
if [ -z "$ID" ]; then
|
||||||
|
curl -s -o /dev/null -w "codeberg tag DELETE HTTP %{http_code}\n" -X DELETE \
|
||||||
|
-H "Authorization: token $TOKEN" "$API/tags/$TAG"
|
||||||
|
fi
|
||||||
|
python3 - "$TAG" "$SHA" "$PRERELEASE" <<'PY' > cb-payload.json
|
||||||
import json, sys
|
import json, sys
|
||||||
tag, pre = sys.argv[1:3]
|
tag, sha, pre = sys.argv[1:4]
|
||||||
print(json.dumps({
|
print(json.dumps({
|
||||||
"tag_name": tag,
|
"tag_name": tag,
|
||||||
|
# Recreate the tag as part of the release; the commit is on
|
||||||
|
# Codeberg already via the branch mirror.
|
||||||
|
"target_commitish": sha,
|
||||||
"name": tag,
|
"name": tag,
|
||||||
"body": open("release-notes.md").read(),
|
"body": open("release-notes.md").read(),
|
||||||
"draft": False,
|
"draft": False,
|
||||||
@@ -421,8 +429,9 @@ jobs:
|
|||||||
"prerelease": pre == "true",
|
"prerelease": pre == "true",
|
||||||
}))
|
}))
|
||||||
PY
|
PY
|
||||||
# Upsert (re-run safe).
|
# Upsert (re-run safe): a release that already exists is PATCHed in
|
||||||
ID=$(curl -s -H "Authorization: token $TOKEN" "$API/releases/tags/$TAG" | jq -r '.id // empty')
|
# place — the delete above is skipped in that case, so re-running
|
||||||
|
# never disturbs a published release.
|
||||||
if [ -n "$ID" ]; then
|
if [ -n "$ID" ]; then
|
||||||
curl -s -o /dev/null -w "release PATCH HTTP %{http_code}\n" -X PATCH \
|
curl -s -o /dev/null -w "release PATCH HTTP %{http_code}\n" -X PATCH \
|
||||||
-H "Authorization: token $TOKEN" -H "Content-Type: application/json" \
|
-H "Authorization: token $TOKEN" -H "Content-Type: application/json" \
|
||||||
|
|||||||
@@ -7,6 +7,14 @@ All notable changes to this project are documented here. The format follows
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [0.3.2] - 2026-07-20
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Releases reach the Codeberg download channel again. 0.3.1 published to
|
||||||
|
F-Droid but never appeared on Codeberg, so if you install from there — or
|
||||||
|
through Obtainium — this is the release that finally carries 0.3.0's
|
||||||
|
launch-crash fix. The app itself is unchanged from 0.3.1.
|
||||||
|
|
||||||
## [0.3.1] - 2026-07-20
|
## [0.3.1] - 2026-07-20
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|||||||
@@ -29,8 +29,8 @@ android {
|
|||||||
// release itself (versionCode is pinned to MAJOR*10000 + MINOR*100 +
|
// release itself (versionCode is pinned to MAJOR*10000 + MINOR*100 +
|
||||||
// PATCH from versionName, e.g. 0.2.0 -> 200). The Gitea release is marked
|
// PATCH from versionName, e.g. 0.2.0 -> 200). The Gitea release is marked
|
||||||
// as a pre-release while MAJOR is 0. See docs/RELEASING.md.
|
// as a pre-release while MAJOR is 0. See docs/RELEASING.md.
|
||||||
versionCode = 301
|
versionCode = 302
|
||||||
versionName = "0.3.1"
|
versionName = "0.3.2"
|
||||||
|
|
||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
|
|||||||
6
fastlane/metadata/android/en-US/changelogs/302.txt
Normal file
6
fastlane/metadata/android/en-US/changelogs/302.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
### Fixed
|
||||||
|
- Releases reach the Codeberg download channel again. 0.3.1 published to
|
||||||
|
F-Droid but never appeared on Codeberg, so if you install from there — or
|
||||||
|
through Obtainium — this is the release that finally carries 0.3.0's
|
||||||
|
launch-crash fix. The app itself is unchanged from 0.3.1.
|
||||||
|
|
||||||
Reference in New Issue
Block a user