@momo-kits/native-kits 0.156.1-test.5 → 0.156.1-test.6-debug
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/PUBLISH_GUIDE.md +675 -0
- package/build.gradle.kts +11 -0
- package/compose/build.gradle.kts +180 -0
- package/compose/build.gradle.kts.backup +180 -0
- package/compose/compose.podspec +54 -0
- package/compose/src/androidMain/kotlin/vn/momo/kits/platform/Platform.android.kt +113 -0
- package/compose/src/commonMain/composeResources/font/momosignature.otf +0 -0
- package/compose/src/commonMain/composeResources/font/momotrustdisplay.otf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_black.otf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_black.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_bold.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_heavy.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_light.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_medium.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_regular.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_semibold.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_thin.otf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_thin.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.otf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.ttf +0 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/AnimationSearchInput.kt +57 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/Context.kt +95 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/FloatingButton.kt +201 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/Header.kt +222 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderAnimated.kt +48 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderBackground.kt +86 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderDefault.kt +76 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderExtended.kt +76 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderRight.kt +305 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderTitle.kt +33 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/LiteScreen.kt +715 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +121 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/Screen.kt +405 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/useHeaderSearchAnimation.kt +69 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +83 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeDot.kt +32 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeRibbon.kt +340 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +348 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +94 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Chip.kt +136 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/CupertinoOverscroll.kt +543 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Divider.kt +23 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Icon.kt +76 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/IconButton.kt +148 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Image.kt +188 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Information.kt +116 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +447 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputDropDown.kt +172 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputMoney.kt +244 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputOTP.kt +231 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputPhoneNumber.kt +234 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputSearch.kt +254 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputTextArea.kt +241 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/LazyColumnWithBouncing.kt +364 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationDot.kt +56 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationNumber.kt +41 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationScroll.kt +92 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationWhiteDot.kt +40 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +352 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupPromotion.kt +103 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +70 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/ScaleSizeScope.kt +17 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +96 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +96 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +92 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +130 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +214 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +177 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +205 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerTypes.kt +29 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerUtils.kt +239 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +191 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +306 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +12 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +13 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +189 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +285 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +2 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +35 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +2 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/AutomationId.kt +59 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +68 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Conditional.kt +11 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/DeprecatedModifier.kt +14 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +50 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Size.kt +51 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +239 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +119 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +98 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +163 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +331 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +497 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +162 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTabBar.kt +226 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/CurvedContainer.kt +86 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/FloatingButton.kt +187 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +274 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +80 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +306 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +31 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +370 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +132 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +42 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Icons.kt +1329 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Resources.kt +62 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Utils.kt +88 -0
- package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +152 -0
- package/gradle/libs.versions.toml +57 -0
- package/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/gradle/wrapper/gradle-wrapper.properties +8 -0
- package/gradle.properties +26 -0
- package/gradlew +252 -0
- package/gradlew.bat +94 -0
- package/local.properties +8 -0
- package/package.json +1 -1
- package/publish.sh +431 -0
- package/settings.gradle.kts +52 -0
- package/publish_beta.sh +0 -153
package/PUBLISH_GUIDE.md
ADDED
|
@@ -0,0 +1,675 @@
|
|
|
1
|
+
# Hướng Dẫn Publish NPM Package
|
|
2
|
+
|
|
3
|
+
Tài liệu này hướng dẫn cách sử dụng script publish cho `@momo-kits/native-kits`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 📋 Tổng Quan
|
|
8
|
+
|
|
9
|
+
Dự án sử dụng **`publish.sh`** - một script thống nhất hỗ trợ 2 modes:
|
|
10
|
+
|
|
11
|
+
- **`beta`**: Publish phiên bản beta/alpha cho testing
|
|
12
|
+
- **`release`**: Publish phiên bản release chính thức
|
|
13
|
+
|
|
14
|
+
Script có 3 phases riêng biệt:
|
|
15
|
+
1. **Check Version**: Kiểm tra và chuẩn bị version
|
|
16
|
+
2. **Publish Maven**: Publish lên GitLab Maven repository
|
|
17
|
+
3. **Publish NPM**: Publish lên NPM registry
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 🚀 Publish Từ Local
|
|
22
|
+
|
|
23
|
+
### Yêu Cầu Trước Khi Publish
|
|
24
|
+
|
|
25
|
+
1. **Login NPM:**
|
|
26
|
+
```bash
|
|
27
|
+
npm login
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
2. **Kiểm tra version hiện tại:**
|
|
31
|
+
```bash
|
|
32
|
+
cat package.json | grep version
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### 🔵 Publish Beta Từ Local
|
|
36
|
+
|
|
37
|
+
#### **Cách 1: Publish tất cả phases (Khuyến nghị)**
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
sh publish.sh beta
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
#### **Cách 2: Chạy từng phase riêng**
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# Phase 1: Check version
|
|
47
|
+
sh publish.sh beta check
|
|
48
|
+
|
|
49
|
+
# Phase 2: Publish Maven
|
|
50
|
+
sh publish.sh beta maven
|
|
51
|
+
|
|
52
|
+
# Phase 3: Publish NPM
|
|
53
|
+
sh publish.sh beta npm
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
#### **Quy Trình Beta Publishing**
|
|
57
|
+
|
|
58
|
+
1. **Update version trong `package.json`:**
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"version": "0.156.2"
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
2. **Chạy check version trước (optional nhưng khuyến nghị):**
|
|
66
|
+
```bash
|
|
67
|
+
sh publish.sh beta check
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
3. **Nếu check thành công, publish:**
|
|
71
|
+
```bash
|
|
72
|
+
sh publish.sh beta
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 📦 Version Types (Beta Mode)
|
|
78
|
+
|
|
79
|
+
Beta mode hỗ trợ 2 loại version:
|
|
80
|
+
|
|
81
|
+
### **1. Specific Version (Tag: alpha)**
|
|
82
|
+
|
|
83
|
+
**Định nghĩa:** Version có suffix KHÔNG phải "beta"
|
|
84
|
+
|
|
85
|
+
**Ví dụ:**
|
|
86
|
+
- `0.156.2-test.1`
|
|
87
|
+
- `0.156.2-alpha.1`
|
|
88
|
+
- `0.156.2-rc.1`
|
|
89
|
+
|
|
90
|
+
**Behavior:**
|
|
91
|
+
- NPM tag: `alpha`
|
|
92
|
+
- Check existence: ❌ **FAIL** nếu version đã tồn tại
|
|
93
|
+
- Không auto-increment
|
|
94
|
+
- Developer phải tự quản lý version
|
|
95
|
+
|
|
96
|
+
**Use case:** Testing specific features, hotfix testing
|
|
97
|
+
|
|
98
|
+
### **2. Normal Version (Tag: beta)**
|
|
99
|
+
|
|
100
|
+
**Định nghĩa:** Version có suffix "beta" HOẶC không có suffix
|
|
101
|
+
|
|
102
|
+
**Ví dụ:**
|
|
103
|
+
- `0.156.2` (no suffix)
|
|
104
|
+
- `0.156.2-beta.1`
|
|
105
|
+
- `0.156.2-beta.5`
|
|
106
|
+
|
|
107
|
+
**Behavior:**
|
|
108
|
+
- NPM tag: `beta`
|
|
109
|
+
- Auto-format: `0.156.2` → `0.156.2-beta.1`
|
|
110
|
+
- Auto-increment nếu tồn tại: `.beta.1` → `.beta.2` → `.beta.3`...
|
|
111
|
+
|
|
112
|
+
**Use case:** Regular beta testing, continuous development
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## 🔍 Version Detection Examples
|
|
117
|
+
|
|
118
|
+
### **Example 1: Specific Version**
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# package.json
|
|
122
|
+
{
|
|
123
|
+
"version": "0.156.2-test.1"
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
# Run
|
|
127
|
+
$ sh publish.sh beta check
|
|
128
|
+
|
|
129
|
+
# Output
|
|
130
|
+
🏷️ Detected: SPECIFIC version (tag: alpha)
|
|
131
|
+
🔎 Checking if specific version 0.156.2-test.1 exists on npm...
|
|
132
|
+
✅ Specific version 0.156.2-test.1 does not exist on npm. Safe to publish.
|
|
133
|
+
✅ NPM tag: alpha
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Kết quả trên NPM:**
|
|
137
|
+
- `@momo-kits/native-kits@0.156.2-test.1` (tag: **alpha**)
|
|
138
|
+
- `@momo-kits/native-kits@0.156.2-test.1-debug` (tag: **alpha**)
|
|
139
|
+
|
|
140
|
+
### **Example 2: Normal Version (No Suffix)**
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
# package.json
|
|
144
|
+
{
|
|
145
|
+
"version": "0.156.2"
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
# Run
|
|
149
|
+
$ sh publish.sh beta check
|
|
150
|
+
|
|
151
|
+
# Output
|
|
152
|
+
🏷️ Detected: NORMAL version (tag: beta)
|
|
153
|
+
🔄 Adding beta suffix: 0.156.2 → 0.156.2-beta.1
|
|
154
|
+
🔎 Checking version 0.156.2-beta.1 on npm...
|
|
155
|
+
✅ Version 0.156.2-beta.1 does not exist on npm. Using this version.
|
|
156
|
+
✅ NPM tag: beta
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
**Kết quả trên NPM:**
|
|
160
|
+
- `@momo-kits/native-kits@0.156.2-beta.1` (tag: **beta**)
|
|
161
|
+
- `@momo-kits/native-kits@0.156.2-beta.1-debug` (tag: **beta**)
|
|
162
|
+
|
|
163
|
+
### **Example 3: Normal Version (With Beta Suffix)**
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
# package.json
|
|
167
|
+
{
|
|
168
|
+
"version": "0.156.2-beta.1"
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
# Giả sử npm đã có: beta.1, beta.2
|
|
172
|
+
|
|
173
|
+
# Run
|
|
174
|
+
$ sh publish.sh beta check
|
|
175
|
+
|
|
176
|
+
# Output
|
|
177
|
+
🏷️ Detected: NORMAL version (tag: beta)
|
|
178
|
+
🔎 Checking version 0.156.2-beta.1 on npm...
|
|
179
|
+
⚠️ Version 0.156.2-beta.1 already exists on npm. Auto-incrementing...
|
|
180
|
+
Version incremented: 0.156.2-beta.1 → 0.156.2-beta.2
|
|
181
|
+
⚠️ Version 0.156.2-beta.2 already exists on npm. Auto-incrementing...
|
|
182
|
+
Version incremented: 0.156.2-beta.2 → 0.156.2-beta.3
|
|
183
|
+
✅ Version 0.156.2-beta.3 does not exist on npm. Using this version.
|
|
184
|
+
✅ NPM tag: beta
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**Kết quả trên NPM:**
|
|
188
|
+
- `@momo-kits/native-kits@0.156.2-beta.3` (tag: **beta**)
|
|
189
|
+
- `@momo-kits/native-kits@0.156.2-beta.3-debug` (tag: **beta**)
|
|
190
|
+
|
|
191
|
+
### **Example 4: Specific Version Already Exists (FAIL)**
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
# package.json
|
|
195
|
+
{
|
|
196
|
+
"version": "0.156.2-test.1"
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
# Version đã tồn tại trên npm
|
|
200
|
+
|
|
201
|
+
# Run
|
|
202
|
+
$ sh publish.sh beta check
|
|
203
|
+
|
|
204
|
+
# Output
|
|
205
|
+
🏷️ Detected: SPECIFIC version (tag: alpha)
|
|
206
|
+
🔎 Checking if specific version 0.156.2-test.1 exists on npm...
|
|
207
|
+
|
|
208
|
+
❌ ERROR: Specific version 0.156.2-test.1 already exists on npm!
|
|
209
|
+
|
|
210
|
+
Please update the version in package.json before publishing.
|
|
211
|
+
# Exit code: 1
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## 🟢 Publish Release Từ Local
|
|
217
|
+
|
|
218
|
+
### **Đặc Điểm Quan Trọng**
|
|
219
|
+
|
|
220
|
+
⚠️ **Release mode KHÔNG đọc version từ `package.json`**
|
|
221
|
+
|
|
222
|
+
✅ **Release mode đọc version từ `npm@latest`**
|
|
223
|
+
|
|
224
|
+
### **Cách Publish**
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
# Publish tất cả phases
|
|
228
|
+
sh publish.sh release
|
|
229
|
+
|
|
230
|
+
# Hoặc từng phase
|
|
231
|
+
sh publish.sh release check
|
|
232
|
+
sh publish.sh release maven
|
|
233
|
+
sh publish.sh release npm
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### **Quy Trình Release Publishing**
|
|
237
|
+
|
|
238
|
+
1. **Script đọc version từ npm@latest:**
|
|
239
|
+
```bash
|
|
240
|
+
npm view @momo-kits/native-kits@latest version
|
|
241
|
+
# Output: 0.156.2
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
2. **Auto-increment patch version:**
|
|
245
|
+
```
|
|
246
|
+
0.156.2 → 0.156.3
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
3. **Check existence và tiếp tục increment nếu cần:**
|
|
250
|
+
```
|
|
251
|
+
0.156.3 exists? → 0.156.4
|
|
252
|
+
0.156.4 exists? → 0.156.5
|
|
253
|
+
...
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
4. **Update `package.json` với version mới**
|
|
257
|
+
|
|
258
|
+
5. **Publish với tag `latest`**
|
|
259
|
+
|
|
260
|
+
### **Example: Release Publishing**
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
$ sh publish.sh release check
|
|
264
|
+
|
|
265
|
+
# Output
|
|
266
|
+
🔍 Reading latest version from npm@latest (NOT from package.json)...
|
|
267
|
+
📦 Current @latest version on npm: 0.156.2
|
|
268
|
+
🔼 Auto-incremented version: 0.156.2 → 0.156.3
|
|
269
|
+
🔎 Checking if version 0.156.3 exists on npm...
|
|
270
|
+
✅ Version 0.156.3 does not exist on npm. Using this version.
|
|
271
|
+
📝 Updated package.json: 0.156.2-beta.5 → 0.156.3
|
|
272
|
+
✅ Using version: 0.156.3
|
|
273
|
+
✅ NPM tag: latest
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
**Kết quả trên NPM:**
|
|
277
|
+
- `@momo-kits/native-kits@0.156.3` (tag: **latest**)
|
|
278
|
+
- `@momo-kits/native-kits@0.156.3-debug` (tag: **latest**)
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## 🤖 Publish Tự Động Trên GitLab CI
|
|
283
|
+
|
|
284
|
+
### 🔵 Beta Publishing (GitLab CI)
|
|
285
|
+
|
|
286
|
+
**Trigger:** Commit message chứa `[ci build]` (KHÔNG trên nhánh `main`)
|
|
287
|
+
|
|
288
|
+
```bash
|
|
289
|
+
git checkout develop
|
|
290
|
+
git add .
|
|
291
|
+
git commit -m "feat: add new feature [ci build]"
|
|
292
|
+
git push
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
**Pipeline sẽ chạy 3 stages:**
|
|
296
|
+
1. `beta_check_version` (Phase 1)
|
|
297
|
+
2. `beta_publish_maven` (Phase 2)
|
|
298
|
+
3. `beta_publish_npm` (Phase 3)
|
|
299
|
+
|
|
300
|
+
### 🟢 Release Publishing (GitLab CI)
|
|
301
|
+
|
|
302
|
+
**Trigger:** Push vào nhánh `main`
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
git checkout main
|
|
306
|
+
git merge develop
|
|
307
|
+
git push origin main
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
**Pipeline sẽ chạy 3 stages:**
|
|
311
|
+
1. `release_check_version` (Phase 1)
|
|
312
|
+
2. `release_publish_maven` (Phase 2)
|
|
313
|
+
3. `release_publish_npm` (Phase 3)
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## 📊 So Sánh Beta vs Release
|
|
318
|
+
|
|
319
|
+
| Tiêu chí | Beta Mode | Release Mode |
|
|
320
|
+
|----------|-----------|--------------|
|
|
321
|
+
| **Script** | `sh publish.sh beta` | `sh publish.sh release` |
|
|
322
|
+
| **Trigger CI** | Commit có `[ci build]` (không trên main) | Push vào `main` |
|
|
323
|
+
| **Read Version** | Từ `package.json` | Từ `npm@latest` |
|
|
324
|
+
| **Version Types** | Specific (alpha) / Normal (beta) | N/A |
|
|
325
|
+
| **NPM Tag** | `alpha` hoặc `beta` | `latest` |
|
|
326
|
+
| **If Exists** | Specific: FAIL / Normal: Auto-increment | Auto-increment |
|
|
327
|
+
| **Phase Order** | Check → Maven → NPM | Check → Maven → NPM |
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
## 🔧 NPM Tags Explained
|
|
332
|
+
|
|
333
|
+
### **Tag: alpha**
|
|
334
|
+
|
|
335
|
+
**Khi nào:** Beta mode + Specific version
|
|
336
|
+
|
|
337
|
+
**Cài đặt:**
|
|
338
|
+
```bash
|
|
339
|
+
npm install @momo-kits/native-kits@alpha
|
|
340
|
+
npm install @momo-kits/native-kits@0.156.2-test.1
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
**Use case:** Testing specific features, experimental builds
|
|
344
|
+
|
|
345
|
+
### **Tag: beta**
|
|
346
|
+
|
|
347
|
+
**Khi nào:** Beta mode + Normal version
|
|
348
|
+
|
|
349
|
+
**Cài đặt:**
|
|
350
|
+
```bash
|
|
351
|
+
npm install @momo-kits/native-kits@beta
|
|
352
|
+
npm install @momo-kits/native-kits@0.156.2-beta.1
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
**Use case:** Regular beta testing, pre-release versions
|
|
356
|
+
|
|
357
|
+
### **Tag: latest**
|
|
358
|
+
|
|
359
|
+
**Khi nào:** Release mode
|
|
360
|
+
|
|
361
|
+
**Cài đặt:**
|
|
362
|
+
```bash
|
|
363
|
+
npm install @momo-kits/native-kits@latest
|
|
364
|
+
npm install @momo-kits/native-kits
|
|
365
|
+
npm install @momo-kits/native-kits@0.156.3
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
**Use case:** Production releases, stable versions
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
## 🔍 Chi Tiết Các Phases
|
|
373
|
+
|
|
374
|
+
### **Phase 1: Check Version**
|
|
375
|
+
|
|
376
|
+
**Beta Mode:**
|
|
377
|
+
1. Đọc version từ `package.json`
|
|
378
|
+
2. Phát hiện version type (specific vs normal)
|
|
379
|
+
3. Set NPM tag (alpha vs beta)
|
|
380
|
+
4. Format version:
|
|
381
|
+
- Specific: Check existence, fail if exists
|
|
382
|
+
- Normal: Add beta suffix, auto-increment if exists
|
|
383
|
+
5. Update `gradle.properties`
|
|
384
|
+
|
|
385
|
+
**Release Mode:**
|
|
386
|
+
1. Đọc version từ `npm@latest` (KHÔNG từ package.json)
|
|
387
|
+
2. Increment patch version
|
|
388
|
+
3. Check existence, auto-increment if exists
|
|
389
|
+
4. Update `package.json` và `gradle.properties`
|
|
390
|
+
5. Set NPM tag = `latest`
|
|
391
|
+
|
|
392
|
+
### **Phase 2: Publish Maven**
|
|
393
|
+
|
|
394
|
+
**Thứ tự:** Chạy SAU phase 1, TRƯỚC phase 3
|
|
395
|
+
|
|
396
|
+
**Hành động:**
|
|
397
|
+
- Publish Kotlin Multiplatform artifacts
|
|
398
|
+
- Lên GitLab Packages Repository
|
|
399
|
+
- Dành cho `compose` module
|
|
400
|
+
|
|
401
|
+
### **Phase 3: Publish NPM**
|
|
402
|
+
|
|
403
|
+
**Thứ tự:** Chạy SAU phase 2 (Maven)
|
|
404
|
+
|
|
405
|
+
**Publish 2 versions theo thứ tự:**
|
|
406
|
+
|
|
407
|
+
1. **Debug version** (với compose) - FIRST
|
|
408
|
+
- Version: `X.Y.Z-debug`
|
|
409
|
+
- Bao gồm thư mục `compose/`
|
|
410
|
+
- Tag: `alpha` / `beta` / `latest`
|
|
411
|
+
|
|
412
|
+
2. **Normal version** (không compose) - SECOND
|
|
413
|
+
- Version: `X.Y.Z`
|
|
414
|
+
- Không bao gồm `compose/`
|
|
415
|
+
- Tag: `alpha` / `beta` / `latest`
|
|
416
|
+
|
|
417
|
+
---
|
|
418
|
+
|
|
419
|
+
## 🎯 Workflow Khuyến Nghị
|
|
420
|
+
|
|
421
|
+
### Development Flow
|
|
422
|
+
|
|
423
|
+
```
|
|
424
|
+
┌──────────────────────────────────────────────────┐
|
|
425
|
+
│ 1. Develop Feature │
|
|
426
|
+
│ - Code changes │
|
|
427
|
+
│ - Update version in package.json (beta only) │
|
|
428
|
+
└─────────────────┬────────────────────────────────┘
|
|
429
|
+
↓
|
|
430
|
+
┌──────────────────────────────────────────────────┐
|
|
431
|
+
│ 2. Beta Testing │
|
|
432
|
+
│ Local: sh publish.sh beta │
|
|
433
|
+
│ CI: git commit -m "feat: xxx [ci build]" │
|
|
434
|
+
│ Tag: alpha (specific) or beta (normal) │
|
|
435
|
+
└─────────────────┬────────────────────────────────┘
|
|
436
|
+
↓
|
|
437
|
+
┌──────────────────────────────────────────────────┐
|
|
438
|
+
│ 3. Team Testing │
|
|
439
|
+
│ npm install @momo-kits/native-kits@beta │
|
|
440
|
+
│ npm install @momo-kits/native-kits@alpha │
|
|
441
|
+
└─────────────────┬────────────────────────────────┘
|
|
442
|
+
│
|
|
443
|
+
┌──────┴──────┐
|
|
444
|
+
│ Approved? │
|
|
445
|
+
└──────┬───────┘
|
|
446
|
+
│ Yes
|
|
447
|
+
↓
|
|
448
|
+
┌──────────────────────────────────────────────────┐
|
|
449
|
+
│ 4. Release Production │
|
|
450
|
+
│ Local: sh publish.sh release │
|
|
451
|
+
│ CI: merge to main │
|
|
452
|
+
│ Reads from npm@latest, auto-increment │
|
|
453
|
+
└─────────────────┬────────────────────────────────┘
|
|
454
|
+
↓
|
|
455
|
+
┌──────────────────────────────────────────────────┐
|
|
456
|
+
│ 5. Production │
|
|
457
|
+
│ npm install @momo-kits/native-kits@latest │
|
|
458
|
+
└──────────────────────────────────────────────────┘
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
---
|
|
462
|
+
|
|
463
|
+
## ⚠️ Lưu Ý Quan Trọng
|
|
464
|
+
|
|
465
|
+
### 1. Version Management
|
|
466
|
+
|
|
467
|
+
**Beta Mode:**
|
|
468
|
+
- Specific version: Phải unique, fail nếu tồn tại
|
|
469
|
+
- Normal version: Auto-increment, không cần lo
|
|
470
|
+
- Version trong `package.json` được sử dụng
|
|
471
|
+
|
|
472
|
+
**Release Mode:**
|
|
473
|
+
- ⚠️ **KHÔNG đọc từ `package.json`**
|
|
474
|
+
- ✅ **Đọc từ `npm@latest`**
|
|
475
|
+
- Auto-increment patch version
|
|
476
|
+
- `package.json` được UPDATE với version mới
|
|
477
|
+
|
|
478
|
+
### 2. NPM Tags
|
|
479
|
+
|
|
480
|
+
**Cài đặt theo tag:**
|
|
481
|
+
```bash
|
|
482
|
+
npm install @momo-kits/native-kits@alpha # Specific versions
|
|
483
|
+
npm install @momo-kits/native-kits@beta # Normal beta versions
|
|
484
|
+
npm install @momo-kits/native-kits@latest # Release versions
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
### 3. Phase Execution Order
|
|
488
|
+
|
|
489
|
+
**Cả Beta và Release:**
|
|
490
|
+
1. Check Version
|
|
491
|
+
2. ✅ **Publish Maven** (FIRST)
|
|
492
|
+
3. ✅ **Publish NPM** (SECOND)
|
|
493
|
+
|
|
494
|
+
**Lý do:** Maven artifacts cần được publish trước để NPM debug version có thể reference
|
|
495
|
+
|
|
496
|
+
### 4. File Modifications
|
|
497
|
+
|
|
498
|
+
Script tạm thời modify các file (restore sau publish):
|
|
499
|
+
- `package.json` (version)
|
|
500
|
+
- `gradle.properties` (version)
|
|
501
|
+
- `.npmignore` (cho debug version)
|
|
502
|
+
- `compose/build.gradle.kts` (cho debug version)
|
|
503
|
+
|
|
504
|
+
---
|
|
505
|
+
|
|
506
|
+
## 🐛 Troubleshooting
|
|
507
|
+
|
|
508
|
+
### Lỗi: "Specific version already exists on npm"
|
|
509
|
+
|
|
510
|
+
**Nguyên nhân:** Specific version đã được publish
|
|
511
|
+
|
|
512
|
+
**Giải pháp:**
|
|
513
|
+
```bash
|
|
514
|
+
# Option 1: Tăng version thủ công
|
|
515
|
+
vim package.json
|
|
516
|
+
# "version": "0.156.2-test.1" → "0.156.2-test.2"
|
|
517
|
+
|
|
518
|
+
# Option 2: Chuyển sang normal version
|
|
519
|
+
vim package.json
|
|
520
|
+
# "version": "0.156.2-test.1" → "0.156.2"
|
|
521
|
+
# Script sẽ auto-format thành 0.156.2-beta.1
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
### Lỗi: "Could not read version from npm@latest"
|
|
525
|
+
|
|
526
|
+
**Nguyên nhân:** Package chưa tồn tại trên npm hoặc chưa có version @latest
|
|
527
|
+
|
|
528
|
+
**Giải pháp:**
|
|
529
|
+
```bash
|
|
530
|
+
# Kiểm tra package trên npm
|
|
531
|
+
npm view @momo-kits/native-kits
|
|
532
|
+
|
|
533
|
+
# Nếu chưa có, publish beta trước
|
|
534
|
+
sh publish.sh beta
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
### Beta không trigger trên GitLab CI
|
|
538
|
+
|
|
539
|
+
**Kiểm tra:**
|
|
540
|
+
- ✅ Commit message có `[ci build]`
|
|
541
|
+
- ✅ Branch KHÔNG phải `main`
|
|
542
|
+
- ✅ Branch KHÔNG match `engine/w*`
|
|
543
|
+
|
|
544
|
+
### Release không trigger trên GitLab CI
|
|
545
|
+
|
|
546
|
+
**Kiểm tra:**
|
|
547
|
+
- ✅ Đang push vào `main` branch
|
|
548
|
+
- ✅ GitLab CI settings enabled
|
|
549
|
+
|
|
550
|
+
---
|
|
551
|
+
|
|
552
|
+
## 📦 Sử Dụng Packages
|
|
553
|
+
|
|
554
|
+
### Cài Đặt Beta/Alpha Versions
|
|
555
|
+
|
|
556
|
+
```bash
|
|
557
|
+
# Latest alpha (specific versions)
|
|
558
|
+
npm install @momo-kits/native-kits@alpha
|
|
559
|
+
|
|
560
|
+
# Latest beta (normal versions)
|
|
561
|
+
npm install @momo-kits/native-kits@beta
|
|
562
|
+
|
|
563
|
+
# Specific version
|
|
564
|
+
npm install @momo-kits/native-kits@0.156.2-beta.1
|
|
565
|
+
npm install @momo-kits/native-kits@0.156.2-test.1
|
|
566
|
+
|
|
567
|
+
# Debug version (with compose)
|
|
568
|
+
npm install @momo-kits/native-kits@0.156.2-beta.1-debug
|
|
569
|
+
```
|
|
570
|
+
|
|
571
|
+
### Cài Đặt Release Versions
|
|
572
|
+
|
|
573
|
+
```bash
|
|
574
|
+
# Latest release
|
|
575
|
+
npm install @momo-kits/native-kits@latest
|
|
576
|
+
# hoặc
|
|
577
|
+
npm install @momo-kits/native-kits
|
|
578
|
+
|
|
579
|
+
# Specific release version
|
|
580
|
+
npm install @momo-kits/native-kits@0.156.3
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
---
|
|
584
|
+
|
|
585
|
+
## 🎓 Best Practices
|
|
586
|
+
|
|
587
|
+
### 1. Beta Testing
|
|
588
|
+
|
|
589
|
+
**Specific versions (alpha tag):**
|
|
590
|
+
- Dùng cho testing features cụ thể
|
|
591
|
+
- Phải unique, không duplicate
|
|
592
|
+
- Ví dụ: `0.156.2-hotfix.1`, `0.156.2-experiment.1`
|
|
593
|
+
|
|
594
|
+
**Normal versions (beta tag):**
|
|
595
|
+
- Dùng cho continuous development
|
|
596
|
+
- Auto-increment, dễ quản lý
|
|
597
|
+
- Ví dụ: `0.156.2`, `0.156.2-beta.1`
|
|
598
|
+
|
|
599
|
+
### 2. Release
|
|
600
|
+
|
|
601
|
+
- Luôn merge vào `main` để trigger release
|
|
602
|
+
- Không cần lo version trong `package.json`
|
|
603
|
+
- Script tự động đọc từ npm@latest và increment
|
|
604
|
+
|
|
605
|
+
### 3. Version Naming
|
|
606
|
+
|
|
607
|
+
**Good:**
|
|
608
|
+
- `0.156.2-test.1` (specific, clear purpose)
|
|
609
|
+
- `0.156.2-beta.1` (normal, standard format)
|
|
610
|
+
- `0.156.2` (normal, will auto-format)
|
|
611
|
+
|
|
612
|
+
**Avoid:**
|
|
613
|
+
- `0.156.2-beta-test.1` (confusing)
|
|
614
|
+
- `0.156.2-v1` (unclear)
|
|
615
|
+
|
|
616
|
+
---
|
|
617
|
+
|
|
618
|
+
## 📞 Support
|
|
619
|
+
|
|
620
|
+
Nếu có vấn đề, liên hệ team hoặc tạo issue trên GitLab.
|
|
621
|
+
|
|
622
|
+
---
|
|
623
|
+
|
|
624
|
+
## 🔗 Quick Reference
|
|
625
|
+
|
|
626
|
+
```bash
|
|
627
|
+
# Beta - Local (Specific version → alpha tag)
|
|
628
|
+
# package.json: "version": "0.156.2-test.1"
|
|
629
|
+
sh publish.sh beta
|
|
630
|
+
|
|
631
|
+
# Beta - Local (Normal version → beta tag)
|
|
632
|
+
# package.json: "version": "0.156.2"
|
|
633
|
+
sh publish.sh beta
|
|
634
|
+
|
|
635
|
+
# Release - Local (reads from npm@latest)
|
|
636
|
+
sh publish.sh release
|
|
637
|
+
|
|
638
|
+
# Individual phases
|
|
639
|
+
sh publish.sh beta check # Phase 1
|
|
640
|
+
sh publish.sh beta maven # Phase 2
|
|
641
|
+
sh publish.sh beta npm # Phase 3
|
|
642
|
+
|
|
643
|
+
# Beta - CI
|
|
644
|
+
git commit -m "feat: xxx [ci build]" # Trigger beta (not on main)
|
|
645
|
+
|
|
646
|
+
# Release - CI
|
|
647
|
+
git push origin main # Trigger release
|
|
648
|
+
```
|
|
649
|
+
|
|
650
|
+
---
|
|
651
|
+
|
|
652
|
+
## 📋 Version Type Decision Tree
|
|
653
|
+
|
|
654
|
+
```
|
|
655
|
+
Start: Publish Beta
|
|
656
|
+
↓
|
|
657
|
+
Check version in package.json
|
|
658
|
+
↓
|
|
659
|
+
Has suffix? (contains "-")
|
|
660
|
+
├─ No → Normal Version
|
|
661
|
+
│ ├─ Auto-add: 0.156.2 → 0.156.2-beta.1
|
|
662
|
+
│ ├─ Tag: beta
|
|
663
|
+
│ └─ Auto-increment if exists
|
|
664
|
+
│
|
|
665
|
+
└─ Yes → Check suffix type
|
|
666
|
+
├─ Contains "beta" → Normal Version
|
|
667
|
+
│ ├─ Keep format: 0.156.2-beta.1
|
|
668
|
+
│ ├─ Tag: beta
|
|
669
|
+
│ └─ Auto-increment if exists
|
|
670
|
+
│
|
|
671
|
+
└─ Other suffix → Specific Version
|
|
672
|
+
├─ Keep format: 0.156.2-test.1
|
|
673
|
+
├─ Tag: alpha
|
|
674
|
+
└─ FAIL if exists
|
|
675
|
+
```
|
package/build.gradle.kts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
plugins {
|
|
2
|
+
// this is necessary to avoid the plugins to be loaded multiple times
|
|
3
|
+
// in each subproject's classloader
|
|
4
|
+
alias(libs.plugins.android.application) apply false
|
|
5
|
+
alias(libs.plugins.android.library) apply false
|
|
6
|
+
alias(libs.plugins.compose) apply false
|
|
7
|
+
alias(libs.plugins.kotlin.compose.compiler) apply false
|
|
8
|
+
alias(libs.plugins.jetbrains.kotlin.multiplatform) apply false
|
|
9
|
+
alias(libs.plugins.jetbrains.kotlin.serialization) apply false
|
|
10
|
+
alias(libs.plugins.vanniktech.mavenPublish) apply false
|
|
11
|
+
}
|