Feature request: Reproducible ZIP packages
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 68/100
Research direction
Start in samcli/lib/package/utils.py around lines 241-242, where files are added to the ZIP, and inspect the surrounding packaging flow. Ensure the package contents have a predictable order and epoch timestamps, then verify that generated ZIP packages are reproducible.
Written by the indexing model from the issue text.
Description
Describe your idea/feature/enhancement
For verification/auditing purposes, it is quite nice to have reproducible SAM zip packages.
Proposal
We will need to sort the files here in a predictable way before adding them to the zip.
Also, we should reset the timestamps to epoch.
Things to consider:
- Will this require any updates to the SAM Spec - No
- Will do this after https://github.com/aws/aws-sam-cli/pull/4644 is merged in.
Additional Details
I don't mind doing this myself. Semi-related to #4622.
- Dominant language
- Python
- Stars
- 6.7k
- Forks
- 1.2k
- Avg merge
- 22h 43m
- Merged PRs (30d)
- 47
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from aws/aws-sam-cli
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
aws/aws-sam-cli#9182 ·
-
SamConfig.get_all() mutates shared document, leaking one command's config values into another's Open
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
aws/aws-sam-cli#9181 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 56/100
aws/aws-sam-cli#9283 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 82/100
aws/aws-sam-cli#9279 ·
-
area/build need-customer-response
Difficulty 4/5 3-5 days Newbie friendliness 64/100
aws/aws-sam-cli#9255 · 3 comments ·
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100