Development Workflow

  1. Branching Strategy:

    • Adopt the feature/*, bugfix/*, and release/* branch naming convention atop main.

    • Enforce mandatory pull requests (PRs) for all non‑trivial changes.

  2. Local Development:

    • Start a local DexerEVM node and ancillary services via docker-compose up --build.

    • Compile smart contracts with npm run build:contracts and deploy to the local network using Hardhat.

    • Launch the frontend in development mode: npm run dev on port 3000.

  3. Automated Testing:

    • Smart Contracts: Unit tests in Solidity (Truffle or Hardhat), coverage thresholds ≥ 90%.

    • Frontend & Backend: TypeScript tests with Jest and React Testing Library, focusing on business logic and component rendering.

    • Run full test suite locally before each PR: npm test.

  4. Continuous Integration (CI):

    • GitHub Actions workflow triggers on PR creation:

      • Linting (ESLint, Prettier), type checking, security scans (Slither for Solidity).

      • Automated tests, code coverage report upload.

  5. Code Review & Merge:

    • Peer reviews with at least two approvals required.

    • Enforce PR templates detailing change summary, testing steps, and migration impacts.

  6. Release Process:

    • Merge to release/* branch triggers build artifacts for staging.

    • Tag the release (semantic versioning), merge to main, and deploy to production via CD pipeline.

Last updated