Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Add] Git template, and rules using in project #119

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions vn/git/.github/BRANCH_NAMING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Quy tắc đặt tên nhánh GIT

## Branch naming:

* Tên nhánh cho release production: [master]

* Tên nhánh cho release staging: [staging]

* Tên nhánh cho release development: [develop]

* Tên nhánh làm việc: [feature]

* Tên nhánh Hotfix: [hotfix]

* Tên nhánh sửa lỗi: [bug]

* Tên nhánh hỗ trợ: [support]

## Naming Convention

### Template:

{type}/{ticket number / name / indicator}/{max 5 words description}

#### Ví dụ:

feature_123456_user_profile_images_update

hotfix_98765_menu_padding

support_6457_header_banner_width_fix

bug_235235_fix_column_not_change
113 changes: 113 additions & 0 deletions vn/git/.github/GIT_COMMIT_MESSAGE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# Nguyên tắc viết commit message
Format như sau :
```
Dòng 1: thông tin cơ bản về nội dung thay đổi ( title, tóm tắt, ... )
Dòng 2 (Nếu có): khoảng trắng
Dòng 3 trở đi (Nếu có): Lý do thay đổi, nội dung thay đổi cụ thể, ...
```

Tiếng Anh, tiếng Nhật đều được, nhưng 1 project thì dùng thống nhất 1 ngôn ngữ thôi. Và không dùng tiếng Việt.

## Dòng 1

Format như sau :

`[phân loại] tóm tắt`

### Phân loại
Có nhiều loại thao tác đối với code, và tương ứng với nó sẽ là 1 phân loại cụ thể. Vấn đề là có ... hơi nhiều phân loại :D.

#### Phân loại thông thường
* Fix : sửa bugs
* Hotfix : sửa những bugs khẩn cấp
* Add : thêm file, thêm chức năng
* Modify : sửa, thay đổi tính năng ( không phải bug nhé )
* Change : thay đổi requirement
* Clean : chỉnh sửa, dọn dẹp code
* Disable : vô hiệu hoá ( ví dụ như comment out )
* Remove : xoá file
* Upgrade : nâng cấp
* Revert : chữa cháy lại những thứ vừa thay đổi

#### Phiên bản đơn giản
Số lượng phân loại trên thực sự là quá nhiều và phức tạp, do đó để đơn giản hoá vấn đề, ta sẽ đưa ra 1 cách phân loại khác nhẹ nhàng hơn.
* Fix : fix bugs
* Add : thêm chức năng, tính năng mới
* Modify : sửa, nâng cấp tính năng ( không phải bugs )
* Remove : xoá ( file )
* Revert : chữa cháy

#### Sử dụng linh hoạt
Phần phân loại này tuỳ theo từng dự án mà phân loại cho phù hợp, không nhất thiết phải sử dụng những định nghĩa trên.

Ví dụ với dự án có frontend, backend, payment, ... thì có thể phân loại dựa theo chức năng.

Tuy nhiên, cần phải định nghĩa chung cách phân loại từ đầu mỗi dự án để tất cả mọi người cùng tuân theo.

### Phần nội dung title
`Động từ + danh từ + #{issue ID}`
Tóm tắt nội dung của những thay đổi trong commit 1 cách ngắn gọn. Theo 1 số quy ước khác thì dòng này sẽ **không quá 80 kí tự**. Ngoài ra cũng nên **hạn chế sử dụng từ chuyên môn**.

Nếu project sử dụng issue của github thì cuối dòng phải thêm `#{issue ID}` để tận dụng 1 số tiện ích của github.

### Ví dụ 1 commit message :

[Add]Add project readme #012345

[Modify]Change library AB to version 1.2.0 in setting



# Tiếng Anh trong commit
## Các từ tiếng Anh hay dùng

**Xác định động từ chính trong 1 commit sẽ dễ hiểu và dễ viết hơn**

### Động từ

Động từ để ở thì hiện tại.

