You need Python developer version libraries in your path to be able to build the distribution. For most of us who use pyenv, this is done with:
- MacOS:
env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.11-dev
- Linux:
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.11-dev
Activate the version:
pyenv local 3.11-dev
python --version
This should print something like Python 3.11.5+
.
You can build the specific versions by calling the respective make target:
make clean dist-bin/localstack
# or:
make clean dist-dir/localstack
# or both:
make clean all
You can find the binary assets in dist-bin/
and dist-dir
.
The single binary has a slower startup time than the binary distribution.
In order to create a release, just perform the following tasks:
- Create a commit which sets a new explicit version for
localstack
in therequirements.txt
.- For example:
localstack==2.1.0
- For example:
- Create a tag for the commit:
v<version>
.- For example:
git tag v2.1.0
- For example:
- Push the tag (
git push origin v<version>
) - This will trigger the following actions:
- The tag will trigger the "Build / Release" GitHub workflow.
- It will build the binaries for the different systems and create a GitHub release draft.
- Publish the GitHub release draft.
- This will trigger the "Release Homebrew Tap" GitHub workflow.
- It will take the release artifacts and update the Homebrew formula in localstack/homebrew-tap.
If a dev release is created, the tag name has to have the same name as the version of localstack-core
being used (because this is the output of localstack --version
).
Otherwise, the "Release Homebrew Tap" GitHub workflow will not be able to find the artifacts.