Skip to content

Release: one release "latest" titled "Camex <version>", stable file names, SHA256SUMS #60

Closed

Description

@compot-dev

Goal

Use the same release scheme as OpenIPC/vtesse and OpenIPC/vectis#39:

  • One release only, tagged latest, rebuilt by CI from every push to master. No versioned releases or v* tags are kept.
  • Title Camex MAJOR.MINOR.PATCH: capital C, no v, the version from CAMEX_VERSION in src/version.h (now Camex 3.0.1).
  • Asset names without a version, so the download links never change.
  • SHA256SUMS in the release, as in vtesse and vectis.
  • One build per platform: already the case. camex.ko is built in CI as a check only and stays out of the release (it is built for a given kernel).

Current state (.github/workflows/build.yml, job release, lines 456 on)

  • Runs on a v* tag or on workflow_dispatch with a version input; checks src/version.h against the tag.
  • Title camex v<ver>; assets camex-<ver>-<arch>, camex-<ver>-android.apk, camex-<ver>-macos.zip, camex-<ver>-windows-{x86_64,i686}.zip; no checksums.
  • Three releases are kept: v2.3.8, v3.0.0, v3.0.1.
  • The Telegram step posts the APK whenever a release is created.

Task

  1. Release job: publish latest from a push to master after all jobs it needs (linux, smoke, android, windows, wine-smoke, macos) pass. Delete the old latest release and tag with --cleanup-tag, then create it again on the commit that was built, with --latest and the title Camex <ver>. Drop the v* tag trigger and the workflow_dispatch version input (keep workflow_dispatch itself if useful for a manual rebuild). Short notes: the version, the commit, a pointer to CHANGELOG.md and the README.
  2. Stable asset names: camex-aarch64, camex-arm, camex-mipsel, camex-x86_64, camex-android.apk, camex-macos.zip, camex-windows-x86_64.zip, camex-windows-i686.zip, plus SHA256SUMS (sha256sum * in the release directory, checked with sha256sum -c before publishing).
  3. Telegram: post the APK only when the version changes (compare with the title of the current latest before replacing it), as OpenIPC/vtesse does (Keenetic: Entware (opkg) package #33 there). A push to master without a new version must not reach the channel.
  4. Remove the v2.3.8, v3.0.0 and v3.0.1 releases and their tags once latest has been published and checked and Add CHANGELOG.md with the version history #59 has their notes.

Documentation (same PR)

  • README.md, README.ru.md, README.zh-CN.md (one commit, same structure):
    • a "Permanent links" section: page https://github.com/OpenIPC/camex/releases/latest, downloads https://github.com/OpenIPC/camex/releases/latest/download/<file>, the list of asset names and sha256sum -c SHA256SUMS;
    • the release badge (line 8) links to releases/latest;
    • a pointer to CHANGELOG.md (Add CHANGELOG.md with the version history #59);
    • wherever installation or the release process is described: stable file names, "rebuilt from every push to master".
  • Comments in build.yml (header, the release job, the asset renaming steps) and docs/ where releases or tags are mentioned.
  • CHANGELOG.md: an entry for this change.

Order: #59 first. Related: OpenIPC/vtesse#42, OpenIPC/vectis#39.

Activity

  1. added
    uniRelease naming and management, common across the repositories
    on Oct 17, 2026
  2. added a commit that references this issue on Oct 17, 2026
  3. compot-dev commented on Oct 17, 2026

    @compot-dev
    CollaboratorAuthor

    Done in #64; the first latest was published from 40c5c1c:

    • Release Camex 3.0.2, tag latest, marked as latest; releases/latest redirects to it.
    • 9 files: camex-aarch64, camex-arm, camex-mipsel, camex-x86_64, camex-android.apk (517294 bytes, signed), camex-macos.zip, camex-windows-x86_64.zip, camex-windows-i686.zip, SHA256SUMS. Downloaded through releases/latest/download/<file>: sha256sum -c OK.
    • Telegram: the APK was posted (HTTP 200), since there was no previous latest.
    • Checked from the release: camex-arm and camex-mipsel print camex 3.0.2 and generate keys on OpenIPC ARM and MIPS cameras; the APK (versionName 3.0.2) installs and starts on an Android 10 TV box.
    • Step 4: the v2.3.8, v3.0.0 and v3.0.1 releases and their tags are removed; their notes are in CHANGELOG.md (Add CHANGELOG.md with the version history #59, docs: CHANGELOG.md with the version history (#59) #62).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    uniRelease naming and management, common across the repositories

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions