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

Parallelize Release and Benchmark Process #2173

Open
18 of 27 tasks
bdemann opened this issue Oct 16, 2024 · 1 comment
Open
18 of 27 tasks

Parallelize Release and Benchmark Process #2173

bdemann opened this issue Oct 16, 2024 · 1 comment
Assignees
Milestone

Comments

@bdemann
Copy link
Member

bdemann commented Oct 16, 2024

The release process has a giant bottle neck in the form of going though each of the examples and updating it to the next version of Azle. I had an idea where we parallelize it by spinning each one up into it's own job, the result is committed to a unique branch, and then after all of those steps are finalized spinning up one more job that will go through each of those branches and merge them back into the release branch.

The initial prototype indicates that this in fact possible! So we want to make a new release process that will:

  • update candid
  • run benchmarks
  • update package.json dependencies
    • set Azle to the next version
    • make sure other dependencies are up-to-date like the agent, ts, etc
      • Actually lets just remove most of the dev dependencies so we don't have to worry about it
  • update package-lock with the new stuff from above

As long as we are at it we may want to look into updating Azle's:

  • package.json
  • Cargo.toml
  • corresponding lock files

Establish the baseline:

  • Make sure that all examples have run at least once before introducing the updates to rquickjs
    • bulk run all of the easy ones
    • hand run all of the fragile ones

Other things to do

  • Make a PAT and add it to the secrets with proper security
  • Add a workflow that will delete branches from failed release runs
  • Make sure that the benchmark.json files pretty print so we have some sort of nice formatting even before prettier
  • make sure that the benchmark output the full file path like testing
  • figure out why the broken ones are broken
    • PEM issues
  • make sure release works
  • make sure release does tests afterwards
  • Why did it merge the commit into the branch I was working on instead of the new branch that I made?
    • it did make the branch I think
  • Is it getting the version from the place? I am concerned that the version is always coming from the package.json even when it is recording the previous version. It just seems weird that most of the versions are same for baseline and current
  • main merges need to do npm only if its a release merge and repo if it's just a regular merge
  • we need to bring back the weird if statment that will keep the test from failing if there is nothing to commit
  • make sure the tests run after a automatic pr
@bdemann bdemann self-assigned this Oct 16, 2024
@bdemann bdemann added this to the 1.0 milestone Oct 16, 2024
@bdemann
Copy link
Member Author

bdemann commented Oct 16, 2024

I am blocked on this until we can create a PAT

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

No branches or pull requests

1 participant