Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .github/actions/download-dashboard/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Download dashboard assets
description: >-
Downloads the dashboard-dist artifact with a retry fallback via the
GitHub CLI. The primary path uses actions/download-artifact for digest
verification; on transient failure it retries three times via gh CLI.

runs:
using: composite
steps:
- name: Download dashboard artifact
id: primary
uses: actions/download-artifact@v8
continue-on-error: true
with:
name: dashboard-dist
path: py_src/taskito/static/dashboard

- name: Retry download via GitHub CLI
if: steps.primary.outcome == 'failure'
shell: bash
env:
GH_TOKEN: ${{ github.token }}
run: |
echo "::warning::download-artifact failed — retrying via gh CLI"
rm -rf py_src/taskito/static/dashboard
for _attempt in 1 2 3; do
gh run download "$GITHUB_RUN_ID" \
-n dashboard-dist \
-D py_src/taskito/static/dashboard && exit 0
sleep 10
done
echo "::error::Dashboard artifact download failed after all retries"
exit 1

- name: Verify dashboard assets
shell: bash
run: test -f py_src/taskito/static/dashboard/index.html
50 changes: 5 additions & 45 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,7 @@ jobs:
steps:
- uses: actions/checkout@v6

- name: Download dashboard assets
uses: actions/download-artifact@v8
with:
name: dashboard-dist
path: py_src/taskito/static/dashboard

- name: Verify dashboard assets present
shell: bash
run: test -f py_src/taskito/static/dashboard/index.html
- uses: ./.github/actions/download-dashboard

- name: Build wheels
uses: PyO3/maturin-action@v1.51.0
Expand Down Expand Up @@ -79,15 +71,7 @@ jobs:
steps:
- uses: actions/checkout@v6

- name: Download dashboard assets
uses: actions/download-artifact@v8
with:
name: dashboard-dist
path: py_src/taskito/static/dashboard

- name: Verify dashboard assets present
shell: bash
run: test -f py_src/taskito/static/dashboard/index.html
- uses: ./.github/actions/download-dashboard

- name: Build wheels
uses: PyO3/maturin-action@v1.51.0
Expand Down Expand Up @@ -118,15 +102,7 @@ jobs:
steps:
- uses: actions/checkout@v6

- name: Download dashboard assets
uses: actions/download-artifact@v8
with:
name: dashboard-dist
path: py_src/taskito/static/dashboard

- name: Verify dashboard assets present
shell: bash
run: test -f py_src/taskito/static/dashboard/index.html
- uses: ./.github/actions/download-dashboard

- name: Set up Python 3.10
uses: actions/setup-python@v6
Expand Down Expand Up @@ -173,15 +149,7 @@ jobs:
steps:
- uses: actions/checkout@v6

- name: Download dashboard assets
uses: actions/download-artifact@v8
with:
name: dashboard-dist
path: py_src/taskito/static/dashboard

- name: Verify dashboard assets present
shell: bash
run: test -f py_src/taskito/static/dashboard/index.html
- uses: ./.github/actions/download-dashboard

- name: Set up Python 3.10
uses: actions/setup-python@v6
Expand Down Expand Up @@ -223,15 +191,7 @@ jobs:
steps:
- uses: actions/checkout@v6

- name: Download dashboard assets
uses: actions/download-artifact@v8
with:
name: dashboard-dist
path: py_src/taskito/static/dashboard

- name: Verify dashboard assets present
shell: bash
run: test -f py_src/taskito/static/dashboard/index.html
- uses: ./.github/actions/download-dashboard

- name: Build sdist
uses: PyO3/maturin-action@v1.51.0
Expand Down
2 changes: 1 addition & 1 deletion crates/taskito-async/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "taskito-async"
version = "0.16.0"
version = "0.16.1"
edition = "2021"

[dependencies]
Expand Down
2 changes: 1 addition & 1 deletion crates/taskito-core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "taskito-core"
version = "0.16.0"
version = "0.16.1"
edition = "2021"

[features]
Expand Down
2 changes: 1 addition & 1 deletion crates/taskito-mesh/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "taskito-mesh"
version = "0.16.0"
version = "0.16.1"
edition = "2021"

[dependencies]
Expand Down
2 changes: 1 addition & 1 deletion crates/taskito-python/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "taskito-python"
version = "0.16.0"
version = "0.16.1"
edition = "2021"

[features]
Expand Down
2 changes: 1 addition & 1 deletion crates/taskito-workflows/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "taskito-workflows"
version = "0.16.0"
version = "0.16.1"
edition = "2021"

[features]
Expand Down
17 changes: 17 additions & 0 deletions docs/content/docs/more/changelog.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,23 @@ description: "Release history for taskito — every notable change, fix, and fea

All notable changes to taskito are documented here.

## 0.16.1

Patch release: publish workflow hardening.

### Fixed

- **PyPI publish pre-check.** Publish job now queries PyPI before uploading,
compares SHA-256 hashes per artifact, and skips upload when all wheels are
already present. Prevents `400 File already exists` on workflow reruns.
- **PEP 639 compatibility.** Dropped `twine check --strict` which rejected the
`License-File` metadata emitted by maturin 1.13.3. Pinned `twine>=6.1`.
- **Timeout guards.** Added `timeout=30` on PyPI API calls and
`--connect-timeout 10 --max-time 30` on verification curl.
- **Dashboard artifact download retry.** Extracted dashboard download into a
reusable composite action with `gh` CLI fallback on transient
`download-artifact` failures (hit on Windows in 0.16.0 publish).

## 0.16.0

Feature release: mesh scheduling, DLQ policies, and a full dashboard redesign.
Expand Down
2 changes: 1 addition & 1 deletion docs/src/lib/release.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export const RELEASE_VERSION = "0.16.0";
export const RELEASE_VERSION = "0.16.1";
export const RELEASE_TAGLINE =
"mesh scheduling, DLQ policies, dashboard redesign";
export const RELEASE_BADGE = `v${RELEASE_VERSION.replace(/\.\d+$/, "")} — ${RELEASE_TAGLINE}`;
2 changes: 1 addition & 1 deletion py_src/taskito/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,4 +122,4 @@

__version__ = _get_version("taskito")
except PackageNotFoundError:
__version__ = "0.16.0"
__version__ = "0.16.1"
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "maturin"

[project]
name = "taskito"
version = "0.16.0"
version = "0.16.1"
description = "Rust-powered task queue for Python. No broker required."
requires-python = ">=3.10"
license = { file = "LICENSE" }
Expand Down
Loading