Skip to content

Latest commit

 

History

History
197 lines (144 loc) · 7.04 KB

File metadata and controls

197 lines (144 loc) · 7.04 KB

Contributing to crowd.dev

Contributions are what make the open-source community such an amazing place to learn, inspire, and create.

Ways to contribute

  • Try the crowd.dev platform & API and give feedback by creating new issues.
  • Help with open issues.
  • Add a new integration following our framework.
  • Help create tutorials and blog posts.
  • Improve documentation by fixing incomplete or missing docs, bad wording, examples, or explanations.

Any contributions you make are greatly appreciated. ❤️

Issue priorities

Type of Issue Priority
Bug in Critical Features (Login, Integrations, etc)
Bug in Core Features (Home, Members, Organizations, Activities)
Confusing UX (but it's working)
Minor improvements

How to contribute to development

We welcome any contribution to crowd.dev. Before you start with your first issue, please consider the following points:

Requirements

  • Node v16.16.0
  • Docker and docker-compose

Setup the project

The project is a monorepo, meaning that it is a collection of multiple packages managed in the same repository. In the following steps, you'll learn how to get the project up and running for development purposes.

  1. Get the mono repo from GitHub
git clone git@github.com:CrowdDotDev/crowd.dev.git
  1. Run the start script:
cd scripts
./cli start

For hot reloading, you can run:

cd scripts
./cli clean-start-dev

The app will be available at http://localhost:8081

For more information on development, you can check our docs.

Running services individually

To optimize resource usage during development, we would suggest starting only the necessary services and leveraging hot reloading where applicable.

  1. Start the scaffold service, including the necessary components like the database, etc:
./cli scaffold up 

This will set up the foundational services required for the project.

  1. If you are primarily working on the frontend but also need the API without hot reloading:
DEV=1 ./cli service frontend up
./cli service api up

By selectively starting the frontend and API services without enabling hot reloading, helps reduce resource usage.

Feel free to adjust the commands based on the specific services you need for your development tasks.

Coding guidelines

To ensure consistency throughout the source code, please keep these rules in mind as you are working:

  • All features or bug fixes must be tested by one or more specs (unit tests).
  • We use Eslint default rule guide, with minor changes. An automated formatter is available using Prettier.
  • In-code documentation is required for every function or class that is not self-evident.
  • All new API endpoints that are relevant to the public API must have in-code documentation to generate OpenAPI specifications.
  • The pipeline must pass.
Commit Message Guidelines

This project uses Conventional Commits enforced by commitlint.

Documentation:

Enforcement: Commitlint runs automatically via Husky on every commit. Invalid commit messages will be rejected.

Pull Request Guidelines

PR Title Requirements:

  • Must follow conventional commit format: type(scope): description
  • Should include JIRA ticket key in title: feat: add new feature (CDP-123)

PR Process:

  1. Ensure your commits follow the conventional commit format
  2. Include JIRA ticket key in PR title
  3. Provide clear description of changes
  4. Ensure all tests pass
  5. Request review from a member of the team
JIRA Integration

Using JIRA MCP Server: Leverage the JIRA MCP server for efficient ticket management during development.

Documentation:

Ticket Linking:

  • When possible reference JIRA tickets in commit messages and PR titles
  • Use format: type: conventional commit message (TICKET-KEY)
  • This enables automatic linking between code changes and tickets
AI Development Guidelines

Leveraging AI Tools: The Linux Foundation provides guidelines and best practices for using AI in development workflows.

Documentation:

Best Practices:

  • Follow LFX guidelines when using AI tools for code generation
  • Ensure AI-generated code meets our quality standards
  • Review and test all AI-assisted contributions thoroughly

Need help? 🛟

If you need help with any sort of contribution, please feel free to reach out on Discord or book a contributor onboarding call.