diff --git a/op-deployer/book/src/reference-guide/releases.md b/op-deployer/book/src/reference-guide/releases.md index 7e4b397e611a8..b53591a863c13 100644 --- a/op-deployer/book/src/reference-guide/releases.md +++ b/op-deployer/book/src/reference-guide/releases.md @@ -8,8 +8,6 @@ dangerous!), you should use an earlier version of OP Deployer. This setup allows breaking changes on `develop`, while still allowing new chains to be deployed and upgraded using production-ready smart contracts. -Bugs that are fixed on develop will also be backported to earlier versions on a best-effort basis. - If you deploy from an HTTPS or file [locator](./artifacts-locators.md), the deployment behavior will match the contract's tag. For example, if version `v0.2.0` supports `v2.0.0` then the deployment will work as if you were deploying `op-contracts/v2.0.0`. Typically, errors like `unknown selector: ` imply that you're using the wrong @@ -18,6 +16,17 @@ get one that works. Note that this workflow is **not recommended** for productio [releases]: https://github.com/ethereum-optimism/optimism/releases +## Version Backports + +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 based on the latest release of that lineage. The branch should be named as follows: + `backports/op-deployer/`. +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. + ## Adding Support for New Contract Versions Adding support for a new contract version is a multi-step process. Here's a high-level overview. For the sake of @@ -56,16 +65,16 @@ Now, update `standard/standard.go` with these values so that the new artifacts t const ContractsVXTag = "op-contracts/vX.Y.Z" var taggedReleases = map[string]TaggedRelease{ - // Other releases... - ContractsVXTag: { - ArtifactsHash: common.HexToHash(""), - ContentHash: common.HexToHash(""), - }, + // Other releases... + ContractsVXTag: { + ArtifactsHash: common.HexToHash(""), + ContentHash: common.HexToHash(""), + }, } // Update the L1/L2 versions accordingly func IsSupportedL1Version(tag string) bool { - return tag == ContractsVXTag + return tag == ContractsVXTag } ```