Metadata-Version: 2.4
Name: repro-lambda
Version: 0.2.1
Summary: Build reproducible AWS Lambda packages outside Terraform, optimized for terraform-aws-lambda by serverless.tf.
Project-URL: Homepage, https://github.com/antonbabenko/repro-lambda
Project-URL: Repository, https://github.com/antonbabenko/repro-lambda
Project-URL: Issues, https://github.com/antonbabenko/repro-lambda/issues
Author-email: Anton Babenko <anton@antonbabenko.com>
License: Apache-2.0
License-File: LICENSE
Keywords: aws,lambda,reproducible-builds,serverless,terraform
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Build Tools
Requires-Python: >=3.11
Requires-Dist: boto3>=1.34
Requires-Dist: repro-zipfile>=0.3.1
Requires-Dist: typer>=0.12
Provides-Extra: dev
Requires-Dist: moto[s3]>=5; extra == 'dev'
Requires-Dist: pre-commit>=3.7; extra == 'dev'
Requires-Dist: pytest-mock>=3.12; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Requires-Dist: pyyaml>=6; extra == 'dev'
Requires-Dist: ruff>=0.5; extra == 'dev'
Description-Content-Type: text/markdown

# repro-lambda

Build reproducible AWS Lambda packages outside Terraform, optimized for
[terraform-aws-lambda](https://registry.terraform.io/modules/terraform-aws-modules/lambda/aws/latest) by [serverless.tf](https://serverless.tf/).

Produces byte-identical zip files across local dev (macOS) and CI (Linux),
uploads to S3 by content-hash key, and lets Terraform read `s3_existing_package`
instead of building during `terraform plan`/`apply`.

## Install

    pip install repro-lambda

## Usage

    repro-lambda init           # scaffold lambdas.toml and CI caller workflow
    repro-lambda lock           # regenerate per-arch lockfiles
    repro-lambda build          # build all lambdas in lambdas.toml, upload to S3
    repro-lambda build --verify # two-pass byte-reproducibility check

See `docs/` for full design.

## Release

Releases are tag-driven. To cut v0.2.1:

    git tag v0.2.1
    git push origin v0.2.1

The `publish.yml` workflow uses PyPI Trusted Publishing (OIDC) — no PyPI token
needed in repo secrets. Configure once via PyPI's "Publishing" panel:

- Owner: `antonbabenko`
- Repository: `repro-lambda`
- Workflow: `publish.yml`
- Environment: (leave blank)

## Setup

See [SETUP.md](./SETUP.md) for a copy-paste-able guide to provisioning the
S3 buckets, IAM OIDC role, and CI workflow needed to use `repro-lambda` in
your project.
