Skip to content

Commit c4985be

Browse files
committed
add CONTRIBUTING.md
1 parent bec8cdf commit c4985be

1 file changed

Lines changed: 111 additions & 0 deletions

File tree

CONTRIBUTING.md

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
# Contributing to Originzero
2+
3+
Hello and welcome! We're thrilled that you're considering contributing to Originzero ✨. Here's a guide on how you can get involved with the project.
4+
5+
## Table of Contents
6+
7+
- [Contributing to Originzero](#contributing-to-originzero)
8+
- [Table of Contents](#table-of-contents)
9+
- [Our Contribution Philosophy](#our-contribution-philosophy)
10+
- [Ways You Can Help](#ways-you-can-help)
11+
- [Enhancements](#enhancements)
12+
- [Get in Touch](#get-in-touch)
13+
- [Directory structure](#directory-structure)
14+
- [Pull Requests](#pull-requests)
15+
- [Branching Strategy](#branching-strategy)
16+
- [Coding Standards](#coding-standards)
17+
18+
## Our Contribution Philosophy
19+
20+
The core team leads the direction of Originzero, deciding which features to add and which to leave out. While we guide the project, we're always open to fresh ideas and discussions. We want to hear your thoughts, and we encourage everyone to share their perspectives.
21+
22+
We make sure that contributions align with the project's goals so that your efforts are meaningful and the application stays on track. We don't want anyone's hard work to go to waste, and we aim to keep the app focused and efficient.
23+
24+
As a token of our appreciation, contributors will have lifetime access to the application for free, no matter how it evolves in the future. We’ll also give credit where it's due by featuring contributor names in our repository.
25+
26+
Contributing isn't just about writing code. Helping to spread the word about Originzero and participating in discussions about new ideas are also incredibly valuable. We believe that bringing more people into the conversation and exploring new concepts together are just as important as coding itself.
27+
28+
**We especially need help with creating nodes. If you’re interested in building nodes or improving the node-writing system, we’d love your support. Contributors in this area will be recognized both on GitHub and in the application’s node list, highlighting their important role in the project.**
29+
30+
Your contributions, whether through coding, brainstorming, or sharing the project with others, are what help Originzero grow. We're glad to have you with us on this journey!
31+
32+
## Ways You Can Help
33+
34+
Here are some of the key areas where you can contribute to the application and its community:
35+
36+
**🐛 Report Bugs**: We can't catch every issue. Please check the [existing issues](https://github.com/originzero-io/originzero/issues) and discussions before [creating a new one](https://github.com/originzero-io/originzero/issues/new/choose).
37+
38+
**💬 Answer Questions**: Engage with the community on our [Discord Server](https://discord.gg/VyQD9QAq) and in [GitHub discussions](https://github.com/orgs/originzero-io/discussions).
39+
40+
🎬 **Create Tutorials**: Share your tutorials with us, and we’ll be happy to promote them!
41+
42+
All interactions should be conducted respectfully, adhering to our [Code of Conduct](https://github.com/originzero-io/originzero/blob/main/CODE_OF_CONDUCT.md).
43+
44+
### Enhancements
45+
46+
If you have ideas for improving Originzero, please contribute them to the [New Features](https://github.com/orgs/originzero-io/discussions/categories/new-features) discussion section. If you plan on implementing the enhancement yourself, **please reach out before starting a pull request.** Discussions about the future of Originzero and potential new features occur on our Discord Server and in GitHub discussions, with final decisions made by the core team.
47+
48+
Discussing your enhancement idea with us first is the best way to ensure your pull request gets merged into the application (refer to Our Contribution Philosophy above). We want to avoid situations where you spend time writing code that may already be in development or may not align with the application's goals.
49+
50+
### Get in Touch
51+
52+
For enhancement suggestions, feel free to email us at info@originzero.io.
53+
54+
# Directory structure
55+
56+
Originzero is split up in different modules which are all in a single mono repository.
57+
58+
The most important directories:
59+
60+
- [/packages](/packages) - All originzero modules
61+
- [/packages/editor](/packages/editor) - React frontend components
62+
- [/packages/api-gateway](/packages/api-gateway) - Central api gateway to access all APIs safely and efficiently
63+
- [/packages/entity-api](/packages/entity-api) - All entities like workspaces, projects, flows, users, etc.
64+
- [/packages/flow-runtime](/packages/flow-runtime) - Runtime algorithm that handles flow execution, concurrency, and parallelism, and also includes nodes.
65+
- **Contact us before starting on any changes here**
66+
- [/packages/dockerize-api](/packages/dockerize-api) - A package that creates a container for each flow created
67+
- [/packages/math-service](/packages/math-service) - Allows the Calculate node to handles complex mathematical operations
68+
69+
## Pull Requests
70+
71+
If you wish to contribute by adding new features, improvements, or refactoring existing code, please discuss your ideas with us first. You can reach out via GitHub discussions, our Discord server, or email us at info@originzero.dev. This ensures your time and effort align with the project goals. We're eager to review your pull requests and collaborate with you 😊.
72+
73+
## Branching Strategy
74+
75+
We follow a structured branching model to manage contributions effectively. Please follow these guidelines when contributing to the project:
76+
77+
### Main Branches
78+
79+
- `main`: This branch contains the production-ready code. Only thoroughly tested and approved changes should be merged here.
80+
- `develop`: This is the active development branch where new features and improvements are integrated and tested.
81+
82+
### Supporting Branches
83+
84+
- **Feature Branches** (`feature/`): Use for adding new features. Name your branch as `feature/your-feature-name`. Example: `feature/add-user-auth`.
85+
- **Fix Branches** (`fix/`): Use for fixing bugs. Name your branch as `fix/issue-description`. Example: `fix/typo-in-docs`.
86+
- **Refactor Branches** (`refactor/`): Use for code improvements or reorganizing code. Name your branch as `refactor/your-refactor-name`. Example: `refactor/improve-query-performance`.
87+
- **Chore Branches** (`chore/`): Use for maintenance tasks or configuration changes. Example: `chore/update-dependencies`.
88+
- **Style Branches** (`style/`): Use for code style improvements. Example: `style/fix-lint-errors`.
89+
90+
### Release and Hotfix Branches
91+
92+
- **Release Branches** (`release/`): Use for preparing a new production release. Example: `release/v1.2.0`.
93+
- **Hotfix Branches** (`hotfix/`): Use for quick fixes on production code. Example: `hotfix/critical-bug-fix`.
94+
95+
### Branch Workflow
96+
97+
1. Create a new branch from `develop`.
98+
2. Work on your changes and commit regularly.
99+
3. Open a Pull Request (PR) to `develop`.
100+
4. Ensure all tests pass and request a code review.
101+
5. Once approved, the PR will be merged into `develop` for testing. When ready for release, it will be merged into `main`.
102+
103+
Following this branching strategy helps maintain a clean and organized codebase and ensures smooth collaboration.
104+
105+
## Coding Standards
106+
107+
Please make sure to follow the coding standards used throughout the codebase. Here are some basic guidelines:
108+
109+
- All files must include the Apache license in the header.
110+
- Use 4 spaces for indentation, not tabs.
111+
- Place the opening brace on the same line as `if`/`for`/`function`, and the closing brace on a new line.

0 commit comments

Comments
 (0)