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