ia_dev/projects/README.md
Nicolas Cantu 907807f4d6 Generic project config, deploy scripts, gitea-issues, no reverse dependency
**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/
2026-03-12 22:35:15 +01:00

2.0 KiB

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)

{
  "name": "My App",
  "build_dirs": ["backend", "frontend"]
}

Example (full)

See projects/lecoffreio/conf.json.