Skip to content

Releasing to PyPI from this repo #18

Closed

Description

@tae898

Releases of this repo are published to PyPI by trusted publishing (OIDC, no tokens) from this repo's own workflows. This issue tracks what is left before the first release. It started as a question (the spec of this repo lists PyPI publishing as a non-goal, so how should releases work); the answer was to port the release workflow here (#22), and the repo now has two distributions (#66).

Distributions

  • arcadedb: the GraalVM native build (the default), released by release-native.yml.
  • arcadedb-jvm: the JVM build with a bundled JRE (platform wheels for Linux x86_64 and ARM64, macOS ARM64 and Windows x86_64), released by release-jvm.yml.

Both are imported as arcadedb. The tag is the bare version (26.11.1, 26.11.1.dev0, 26.11.1.post1; no v), and the same tag starts both workflows; each one checks it against its own PyPI project with scripts/check_version.py and verifies the published package after the tag with scripts/after_tag_verify.sh (#43).

Checklist

  • Repo rename: the repository is ArcadeData/arcadedb-python.
  • Release workflows in this repo: release-jvm.yml and release-native.yml (Add release workflow publishing to PyPI by trusted publishing #22, reworked for two distributions in Build two distributions: arcadedb (native) and arcadedb-jvm (JVM) #66).
  • GitHub environments in this repo: pypi (native, project arcadedb) and pypi-jvm (project arcadedb-jvm). Neither has required reviewers.
  • Trusted publishers configured on PyPI: arcadedb-jvm from release-jvm.yml with environment pypi-jvm, and arcadedb from release-native.yml with environment pypi.
  • First release run end to end (tag, build, publish, after-tag verification). No release has run yet. The native readiness bar is met on main (5df565c); the first release waits for upstream ArcadeDB 26.11.1.
  • Decide where the PyPI projects live. They are owned by personal PyPI accounts today, and ArcadeData has no PyPI organization (the organization named arcadedb lists no projects). This does not block the first release.
  • Retire the old names after the first release from here (planned): arcadedb-embedded becomes a shim that installs arcadedb, arcadedb-embedded-native is archived, and arcadedb-native stays reserved.

Until a release from this repo has worked end to end, nothing changes for users of the existing packages.

Activity

  1. tae898 commented on Oct 26, 2026

    @tae898
    CollaboratorAuthor

    Status 2026-10-26: the first pre-release went out from this repository. arcadedb 26.11.1.dev0 (native): 4 wheels (py3-none: manylinux_2_28 x86_64 and aarch64, macOS arm64, Windows x64). arcadedb-jvm 26.11.1.dev0: 16 wheels (cp311-cp314 x the same 4 platforms). The first attempt failed in my own release guards (CRLF in the Windows wheel's METADATA); fixed in #91, then the same tag was re-cut. Next: #92 makes the JVM wheels py3-none-<platform> (4 per release instead of 16, requires-python >=3.11,<3.15 until jpype1 ships cp315 wheels); the final 26.11.1 follows the upstream ArcadeDB 26.11.1 release.

  2. added this to the 26.11.1 milestone on Nov 5, 2026
  3. tae898 commented on Nov 5, 2026

    @tae898
    CollaboratorAuthor

    ArcadeDB 26.11.1 is out, thanks! The publishing setup above is done, and this issue now also tracks the first final release of the two packages on it, arcadedb (native) and arcadedb-jvm, version 26.11.1. Until then the 26.11.1.dev2 pre-releases are on PyPI.

    @robfrank, for your information: the plan and the open items are below, and everything that goes into the release is in the 26.11.1 milestone.

    Plan. The 26.11.1 tag follows as soon as the checklist below is green, which I expect on Nov 6 (Nov 10 at the latest). The tag is the cut: binding changes that land after it ship as 26.11.1.post1.

    Checklist

    • Engine 26.11.1 on Maven Central and Docker Hub
    • Merge the open pull requests in the milestone: performance and correctness changes, each with its timed A/B result and docs
    • Full test suite and native/JVM parity green on main after the merges (Linux x86_64 and aarch64, macOS arm64, Windows x64; Python 3.11 to 3.14)
    • Native soak (leak and latency criteria, several hours) passes on the release-candidate wheel
    • Release preflight passes (scripts/release_preflight.py 26.11.1)
    • Tag 26.11.1: the release workflows build and publish both packages
    • After the tag: install both packages from PyPI on each platform and run the smoke check

    Questions or anything you would like in this release: comment here.

    Edited 2026-11-05: the tag is the cut (no separate freeze date), expected Nov 6; added the native soak to the checklist.

    🤖 Generated with Claude Code

  4. modified the milestones: 26.11.1, 26.12.1 on Nov 5, 2026
  5. tae898 commented on Nov 5, 2026

    @tae898
    CollaboratorAuthor

    Both 26.11.1 finals are out and verified.

    I ran scripts/after_tag_verify.sh against both. Each PyPI file matches the workflow artifact by sha256, the file set matches the 26.11.1.dev2 shape, nothing is over 100 MB or yanked, and the fresh-environment smoke runs pass on Python 3.12 and 3.14 (SQL, openCypher, engine 26.11.1). The one FAIL it printed for the native run was a bug in the script (the native publish step is unnamed, so the name check came back empty), not in the release. The upload step succeeded. The fix is in #274.

    Wheel sizes:

    platform arcadedb (native) arcadedb-jvm
    macosx_11_0_arm64 64.6 MiB 61.6 MiB
    manylinux_2_28_aarch64 64.0 MiB 64.0 MiB
    manylinux_2_28_x86_64 62.9 MiB 65.1 MiB
    win_amd64 63.6 MiB 63.4 MiB

    The milestone is closed. What is left moves to the 26.12.1 milestone.

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

    parent-issueTracks a group of issues and pull requests

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions