ui_components/feat/cards-components #127

Merged
hugo merged 10 commits from ui_components/feat/cards-components into master 2023-02-09 16:50:48 +00:00
Showing only changes of commit 340bc71e3b - Show all commits

View File

@ -17,10 +17,6 @@
--> -->
<p align="center"> <p align="center">
<a href="https://wyattapp.io">
<img width="150px" src="resources/wyatt-campus-logo.png">
</a>
<a href="https://wyatt-studio.fr"> <a href="https://wyatt-studio.fr">
<img width="150px" src="resources/wyatt-studio-logo.png"> <img width="150px" src="resources/wyatt-studio-logo.png">
</a> </a>
@ -44,10 +40,9 @@
## About ## About
Here is it a set of [Flutter plugins](https://flutter.io/platform-plugins/) that power up your applications. Here is a set of [Flutter plugins](https://flutter.io/platform-plugins/) that enhance your applications.
[Flutter](https://flutter.dev) is Google's UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase. Flutter is used by developers and organizations around the world, and is free [Flutter](https://flutter.dev) is Google's UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop using a single codebase. It is used by developers and organizations worldwide and is free and open-source.
and open source.
--- ---
@ -61,21 +56,21 @@ git clone ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-packages.git
### Prerequisite ### Prerequisite
- [Flutter](https://github.com/flutter/flutter). 1. [Flutter](https://github.com/flutter/flutter). It is a UI toolkit developed by Google for building beautiful and natively compiled applications for mobile, web, and desktop from a single codebase.
- [Melos](https://github.com/invertase/melos). Used to manage Dart projects with multiple packages. 2. [Melos](https://github.com/invertase/melos). Melos is a tool that helps in managing Dart projects that have multiple packages. It can be installed using the following command:
```shell ```shell
dart pub global activate melos dart pub global activate melos
``` ```
- [Mason](https://github.com/felangel/mason). Used for code generation. 3. [Mason](https://github.com/felangel/mason). Mason is used for code generation purposes. It can be installed by running the following command:
```shell ```shell
dart pub global activate mason_cli dart pub global activate mason_cli
``` ```
- [Lcov](https://github.com/linux-test-project/lcov). Used to generate coverage data. 4. [Lcov](https://github.com/linux-test-project/lcov). Lcov is a tool used to generate coverage data. It can be installed on macOS by running the following command:
```shell ```shell
# on macos # on macos
@ -84,38 +79,39 @@ brew install lcov
- genhtml. Used to convert coverage data into html pages. - genhtml. Used to convert coverage data into html pages.
After installing all these packages, bootstrap with `melos bs`. After installation of all these packages, the project can be bootstrapped using the command `melos bs`.
### Create a new package ### Create a new package
Create a new package in `packages/` folder. Create a new package in `packages/` folder.
To create a new package in the packages/ folder, run the following command in the terminal:
```shell ```shell
mason make wyatt_package --package_name wyatt_<name> --description A new Wyatt package --flutter_only false mason make wyatt_package --package_name wyatt_<name> --description A new Wyatt package --flutter_only false
``` ```
Then bootstrap project with `melos bs` command. The <name> variable in the above command is important and must be clear and understandable.
After creating the package, bootstrap the project with the `melos bs` command.
#### Naming #### Naming
In the previous instructions `<name>` variable is important. In the previous instructions `<name>` variable is important.
It have to be clear and intelligible. It have to be clear and intelligible.
You **MUST** use underscores. 1. You must use underscores in the name.
2. You must use the wyatt prefix for the package name.
3. You must name the example with a specific name.
You **MUST** use `wyatt` prefix for package. For example, if the name is "CRUD BLOC," the following naming conventions should be used:
You **MUST** name example with specific name. 1. name: crud_bloc
2. package name: wyatt_crud_bloc
For example, if name is CRUD BLOC 3. example name: crud_bloc_example
- name will be crud_bloc
- so the package will be: `wyatt_crud_bloc`
- and the example will be: `crud_bloc_example`
### Create issues ### Create issues
Add the issues directly related to what you want to develop and label them correctly. Create an issue for each specific feature or task you want to work on and label it correctly using the following format:
``` ```
Type(scope): issue. Type(scope): issue.
@ -128,18 +124,18 @@ For example, on notification bloc package :
### Branches ### 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. The master branch is protected and cannot be pushed to directly. Please create a separate branch for each feature or task, with a name that corresponds to the related issue. The branch name should follow this format:
`type(scope):issue` `type(scope):issue`
Example : Example :
Issue : For the issue:
- `Feature(notification_bloc): add firebase messaging data source.` - `Feature(notification_bloc): add firebase messaging data source.`
Branch related to this issue : The related branch should be named:
- `feature(notification_bloc)/add_firebase_messaging_data_source` - `notification_bloc/feat/add_firebase_messaging_data_source`
### Commits ### Commits
@ -163,12 +159,11 @@ Some examples :
- `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. (#32)` = fix a bug, `!` is important and indicate `BREAKING CHANGES` linked with the 32nd issue.
When you have finished developing, and are ready to close the issue, close it via your commit : When you have completed your development work and are ready to resolve the related issue, you can close it via your commit message by including (close #issue_number). For example:
`feat(auth): add AWS support. (close #31)` ```shell
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 ```shell
melos run test:all # this will run all tests in this project melos run test:all # this will run all tests in this project
@ -179,45 +174,44 @@ melos run publish:validate # this will run a validation before publish packages
melos run publish # this will publish packages melos run publish # this will publish packages
``` ```
> Note that only modified package will be verified and published. Please note that the issue will only be closed after it has been merged into the master branch. Before closing the issue, it is important to verify that all tests have been run and that coverage has been updated.
#### Merge your work #### 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. When you have completed your work and closed the related issue, it's possible that some changes may have been made to the master branch in the meantime. To maintain a clean Git history, it's recommended to rebase before creating a change request (pull request).
Two situations : Two situations :
- You have not yet created your branch and have committed locally : - You haven't created a branch yet and have made local commits:
```shell ```shell
git pull --rebase git pull --rebase
``` ```
- You are already working on your branch : - You are already working on a branch:
```shell ```shell
git rebase -i master git rebase -i master
``` ```
If possible, please use `--fixup` on your commit in interactive rebase. It's recommended to use the `--fixup` option during the interactive rebase to keep the Git history clean.
Then, opend your PR, get the necessary approval and merge your work. Then you're done ✅. Once you have rebased, you can create a pull request, receive the necessary approvals, and then merge your work. And with that, you're done! 🎉
#### Update version. #### 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. When your work has been merged into the master branch, it's time to update the package version. To update only your specific package, use the --scope option. For example, after merging changes into the `wyatt_notification_bloc` package, you can run the following command:
For example, after merging changes on `wyatt_otification_bloc` package, you might run :
```shell ```shell
melos version --scope="*wyatt_notification_bloc*" melos version --scope="*wyatt_notification_bloc*"
``` ```
In fact, melos will filter all packages that match the `wyatt_notification_block` pattern. This will filter all packages that match the `wyatt_notification_bloc` pattern and update only that package.
You can update check all packages tests by running : You can then verify that all packages and their tests are working correctly by running:
```shell ```shell
melos run test melos run test:all
``` ```
#### Publish your package #### Publish your package
@ -265,14 +259,14 @@ Here you can change `package name` and `package version`.
--- ---
## Status
![Status: Experimental](https://img.shields.io/badge/Status-WIP-red?style=flat-square)
This repository is maintained by Wyatt Studio but work is in progress.
## Simple work flow diagramm ## Simple work flow diagramm
To sum up, here a simple work flow diagramm. To sum up, here a simple work flow diagramm.
![Dev Wokflow](doc/workflow.svg) ![Dev Wokflow](doc/workflow.svg)
## Status
![Status: Experimental](https://img.shields.io/badge/Status-WIP-red?style=flat-square)
This repository is maintained by Wyatt Studio but work is in progress.