Skip to content

Prepare 1.4.2 release - #1480

Merged
frankslin merged 4 commits into
BYVoid:masterfrom
frankslin:upstream-master
Aug 22, 2026
Merged

frankslin merged 4 commits into
BYVoid:masterfrom
frankslin:upstream-master

Conversation

@frankslin

Copy link
Copy Markdown
Collaborator

Bump every version string to 1.4.2, finalize the NEWS entry, and adjust the Debian packaging so the release build stamps the new version. The C++ ABI is unchanged from 1.4.1, so OPENCC_ABI_VERSION stays at 1.4.

Detailed Changes:

  • Version strings:
    • cmake/GitVersion.cmake: _OPENCC_FALLBACK_REVISION 1 -> 2.
    • scripts/compute-version.sh: FALLBACK_VERSION 1.2.1 -> 1.4.2; it had drifted out of sync with cmake/GitVersion.cmake since 1.2.1.
    • setup.py, MODULE.bazel, node/BUILD.bazel, scripts/build-cli-windows-zig.sh, scripts/build-node-windows-zig.sh: bumped to 1.4.2.
    • package.json and plugins/jieba/node/package.json: version and the five @opencc/* optional dependencies bumped to 1.4.2.
    • package-lock.json: version bumped and the node_modules/@opencc/* entries dropped; their integrity hashes are regenerated after the scoped binary packages are published, as in 1.4.1.
  • NEWS.md:
  • README.md: prebuilt binary links and the release-focus paragraph updated to 1.4.2.
  • Debian packaging:
    • Added a 1.4.2-1 changelog entry; release-deb.yml names its artifacts from dpkg-parsechangelog, which would otherwise still report 1.4.1+ds1-7.
    • Dropped 0010-fix-git-version-fallback.patch: it moves the fallback revision from 0 to 1, which neither applies nor reverse-applies once upstream ships 2, and would abort scripts/build-deb-packages.sh.
    • packaging/debian/README.md: refreshed the baseline, patch list and refresh instructions to describe the two deltas above.

Bump every version string to 1.4.2, finalize the NEWS entry, and adjust
the Debian packaging so the release build stamps the new version. The
C++ ABI is unchanged from 1.4.1, so OPENCC_ABI_VERSION stays at 1.4.

Detailed Changes:
- **Version strings**:
  - `cmake/GitVersion.cmake`: `_OPENCC_FALLBACK_REVISION` 1 -> 2.
  - `scripts/compute-version.sh`: `FALLBACK_VERSION` 1.2.1 -> 1.4.2; it
    had drifted out of sync with `cmake/GitVersion.cmake` since 1.2.1.
  - `setup.py`, `MODULE.bazel`, `node/BUILD.bazel`,
    `scripts/build-cli-windows-zig.sh`,
    `scripts/build-node-windows-zig.sh`: bumped to 1.4.2.
  - `package.json` and `plugins/jieba/node/package.json`: version and the
    five `@opencc/*` optional dependencies bumped to 1.4.2.
  - `package-lock.json`: version bumped and the `node_modules/@opencc/*`
    entries dropped; their integrity hashes are regenerated after the
    scoped binary packages are published, as in 1.4.1.
- **NEWS.md**:
  - `Unreleased` becomes `Version 1.4.2` with the release date.
  - Added the STPhrases classical-context entries for one-to-many s2t
    characters found while cleaning up the Daizhige corpus (BYVoid#1479).
  - Noted the fallback-version bump and the resulting Debian patch drop.
- **README.md**: prebuilt binary links and the release-focus paragraph
  updated to 1.4.2.
- **Debian packaging**:
  - Added a `1.4.2-1` changelog entry; `release-deb.yml` names its
    artifacts from `dpkg-parsechangelog`, which would otherwise still
    report `1.4.1+ds1-7`.
  - Dropped `0010-fix-git-version-fallback.patch`: it moves the fallback
    revision from 0 to 1, which neither applies nor reverse-applies once
    upstream ships 2, and would abort `scripts/build-deb-packages.sh`.
  - `packaging/debian/README.md`: refreshed the baseline, patch list and
    refresh instructions to describe the two deltas above.
Refresh packaging/debian/debian from the salsa repository at e4d7c5e8,
which moves the byte-order-dependent .ocd2 dictionaries out of the
arch:all data packages, and re-apply the two upstream deltas on top.

Detailed Changes:
- **Sync from Debian**:
  - `*.ocd2` moves back from `libopencc-data` (arch:all) to
    `libopencc1.4` (arch:any), and `jieba_merged.ocd2` from
    `opencc-jieba-data` to `opencc-jieba`, with matching
    `Breaks`/`Replaces` against the `<< 1.4.1+ds1-8~` data packages.
    The files are marisa-trie images in host byte order, so every
    architecture was getting the little-endian copies built on the
    arch:all buildd and opencc failed on s390x with `size > avail_`
    (Debian bug #1145010, caught by the s390x autopkgtest re-enabled
    in -7). This reverts an upstream proposal adopted in -4.
  - `debian/README.source`: new section on why `.ocd2` is
    architecture-dependent and why `libopencc1.4` cannot be
    `Multi-Arch: same`.
  - `debian/opencc-jieba.lintian-overrides`: new file overriding
    `arch-dep-package-has-big-usr-share`.
  - `debian/control`: binary package descriptions updated to say which
    package holds the dictionaries.
- **Re-applied upstream deltas**: the `1.4.2-1` UNRELEASED changelog
  entry and the removal of `0010-fix-git-version-fallback.patch`. The
  remaining series was re-verified against the tree: 0003, 0004, 0005,
  0009 and 0011 apply; 0012 is already contained upstream.
- **packaging/debian/README.md**: baseline moved to `1.4.1+ds1-8` with
  the sync commit recorded, the `*.ocd2` proposal marked as reverted,
  and the binary package list and Multi-Arch notes brought in line.
- **NEWS.md**: the packaging bullet now describes the `-8` sync and the
  `.ocd2` revert instead of stopping at `-7`.
SignPath Foundation's free certificate for open source projects requires
the project to acknowledge the service and publish a code signing and
privacy policy, which OpenCC had not done since adopting SignPath.

Detailed Changes:
- **README.md**:
  - New "Code Signing 程式碼簽章" section with the acknowledgement of
    SignPath.io and the SignPath Foundation, the signing policy (only
    commits merged to master are signed, requests are raised by the
    maintainers from the release workflows) and the privacy statement.
  - The Windows prebuilt binary entry now points at that section.
- **NEWS.md**: the packaging bullet now states that Windows binaries are
  Authenticode-signed from 1.4.2 on, names both SignPath entities and
  links to them, instead of only mentioning the release-signing policy.
Record which dimensions each binary dictionary format is portable across,
so the constraint is discoverable before someone tries to ship generated
dictionaries from an architecture-independent package or reaches for a
MARISA_WORD_SIZE override.

Detailed Changes:
- **src/README.md**: New "Binary Format Portability" section under
  Dictionaries covering:
  - `.ocd` is byte-order dependent but word-size independent since 1.4.1,
    with the fixed-width fields and the legacy 64-bit detection path that
    make it so.
  - `.ocd2` is dependent on both, because marisa derives MARISA_WORD_SIZE
    from UINTPTR_MAX and serializes BitVector/FlatVector units at that
    width; a word-size mismatch is not reliably rejected on load.
  - Why forcing MARISA_WORD_SIZE to 32 does not fix it, and what a real
    fix would cost.
@frankslin

Copy link
Copy Markdown
Collaborator Author

Node 相關 check failure 是因為 1.4.2 prebuilt NPM packages 尚不存在,在本 PR 合並後執行 workflow 即可建立這些 packages。

@frankslin
frankslin merged commit 6712643 into BYVoid:master Aug 22, 2026
23 of 40 checks passed
@frankslin
frankslin deleted the upstream-master branch August 22, 2026 17:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant