Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 22 additions & 17 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ Contributions are what make the open-source community such an amazing place to l

## Ways to contribute

- Try the crowd.dev platform & API and give feedback by [creating new issues](https://github.com/CrowdDotDev/crowd.dev/issues/new/choose).
- Help with [open issues](https://github.com/CrowdDotDev/crowd.dev/issues).
- Try the crowd.dev platform & API and give feedback by [creating new issues](https://github.com/linuxfoundation/crowd.dev/issues/new/choose).
- Help with [open issues](https://github.com/linuxfoundation/crowd.dev/issues).
- Add a new integration following our [framework](https://docs.crowd.dev/docs/integration-framework).
- Help create tutorials and [blog](https://www.crowd.dev/blog) posts.
- Improve [documentation](https://docs.crowd.dev/docs) by fixing incomplete or missing docs, bad wording, examples, or explanations.
Expand Down Expand Up @@ -65,30 +65,29 @@ Any contributions you make are **greatly appreciated**. ❤️
</tr>
</table>


## How to contribute to development

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

- For your first contribution, we recommend taking a look at our ["good first issues" 🥂](https://github.com/CrowdDotDev/crowd.dev/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue+%F0%9F%A5%82%22).
- Other issues that are well suited for contribution have the tag ["help wanted" 🙏](https://github.com/CrowdDotDev/crowd.dev/labels/help%20wanted%20%F0%9F%99%8F).
- If you want to contribute to our codebase, you have to first [sign our Contributor License Agreement](https://cla-assistant.io/CrowdDotDev/crowd.dev).
- For your first contribution, we recommend taking a look at our ["good first issues" 🥂](https://github.com/linuxfoundation/crowd.dev/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue+%F0%9F%A5%82%22).
- Other issues that are well suited for contribution have the tag ["help wanted" 🙏](https://github.com/linuxfoundation/crowd.dev/labels/help%20wanted%20%F0%9F%99%8F).
- If you want to contribute to our codebase, you have to first [sign our Contributor License Agreement](https://cla-assistant.io/linuxfoundation/crowd.dev).
<!-- TODO: Their should be actual Discord link. -->
Comment thread
Muawiya-contact marked this conversation as resolved.
- If you need help, you can reach us either via [Discord](http://crowd.dev/discord) or [Book a 15-min Contributor Onboarding Call](https://cal.com/team/CrowdDotDev/contributor-onboarding?duration=15).

#### Requirements

- Node v16.16.0
- Node v20+
- 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.
Comment thread
Muawiya-contact marked this conversation as resolved.

1. Get the mono repo from GitHub

```shell
git clone git@github.com:CrowdDotDev/crowd.dev.git
git clone git@github.com:linuxfoundation/crowd.dev.git
```

2. Run the start script:
Expand All @@ -99,6 +98,7 @@ cd scripts
```

For hot reloading, you can run:

```shell
cd scripts
./cli clean-start-dev
Expand All @@ -110,25 +110,24 @@ For more information on development, you can <a href="https://docs.crowd.dev/doc

#### Running services individually

To optimize resource usage during development, we would suggest starting only the necessary services and leveraging hot reloading where applicable.
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:

```shell
./cli scaffold up
./cli scaffold up
```

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

2. If you are primarily working on the frontend but also need the API without hot reloading:


```shell
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.
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.

Expand All @@ -138,15 +137,16 @@ To ensure consistency throughout the source code, please keep these rules in min

- All features or bug fixes must be tested by one or more specs (unit tests).
- We use [Eslint default rule guide](https://eslint.org/docs/rules/), 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.
- 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](https://www.conventionalcommits.org/) enforced by commitlint.
This project uses [Conventional Commits](https://www.conventionalcommits.org/) enforced by commitlint.

**Documentation:**

- [Official Conventional Commits Specification](https://www.conventionalcommits.org/)
- [LFX Internal Conventional Commits Guide](https://linuxfoundation.atlassian.net/wiki/spaces/PROD/pages/759726128/Conventional+Commits)

Expand All @@ -155,10 +155,12 @@ This project uses [Conventional Commits](https://www.conventionalcommits.org/) e
##### 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
Expand All @@ -171,9 +173,11 @@ This project uses [Conventional Commits](https://www.conventionalcommits.org/) e
Leverage the JIRA MCP server for efficient ticket management during development.

**Documentation:**

- [JIRA MCP Server Guide](https://github.com/linuxfoundation/lfx-engineering/blob/main/mcp/jira.md)

**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
Expand All @@ -184,14 +188,15 @@ Leverage the JIRA MCP server for efficient ticket management during development.
The Linux Foundation provides guidelines and best practices for using AI in development workflows.

**Documentation:**

- [LFX AI Development Guidelines](https://github.com/linuxfoundation/lfx-engineering/tree/main/ai)

**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](https://go.crowd.dev/discord) or book a [contributor onboarding call](https://cal.com/team/CrowdDotDev/contributor-onboarding?duration=15).
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,15 @@ We currently support all our integrations for self-hosting. For each one of them

#### <a name="requirements">Requirements</a>

- [Node](https://nodejs.org/en) v16.16.0
- [Node](https://nodejs.org/en) v20+
- [Docker](https://docs.docker.com/get-docker/) and [docker-compose](https://docs.docker.com/compose/install/)
Comment thread
Muawiya-contact marked this conversation as resolved.

#### <a name="getting_started">Getting started</a>

1. Get the mono repo from GitHub

```shell
git clone git@github.com:CrowdDotDev/crowd.dev.git
git clone git@github.com:linuxfoundation/crowd.dev.git
```

2. Run the start script
Expand Down Expand Up @@ -76,7 +76,7 @@ There are many ways you can contribute to crowd.dev! Here are a few options:
- Create issues every time you feel something is missing or goes wrong
- Upvote issues with 👍 reaction so we know what's the demand for a particular issue to prioritize it within the roadmap

If you would like to contribute to the development of the project, please refer to our [Contributing guide](https://github.com/CrowdDotDev/crowd.dev/blob/main/CONTRIBUTING.md).
If you would like to contribute to the development of the project, please refer to our [Contributing guide](https://github.com/linuxfoundation/crowd.dev/blob/main/CONTRIBUTING.md).

All contributions are highly appreciated. 🙏

Expand Down
Loading