Skip to main content
This page is for people developing OP Deployer itself. If you only need to pick the right OP Deployer release for your contract version, see the releases reference.

Backport a Fix to an Earlier Version

From time to time, we may backport bugfixes from develop onto earlier versions of OP Deployer. The process for this is as follows:
  1. If one doesn’t exist already, make a new branch for the version lineage you’re patching (e.g. v0.2.x). This branch should be protected (not deletable) and should be based on the latest release of that lineage. The branch should be named as follows: backports/op-deployer/<lineage, i.e. v0.2.0>.
  2. Open a PR with the backport against that branch. Be sure to reference the original commit in the backport.
  3. Make and push a new tag on that lineage.
Example for backporting fix(es) from develop to create a new release op-deployer/v0.2.1:

Add Support for a New Contract Version

Adding support for a new contract version is a multi-step process. Here’s a high-level overview. For the sake of simplicity we will assume you are adding support for a new rc release.

Step 1: Add Support on Develop

First, you need to add support for the new contract version on the develop branch. This means ensuring that the deployment pipeline supports whatever changes are required for the new version. Typically, this means passing in new deployment variables, and responding to ABI changes in the Solidity scripts/OPCM.

Step 2: Add the Published Artifacts

Run the following from the root of the monorepo:
This will calculate the checksum of your artifacts as well as the hash of the artifacts tarball. OP Deployer uses these values to download and verify tagged contract locators. Now, update standard/standard.go with these values so that the new artifacts tarball can be downloaded:

Step 3: Update the SR With the New Release

Add the new RC to the standard versions in the superchain-registry.

Step 4: Update the Validation Package

The SR is pulled into OP Deployer via the validation package. Update it by running the following command from the root of the monorepo:
That should be it!