block-quote On this pagechevron-down
copy Copy chevron-down
Operations Operational Workflows This section outlines OmniSocial’s operational lifecycle: from code changes to deployment, testing, upgrades, and community involvement.
It is designed to serve both as a transparency document for the community and a practical guide for maintainers and contributors .
⚙️ Operational Workflows
This section outlines OmniSocial’s operational lifecycle: from code changes to deployment, testing, upgrades, and community involvement. It provides visibility into how the platform is maintained and evolved.
🔁 CI/CD Pipeline
All OmniSocial components are managed in a monorepo structure using GitHub Actions for CI/CD.
omnisocial-contracts — Smart contracts (Polygon zkEVM)
omnisocial-app — Front-end social dApp
omnisocial-explorer — DAO and governance explorer
omnisocial-subgraph — Subgraph for data indexing
omnisocial-docs — Developer & protocol documentation
On each pull request:
Linting (ESLint + Prettier)
Type Checking (TypeScript strict mode)
Smart Contract Compilation (Hardhat)
Unit Tests (Jest + Hardhat Network)
Subgraph Build + Codegen (Graph CLI)
Storybook Snapshot Tests (UI components)
CI is enforced before merge.
Via GitHub Actions (or Vercel for frontend):
Staging deployments on PR merge to dev
Production deployments on merge to main
Contracts deployed with hardhat-deploy
Subgraph published to The Graph hosted service and self-hosted instance
🧪 Testing Methodology
Smart Contract Testing
Uses Hardhat + Waffle + Ethers.js
Tests include edge cases like:
Reputation decay over time
Front-End Testing
React Testing Library for UI interaction
Snapshot testing via Storybook
Mocked GraphQL data for feed and reputation scenarios
OmniSocial uses UUPS (Universal Upgradeable Proxy Standard) for contract upgradability, controlled via DAO governance.
🛠 Contract Upgrade Steps
Developer submits PR with new logic (e.g. PersonaNFTV2)
CI runs tests and type checks
Upgrade script is audited by internal maintainers
Proposal is submitted via DAO.createProposal() containing:
Upgrade calldata (via prepareUpgrade)
Execution plan with optional timelock
DAO votes on proposal (quorum + delay)
If passed, upgrade is executed by DAO multisig or trusted relayer
Example upgrade:
🧩 Deployment Matrix
Environment
Network
Deployed Contracts
Subgraph
All contracts deployed via scripts/dev.ts
Latest main branch deployed
omnisocial/staging-subgraph
Audited and DAO-approved contracts
omnisocial/mainnet-subgraph
Contracts are tagged with release versions and stored in /deployments.
🧩 Release Versioning
OmniSocial uses semantic versioning:
X.Y.Z = Major.Minor.Patch
Smart contract upgrades = major
Front-end features = minor
Example:
📌 Contributor Guide
Maintainers and contributors should follow these conventions:
PRs must include descriptions and related issue links
Contract changes must include gas benchmarks
New features require at least 2 reviewers
🛡 Transparency Commitments
All governance proposals are publicly viewable
All contract upgrades are on-chain and time-delayed
Contract addresses and changelogs are published in /docs/deployment.json
Last updated 9 months ago