diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 86b80802..73234e30 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -2,7 +2,7 @@ # # Triggers: # - Push to main / master -> publish `:edge` (and the commit SHA) -# - Push of a tag like v0.1.11 -> publish `:0.1.11`, `:0.1`, `:latest` +# - Push of a tag like v0.1.16 -> publish `:0.1.16`, `:0.1`, `:latest` # - Manual workflow_dispatch -> custom tag via input # # No external secrets needed — uses the built-in GITHUB_TOKEN for auth. diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index ecc9455d..9c135ece 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -116,12 +116,16 @@ jobs: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v6 - - uses: actions/setup-python@v6 + # Build inside manylinux2014 so the shipped Rust binary targets glibc 2.17 + # instead of the newer glibc from the GitHub-hosted Ubuntu runner. + - uses: PyO3/maturin-action@v1 with: - python-version: "3.12" - - uses: dtolnay/rust-toolchain@stable - - run: python -m pip install "maturin>=1.0,<2.0" - - run: maturin build --release --out dist --manifest-path dlslime-ctrl/Cargo.toml + manylinux: "2014" + command: build + args: >- + --release + --out dist + --manifest-path dlslime-ctrl/Cargo.toml - uses: actions/upload-artifact@v4 with: name: dist-dlslime-ctrl diff --git a/dlslime-ctrl/Cargo.lock b/dlslime-ctrl/Cargo.lock index 836ef958..3bc02ea8 100644 --- a/dlslime-ctrl/Cargo.lock +++ b/dlslime-ctrl/Cargo.lock @@ -310,7 +310,7 @@ dependencies = [ [[package]] name = "dlslime-ctrl" -version = "0.1.11" +version = "0.1.16" dependencies = [ "anyhow", "axum", diff --git a/dlslime-ctrl/Cargo.toml b/dlslime-ctrl/Cargo.toml index 639354d8..b3af42ef 100644 --- a/dlslime-ctrl/Cargo.toml +++ b/dlslime-ctrl/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "dlslime-ctrl" -version = "0.1.11" +version = "0.1.16" edition = "2021" description = "DLSlime control plane server" license = "MIT" diff --git a/dlslime-ctrl/pyproject.toml b/dlslime-ctrl/pyproject.toml index 7d2c61da..44bcda0f 100644 --- a/dlslime-ctrl/pyproject.toml +++ b/dlslime-ctrl/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "dlslime-ctrl" -version = "0.1.11" +version = "0.1.16" description = "DLSlime control-plane server (Redis-backed service registry and peer-agent coordinator)" requires-python = ">=3.10" # The Python client lives in the `dlslime` package as `dlslime.ctrl.NanoCtrlClient`. diff --git a/dlslime/pyproject.toml b/dlslime/pyproject.toml index 301e619a..e2bcd9d3 100644 --- a/dlslime/pyproject.toml +++ b/dlslime/pyproject.toml @@ -25,7 +25,7 @@ description = "DLSlime Transfer Engine" name = "dlslime" readme = "README.md" requires-python = ">=3.8" -version = "0.1.11" +version = "0.1.16" dependencies = [ "pydantic>=2.0", "pyzmq>=25.0", diff --git a/docker/.env.example b/docker/.env.example index d47d7373..624cb8a6 100644 --- a/docker/.env.example +++ b/docker/.env.example @@ -27,5 +27,5 @@ DLSLIME_CTRL_RUST_LOG=info # By default both compose files build the image locally from ctrl.Dockerfile. # To pull a pre-built image from GitHub Container Registry (GHCR) instead: -# DLSLIME_CTRL_IMAGE=ghcr.io/deeplink-org/dlslime-ctrl:0.1.11 +# DLSLIME_CTRL_IMAGE=ghcr.io/deeplink-org/dlslime-ctrl:0.1.16 # DLSLIME_CTRL_PULL_POLICY=missing diff --git a/docker/README.md b/docker/README.md index 8e58032f..1512b144 100644 --- a/docker/README.md +++ b/docker/README.md @@ -104,7 +104,7 @@ Why GHCR rather than Docker Hub: ```bash cat >> docker/.env <<'EOF' -DLSLIME_CTRL_IMAGE=ghcr.io/deeplink-org/dlslime-ctrl:0.1.11 +DLSLIME_CTRL_IMAGE=ghcr.io/deeplink-org/dlslime-ctrl:0.1.16 DLSLIME_CTRL_PULL_POLICY=missing EOF @@ -127,7 +127,7 @@ The workflow [`.github/workflows/docker-publish.yml`](../.github/workflows/docke | Trigger | Tags published | | -------------------------- | ---------------------------------------- | | Push to `main` / `master` | `edge`, `sha-` | -| Push tag `v0.1.11` | `0.1.11`, `0.1`, `latest`, `sha-` | +| Push tag `v0.1.16` | `0.1.16`, `0.1`, `latest`, `sha-` | | Manual `workflow_dispatch` | optional extra tag from the input | One-time setup after the **first** successful workflow run, in the GitHub UI: @@ -141,12 +141,12 @@ Releasing a new version: ```bash # bump versions in: # Cargo.toml, dlslime-ctrl/pyproject.toml, dlslime/pyproject.toml, pyproject.toml -git commit -am "release: v0.1.11" -git tag v0.1.11 +git commit -am "release: v0.1.16" +git tag v0.1.16 git push origin main --tags ``` -The workflow will build `linux/amd64` + `linux/arm64` and push `0.1.11`, `0.1`, `latest`. +The workflow will build `linux/amd64` + `linux/arm64` and push `0.1.16`, `0.1`, `latest`. ### Manual push (without CI) @@ -162,7 +162,7 @@ echo "$GHCR_PAT" | docker login ghcr.io -u --password-std # 3. Build multi-arch and push. docker buildx create --use --name dlslime-builder 2>/dev/null || docker buildx use dlslime-builder -VERSION=0.1.11 +VERSION=0.1.16 docker buildx build \ --platform linux/amd64,linux/arm64 \ -f docker/ctrl.Dockerfile \ diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 3ae4b5fe..f09b06d6 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -41,8 +41,8 @@ services: # listening on 127.0.0.1 on the host (e.g. http_proxy=127.0.0.1:7890). network: host # Defaults to a locally-built tag. Override to a published GHCR image - # (e.g. `ghcr.io/deeplink-org/dlslime-ctrl:0.1.11`) to skip the local build: - # echo "DLSLIME_CTRL_IMAGE=ghcr.io/deeplink-org/dlslime-ctrl:0.1.11" >> docker/.env + # (e.g. `ghcr.io/deeplink-org/dlslime-ctrl:0.1.16`) to skip the local build: + # echo "DLSLIME_CTRL_IMAGE=ghcr.io/deeplink-org/dlslime-ctrl:0.1.16" >> docker/.env # echo "DLSLIME_CTRL_PULL_POLICY=missing" >> docker/.env image: ${DLSLIME_CTRL_IMAGE:-dlslime-ctrl:local} pull_policy: ${DLSLIME_CTRL_PULL_POLICY:-build} diff --git a/docs/pyproject.toml b/docs/pyproject.toml index 213f6b1f..c029aa39 100644 --- a/docs/pyproject.toml +++ b/docs/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "dlslime-docs" -version = "0.1.11" +version = "0.1.16" description = "Documentation site tooling for DLSlime" requires-python = ">=3.10" dependencies = [