**Motivations:** - Single config file per project (projects/<id>/conf.json) - Project must not depend on ia_dev; only ia_dev solicits the project **Root causes:** - N/A (evolution) **Correctifs:** - N/A **Evolutions:** - lib/project_config.sh: resolve PROJECT_SLUG from IA_PROJECT, .ia_project, ai_project_id; PROJECT_CONFIG_PATH = projects/<id>/conf.json - projects/lecoffreio.json moved to projects/lecoffreio/conf.json; projects/ia_dev/conf.json added - deploy: branch-align, bump-version, change-to-all-branches, pousse, deploy-by-script-to use PROJECT_ROOT/IA_DEV_ROOT and project_config.sh; SCRIPT_REAL for symlink-safe paths - deploy/_lib: shared colors, env-map, ssh, git-flow - gitea-issues: mail list/mark-read/get-thread/send-reply, thread log, agent-loop, wiki scripts; lib.sh loads project config - README: principle no dependency from host project; invoke ./ia_dev/deploy/bump-version.sh etc. from repo root **Pages affectées:** - README.md, projects/README.md, lib/, deploy/, gitea-issues/, projects/lecoffreio/, projects/ia_dev/
42 lines
2.0 KiB
Markdown
42 lines
2.0 KiB
Markdown
# Project-specific configuration
|
|
|
|
This repo (`ia_dev`) is intended to be used as a **git submodule** inside each project. Project-specific parameters are stored in `projects/<id>/conf.json` (e.g. `projects/lecoffreio/conf.json`). The `<id>` is the project identifier and the name of the directory under `projects/`.
|
|
|
|
## Current project selection
|
|
|
|
Scripts resolve the project **id** (used as the directory name in `projects/`) in this order:
|
|
|
|
1. **`IA_PROJECT`** (environment variable)
|
|
2. **`.ia_project`** file at the repository root (one line: the project id, e.g. `lecoffreio`)
|
|
3. **`ai_project_id`** file at the repository root (one line: the project id). When `ia_dev` is a submodule, this file lives at the host repo root (parent of `ia_dev`).
|
|
|
|
When running from a repo that has `ia_dev` as a submodule, the root is the parent repo; the script resolves `ia_dev` either as `./ia_dev` or `./deploy` (symlink to `ia_dev/deploy`).
|
|
|
|
## Schema
|
|
|
|
One JSON file per project: `projects/<id>/conf.json` (e.g. `projects/lecoffreio/conf.json`). The `<id>` is the directory name; the config file is always named `conf.json`.
|
|
|
|
| Field | Required | Description |
|
|
|-------|----------|-------------|
|
|
| `name` | yes | Human-readable project name |
|
|
| `project_path` | no | Relative path to project from ia_dev (e.g. `../lecoffre_ng_test`); used when running from ia_dev standalone |
|
|
| `build_dirs` | no | List of directories (relative to repo root) where `npm run build` is run before push. If missing or empty, build check is skipped |
|
|
| `version` | no | Version/bump configuration |
|
|
| `version.package_json_paths` | no | List of paths (relative to repo root) to `package.json` files to update on bump |
|
|
| `version.splash_app_name` | no | App name used in splash message template |
|
|
| `mail` | no | Mail/imap bridge config |
|
|
| `git` | no | Git hosting: `wiki_url`, `ticketing_url`, `token_file` (path relative to repo root for token file) |
|
|
|
|
## Example (minimal)
|
|
|
|
```json
|
|
{
|
|
"name": "My App",
|
|
"build_dirs": ["backend", "frontend"]
|
|
}
|
|
```
|
|
|
|
## Example (full)
|
|
|
|
See `projects/lecoffreio/conf.json`.
|