- Default PULL_SYNC_LOG to logs/git-pull-projects.log; add logs/README and gitignore - Add services/ia_dev integration README and .env.example - Replace docs/ia_dev-submodule.md with ia_dev-module.md; update ecosystem and README links - Point ia_dev submodule to commit with smart_ide_logs.sh
36 lines
3.0 KiB
Markdown
36 lines
3.0 KiB
Markdown
# Configurations projet (`projects/<id>/`)
|
||
|
||
Ce répertoire, à la **racine du monorepo `smart_ide`**, ne contient que les **fichiers de configuration** attendus par **`ia_dev`** (`conf.json` par identifiant de projet). Ce n’est **pas** le répertoire des **clones Git** des applications.
|
||
|
||
## Clones applicatifs (docv, stacks métier, etc.)
|
||
|
||
Les dépôts sources des produits (ex. backend **docv** sous un chemin du type `…/enso/docv`, autres apps) doivent vivre **ailleurs**, selon la convention du poste — typiquement un répertoire **frère** du monorepo, par ex. **`../projects/<nom>/`** (relatif à la racine `smart_ide`), **distinct** de `./projects/` ici.
|
||
|
||
- **`./projects/`** (ce dossier) → uniquement `conf.json` (+ métadonnées légères) pour que `ia_dev` résolve `projects/<id>/conf.json` via le lien symbolique décrit dans [docs/ia_dev-module.md](../docs/ia_dev-module.md).
|
||
- **`../projects/`** (ou autre racine configurée) → arborescences Git complètes, builds, etc. ; `project_path` dans chaque `conf.json` pointe vers ces chemins **absolus**.
|
||
|
||
## `smart_ide`
|
||
|
||
- Fichier : [`smart_ide/conf.json`](./smart_ide/conf.json)
|
||
- Après clone ou réorganisation des dossiers, exécuter si besoin [`scripts/ensure-ia-dev-smart-ide-project-link.sh`](../scripts/ensure-ia-dev-smart-ide-project-link.sh) pour recréer le lien `ia_dev/projects/smart_ide` → `../../projects/smart_ide`.
|
||
|
||
## `enso`
|
||
|
||
- Fichier : [`enso/conf.json`](./enso/conf.json) — monorepo **enso** (`project_path` typique `/home/ncantu/code/enso`), déploiement `deploy/scripts_v2`, forge **4nk/enso** (wiki / issues), mails ticketing `AI.ENSO.*@4nkweb.com`.
|
||
- Cron fragment : [`cron/fragments/enso.cron`](../cron/fragments/enso.cron).
|
||
- Pour que **`ia_dev`** résolve `projects/enso/conf.json`, créer sous `ia_dev/projects/` un lien symbolique `enso` → `../../projects/enso` (même principe que `smart_ide`).
|
||
|
||
## Synchronisation Git planifiée (`cron/`)
|
||
|
||
Pour **chaque** `projects/<id>/conf.json`, le tirage automatique utilise la **config centralisée** [`cron/config.env`](../cron/config.env) (`PULL_SYNC_*`) et le wrapper [`cron/git-pull-wrapper.sh`](../cron/git-pull-wrapper.sh), qui appelle [`cron/git-pull-project-clones.sh`](../cron/git-pull-project-clones.sh) (`git fetch` / **`merge --ff-only`** si possible).
|
||
|
||
- **Activer le timer systemd utilisateur** (recommandé) : [`scripts/install-git-pull-systemd-user.sh`](../scripts/install-git-pull-systemd-user.sh)
|
||
- Désactiver pour un id projet : `"cron": { "git_pull": false }` dans le `conf.json` concerné.
|
||
- Désactiver tout le mécanisme : `PULL_SYNC_ENABLED=0` dans `config.env` ou `cron/config.local.env`.
|
||
|
||
Détail : [`cron/README.md`](../cron/README.md). Les clones restent sous le chemin **absolu** `project_path`.
|
||
|
||
## Référence amont
|
||
|
||
Schéma des champs : `ia_dev/projects/README.md` dans le sous-module (documentation ia_dev). Le bloc optionnel **`cron`** est une extension **smart_ide** pour les scripts locaux ; `ia_dev` peut l’ignorer s’il ne le lit pas.
|