diff --git a/CHANGELOG.md b/CHANGELOG.md index c05f5f0..2375ab3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,10 +3,9 @@ The version lives in `versionName` in `android/app/build.gradle` (`v2`) and in `app/build.gradle` (`basic`). Builds are published only as the [`latest`](https://github.com/OpenIPC/decoder/releases/tag/latest) release, which holds the -newest `v2` and `basic` builds, and in the OpenIPC Telegram channel; there are no releases +newest `v2` and `basic` builds; each new `v2` version also goes to the OpenIPC Telegram channel as its APK. There are no releases per version (#194). Since #229 the release is titled `Decoder `, its tag is on the -built `v2` commit, its notes give each branch's version and commit, `SHA256SUMS` covers all its -files, and the Telegram channel gets each new version rather than every build. This file is the change history: one section per `v2` version, newest +built `v2` commit, its notes give each branch's version and commit, and the Telegram channel gets the APK of each new `v2` version rather than every build. This file is the change history: one section per `v2` version, newest first, then the legacy `basic` line. Versions after 2.17 are `MAJOR.MINOR.PATCH` (2.17 is followed by 2.17.1 or 2.18.0; see diff --git a/README.md b/README.md index c2c51ba..9e693dd 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Ready-to-install builds are in the one release, [**latest**](https://github.com/ | `decoder-v2.apk` | **Current version**, recommended | | | `decoder.apk` | Legacy version from the `basic` branch | | -Every build is replaced in `latest` by the next one. Development is continuous, so there are no releases per version; every new `v2` and `basic` version is also posted with its commit to the OpenIPC Telegram channel ([our channels](https://openipc.org/our-channels)). +Every build is replaced in `latest` by the next one. Development is continuous, so there are no releases per version; every new `v2` version is also posted as its APK, with the commit, to the OpenIPC Telegram channel ([our channels](https://openipc.org/our-channels)). The change history of every version is in [CHANGELOG.md](CHANGELOG.md). diff --git a/README.ru.md b/README.ru.md index 1bdd4e3..d1b7d8a 100644 --- a/README.ru.md +++ b/README.ru.md @@ -45,7 +45,7 @@ | `decoder-v2.apk` | **Текущая версия**, рекомендуется | | | `decoder.apk` | Старая версия из ветки `basic` | | -Каждая новая сборка заменяет предыдущую в `latest`. Разработка идёт непрерывно, поэтому отдельных релизов по версиям нет; каждая новая версия веток `v2` и `basic` с коммитом публикуется в Telegram-канале OpenIPC ([наши каналы](https://openipc.org/our-channels)). +Каждая новая сборка заменяет предыдущую в `latest`. Разработка идёт непрерывно, поэтому отдельных релизов по версиям нет; каждая новая версия ветки `v2` с коммитом публикуется файлом APK в Telegram-канале OpenIPC ([наши каналы](https://openipc.org/our-channels)). История изменений по версиям — в [CHANGELOG.md](CHANGELOG.md). diff --git a/README.zh-CN.md b/README.zh-CN.md index a82c0c4..cab2fcf 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -45,7 +45,7 @@ | `decoder-v2.apk` | **当前版本**,推荐使用 | | | `decoder.apk` | `basic` 分支的旧版本 | | -每次新构建都会替换 `latest` 中的上一个构建。开发是持续进行的,因此不再按版本单独发布;`v2` 和 `basic` 分支的每个新版本连同提交都会发布到 OpenIPC 的 Telegram 频道([我们的频道](https://openipc.org/our-channels))。 +每次新构建都会替换 `latest` 中的上一个构建。开发是持续进行的,因此不再按版本单独发布;`v2` 分支的每个新版本都会以 APK 文件连同提交发布到 OpenIPC 的 Telegram 频道([我们的频道](https://openipc.org/our-channels))。 各版本的变更记录见 [CHANGELOG.md](CHANGELOG.md)。 diff --git a/docs/testing.md b/docs/testing.md index b23d528..716b3ea 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -29,11 +29,11 @@ Base pull requests on `v2`. What a `build` run publishes: -| Branch | Output | -|-----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `v2` | `decoder-v2.apk` and `decoder-v2-mapping.txt` in the [`latest`](https://github.com/OpenIPC/decoder/releases/tag/latest) release (replaced by every build); a message with the APK, version and commit to the OpenIPC Telegram channel | -| `basic` | `decoder.apk` and its mapping in `latest`; Telegram | -| any other | workflow artifacts `decoder-` (APK) and `…-mapping` on the run page | +| Branch | Output | +|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `v2` | `decoder-v2.apk` and `decoder-v2-mapping.txt` in the [`latest`](https://github.com/OpenIPC/decoder/releases/tag/latest) release (replaced by every build); the APK with its version and commit to the OpenIPC Telegram channel (new versions only) | +| `basic` | `decoder.apk` in `latest`; nothing to Telegram | +| any other | workflow artifacts `decoder-` (APK) and `…-mapping` on the run page | Every run, `v2` and `basic` included, also keeps its mapping as the artifact `…-mapping`. Artifacts expire after 90 days. @@ -50,7 +50,7 @@ CI is the reference: the project does not depend on local builds. - Versions are **`MAJOR.MINOR.PATCH`** (`versionName` in `android/app/build.gradle`): PATCH for fixes and small changes, MINOR for a new feature, MAJOR for an incompatible change or a large update, only when the maintainer decides. Every pull request that changes the app or its build (`android/`, except the unit tests and Markdown files, and `.github/workflows/build.yml`, which holds build steps) bumps the version as its last commit before the merge: `versionName` by that rule and `versionCode` +1. Docs-only and test-only pull requests do not. A pull request that changes the app or the build but not the APKs (a test or publication step in the workflow, a comment) takes the `no-release` label instead and keeps the version. Numbers are not reserved for open pull requests: each one takes the next number when it is merged. CI checks this on every pull request (`.github/check-version.sh`): a new number must be canonical (no leading zeros), greater than the base one, and come with its own `CHANGELOG.md` section. - Until 2.17 `v2` counted **2.xx** (+0.01 per pull request); 2.17 is followed by 2.17.1 or 2.18.0. `basic` keeps its 1.7.x line (1.07.1 is 1.7.1). - **`CHANGELOG.md`** is the change history: the version bump commit of a pull request that changes the app adds the version's section (`## — `, newest first) in the same pull request. -- Development is continuous, so there is **no release per version** (#194). The one release, [`latest`](https://github.com/OpenIPC/decoder/releases/latest), holds the newest `v2` and `basic` builds and is updated in place by both (`.github/publish-latest.sh`, #229): each branch replaces only its own files; a `v2` build moves the `latest` tag to the commit it built and sets the title `Decoder `; the notes have one line per branch with its version and commit. Every **new version** (not every build) of `v2` and `basic` is posted to the OpenIPC Telegram channel, where the older builds can be found. Builds of other branches are only workflow artifacts of their runs (90 days). +- Development is continuous, so there is **no release per version** (#194). The one release, [`latest`](https://github.com/OpenIPC/decoder/releases/latest), holds the newest `v2` and `basic` builds and is updated in place by both (`.github/publish-latest.sh`, #229): each branch replaces only its own files; a `v2` build moves the `latest` tag to the commit it built and sets the title `Decoder `; the notes have one line per branch with its version and commit. The APK of every **new `v2` version** (not every build) is posted to the OpenIPC Telegram channel, where the older builds can be found; `basic` posts nothing there. Builds of other branches are only workflow artifacts of their runs (90 days). - **Test pre-releases**: to let a reporter test a branch, a pre-release named after the issue is made by hand from the branch's CI artifact (never from a local build), e.g. [`toys-187-test2`](https://github.com/OpenIPC/decoder/releases/tag/toys-187-test2) for #187. It is deleted when the test is over, or replaced by the next one. ```sh