
Then, the release workflow will trigger the actual publishing to npm and Docker hub.īe sure to not merge other pull requests into develop if partially through the release process.
OPTIMISM CRYPTO UPDATE
The correct flow for triggering releases is to update the base branch of these pull requests onto develop and merge them, and then create a new pull request to merge develop into master. Once changesets are merged into master, the bot will create a new pull request called "Version Packages" which bumps the versions of packages. Changesets will persist over time on the develop branch without triggering new version bumps to be proposed by the Changesets bot.
OPTIMISM CRYPTO SOFTWARE
Release new versionsĭevelopers can release new versions of the software by adding changesets to their pull requests using yarn changeset. See below for info about release candidate branches.

If you're changing or adding a contract and you're unsure about which branch to make a PR into, default to using the latest release candidate branch. Some exceptions to this rule exist for cases in which we absolutely must deploy some new contract after a release candidate branch has already been fully deployed. If you're making a backwards compatible change, please direct your pull request towards develop.Ĭhanges to contracts within packages/contracts/contracts are usually NOT considered backwards compatible and SHOULD be made against a release candidate branch. Our primary development branch is develop.ĭevelop contains the most up-to-date software that remains backwards compatible with our latest experimental network deployments. Our update process takes the form of a PR merging the develop branch into the master branch.
OPTIMISM CRYPTO CODE
We only ever update the master branch when we intend to deploy code within the develop to the Optimism mainnet. Updates from master always come from the develop branch. The master branch contains the code for our latest "stable" releases. Please read the linked post if you're planning to make frequent PRs into this repository (e.g., people working at/with Optimism). We generally follow this Git branching model. └── specs: Specs of the rollup starting at the Bedrock upgradeīranching Model and Releases Active Branches BranchĪccepts PRs from develop when we intend to deploy to mainnet.Īccepts PRs that are compatible with master OR from release/X.X.X branches.Īccepts PRs for all changes, particularly those not backwards compatible with develop and master. ├── op-proposer: L2-Output Submitter, submits proposals to L1 ├── op-node: rollup consensus-layer client. ├── op-e2e: End-to-End testing of all bedrock components in Go ├── op-batcher: L2-Batch Submitter, submits bundles of batches to L1 ├── op-bindings: Go bindings for Bedrock smart contracts. ├── packages/contracts-bedrock: Bedrock smart contracts.
OPTIMISM CRYPTO UPGRADE
~~ BEDROCK upgrade - Not production-ready yet, part of next major upgrade ~~

├── teleportr: Bridge for teleporting ETH between L1 and L2 at low cost

├── technical-documents: audits and post-mortem documents ├── proxyd: Configurable RPC request router and proxy ├── op-exporter: A prometheus exporter to collect/serve metrics from an Optimism node ├── l2geth-exporter: A prometheus exporter to collect/serve metrics from an L2 geth node ├── l2geth: Optimism client software, a fork of geth v1.9.10 (deprecated for BEDROCK upgrade) ├── integration-tests: Various integration tests for the Optimism network ├── infra/op-replica: Deployment examples and resources for running an Optimism replica ├── indexer: indexes and syncs transactions ├── gas-oracle: Service for updating L1 gas prices on L2 ├── bss-core: Core batch-submitter logic and utilities ├── batch-submitter: Service for submitting batches of transactions and results to L1 │ └── sdk: provides a set of tools for interacting with Optimism │ ├── replica-healthcheck: Service for monitoring the health of a replica node │ ├── message-relayer: Tool for automatically relaying L1L2 messages in development │ ├── integration-tests-bedrock (BEDROCK upgrade): Bedrock integration tests. │ ├── fault-detector: Service for detecting Sequencer faults │ ├── drippie-mon: Service for monitoring Drippie instances │ ├── data-transport-layer: Service for indexing Optimism-related L1 data │ ├── core-utils: Low-level utilities that make building Optimism easier │ ├── contracts-periphery: Peripheral contracts for Optimism │ ├── contracts: L1 and L2 smart contracts for Optimism │ ├── common-ts: Common tools for building apps in TypeScript Then check out our list of good first issues to find something fun to work on! Directory Structure root Read through CONTRIBUTING.md for a general overview of our contribution process. CommunityĬome hang on our very active discord 🔴 ✨ Contributing

DocumentationĮxtensive documentation is available here.
