diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 78623e08fc..f5c467cad9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,6 +10,52 @@ If you are worried or don’t know where to start, check out our next section ex Help us keep Appwrite open and inclusive. Please read and follow our [Code of Conduct](/CODE_OF_CONDUCT.md). +## Submit a Pull Request πŸš€ + +Branch naming convention is as following + +`TYPE-ISSUE_ID-DESCRIPTION` + +example: +``` +doc-548-submit-a-pull-request-section-to-contribution-guide +``` + +When `TYPE` can be: + +- **feat** - is a new feature +- **doc** - documentation only changes +- **cicd** - changes related to CI/CD system +- **fix** - a bug fix +- **refactor** - code change that neither fixes a bug nor adds a feature + +**All PRs must include commit message with the changes description!** + +ForΒ theΒ initialΒ start, fork the project andΒ useΒ gitΒ cloneΒ commandΒ toΒ downloadΒ theΒ repositoryΒ toΒ yourΒ computer. A standard procedure for working on an issue would be to: + +1. `git pull`, before creating a new branch, pull the changes from upstream. Your master needs to be up to date. +``` +$ git pull +``` +2. Create new branch from `master` like: `doc-548-submit-a-pull-request-section-to-contribution-guide`
+``` +$ git checkout -b [name_of_your_new_branch] +``` +3. Work - commit - repeat ( be sure to be in your branch ) + +4. Push changes to GitHub +``` +$ git push origin [name_of_your_new_branch] +``` + +6. Submit your changes for review +If you go to your repository on GitHub, you'll see a `Compare & pull request` button. Click on that button. +7. Start a Pull Request +Now submit the pull request and , click on `Create pull request`. +6. Get a code review approval / reject +7. After approval, merge your PR +8. GitHub will automatically delete the branch, after the merge is done. (they can still be restored). + ## Setup From Source To set up a working **development environment**, just fork the project git repository and install the backend and frontend dependencies using the proper package manager and create run the docker-compose stack. @@ -32,6 +78,59 @@ After finishing the installation process, you can start writing and editing code Appwrite's current structure is a combination of both [Monolithic](https://en.wikipedia.org/wiki/Monolithic_application) and [Microservice](https://en.wikipedia.org/wiki/Microservices) architectures, but our final goal, as we grow, is to be using only microservices. +### File Structure + +```bash +. +β”œβ”€β”€ app # Main application +β”‚ β”œβ”€β”€ config # Config files +β”‚ β”œβ”€β”€ controllers # API & dashboard controllers +β”‚ β”‚ β”œβ”€β”€ api +β”‚ β”‚ β”œβ”€β”€ shared +β”‚ β”‚ └── web +β”‚ β”œβ”€β”€ db # DB schemas +β”‚ β”œβ”€β”€ sdks # SDKs generated copies (used for generating code examples) +β”‚ β”œβ”€β”€ tasks # Server CLI commands +β”‚ β”œβ”€β”€ views # HTML server-side templates +β”‚ └── workers # Background workers +β”œβ”€β”€ bin # Server executables (tasks & workers) +β”œβ”€β”€ docker # Docker related resources and configs +β”œβ”€β”€ docs # Docs and tutorials +β”‚ β”œβ”€β”€ examples +β”‚ β”œβ”€β”€ references +β”‚ β”œβ”€β”€ sdks +β”‚ β”œβ”€β”€ services +β”‚ β”œβ”€β”€ specs +β”‚ └── tutorials +β”œβ”€β”€ public # Public files +β”‚ β”œβ”€β”€ dist +β”‚ β”œβ”€β”€ fonts +β”‚ β”œβ”€β”€ images +β”‚ β”œβ”€β”€ scripts +β”‚ └── styles +β”œβ”€β”€ src # Supporting libraries (each lib has one role, common libs are released as individual projects) +β”‚ └── Appwrite +β”‚ β”œβ”€β”€ Auth +β”‚ β”œβ”€β”€ Database +β”‚ β”œβ”€β”€ Docker +β”‚ β”œβ”€β”€ Event +β”‚ β”œβ”€β”€ Extend +β”‚ β”œβ”€β”€ Network +β”‚ β”œβ”€β”€ OpenSSL +β”‚ β”œβ”€β”€ Preloader +β”‚ β”œβ”€β”€ Resize +β”‚ β”œβ”€β”€ Storage +β”‚ β”œβ”€β”€ Swoole +β”‚ β”œβ”€β”€ Task +β”‚ β”œβ”€β”€ Template +β”‚ β”œβ”€β”€ URL +β”‚ └── Utopia +└── tests # End to end & unit tests + β”œβ”€β”€ e2e + β”œβ”€β”€ resources + └── unit +``` + --- ![Appwrite](docs/specs/overview.drawio.svg) --- diff --git a/docs/tutorials/my-first-issue.md b/docs/tutorials/my-first-issue.md new file mode 100644 index 0000000000..26556b6e57 --- /dev/null +++ b/docs/tutorials/my-first-issue.md @@ -0,0 +1 @@ +### Thats Your Place To create Your First Issue \ No newline at end of file