| ý nghĩa | từ |
| --------------------- | -------------- |
| tạo mới | create |
| xoá | remove, delete |
| cập nhật | update |
| cập nhật(version) | upgrade |
| thêm | add |
| sử dụng | use |
| bao gồm | include |
| sửa | modify |
| sửa (bugs) | fix (a bug) |
| thay đổi | change |
| di chuyển | move |
| ghi đè | replace |
| mở rộng | extend |
| sử dụng/không sử dụng | enable/disable |
| chỉnh lý | clean |
| liên kết | link |
| gửi | send |
| mở/đóng | open/close |

Những từ trừu tượng như implement, improve, support thì không nên dùng.

### Danh từ
Danh từ ngoài đời thì nhiều chứ trong code thì cũng không nhiều :D.
Những từ thường hay gặp :
bug, typo, changelog, config, settings, format, description, argument

### Bổ ngữ, other

Những bổ ngữ hay dùng :

| ý nghĩa | từ |
| ----------------- | -------------------- |
| vì ..., trong ... | for ... |
| cùng với... | with ... |
| vượt qua... | over ... |
| trong... | in ... |
| thông qua... | via ... |
| từ ... đến ... | from ... to ... |
| thay thế cho... | instead of ... |
| nếu cần | if necessary |
| ...trước/sau | before .../after ... |

24 changes: 24 additions & 0 deletions vn/git/.github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
## Detailed Description (詳細な説明)


## Target Page (対象ページ)
- *Paste URL here*

## Steps to Reproduce (再現させるためのステップ)
1.
2.
3.

## Current Behavior(現在の挙動)


## Expected Behavior (適切な挙動)


