doc: update readme
This commit is contained in:
		
							parent
							
								
									f0ed08bd49
								
							
						
					
					
						commit
						6ee101bf36
					
				
							
								
								
									
										136
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										136
									
								
								README.md
									
									
									
									
									
								
							| @ -51,36 +51,51 @@ and open source. | |||||||
| 
 | 
 | ||||||
| --- | --- | ||||||
| 
 | 
 | ||||||
| ## Development | ## Contribution | ||||||
| 
 | 
 | ||||||
| Clone this repo. | Clone this repo. | ||||||
| 
 | 
 | ||||||
| You have to install [melos](https://github.com/invertase/melos). | ```shell | ||||||
|  | git clone ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-packages.git | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ### Prerequisite | ||||||
|  | 
 | ||||||
|  | - [Flutter](https://github.com/flutter/flutter). | ||||||
|  | 
 | ||||||
|  | - [Melos](https://github.com/invertase/melos). Used to manage Dart projects with multiple packages. | ||||||
| 
 | 
 | ||||||
| ```shell | ```shell | ||||||
| dart pub global activate melos | dart pub global activate melos | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| Then bootstrap with `melos bs`. | - [Mason](https://github.com/felangel/mason). Used for code generation. | ||||||
|  | 
 | ||||||
|  | ```shell | ||||||
|  | dart pub global activate mason_cli | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | - [Lcov](https://github.com/linux-test-project/lcov). Used to generate coverage data. | ||||||
|  | 
 | ||||||
|  | ```shell | ||||||
|  | # on macos | ||||||
|  | brew install lcov | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | - genhtml. Used to convert coverage data into html pages. | ||||||
|  | 
 | ||||||
|  | After installing all these packages, bootstrap with `melos bs`. | ||||||
| 
 | 
 | ||||||
| ### Create a new package | ### Create a new package | ||||||
| 
 | 
 | ||||||
| Create a new package in `packages/` folder. | Create a new package in `packages/` folder. | ||||||
| 
 | 
 | ||||||
| ```shell | ```shell | ||||||
| dart create -t package-simple wyatt_<name> | mason make wyatt_package --package_name  wyatt_<name> --description A new Wyatt package --flutter_only false | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| Remove any `example/` subfolder. Then create a new sample project. |  | ||||||
| 
 |  | ||||||
| ```shell |  | ||||||
| flutter create --platforms android --project-name <name>_example example |  | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| Then bootstrap project with `melos bs` command. | Then bootstrap project with `melos bs` command. | ||||||
| 
 | 
 | ||||||
| ### Convention |  | ||||||
| 
 |  | ||||||
| #### Naming | #### Naming | ||||||
| 
 | 
 | ||||||
| In the previous instructions `<name>` variable is important. | In the previous instructions `<name>` variable is important. | ||||||
| @ -93,15 +108,44 @@ You **MUST** use `wyatt` prefix for package. | |||||||
| You **MUST** name example with specific name. | You **MUST** name example with specific name. | ||||||
| 
 | 
 | ||||||
| For example, if name is CRUD BLOC | For example, if name is CRUD BLOC | ||||||
|  | 
 | ||||||
| - name will be crud_bloc | - name will be crud_bloc | ||||||
| - so the package will be: `wyatt_crud_bloc` | - so the package will be: `wyatt_crud_bloc` | ||||||
| - and the example will be: `crud_bloc_example` | - and the example will be: `crud_bloc_example` | ||||||
| 
 | 
 | ||||||
| #### Commits | ### Create issues | ||||||
|  | 
 | ||||||
|  | Add the issues directly related to what you want to develop and label them correctly. | ||||||
|  | 
 | ||||||
|  | ``` | ||||||
|  | Type(scope): issue. | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | For example, on notification bloc package : | ||||||
|  | 
 | ||||||
|  | - `Feature(notification_bloc): add firebase messaging data source.` | ||||||
|  | - `Test(notification_bloc): add test for pushwoosh datasource.` | ||||||
|  | 
 | ||||||
|  | ### Branches | ||||||
|  | 
 | ||||||
|  | Master is protected. You can't push on it. Please develop your feature on another branch. The name of your branch has to match with the issue opened. | ||||||
|  | 
 | ||||||
|  | `type(scope):issue` | ||||||
|  | 
 | ||||||
|  | Example : | ||||||
|  | Issue : | ||||||
|  | 
 | ||||||
|  | - `Feature(notification_bloc): add firebase messaging data source.` | ||||||
|  | 
 | ||||||
|  | Branch related to this issue : | ||||||
|  | 
 | ||||||
|  | - `feature(notification_bloc)/add_firebase_messaging_data_source` | ||||||
|  | 
 | ||||||
|  | ### Commits | ||||||
| 
 | 
 | ||||||
| See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. | See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. | ||||||
| 
 | 
 | ||||||
| tl;dr : `type(scope): description`. | tl;dr : `type(scope): description #issue`. | ||||||
| Here allowed <type> values: | Here allowed <type> values: | ||||||
| 
 | 
 | ||||||
| - **feat** for a new feature for the user, not a new feature for build script. Such commit will trigger a release bumping a MINOR version. | - **feat** for a new feature for the user, not a new feature for build script. Such commit will trigger a release bumping a MINOR version. | ||||||
| @ -115,11 +159,68 @@ Here allowed <type> values: | |||||||
| 
 | 
 | ||||||
| Some examples : | Some examples : | ||||||
| 
 | 
 | ||||||
| - `feat(auth): add AWS support.` = add a feature in authentication_bloc package. | - `feat(auth): add AWS support. (#31)` = add a feature in authentication_bloc package, linked to the 31st issue. | ||||||
| - `docs: update readme.` = update **this** readme file. | - `docs: update readme.` = update **this** readme file. | ||||||
| - `fix(crud)!: fix bug in awesome() function.` = fix a bug, `!` is important and indicate `BREAKING CHANGES`. | - `fix(crud)!: fix bug in awesome() function. (#32)` = fix a bug, `!` is important and indicate `BREAKING CHANGES` linked with the 32nd issue. | ||||||
| 
 | 
 | ||||||
| Conventional commits are important for `melos version` command ! | When you have finished developing, and are ready to close the issue, close it via your commit : | ||||||
|  | 
 | ||||||
|  | `feat(auth): add AWS support. (close #31)` | ||||||
|  | 
 | ||||||
|  | Note that your issue will be close after merging on master. | ||||||
|  | Before closing the issue, please check tests and update coverage. You might run : | ||||||
|  | 
 | ||||||
|  | ```shell | ||||||
|  | melos run test | ||||||
|  | melos run gen_coverage | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | #### Merge your work | ||||||
|  | 
 | ||||||
|  | After closing your issue, some work may have been done on master in the meantime. To keep a clean git history, please rebase before opening a change request. | ||||||
|  | 
 | ||||||
|  | Two situations : | ||||||
|  | 
 | ||||||
|  | - You have not yet created your branch and have committed locally : | ||||||
|  | 
 | ||||||
|  | ```shell | ||||||
|  | git pull --rebase | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | - You are already working on your branch : | ||||||
|  | 
 | ||||||
|  | ```shell | ||||||
|  | git rebase -i master | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | If possible, please use `--fixup` on your commit in interactive rebase. | ||||||
|  | 
 | ||||||
|  | Then, opend your PR, get the necessary approval and merge your work. Then you're done ✅. | ||||||
|  | 
 | ||||||
|  | #### Update version. | ||||||
|  | 
 | ||||||
|  | Once your work is on the master, you can update your package version. Please filter packages to update only your package. `--scope` is used to do it. | ||||||
|  | For example, after merging changes on `nwyatt_otification_bloc` package, you might run : | ||||||
|  | 
 | ||||||
|  | ```shell | ||||||
|  | melos version --scope="*wyatt_notification_bloc*" | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | In fact, melos will filter all packages that match the `wyatt_notification_block` pattern. | ||||||
|  | 
 | ||||||
|  | You can update check all packages tests by running : | ||||||
|  | 
 | ||||||
|  | ```shell | ||||||
|  | melos run test | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | #### Publish your package | ||||||
|  | 
 | ||||||
|  | If package is ready for procution, publish it runnig : | ||||||
|  | 
 | ||||||
|  | ```shell | ||||||
|  | melos publish --scope"*package*" | ||||||
|  | ``` | ||||||
| 
 | 
 | ||||||
| #### Badging | #### Badging | ||||||
| 
 | 
 | ||||||
| @ -130,6 +231,7 @@ In the package `readme.md` file, please specify the supported SDK: | |||||||
| ```markdown | ```markdown | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
|  | 
 | ||||||
| or | or | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 AN12345
						AN12345