Skip to content

Commit 4bbd0e5

Browse files
authored
update readme, add contribution guide, add license (#9)
1 parent 7307314 commit 4bbd0e5

3 files changed

Lines changed: 75 additions & 45 deletions

File tree

CONTRIBUTING.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Contributing
2+
3+
## Manual Build
4+
### python3-dev
5+
You need Python developer version libraries in your path to be able to build the distribution.
6+
For most of us who use pyenv, this is done with:
7+
- MacOS:
8+
```bash
9+
env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.10-dev
10+
```
11+
- Linux:
12+
```bash
13+
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.10-dev
14+
```
15+
16+
Activate the version:
17+
```
18+
pyenv local 3.10-dev
19+
python --version
20+
```
21+
This should print something like `Python 3.10.11+`.
22+
23+
### Building
24+
You can build the specific versions by calling the respective make target:
25+
```bash
26+
make clean dist-bin/localstack
27+
# or:
28+
make clean dist-dir/localstack
29+
# or both:
30+
make clean all
31+
```
32+
You can find the binary assets in `dist-bin/` and `dist-dir`.
33+
The single binary has a slower startup time than the binary distribution.
34+
35+
## Creating a Release
36+
In order to create a release, just perform the following tasks:
37+
- Create a commit which sets a new explicit version for `localstack` in the `requirements.txt`.
38+
- For example: `localstack==2.1.0`
39+
- Create a tag for the commit: `v<version>`.
40+
- For example: `git tag v2.1.0`
41+
- Push the tag (`git push origin v<version>`)
42+
- This will trigger the following actions:
43+
- The tag will trigger the ["Build / Release"](.github/workflows/build.yml) GitHub workflow.
44+
- It will build the binaries for the different systems and create a GitHub release draft.
45+
- Publish the GitHub release draft.
46+
- This will trigger the ["Release Homebrew Tap"](.github/workflows/homebrew.yml) GitHub workflow.
47+
- It will take the release artifacts and update the Homebrew formula in [localstack/homebrew-tap](https://github.com/localstack/homebrew-tap).
48+
49+
### Dev Releases
50+
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`).
51+
Otherwise, the ["Release Homebrew Tap"](.github/workflows/homebrew.yml) GitHub workflow will not be able to find the artifacts.

LICENSE.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
Copyright (c) 2017+ LocalStack contributors
2+
Copyright (c) 2016 Atlassian Pty Ltd
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.

README.md

Lines changed: 10 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -5,52 +5,17 @@ This repository contains building instructions for binary builds of the LocalSta
55
It does not contain the actual source for the CLI, since the LocalStack CLI is basically just the Python package `localstack` (published on PyPi) with it's install dependencies (and without any extras).
66
This is why this repository just contains the build config and pipeline that packages the LocalStack CLI python package into a standalone binary using PyInstaller.
77

8-
## Creating a Release
9-
In order to create a release, just perform the following tasks:
10-
- Create a commit which sets a new explicit version for `localstack` in the `requirements.txt`.
11-
- For example: `localstack==2.1.0`
12-
- Create a tag for the commit: `v<version>`.
13-
- For example: `git tag v2.1.0`
14-
- Push the tag (`git push origin v<version>`)
15-
- This will trigger the following actions:
16-
- The tag will trigger the ["Build / Release"](.github/workflows/build.yml) GitHub workflow.
17-
- It will build the binaries for the different systems and create a GitHub release draft.
18-
- Publish the GitHub release draft.
19-
- This will trigger the ["Release Homebrew Tap"](.github/workflows/homebrew.yml) GitHub workflow.
20-
- It will take the release artifacts and update the Homebrew formula in [localstack/homebrew-tap](https://github.com/localstack/homebrew-tap).
8+
## Installation
9+
Please make sure that you have a working [`docker` environment](https://docs.docker.com/get-docker/) on your machine before moving on.
2110

22-
### Dev Releases
23-
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`).
24-
Otherwise, the ["Release Homebrew Tap"](.github/workflows/homebrew.yml) GitHub workflow will not be able to find the artifacts.
25-
26-
## Manual Build
27-
### python3-dev
28-
You need Python developer version libraries in your path to be able to build the distribution.
29-
For most of us who use pyenv, this is done with:
30-
- MacOS:
31-
```bash
32-
env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.10-dev
33-
```
34-
- Linux:
35-
```bash
36-
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.10-dev
37-
```
38-
39-
Activate the version:
11+
### Brew (MacOS or Linux with Homebrew)
12+
Install the LocalStack CLI by using our [official LocalStack Brew Tap](https://github.com/localstack/homebrew-tap):
4013
```
41-
pyenv local 3.10-dev
42-
python --version
14+
$ brew install localstack/tap/localstack-cli
4315
```
44-
This should print something like `Python 3.10.11+`.
4516

46-
### Building
47-
You can build the specific versions by calling the respective make target:
48-
```bash
49-
make clean dist-bin/localstack
50-
# or:
51-
make clean dist-dir/localstack
52-
# or both:
53-
make clean all
54-
```
55-
You can find the binary assets in `dist-bin/` and `dist-dir`.
56-
The single binary has a slower startup time than the binary distribution.
17+
### Binary download (MacOS, Linux, Windows)
18+
If you do not have Brew on your machine, you can directly download the pre-built LocalStack CLI binary for your system:
19+
- [Download the latest release for your platform](https://github.com/localstack/localstack-cli/releases/latest)
20+
- Extract the archive to a folder in your `PATH` variable:
21+
- MacOS / Linux: ```sudo tar xvzf ~/Downloads/localstack-cli-*-darwin-*-onefile.tar.gz -C /usr/local/bin```

0 commit comments

Comments
 (0)