## Context(発生した環境)
- Env:
- OS:
- Browser:
- Attachment:
- Effected pull:
- Task:
40 changes: 40 additions & 0 deletions vn/git/.github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
## Related Tickets
- [#Ticket ID](https://dev.framgia.com/redmine/issues/???)

## WHY
- Mô tả sơ lược về lý do tại sao phải làm PR này.

## HOW
- Mô tả ngắn gọn cách thực hiện thay đổi trong PR

## Evidence (Screenshot or Video)

## Impacted Areas in Application (Optional)
*(Liệt kê những chức năng, api, service bị ảnh hưởng bởi PR này)*

- Model ABC
- API XYZ

## Checklist
- [ ] Unit test run successfully?
- [ ] Updated library at [here](https://???)
- [ ] Fill link PR into ticket and the opposite
- [ ] Note reason, scope of influence, solution into ticket
- [ ] Validate UI/Model/API
- [ ] Checked on iPhone 5, 7, X
- [ ] Followed latest specs at [#Link specs](https://???)

## Library (Optional)
*(Liệt kê danh sách thư viện, các ứng của bên thứ 3 sử dụng trong PR bao gồm cả phiên bản sử dụng)*

- Library: GoogleAnalysis v1.2.0

## Performance (Optional)
- [ ] Resolved n + 1 query
- [ ] Time run rake task : 1000 ms
- Generated SQL query

## Notes (Optional)
*(Những note khác về PR. Ví dụ như các lệnh cần phải chạy, thêm biến môi trường ...)*
- Update environment variable to staging environment
- Run command to generate data
73 changes: 73 additions & 0 deletions vn/git/.github/README_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Project Title

Tên project

## Getting Started

Hướng dẫn cài đặt môi trường, thư viện, format ..

### Prerequisites

Những thứ cần để cài đặt phần mềm và cách cài đặt chúng

```
Đưa ra ví dụ
```

### Installing

Các bước cần thiết để chạy trên môi trường development.

Bước 1:

```
Đưa ra ví dụ
```

Bước 2

```
Đưa ra ví dụ
```

Kết thúc với một ví dụ về việc lấy một số dữ liệu ra khỏi hệ thống hoặc sử dụng nó cho một bản demo nhỏ

## Running the tests

Giải thích cách chạy automated tests cho hệ thống.

### Giới thiệu về coding style tests

```
Đưa ra ví dụ
```

## Deployment

Thêm ghi chú bổ sung về cách triển khai này trên hệ thống môi trường production, staging

## Built With

* [Dropwizard](http://www.dropwizard.io/1.0.2/docs/) - Framework sử dụng
* [Maven](https://maven.apache.org/) - Dependency Management
* [ROME](https://rometools.github.io/rome/) - Used to generate RSS Feeds

## Versioning

Dự án sử dụng [SemVer](http://semver.org/) để quản lý phiên bản. Để xem chi tiết những phiên bản hiện tại, vui lòng kiểm tra tại [danh sách tag trong dự án](https://github.com/your/project/tags).

## Authors

* **Giang Hai Anh** - *Initial work* - [anhgh-1140](https://github.com/anhgh-1140)

See also the list of [contributors](https://github.com/your/project/contributors) who participated in this project.

## License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details

## Acknowledgments

* Một số mẹo khi code.
* Tính năng nổi bật
* etc
69 changes: 69 additions & 0 deletions vn/git/.github/RELEASE_NOTE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
## Environment : Development / Staging / Production

## Version v1.0.0 - Nov 22nd, 2018
### New features:

(Đưa ra danh sách những feature mới trong lần release này)

- Authentication
- Video player
- Video management (upload, edit, delete video)
- User profile, Search videos, Home screen, Trending screen

Tùy theo yêu cầu dự án có thể đưa ra danh sách ticket đã làm như sau:

- [#111111](https://dev.framgia.com/issues/)
- [#222222](https://dev.framgia.com/issues/)
- [#333333](https://dev.framgia.com/issues/)
- [#444444](https://dev.framgia.com/issues/)
- [#555555](https://dev.framgia.com/issues/)

### Various dependency updates:

(Danh sách các thư viện và frameworks sử dụng trong dự án: đặc biệt cần các thông tin về phiên bản sử dụng, trả phí hay không, link dẫn tới thư viện đó)

- List libraries and frameworks:
| No. | Name | Paid | Verion | Link |
| --- | ---- | ---- | ------ | ---- |
| 1 | Swiftlint | Free | v0.27.0 | https://github.com/realm/SwiftLint |
| 2 | IQKeyboardManagerSwift | Free | v6.1.1 | https://github.com/hackiftekhar/IQKeyboardManager |
| 3 | OrderedSet | Free | v3.0.0 | https://github.com/Weebly/OrderedSet |
| 4 | SwiftDate | Free | v4.5.1 | https://github.com/malcommac/SwiftDate |
| 5 | ObjectMapper | Free | v3.3 | https://github.com/tristanhimmelman/ObjectMapper |
| 6 | Reusable | Free | v4.0 | https://github.com/AliSoftware/Reusable |
| 7 | Then | Free | v2.3 | https://github.com/devxoul/Then |
| 8 | RxSwift | Free | v4.1 | https://github.com/ReactiveX/RxSwift |
| 9 | RxCocoa | Free | v4.1 | https://github.com/ReactiveX/RxSwift/tree/master/RxCocoa |
| 10 | RxSwiftExt | Free | v3.1 | https://github.com/RxSwiftCommunity/RxSwiftExt |
| 11 | NSObject+Rx | Free | v4.2 | https://github.com/RxSwiftCommunity/NSObject-Rx |
| 12 | RxDataSources | Free | v3.0.0 | https://github.com/RxSwiftCommunity/RxDataSources |
| 13 | RxAlamofire | Free | v4.0 | https://github.com/RxSwiftCommunity/RxAlamofire |
| 14 | MBProgressHUD | Free | v1.1 | https://github.com/jdg/MBProgressHUD |
| 15 | Localize-Swift | Free | v2.0 | https://github.com/marmelroy/Localize-Swift |
| 16 | MJRefresh | Free | v3.1 | https://github.com/CoderMJLee/MJRefresh |

### Enhancements:
(Những cải tiến so với phiên bản trước. Nếu không có ghi N/A)

### Bugfixes:
(Những lỗi nào được xử lý. Nếu không có ghi N/A)

### Removed obsolete code:
(Những phần code lỗi thời đã bị xóa bỏ. Nếu không có ghi N/A)

### Compatibility notes:
(Những phiên bản, device, platform tương tích)

- Work for iOS 10.0 and above

### Known Issues and Problems
(Những vẫn đề tiềm ẩn trong bản release hiện tại. Nếu không có ghi N/A)

- SDK creates high energy impact

### Test:
- [x] Unit test
- [ ] Circle-ci
- [x] Integration test
- [x] System test / Final test
- [ ] Acceptance test
Loading