-
Notifications
You must be signed in to change notification settings - Fork 6
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
Create a release process for the Aptos light client #13
Comments
@samuelburnham and myself have tackled the Aptos PFN part for this issue. A |
After some discussions, I will change the workflow file to only create an issue on the Aptos PFN repository, have a manual rebase on |
I finalized the updates on lurk-lab/aptos-core. Here is the current workflow for release and bugfix: Release
This allows us to keep older release around and still know which release branch is the latest based on the Aptos release tag embedded in the branch name. Bugfix
Patch
Propagate patch to
I could not think of a better way of handling those without leveraging |
All of this sounds great, with a few details:
IOW: we must absolutely ensure correct building of prior released versions, and as a dependency thereof our patched Aptos PFN must have historical branches live forever. One way to do this is to make sure that while for development, |
Another thing, we might want to disable the automatic program rebuilding in build.rs for the release builds (or do something equivalent). Thought being, if those are enabled, then because we're not storing the We might want to solve this in some other way (I'm very open to suggestions), but what I'm thinking is that the issues are:
I'm not really sure of the best solution, but my initial thought is:
|
I think the best approach is to check in the Cargo.lock files. |
There is an upcoming PR (#28) that adds demonstration of LC programs Solidity verification using Plonk contracts from sphinx. SP1 has separate repository for contracts distribution and releasing, but in our case I think we can for simplicity keep sphinx contracts as part of zk-light-client repository. The fixture-generator and contracts-generator programs use sphinx dependencies from the workspace, so they will be updated in context of releasing the zk-light-client. Once #28 is merged, the release process will require some extension. More specifically:
|
Release process works as we now have our first release, created through #54 |
We want to nail down a first MVP of our release tooling for delivery
Rationale
Because our releases come with a claim to performance, we need to nail a complete suite of software tied to the particular light client we are releasing.
.toml
files that link our software (Aptos PFN, Sphinx, Aptos LC),This points to a release process. We do not have to automate it this round, but considering that we will probably do ~20 releases for this customer, any automation cuts down on future pain.
In detail (worked out example)
Before the Release
LC Repo
Prover (Sphinx) Repo
Aptos PFN Repo
Release Process
Identify commits of LC and corresponding prover:
Tag the commits for our reference:
Create rust version bumps and update dependencies in
.toml
files:Update Prover's Cargo.toml to:
Create release branches/tags:
Reset dev branch to new version:
Update version numbers in dev branch to next version (e.g., 1.3.0-pre)
After the Release
LC Repo
Prover (Sphinx) Repo
Aptos PFN Repo
The text was updated successfully, but these errors were encountered: