Skip to content

Latest commit

 

History

History
164 lines (94 loc) · 4.72 KB

CHANGELOG.md

File metadata and controls

164 lines (94 loc) · 4.72 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to PEP 440.

2.0.1 - 2024-01-14

Fixed

  • Correctly parse source distribution names with hyphens, since setuptools does not produce normalised names. See pypa/setuptools#3593.

2.0.0 - 2024-01-06

Added

  • s3pypi delete command to delete packages from S3.
  • s3pypi force-unlock command to release a stuck lock in DynamoDB.
  • --locks-table option to customise the DynamoDB table name used for locking.

Changed

  • Moved default command to s3pypi upload.
  • Renamed --unsafe-s3-website option to --index.html.

Removed

  • --acl option. Use --s3-put-args='ACL=...' instead. The use of ACLs is discouraged.
  • --lock-indexes option. Locking is enabled automatically if a DynamoDB table exists.

1.2.1 - 2023-12-31

Fixed

  • --put-root-index combined with --prefix builds the index page of that prefix.

1.2.0 - 2023-12-30

Added

  • --strict option to fail when trying to upload existing files.

Changed

  • Require Python 3.8 or greater.

1.1.1 - 2023-02-20

Fixed

  • Fail when a distribution package doesn't exist.

1.1.0 - 2022-12-19

Added

  • Allow uploading source distributions with .tar.bz2, .tar.xz, and .zip extensions.

Changed

  • Require Python 3.7 or greater.

1.0.0 - 2022-03-13

Added

1.0.0rc3 - 2021-06-05

Added

  • --s3-endpoint-url option for targeting a custom S3 endpoint.

1.0.0rc2 - 2021-05-20

Added

  • Terraform config for an optional DynamoDB table used for distributed locking.
  • --lock-indexes option to lock index objects in S3 using said DynamoDB table.
  • --put-root-index option to write a root index that lists all package names.

Changed

  • Set CloudFront default root object to index.html.

1.0.0rc1 - 2021-05-19

Added

  • Terraform configuration for S3 and CloudFront, including optional basic authentication using Lambda@Edge and AWS Systems Manager Parameter Store. Instructions for migrating from CloudFormation are in the README.
  • --s3-put-args option for passing extra arguments to S3 PutObject calls. Example: --s3-put-args='ServerSideEncryption=aws:kms,SSEKMSKeyId=1234...'

Changed

  • CLI arguments have been overhauled. See s3pypi --help for details.
  • The default behaviour for uploading index pages has changed. Previously, they would be placed under the <package>/index.html key in S3, which could be changed to <package>/ using the --bare option. This has now been reversed: the default key is <package>/, and an option --unsafe-s3-website was added to append index.html. This new behaviour assumes that CloudFront uses the S3 REST API endpoint as its origin, not the S3 website endpoint. This allows the bucket to remain private, with CloudFront accessing it through an Origin Access Identity (OAI). The new Terraform configuration includes such an OAI by default. To keep using the old configuration, packages must be uploaded with --unsafe-s3-website --acl public-read. This is not recommended, because the files will be publicly accessible!

Removed

  • Python 2 support.
  • Automatic creation of distributions. From now on, distributions must be created using a separate build command. See the README for an example.
  • The --private option. The default ACL is now private, and you can pass a different one using the --acl option.
  • CloudFormation templates (replaced by Terraform configuration).
  • Jinja2 dependency.

0.11.0 - 2020-09-01

Added

0.10.1 - 2020-01-14

Fixed

  • Preserve existing files of the same version in the index when uploading with --force. @natefoo

0.10.0 - 2019-09-18

Added

  • Support --dist-path with only a wheel package present. @takacsd