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
2 changes: 1 addition & 1 deletion .cursor/skills/stackless/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ branching.

```bash
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/snowmead/stackless/releases/latest/download/stackless-installer.sh | sh
stackless --version # expect 0.3.1 or newer
stackless --version # expect 0.3.2 or newer
```

**From source (this repo):**
Expand Down
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,27 @@ Generate with:

## Unreleased

## v0.3.2 — 2026-08-15

Bound control-plane waits so `down` cannot hang on Stripe, launchd
kickstart, or the lease reaper.

### Fixed

- Stripe, launchctl kickstart, and reaper children wait with a budget;
leftovers are reaped for that spawn only (no host-wide helper kill) (#102).

### Commits

- [b5e7d1c](https://github.com/snowmead/stackless/commit/b5e7d1ccf6873f6b388d60efb30a73865c311779) fix: bound Stripe, kickstart, and reaper so down cannot hang (#102)

### Install

```sh
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/snowmead/stackless/releases/download/v0.3.2/stackless-installer.sh | sh
stackless --version
```

## v0.3.1 — 2026-08-14

Stripe Projects plugin 0.31.0 pin and cargo-vet supply-chain exemptions.
Expand Down
46 changes: 23 additions & 23 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

40 changes: 20 additions & 20 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ members = [

[workspace.package]
edition = "2024"
version = "0.3.1"
version = "0.3.2"
license = "MIT OR Apache-2.0"
repository = "https://github.com/snowmead/stackless"

Expand All @@ -44,25 +44,25 @@ dbg_macro = "deny"

[workspace.dependencies]
# `version` is required for crates.io; `path` keeps the workspace linked locally.
stackless-core = { path = "crates/stackless-core", version = "0.3.1" }
stackless-cloud = { path = "crates/stackless-cloud", version = "0.3.1" }
stackless-daemon = { path = "crates/stackless-daemon", version = "0.3.1" }
stackless-local = { path = "crates/stackless-local", version = "0.3.1" }
stackless-git = { path = "crates/stackless-git", version = "0.3.1" }
stackless-render = { path = "crates/stackless-render", version = "0.3.1" }
stackless-vercel = { path = "crates/stackless-vercel", version = "0.3.1" }
stackless-fly = { path = "crates/stackless-fly", version = "0.3.1" }
stackless-netlify = { path = "crates/stackless-netlify", version = "0.3.1" }
stackless-railway = { path = "crates/stackless-railway", version = "0.3.1" }
stackless-laravel-cloud = { path = "crates/stackless-laravel-cloud", version = "0.3.1" }
stackless-gitlab = { path = "crates/stackless-gitlab", version = "0.3.1" }
stackless-wordpress = { path = "crates/stackless-wordpress", version = "0.3.1" }
stackless-cloudflare = { path = "crates/stackless-cloudflare", version = "0.3.1" }
stackless-integrations = { path = "crates/stackless-integrations", version = "0.3.1" }
stackless-provider-sdk = { path = "crates/stackless-provider-sdk", version = "0.3.1" }
stackless-stripe-projects = { path = "crates/stackless-stripe-projects", version = "0.3.1" }
stackless-idl = { path = "crates/stackless-idl", version = "0.3.1" }
stackless-bindgen = { path = "crates/stackless-bindgen", version = "0.3.1" }
stackless-core = { path = "crates/stackless-core", version = "0.3.2" }
stackless-cloud = { path = "crates/stackless-cloud", version = "0.3.2" }
stackless-daemon = { path = "crates/stackless-daemon", version = "0.3.2" }
stackless-local = { path = "crates/stackless-local", version = "0.3.2" }
stackless-git = { path = "crates/stackless-git", version = "0.3.2" }
stackless-render = { path = "crates/stackless-render", version = "0.3.2" }
stackless-vercel = { path = "crates/stackless-vercel", version = "0.3.2" }
stackless-fly = { path = "crates/stackless-fly", version = "0.3.2" }
stackless-netlify = { path = "crates/stackless-netlify", version = "0.3.2" }
stackless-railway = { path = "crates/stackless-railway", version = "0.3.2" }
stackless-laravel-cloud = { path = "crates/stackless-laravel-cloud", version = "0.3.2" }
stackless-gitlab = { path = "crates/stackless-gitlab", version = "0.3.2" }
stackless-wordpress = { path = "crates/stackless-wordpress", version = "0.3.2" }
stackless-cloudflare = { path = "crates/stackless-cloudflare", version = "0.3.2" }
stackless-integrations = { path = "crates/stackless-integrations", version = "0.3.2" }
stackless-provider-sdk = { path = "crates/stackless-provider-sdk", version = "0.3.2" }
stackless-stripe-projects = { path = "crates/stackless-stripe-projects", version = "0.3.2" }
stackless-idl = { path = "crates/stackless-idl", version = "0.3.2" }
stackless-bindgen = { path = "crates/stackless-bindgen", version = "0.3.2" }

# The profile that 'dist' will build with
[profile.dist]
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ npm i stackless-sdk
pip install stackless-sdk

# Go
go get github.com/snowmead/stackless/sdks/go@v0.3.1
go get github.com/snowmead/stackless/sdks/go@v0.3.2
```

All clients need the `stackless` CLI on `PATH` (or `STACKLESS_BIN`) for the
Expand Down
2 changes: 1 addition & 1 deletion crates/stackless-render/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ async-trait = "0.1.89"
# DateTime that render-client returns (its own chrono dep omits `alloc`).
# Load-bearing via feature unification even though no chrono path is named here.
chrono = { version = "0.4.45", default-features = false, features = ["alloc"] }
render-client = { path = "../render-client", version = "0.3.1" }
render-client = { path = "../render-client", version = "0.3.2" }
reqwest = { version = "0.13.4", default-features = false, features = [
"rustls",
"charset",
Expand Down
2 changes: 1 addition & 1 deletion crates/stackless-vercel/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ workspace = true
[dependencies]
async-trait = "0.1.89"
base64 = "0.22.1"
vercel-client = { path = "../vercel-client", version = "0.3.1" }
vercel-client = { path = "../vercel-client", version = "0.3.2" }
reqwest = { version = "0.13.4", default-features = false, features = [
"rustls",
"charset",
Expand Down
18 changes: 9 additions & 9 deletions docs/PUBLISHING.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Publishing stackless packages

Release surfaces, lockstep with `[workspace.package].version` (today
`0.3.1`):
`0.3.2`):

| Surface | Package | How it ships |
| --- | --- | --- |
Expand Down Expand Up @@ -58,24 +58,24 @@ consume the environment SDK, but it is published in the crates wave below.
4. Open a PR; wait for CI including the `sdk` job (`mise run sdk-test` locally).
5. Merge, then from the release commit:
```bash
git tag v0.3.1
git tag sdks/go/v0.3.1
git push origin v0.3.1 sdks/go/v0.3.1
git tag v0.3.2
git tag sdks/go/v0.3.2
git push origin v0.3.2 sdks/go/v0.3.2
```
`v0.3.1` triggers cargo-dist + `publish-packages`. `sdks/go/v0.3.1` is for
`v0.3.2` triggers cargo-dist + `publish-packages`. `sdks/go/v0.3.2` is for
the Go module proxy only (not a GitHub Release).
6. Confirm:
- GitHub Release + installer (cargo-dist on `v*`)
- `publish-packages` workflow green (crates.io, npm, PyPI)
- `go list -m github.com/snowmead/stackless/sdks/go@v0.3.1` resolves
- `go list -m github.com/snowmead/stackless/sdks/go@v0.3.2` resolves

Manual re-publish of an existing tag (e.g. language SDKs after crates.io
already shipped):

```bash
# Use --ref main so the latest publish scripts run; pypi env must allow main
# (or dispatch from a v* tag that contains the fixed workflow).
gh workflow run publish-packages.yml --ref main -f tag=v0.3.1
gh workflow run publish-packages.yml --ref main -f tag=v0.3.2
```

---
Expand Down Expand Up @@ -128,8 +128,8 @@ Later waves only need a version bump + tag.
&& python -m twine upload dist/*)

# Go (tag only)
git tag sdks/go/v0.3.1
git push origin sdks/go/v0.3.1
git tag sdks/go/v0.3.2
git push origin sdks/go/v0.3.2
```

---
Expand Down
2 changes: 1 addition & 1 deletion sdks/go/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ protocol ([`../PROTOCOL.md`](../PROTOCOL.md)) via the `stackless` CLI.
github.com/snowmead/stackless/sdks/go
```

Publish tags use the subdirectory prefix, e.g. `sdks/go/v0.3.1` (lockstep with
Publish tags use the subdirectory prefix, e.g. `sdks/go/v0.3.2` (lockstep with
the workspace version).

## Usage
Expand Down
2 changes: 1 addition & 1 deletion sdks/python/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "hatchling.build"

[project]
name = "stackless-sdk"
version = "0.3.1"
version = "0.3.2"
description = "CLI-backed Python SDK for stackless lifecycle verbs"
readme = "README.md"
requires-python = ">=3.10"
Expand Down
Loading
Loading