Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rebuild of pip mirror for production #134

Merged
merged 6 commits into from
Jan 27, 2020
Merged

rebuild of pip mirror for production #134

merged 6 commits into from
Jan 27, 2020

Conversation

redshiftzero
Copy link
Contributor

⚠️ this is a breaking change as I am invalidating the previous wheels on pypi.securedrop.org, CI will not pass here on the two jobs that are failing, see below ⚠️

Closes freedomofpress/securedrop-proxy#150

Build log: freedomofpress/build-logs@84508f5

To rebuild I deleted everything in localwheels/, repulled source tarballs from PyPI and rebuilt wheels. I also noticed there were a lot of old references in our indices so I've purged them along with any old source tarballs or wheels for versions of packages we're never using. It looks like at some point we had the test/dev dependencies for securedrop-client on the mirror, so I've deleted all that. I also have completed the release signing ceremony for sha256sums.txt and removed all other maintainer keys.

You can see in the CI build output here that all packages EXCEPT securedrop-client and securedrop-proxy built successfully: that is because those two packages point to specific wheel hashes in build-requirements.txt. I recommend in quick succession we:

  1. Merge this. CI will be failing on securedrop-client and securedrop-proxy.
  2. Merge the two PRs incoming to update build-requirements.txt in each repository. We can test a build locally at that time based on the changes that will be live on pypi.securedrop.org.
  3. Push a new tag/release of securedrop-proxy and securedrop-client.

At that point, we should be good.

related: we can do this update next week which will be a good test of this workflow freedomofpress/securedrop-proxy#140

The pip mirror will now be used for production and for dev. To
ensure that any wheels added are production-ready, they will be
built in a prod-like environment and signed with the official
release key.
When developers add or update a dependency, they will need to ping
an owner of the SD release key to build/upload/sign the new
dependency.
Copy link
Contributor

@kushaldas kushaldas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Key is correct, did a visual inspection of the rest of the changes.

$ ./scripts/verify-sha256sum-signature 
gpg: key 310F561200F4AD77: public key "SecureDrop Release Signing Key" imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg: Signature made Friday 21 July 2017 05:42:16 AM IST
gpg:                using RSA key 22245C81E3BAEB4138B36061310F561200F4AD77
gpg: Good signature from "SecureDrop Release Signing Key" [unknown]
gpg:                 aka "SecureDrop Release Signing Key <[email protected]>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 2224 5C81 E3BA EB41 38B3  6061 310F 5612 00F4 AD77
Checking that SHA256SUMs from mirror match signed file...  OK

Approved. #133 needs a rebase after this.

@kushaldas kushaldas merged commit 179245e into master Jan 27, 2020
@sssoleileraaa sssoleileraaa deleted the prod-pip-mirror branch September 13, 2021 23:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Rebuild pip mirror for production
2 participants