This document outlines the formal change control procedures for code changes within Sequin projects. These procedures ensure code quality, maintain security standards, and prevent unauthorized or problematic changes from affecting production systems.
This process applies to all code changes that will be merged into production branches of Sequin repositories.
- Contributors: Individuals making code changes
- Reviewers: Team members who review code changes (currently Anthony Accomazzo and Carter Pedersen)
- Approvers: Individuals with authority to approve changes (including Anthony Accomazzo for significant changes)
- Deployment Team: Individuals responsible for deploying approved changes to production environments
- Develop changes in a feature branch pulled from the latest main branch
- We encourage smaller branches/PRs and stacking (We use Graphite to enable this)
- Follow the established coding standards and style guidelines
- Include appropriate unit and integration tests
- Ensure all automated tests pass locally before submitting for review
- Create a pull request (PR) with a clear description of the changes
- Address all review comments and make necessary adjustments
- All automated tests must pass
- All review comments must be addressed
- Run the sign-off script (
make signoff) to formally sign off on the pull request
Significant changes include:
- Architectural changes
- Changes to authentication or authorization systems
- Changes to data models or database schema beyond just adding and removing columns
- Changes affecting multiple components or services
- Security-sensitive modifications
- Changes to core business logic
For these changes:
- Final approval must come from Anthony Accomazzo
- All automated tests must pass
- All review comments must be addressed
- Run Sequin locally and perform end-to-end testing
- Run the sign-off script (
make signoff) to formally sign off on the pull request - May require additional security review for sensitive changes
- After approval, changes are merged into
main - GitHub Actions builds containers on command
- We deploy with a local command using Terraform
- For open source components, GitHub Actions builds and releases new Docker images
- Monitor systems after deployment to ensure proper functioning
- Document any issues encountered during deployment
- For significant changes, conduct a post-implementation review
For critical bug fixes or security patches requiring immediate action:
- The emergency change process may be used
- Changes still require at least one reviewer
- Changes must be documented after the fact
- A post-implementation review must be conducted
- Anthony Accomazzo must be notified of the emergency change as soon as possible
We strive to move efficiently through the change control process:
- Code reviews should be completed within hours when possible
- The entire process from PR creation to deployment should typically be completed within several hours or a day
- For more complex changes, the process should not exceed a couple of days
- Emergency changes are addressed with appropriate urgency
- All changes must follow this process
- Changes that bypass this process may be reverted
- Regular audits of the change control process will be performed
- Violations of the change control process will be addressed according to the Sequin Operations Security Policy
This process complies with requirements outlined in the Sequin Labs, Inc. Operations Security Policy.
- Version: 1.0
- Last Updated: 2025-03-12
- Owner: Anthony Accomazzo