CONTRIBUTING.md

πŸ‘₯ Contributing to Devex

Welcome to the Devex project! We're excited you're here πŸŽ‰ Whether you’re fixing a bug, improving docs, or adding a new template β€” every contribution is valued.

πŸ“– Before You Start

Make sure to:
  • β€’Carefully read the README.md at the root to understand what Devex is and how it works.
  • β€’Explore the README.md files inside each subdirectory (core/, runner/, templates/, web/, etc.) to get a deeper understanding of each module.
  • β€’Use PULL_REQUEST_TEMPLATE.md for creating a Pull Request.

πŸ”§ Local Setup

You’ll need:
  • β€’Docker & Docker Compose
  • β€’Node.js (v20+)
  • β€’Go (1.21+)
  1. β€’Fork the repository to your GitHub account.
  2. β€’Clone your fork:
bash
git clone https://github.com/your-username/devex.git cd devex
  1. β€’Create a new branch:
bash
git checkout -b feat/your-feature-name
Use descriptive names like:
  • β€’feat/add-node-template
  • β€’fix/typo-in-core
  • β€’docs/update-template-guide

πŸš€ How to Contribute

You can contribute in many ways:

1. πŸ’‘ Add a New Template

Steps include:
  • β€’
    Add files to templates/<your-template>/
  • β€’
    Add Dockerfile to runner/<your-template>.dockerfile
  • β€’
    Register the template in:
    • β€’web/lib/templates.tsx
    • β€’core/models/templates.go

2. πŸ› Fix a Bug or Improve Code

  • β€’Navigate to the relevant module (core/, runner/, web/, etc.).
  • β€’Each has its own README.md and may contain TODOs, architecture notes, or issues.
  • β€’Submit your fix as a PR with a descriptive title and message. Checkout PULL_REQUEST_TEMPLATE.md

3. πŸ“ Improve Docs

  • β€’You can improve the documentation anywhere β€” main README.md, internal docs, or this CONTRIBUTING.md.
  • β€’All text contributions are equally valuable!

πŸ§ͺ Before Submitting a PR

Make sure to:
  • β€’ Rebase from main to stay up to date.
  • β€’ Run and test your code locally.
  • β€’ Ensure templates are under 8MB (checked in CI).
  • β€’ Lint your code (if applicable).
  • β€’ Add/Update README if your change affects usage.
  • β€’ Avoid committing secrets or sensitive info.

πŸ“¬ Submitting a Pull Request

Once you're ready:
bash
git add . git commit -m "feat: add node.js template" git push origin feat/add-node-template
Then:
  1. β€’
    Open your GitHub fork
  2. β€’
    Click β€œCompare & Pull Request”
  3. β€’
    Fill out:
    • β€’What you changed
    • β€’Why it matters
    • β€’Anything reviewers should check/test
  4. β€’
    Submit!

βœ… PR Review & Merge

After submission:
  • β€’A maintainer (Parth) will review your PR.
  • β€’You may get feedback β€” please respond or update the code as needed.
  • β€’Once approved, it will be merged into main and deployed automatically (CI/CD pipelines are in place).

πŸ” Required Secrets (for Maintainers)

Maintainers must configure these in GitHub β†’ Repo Settings β†’ Secrets > Actions
Secret NamePurpose
DEPLOY_SSH_PRIVATE_KEYFor remote stack deployment via SSH
DO_SPACES_KEYDigitalOcean Spaces Access Key
DO_SPACES_SECRETDigitalOcean Spaces Secret Key
DO_SPACES_BUCKETS3-compatible bucket name for templates
DO_SPACES_ENDPOINTEndpoint URL for DigitalOcean Spaces
See .github/workflows/README.md for more details.

πŸ’¬ Need Help?


Thanks for contributing to Devex πŸ’– We appreciate your time, code, and energy!