Skip to content

Commit 9b9acb3

Browse files
joe4devclaude
andauthored
Document regular and RC release processes in LocalStack README (#106)
Add a "Releases" section to README-LOCALSTACK.md explaining: - Regular release: push a lightweight v*.* tag on localstack to trigger build.yml, which tests, builds, and publishes the GitHub release - RC pre-release: the trigger:rc-release label flow via rc-release.yml - Note that release.yml is legacy (builds from the upstream main mirror) Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 95ba237 commit 9b9acb3

1 file changed

Lines changed: 45 additions & 0 deletions

File tree

README-LOCALSTACK.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,51 @@ Follow these steps to integrate upstream changes from the official AWS [lambda-r
3939

4040
Example PR that integrates upstream changes: https://github.com/localstack/lambda-runtime-init/pull/24
4141

42+
## Releases
43+
44+
Releases are cut from the `localstack` branch (not `main`/`develop`, which mirror upstream AWS).
45+
The resulting binaries are consumed by localstack-pro via `LAMBDA_INIT_RELEASE_VERSION=<tag>` and
46+
by lambda-images.
47+
48+
### Regular release
49+
50+
Regular releases are **automated**: pushing a version tag on `localstack` triggers the
51+
[`build.yml`](./.github/workflows/build.yml) workflow, which runs the tests, builds the binaries
52+
(`make compile-lambda-linux-all`), and publishes a GitHub release with auto-generated release notes
53+
and the `bin/*` binaries attached. Versioning follows `vX.Y.Z` (e.g. `v0.2.0`), continuing from the
54+
previous release (e.g. [`v0.1.47`](https://github.com/localstack/lambda-runtime-init/releases/tag/v0.1.47)).
55+
56+
1. Create a **lightweight** tag for the new version, on the commit you want to release. Match the
57+
prior convention
58+
```bash
59+
git tag v0.2.0
60+
```
61+
2. Push the tag to trigger the release build:
62+
```bash
63+
git push origin v0.2.0
64+
```
65+
`build.yml` matches the `v*.*` tag pattern and publishes the release automatically. A tag ending
66+
in `-pre` is published as a pre-release.
67+
68+
> The `.github/workflows/release.yml` ("Release") workflow is **legacy** and is not used for
69+
> LocalStack releases — it is a manual `workflow_dispatch` that checks out `main` (the upstream
70+
> mirror) rather than `localstack`, so it would not include the LocalStack customizations.
71+
72+
### RC (release candidate) pre-release
73+
74+
RC pre-releases let an **unmerged** PR be tested against localstack-pro CI without cutting a real
75+
release. They are fully automated via `.github/workflows/rc-release.yml`:
76+
77+
1. Add the label `trigger:rc-release` to the PR.
78+
2. The workflow builds the binaries from the PR head, publishes a throwaway GitHub **pre-release**
79+
tagged `v0.0.0-rc.pr<N>-<sha>`, and comments the tag + download URLs back on the PR.
80+
3. Test the PR by setting `LAMBDA_INIT_RELEASE_VERSION=v0.0.0-rc.pr<N>-<sha>` in localstack-pro CI.
81+
4. The pre-release and its tag are **deleted automatically** when the PR is closed.
82+
83+
Unlike a regular release, an RC is built from an **unmerged PR head** and published as a throwaway
84+
pre-release that is auto-deleted on close — localstack-pro CI is the real test. Both flows run the
85+
unit tests (`make tests-with-docker`); neither runs integ-tests.
86+
4287
## Custom LocalStack Changes
4388

4489
Document all custom changes with the following comment prefix `# LOCALSTACK CHANGES yyyy-mm-dd:`

0 commit comments

Comments
 (0)