Merge pull request #166 from SamR1/add-contributing-guidelines
Add Contributing Guidelines
This commit is contained in:
		
							
								
								
									
										78
									
								
								CONTRIBUTING.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								CONTRIBUTING.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,78 @@
 | 
			
		||||
# Contributing to FitTrackee
 | 
			
		||||
 | 
			
		||||
First off, thank you for your interest in contributing!
 | 
			
		||||
 | 
			
		||||
## Report issues, ask for features
 | 
			
		||||
 | 
			
		||||
* If a bug is a **security vulnerability**, please refer to [security policy](https://github.com/SamR1/FitTrackee/blob/master/SECURITY.md).
 | 
			
		||||
 | 
			
		||||
* Ensure an issue was not **already opened** by searching on **GitHub** under [Issues](https://github.com/SamR1/FitTrackee/issues). 
 | 
			
		||||
 | 
			
		||||
* If not, [open a new one](https://github.com/SamR1/FitTrackee/issues/new) with a descriptive title and provide a description.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Contributing Code
 | 
			
		||||
 | 
			
		||||
### Project repository
 | 
			
		||||
 | 
			
		||||
The **GitHub** repository contains:
 | 
			
		||||
- source code (note that the repository also includes client build),
 | 
			
		||||
- tests,
 | 
			
		||||
- documentation (source and build).
 | 
			
		||||
 | 
			
		||||
Continuous integration pipeline runs on **Gitlab CI**.
 | 
			
		||||
 | 
			
		||||
### How to install FitTrackee
 | 
			
		||||
 | 
			
		||||
see [Installations instructions](https://samr1.github.io/FitTrackee/installation.html)
 | 
			
		||||
 | 
			
		||||
### Pull Requests
 | 
			
		||||
 | 
			
		||||
Please make your changes from the development branch (`dev`).
 | 
			
		||||
 | 
			
		||||
* Fork the repository (see [GitHub instructions](https://docs.github.com/en/get-started/quickstart/contributing-to-projects))
 | 
			
		||||
 | 
			
		||||
* Implement your feature.
 | 
			
		||||
 | 
			
		||||
* If your changes need a database migration:
 | 
			
		||||
  * You can generate one after updating models with the following command:
 | 
			
		||||
    ```shell
 | 
			
		||||
    $ make migrate-db
 | 
			
		||||
    ```
 | 
			
		||||
  * For data migration, an empty migration can be created with this following command:
 | 
			
		||||
    ```shell
 | 
			
		||||
    $ make revision MIGRATION_MESSAGE="<MIGRATION_MESSAGE>"
 | 
			
		||||
    ```
 | 
			
		||||
  * Rename the migration, prefixing with the next number.
 | 
			
		||||
  * To apply database changes:
 | 
			
		||||
    ```shell
 | 
			
		||||
    $ make upgrade-db
 | 
			
		||||
    ```
 | 
			
		||||
  * Check the downgrade migration.
 | 
			
		||||
  
 | 
			
		||||
* Run checks (lint, typecheck and tests).
 | 
			
		||||
  ```shell
 | 
			
		||||
  $ make check-all
 | 
			
		||||
  ```
 | 
			
		||||
  There are some end-to-end tests, to run them:
 | 
			
		||||
  ```shell
 | 
			
		||||
  $ make test-e2e
 | 
			
		||||
  ```
 | 
			
		||||
  Note: For now, pull requests from forks don't trigger pipelines on GitLab CI (see [current issue](https://gitlab.com/gitlab-org/gitlab/-/issues/5667)).  
 | 
			
		||||
  So make sure that checks don't return errors locally. 
 | 
			
		||||
 | 
			
		||||
* If needed, add or update tests.
 | 
			
		||||
 | 
			
		||||
* If needed, update documentation.
 | 
			
		||||
 | 
			
		||||
* If code contains client changes, you can generate a build, in a **separate commit** to ease code review.
 | 
			
		||||
  ```shell
 | 
			
		||||
  $ make build-client
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
* Create your pull request to merge on `dev` branch.
 | 
			
		||||
 | 
			
		||||
* Ensure the pull requests description clearly describes the problem and solution. Include the relevant issue number if applicable.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Thanks.
 | 
			
		||||
		Reference in New Issue
	
	Block a user