A bare minimum implementation of a PyPI server that proxies all requests to an S3 bucket.
This was implemented by looking what was required to get pip install commands such as this one working:
pip install -v --no-index --find-links=http://localhost:8080/ -r requirements.txt
-
Install go 1.11 or later.
-
Clone this repository to somewhere outside of your GOPATH.
-
Build the code:
go build .
-
Run it:
./go-minipypi
It requires a config file, see config.yml
. Drop the credentialsfile
parameter to use the default AWS credentials chain.
go-minipypi uses goreleaser locally for releases.
-
Install goreleaser
-
Ensure you're on a clean master, and tag the current commit for release -
git tag -a "v0.4.0"
-
Do a dry-run of the release if necessary and check the artifacts in
dist/
-goreleaser --skip-publish
-
Using your GitHub token, complete the release -
GITHUB_TOKEN=your_github_token_with_release_privileges goreleaser