@wpmoo/odoo 0.8.54 → 0.8.55
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/README.md +41 -92
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,41 +4,33 @@
|
|
|
4
4
|
|
|
5
5
|
# WPMoo Odoo
|
|
6
6
|
|
|
7
|
-
WPMoo Odoo is a development-first CLI for creating and operating Docker Compose
|
|
8
|
-
based Odoo environments with source repositories managed as Git submodules.
|
|
7
|
+
WPMoo Odoo is a development-first CLI for creating and operating Docker Compose based Odoo environments with source repositories managed as Git submodules.
|
|
9
8
|
|
|
10
|
-
It gives Odoo teams a repeatable environment layout, a guided cockpit for daily
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
It gives Odoo teams a repeatable environment layout, a guided cockpit for daily work, direct commands for automation, and recovery tools that refresh generated files without touching product source code.
|
|
10
|
+
|
|
11
|
+
## Development Status
|
|
12
|
+
|
|
13
|
+
> [!IMPORTANT]
|
|
14
|
+
> **Pre-1.0 active development:** WPMoo Odoo has not reached `1.0.0` yet. Until the `1.0.0` release, use it as a preview tool for evaluation, local trials, and feedback rather than a dependency for critical production workflows. Setup conventions and command behavior may still change between pre-1.0 releases.
|
|
13
15
|
|
|
14
16
|
## Why WPMoo Odoo
|
|
15
17
|
|
|
16
|
-
- Create a local Odoo development environment from a dev repository and one or
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
|
|
20
|
-
-
|
|
21
|
-
`wpmoo-org/odoo-docker-compose` resource instead of embedding large runtime
|
|
22
|
-
assets in the TypeScript package.
|
|
23
|
-
- Optionally copy project-local Agent Skills from `wpmoo-org/odoo-skills` into
|
|
24
|
-
generated environments.
|
|
25
|
-
- Use either a guided terminal cockpit or direct CLI commands for the same
|
|
26
|
-
lifecycle tasks.
|
|
18
|
+
- Create a local Odoo development environment from a dev repository and one or more source repositories.
|
|
19
|
+
- Keep product source repositories under `odoo/custom/src/private` as Git submodules pinned to the selected Odoo branch.
|
|
20
|
+
- Copy Docker Compose resources from the standalone `wpmoo-org/odoo-docker-compose` resource instead of embedding large runtime assets in the TypeScript package.
|
|
21
|
+
- Optionally copy project-local Agent Skills from `wpmoo-org/odoo-skills` into generated environments.
|
|
22
|
+
- Use either a guided terminal cockpit or direct CLI commands for the same lifecycle tasks.
|
|
27
23
|
|
|
28
24
|
## Requirements
|
|
29
25
|
|
|
30
26
|
- Node.js `>=20.17`
|
|
31
27
|
- Git
|
|
32
28
|
- Docker and Docker Compose for generated environment runtime commands
|
|
33
|
-
- GitHub CLI (`gh`) is optional. Use it for repository discovery, repository
|
|
34
|
-
creation, and deeper diagnostics.
|
|
29
|
+
- GitHub CLI (`gh`) is optional. Use it for repository discovery, repository creation, and deeper diagnostics.
|
|
35
30
|
|
|
36
|
-
The wizard currently offers Odoo `19.0`, `18.0`, `17.0`, and `16.0`. The copied
|
|
37
|
-
Compose resource must include the matching `docker-compose_<version>.yml` file
|
|
38
|
-
for the selected branch.
|
|
31
|
+
The wizard currently offers Odoo `19.0`, `18.0`, `17.0`, and `16.0`. The copied Compose resource must include the matching `docker-compose_<version>.yml` file for the selected branch.
|
|
39
32
|
|
|
40
|
-
Set up GitHub CLI only when you want WPMoo to discover your personal account and
|
|
41
|
-
organizations or create missing repositories from the interactive wizard:
|
|
33
|
+
Set up GitHub CLI only when you want WPMoo to discover your personal account and organizations or create missing repositories from the interactive wizard:
|
|
42
34
|
|
|
43
35
|
```bash
|
|
44
36
|
brew install gh
|
|
@@ -53,19 +45,13 @@ Run the guided wizard from a workspace directory:
|
|
|
53
45
|
npx @wpmoo/odoo
|
|
54
46
|
```
|
|
55
47
|
|
|
56
|
-
If the current directory is not already a WPMoo environment, the CLI opens the
|
|
57
|
-
create flow. It asks for the product slug, Odoo version, and environment folder.
|
|
58
|
-
Choose any environment folder; the default is `./<product>_dev`.
|
|
48
|
+
If the current directory is not already a WPMoo environment, the CLI opens the create flow. It asks for the product slug, Odoo version, and environment folder. Choose any environment folder; the default is `./<product>_dev`.
|
|
59
49
|
|
|
60
|
-
After folder selection, connect Git/GitHub to use repository URLs. Choose
|
|
61
|
-
local-only setup to skip Git/GitHub connection and source repo prompts. Add
|
|
62
|
-
source repositories later from the cockpit (`Repositories` -> `add-repo`) or
|
|
63
|
-
`npx @wpmoo/odoo add-repo`.
|
|
50
|
+
After folder selection, connect Git/GitHub to use repository URLs. Choose local-only setup to skip Git/GitHub connection and source repo prompts. Add source repositories later from the cockpit (`Repositories` -> `add-repo`) or `npx @wpmoo/odoo add-repo`.
|
|
64
51
|
|
|
65
52
|
For non-interactive usage with repository URLs:
|
|
66
53
|
|
|
67
|
-
Direct `create` commands keep the existing repo URL options; use
|
|
68
|
-
`--target <path>` to choose a custom folder.
|
|
54
|
+
Direct `create` commands keep the existing repo URL options; use `--target <path>` to choose a custom folder.
|
|
69
55
|
|
|
70
56
|
```bash
|
|
71
57
|
npx @wpmoo/odoo create \
|
|
@@ -107,8 +93,7 @@ Run the package with no command inside a generated environment:
|
|
|
107
93
|
npx @wpmoo/odoo
|
|
108
94
|
```
|
|
109
95
|
|
|
110
|
-
The cockpit starts with a fast environment status summary, then opens a compact
|
|
111
|
-
menu designed for repeated local work:
|
|
96
|
+
The cockpit starts with a fast environment status summary, then opens a compact menu designed for repeated local work:
|
|
112
97
|
|
|
113
98
|
```text
|
|
114
99
|
Command palette /
|
|
@@ -123,18 +108,12 @@ Exit
|
|
|
123
108
|
|
|
124
109
|
The UI is intentionally practical rather than decorative:
|
|
125
110
|
|
|
126
|
-
- `Command palette /` searches slash commands such as `/test`, `/logs`,
|
|
127
|
-
|
|
128
|
-
- Category menus group related tasks for scanability: services, modules,
|
|
129
|
-
database, diagnostics, repositories, and maintenance.
|
|
111
|
+
- `Command palette /` searches slash commands such as `/test`, `/logs`, `/doctor`, and `/safe-reset`.
|
|
112
|
+
- Category menus group related tasks for scanability: services, modules, database, diagnostics, repositories, and maintenance.
|
|
130
113
|
- `Esc` returns from category menus to the top-level cockpit.
|
|
131
|
-
- Empty states explain the next action, such as adding a source repo before
|
|
132
|
-
|
|
133
|
-
-
|
|
134
|
-
snapshots, removing repos, removing modules, and safe reset ask for explicit
|
|
135
|
-
confirmation.
|
|
136
|
-
- Guided prompts collect common arguments for daily actions, including module
|
|
137
|
-
names, database names, test modes, tags, snapshot names, and POT output paths.
|
|
114
|
+
- Empty states explain the next action, such as adding a source repo before selecting a module.
|
|
115
|
+
- Risky commands such as stopping services, resetting databases, restoring snapshots, removing repos, removing modules, and safe reset ask for explicit confirmation.
|
|
116
|
+
- Guided prompts collect common arguments for daily actions, including module names, database names, test modes, tags, snapshot names, and POT output paths.
|
|
138
117
|
|
|
139
118
|
## Cockpit Command Map
|
|
140
119
|
|
|
@@ -147,9 +126,7 @@ The UI is intentionally practical rather than decorative:
|
|
|
147
126
|
| Repositories | `add-repo`, `remove-repo` |
|
|
148
127
|
| Maintenance | `safe-reset` |
|
|
149
128
|
|
|
150
|
-
Every cockpit action maps to a direct command, or to an equivalent management
|
|
151
|
-
command such as `/safe-reset` mapping to `reset`, for scripting and repeatable
|
|
152
|
-
terminal workflows.
|
|
129
|
+
Every cockpit action maps to a direct command, or to an equivalent management command such as `/safe-reset` mapping to `reset`, for scripting and repeatable terminal workflows.
|
|
153
130
|
|
|
154
131
|
## Direct Commands
|
|
155
132
|
|
|
@@ -183,15 +160,11 @@ npx @wpmoo/odoo snapshot devel before-update
|
|
|
183
160
|
npx @wpmoo/odoo restore-snapshot before-update devel
|
|
184
161
|
```
|
|
185
162
|
|
|
186
|
-
Daily action commands must be run from a generated environment root containing
|
|
187
|
-
`.wpmoo/odoo.json`. They delegate to fixed scripts under `./scripts`; they do
|
|
188
|
-
not search parent directories or run arbitrary script names.
|
|
163
|
+
Daily action commands must be run from a generated environment root containing `.wpmoo/odoo.json`. They delegate to fixed scripts under `./scripts`; they do not search parent directories or run arbitrary script names.
|
|
189
164
|
|
|
190
165
|
## Generated Environment Layout
|
|
191
166
|
|
|
192
|
-
A generated environment is a separate Git repository, usually named
|
|
193
|
-
`<product>_dev`, but the wizard and `--target` can use any folder. Product
|
|
194
|
-
source code stays in child source repositories.
|
|
167
|
+
A generated environment is a separate Git repository, usually named `<product>_dev`, but the wizard and `--target` can use any folder. Product source code stays in child source repositories.
|
|
195
168
|
|
|
196
169
|
```text
|
|
197
170
|
odoo_sample_module_dev/
|
|
@@ -214,15 +187,11 @@ odoo_sample_module_dev/
|
|
|
214
187
|
`-- scripts/
|
|
215
188
|
```
|
|
216
189
|
|
|
217
|
-
The metadata file `.wpmoo/odoo.json` records the product slug, selected Odoo
|
|
218
|
-
version, dev repo URL, source repos, engine, external resource refs, ports, and
|
|
219
|
-
template configuration. Status, doctor, daily actions, and safe reset use that
|
|
220
|
-
metadata instead of guessing from the filesystem.
|
|
190
|
+
The metadata file `.wpmoo/odoo.json` records the product slug, selected Odoo version, dev repo URL, source repos, engine, external resource refs, ports, and template configuration. Status, doctor, daily actions, and safe reset use that metadata instead of guessing from the filesystem.
|
|
221
191
|
|
|
222
192
|
## Daily `./moo` Commands
|
|
223
193
|
|
|
224
|
-
Generated environments include a local `./moo` dispatcher. It is the shortest
|
|
225
|
-
path for everyday Compose and Odoo work:
|
|
194
|
+
Generated environments include a local `./moo` dispatcher. It is the shortest path for everyday Compose and Odoo work:
|
|
226
195
|
|
|
227
196
|
```bash
|
|
228
197
|
cp .env.example .env
|
|
@@ -245,15 +214,11 @@ cp .env.example .env
|
|
|
245
214
|
./moo resetdb devel sale
|
|
246
215
|
```
|
|
247
216
|
|
|
248
|
-
Use `npx @wpmoo/odoo ...` for package/operator commands such as `create`,
|
|
249
|
-
`add-repo`, `remove-repo`, `add-module`, `remove-module`, `status`, `doctor`,
|
|
250
|
-
and `reset`. Use `./moo ...` inside a generated environment for local daily
|
|
251
|
-
Compose commands.
|
|
217
|
+
Use `npx @wpmoo/odoo ...` for package/operator commands such as `create`, `add-repo`, `remove-repo`, `add-module`, `remove-module`, `status`, `doctor`, and `reset`. Use `./moo ...` inside a generated environment for local daily Compose commands.
|
|
252
218
|
|
|
253
219
|
## Repository and Module Management
|
|
254
220
|
|
|
255
|
-
Add a source repository after local-only setup from the cockpit or direct
|
|
256
|
-
command:
|
|
221
|
+
Add a source repository after local-only setup from the cockpit or direct command:
|
|
257
222
|
|
|
258
223
|
```bash
|
|
259
224
|
npx @wpmoo/odoo add-repo \
|
|
@@ -261,8 +226,7 @@ npx @wpmoo/odoo add-repo \
|
|
|
261
226
|
--init-empty-repos
|
|
262
227
|
```
|
|
263
228
|
|
|
264
|
-
GitHub CLI is optional for repository setup. When it is available and
|
|
265
|
-
authenticated, the interactive flow can:
|
|
229
|
+
GitHub CLI is optional for repository setup. When it is available and authenticated, the interactive flow can:
|
|
266
230
|
|
|
267
231
|
- detect the owner or organization from the current environment;
|
|
268
232
|
- suggest repository URLs;
|
|
@@ -301,8 +265,7 @@ Remove a source repository submodule:
|
|
|
301
265
|
npx @wpmoo/odoo remove-repo --repo odoo_sample_module_reports
|
|
302
266
|
```
|
|
303
267
|
|
|
304
|
-
WPMoo refuses to remove a source repo submodule when that submodule has
|
|
305
|
-
uncommitted changes.
|
|
268
|
+
WPMoo refuses to remove a source repo submodule when that submodule has uncommitted changes.
|
|
306
269
|
|
|
307
270
|
## Status, Doctor, and Recovery
|
|
308
271
|
|
|
@@ -312,9 +275,7 @@ uncommitted changes.
|
|
|
312
275
|
npx @wpmoo/odoo status
|
|
313
276
|
```
|
|
314
277
|
|
|
315
|
-
It reports whether the environment is detected, which Odoo version is selected,
|
|
316
|
-
how many source repos are configured, how many module candidates are present,
|
|
317
|
-
which core files are missing, and the recommended next action.
|
|
278
|
+
It reports whether the environment is detected, which Odoo version is selected, how many source repos are configured, how many module candidates are present, which core files are missing, and the recommended next action.
|
|
318
279
|
|
|
319
280
|
`doctor` performs deeper checks:
|
|
320
281
|
|
|
@@ -322,22 +283,15 @@ which core files are missing, and the recommended next action.
|
|
|
322
283
|
npx @wpmoo/odoo doctor
|
|
323
284
|
```
|
|
324
285
|
|
|
325
|
-
It validates metadata, engine support, selected compose files, daily scripts,
|
|
326
|
-
source repo paths, `.env` ports, Docker CLI access, Docker Compose access, Git
|
|
327
|
-
submodule state, and GitHub CLI authentication when available.
|
|
286
|
+
It validates metadata, engine support, selected compose files, daily scripts, source repo paths, `.env` ports, Docker CLI access, Docker Compose access, Git submodule state, and GitHub CLI authentication when available.
|
|
328
287
|
|
|
329
|
-
Safe reset refreshes generated environment files without deleting product source
|
|
330
|
-
code:
|
|
288
|
+
Safe reset refreshes generated environment files without deleting product source code:
|
|
331
289
|
|
|
332
290
|
```bash
|
|
333
291
|
npx @wpmoo/odoo reset
|
|
334
292
|
```
|
|
335
293
|
|
|
336
|
-
Safe reset updates generated files such as `.wpmoo/odoo.json`, `moo`,
|
|
337
|
-
`.gitignore`, `.env.example`, generated docs, compose assets, and optional
|
|
338
|
-
Agent Skills. It does not touch source repo folders under
|
|
339
|
-
`odoo/custom/src/private`, module source code, Git history, remotes, or
|
|
340
|
-
branches.
|
|
294
|
+
Safe reset updates generated files such as `.wpmoo/odoo.json`, `moo`, `.gitignore`, `.env.example`, generated docs, compose assets, and optional Agent Skills. It does not touch source repo folders under `odoo/custom/src/private`, module source code, Git history, remotes, or branches.
|
|
341
295
|
|
|
342
296
|
Recommended recovery pattern:
|
|
343
297
|
|
|
@@ -350,8 +304,7 @@ npx @wpmoo/odoo doctor
|
|
|
350
304
|
|
|
351
305
|
## External Resources
|
|
352
306
|
|
|
353
|
-
WPMoo Odoo keeps the package small by copying external resources into generated
|
|
354
|
-
environments:
|
|
307
|
+
WPMoo Odoo keeps the package small by copying external resources into generated environments:
|
|
355
308
|
|
|
356
309
|
```text
|
|
357
310
|
gh:wpmoo-org/odoo-docker-compose
|
|
@@ -406,13 +359,11 @@ npm run test:coverage
|
|
|
406
359
|
npm run build
|
|
407
360
|
```
|
|
408
361
|
|
|
409
|
-
Generated environment behavior is covered by the operator-facing matrix in
|
|
410
|
-
[Generated Environment Verification](docs/generated-environment-verification.md).
|
|
362
|
+
Generated environment behavior is covered by the operator-facing matrix in [Generated Environment Verification](docs/generated-environment-verification.md).
|
|
411
363
|
|
|
412
364
|
## Release
|
|
413
365
|
|
|
414
|
-
The normal release path uses the repository helper and GitHub Actions trusted
|
|
415
|
-
publishing:
|
|
366
|
+
The normal release path uses the repository helper and GitHub Actions trusted publishing:
|
|
416
367
|
|
|
417
368
|
```bash
|
|
418
369
|
npm run release:check
|
|
@@ -424,9 +375,7 @@ git tag -a "v$VERSION" -m "Release v$VERSION"
|
|
|
424
375
|
git push origin "v$VERSION"
|
|
425
376
|
```
|
|
426
377
|
|
|
427
|
-
If `npm run release:check` bumps `package.json` and `package-lock.json`, commit
|
|
428
|
-
and push that version bump first, then rerun the release check before tagging.
|
|
429
|
-
Publishing is handled by the `Publish` workflow after the tag is pushed.
|
|
378
|
+
If `npm run release:check` bumps `package.json` and `package-lock.json`, commit and push that version bump first, then rerun the release check before tagging. Publishing is handled by the `Publish` workflow after the tag is pushed.
|
|
430
379
|
|
|
431
380
|
## Sponsoring
|
|
432
381
|
|