Compare commits
	
		
			No commits in common. "775d766d14045c7c66a9a777825e3ff18b6751e7" and "f0ed08bd49f06d48d7db392b6c767618d2bb0c1a" have entirely different histories.
		
	
	
		
			775d766d14
			...
			f0ed08bd49
		
	
		
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -198,6 +198,3 @@ $RECYCLE.BIN/ | |||||||
| *.iml | *.iml | ||||||
| google-services.json | google-services.json | ||||||
| pubspec_overrides.yaml | pubspec_overrides.yaml | ||||||
| 
 |  | ||||||
| # Mason |  | ||||||
| .mason/ |  | ||||||
							
								
								
									
										136
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										136
									
								
								README.md
									
									
									
									
									
								
							| @ -51,51 +51,36 @@ and open source. | |||||||
| 
 | 
 | ||||||
| --- | --- | ||||||
| 
 | 
 | ||||||
| ## Contribution | ## Development | ||||||
| 
 | 
 | ||||||
| Clone this repo. | Clone this repo. | ||||||
| 
 | 
 | ||||||
| ```shell | You have to install [melos](https://github.com/invertase/melos). | ||||||
| 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 | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| - [Mason](https://github.com/felangel/mason). Used for code generation. | Then bootstrap with `melos bs`. | ||||||
| 
 |  | ||||||
| ```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 | ||||||
| mason make wyatt_package --package_name  wyatt_<name> --description A new Wyatt package --flutter_only false | dart create -t package-simple wyatt_<name> | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | 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.  | ||||||
| @ -108,44 +93,15 @@ 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` | ||||||
| 
 | 
 | ||||||
| ### Create issues | #### Commits | ||||||
| 
 |  | ||||||
| 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 #issue`. | tl;dr : `type(scope): description`. | ||||||
| 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. | ||||||
| @ -159,68 +115,11 @@ Here allowed <type> values: | |||||||
| 
 | 
 | ||||||
| Some examples : | Some examples : | ||||||
| 
 | 
 | ||||||
| - `feat(auth): add AWS support. (#31)` = add a feature in authentication_bloc package, linked to the 31st issue. | - `feat(auth): add AWS support.` = add a feature in authentication_bloc package. | ||||||
| - `docs: update readme.` = update **this** readme file. | - `docs: update readme.` = update **this** readme file. | ||||||
| - `fix(crud)!: fix bug in awesome() function. (#32)` = fix a bug, `!` is important and indicate `BREAKING CHANGES` linked with the 32nd issue. | - `fix(crud)!: fix bug in awesome() function.` = fix a bug, `!` is important and indicate `BREAKING CHANGES`. | ||||||
| 
 | 
 | ||||||
| When you have finished developing, and are ready to close the issue, close it via your commit : | Conventional commits are important for `melos version` command ! | ||||||
| 
 |  | ||||||
| `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 | ||||||
| 
 | 
 | ||||||
| @ -231,7 +130,6 @@ In the package `readme.md` file, please specify the supported SDK: | |||||||
| ```markdown | ```markdown | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| 
 |  | ||||||
| or  | or  | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | |||||||
| @ -1,14 +0,0 @@ | |||||||
| #!/usr/bin/env bash |  | ||||||
| 
 |  | ||||||
| escapedPath="$(echo `pwd` | sed 's/\//\\\//g')" |  | ||||||
| 
 |  | ||||||
| if grep flutter pubspec.yaml > /dev/null; then |  | ||||||
|   if [ -d "coverage" ]; then |  | ||||||
|     # combine line coverage info from package tests to a common file |  | ||||||
|     if [ ! -d "$MELOS_ROOT_PATH/coverage" ]; then |  | ||||||
|       mkdir "$MELOS_ROOT_PATH/coverage" |  | ||||||
|     fi |  | ||||||
|     sed "s/^SF:lib/SF:$escapedPath\/lib/g" coverage/lcov.info >> "$MELOS_ROOT_PATH/coverage/lcov.info" |  | ||||||
|     rm -rf "coverage" |  | ||||||
|   fi |  | ||||||
| fi |  | ||||||
| @ -1 +0,0 @@ | |||||||
| {"bricks":{"wyatt_clean_code":{"git":{"url":"ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-bricks.git","path":"bricks/wyatt_clean_code","ref":"033baa65408ec6b68e6a2ef43e64c24708ef16a1"}},"wyatt_feature_brick":{"git":{"url":"ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-bricks.git","path":"bricks/wyatt_feature_brick","ref":"033baa65408ec6b68e6a2ef43e64c24708ef16a1"}},"wyatt_package":{"git":{"url":"ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-bricks.git","path":"bricks/wyatt_package","ref":"033baa65408ec6b68e6a2ef43e64c24708ef16a1"}}}} |  | ||||||
							
								
								
									
										13
									
								
								mason.yaml
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								mason.yaml
									
									
									
									
									
								
							| @ -1,13 +0,0 @@ | |||||||
| bricks: |  | ||||||
|   wyatt_clean_code: |  | ||||||
|     git: |  | ||||||
|       url: ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-bricks.git |  | ||||||
|       path: bricks/wyatt_clean_code |  | ||||||
|   wyatt_feature_brick: |  | ||||||
|     git: |  | ||||||
|       url: ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-bricks.git |  | ||||||
|       path: bricks/wyatt_feature_brick |  | ||||||
|   wyatt_package: |  | ||||||
|     git: |  | ||||||
|       url: ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-bricks.git |  | ||||||
|       path: bricks/wyatt_package |  | ||||||
							
								
								
									
										12
									
								
								melos.yaml
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								melos.yaml
									
									
									
									
									
								
							| @ -37,18 +37,6 @@ scripts: | |||||||
|     run: git clean -x -d -f -q |     run: git clean -x -d -f -q | ||||||
|     description: Clean things very deeply with `git clean`. |     description: Clean things very deeply with `git clean`. | ||||||
|    |    | ||||||
|   test:selective_unit_test: |  | ||||||
|     run: melos exec --dir-exists="test" -- flutter test --no-pub --coverage |  | ||||||
|     description: Run Flutter tests for a specific package in this project. |  | ||||||
|     select-package: |  | ||||||
|       flutter: true |  | ||||||
| 
 |  | ||||||
|   test: |  | ||||||
|     run: melos run test:selective_unit_test --no-select |  | ||||||
|     description: Run all Flutter tests in this project. |  | ||||||
| 
 |  | ||||||
|   gen_coverage: melos exec -- sh "\$MELOS_ROOT_PATH/combine_coverage.sh" && genhtml coverage/lcov.info -o coverage/html |  | ||||||
|    |  | ||||||
|   # Additional cleanup lifecycle script, executed when `melos clean` is run. |   # Additional cleanup lifecycle script, executed when `melos clean` is run. | ||||||
|   postclean: > |   postclean: > | ||||||
|     melos exec -c 6 -- "flutter clean" |     melos exec -c 6 -- "flutter clean" | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user