From 4d04eed0f359a48598b7d76bb1899823c8c00c07 Mon Sep 17 00:00:00 2001 From: Nicolas Cantu Date: Fri, 3 Apr 2026 18:03:59 +0200 Subject: [PATCH] feat: relative paths in projects/conf.json and cron pull resolution - project_path, deploy.*, cron: resolve from monorepo root; ia_dev submodule bumped - enso/smart_ide.code-workspace folder paths ../../enso, ../../builazoo - Document in projects/README, remote-deployed-data-ssh.md --- cron/git-pull-project-clones.sh | 3 +++ docs/features/remote-deployed-data-ssh.md | 2 ++ ia_dev | 2 +- projects/README.md | 6 +++--- projects/enso/conf.json | 18 +++++++++--------- projects/enso/smart_ide.code-workspace | 6 +++--- projects/smart_ide/conf.json | 2 +- 7 files changed, 22 insertions(+), 17 deletions(-) diff --git a/cron/git-pull-project-clones.sh b/cron/git-pull-project-clones.sh index 685d1ae..dd8ac1b 100755 --- a/cron/git-pull-project-clones.sh +++ b/cron/git-pull-project-clones.sh @@ -86,5 +86,8 @@ for conf in "$PROJECTS_CONF"/*/conf.json; do echo "$LOG_PREFIX skip $id: empty project_path" continue fi + if [[ "$path" != /* ]]; then + path="$(cd "$ROOT" && realpath -m "$path" 2>/dev/null || echo "$ROOT/$path")" + fi pull_clone "$id" "$path" || true done diff --git a/docs/features/remote-deployed-data-ssh.md b/docs/features/remote-deployed-data-ssh.md index 598c45a..834b794 100644 --- a/docs/features/remote-deployed-data-ssh.md +++ b/docs/features/remote-deployed-data-ssh.md @@ -47,6 +47,8 @@ flowchart TB ## Déclaration dans `projects//conf.json` +Les chemins **locaux** vers clones (`project_path`, `deploy.repository_root`, etc.) sont **relatifs à la racine du monorepo smart_ide** (ou absolus). Les **`path_on_server`** sous `smart_ide.remote_data_access` restent des chemins **absolus sur la machine déployée**. + Bloc optionnel **`smart_ide`** (ignoré par les outils qui ne le lisent pas, ex. parties d’**ia_dev** qui ne sélectionnent que leurs champs) : - **`remote_data_access.environments.`** : pour chaque environnement, diff --git a/ia_dev b/ia_dev index 756bab0..a7b5998 160000 --- a/ia_dev +++ b/ia_dev @@ -1 +1 @@ -Subproject commit 756bab0cd8d4d77dd2e83eaf108efc4c9d132fa1 +Subproject commit a7b5998f61c03dc219e077ab4fa95253ff61bc20 diff --git a/projects/README.md b/projects/README.md index 66be6a1..4342895 100644 --- a/projects/README.md +++ b/projects/README.md @@ -7,7 +7,7 @@ Ce répertoire, à la **racine du monorepo `smart_ide`**, ne contient que les ** 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//`** (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//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**. +- **`../projects/`** (ou autre racine configurée) → arborescences Git complètes, builds, etc. ; dans chaque `conf.json`, **`project_path`** et les chemins **`deploy.*`** utiles sont **relatifs à la racine du monorepo smart_ide** (ex. `../enso`, `.`) ou **absolus** ; le script `cron/git-pull-project-clones.sh` et ia_dev les résolvent depuis cette racine (voir `ia_dev/lib/conf_path_resolve.sh`). ## `smart_ide` @@ -16,7 +16,7 @@ Les dépôts sources des produits (ex. backend **docv** sous un chemin du type ` ## `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`. +- Fichier : [`enso/conf.json`](./enso/conf.json) — clone **enso** frère du monorepo (`project_path` typique `../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`). @@ -28,7 +28,7 @@ Pour **chaque** `projects//conf.json`, le tirage automatique utilise la **co - 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`. +Détail : [`cron/README.md`](../cron/README.md). `project_path` est résolu en chemin absolu à partir de la racine **smart_ide** lorsqu’il est relatif. ## Données déployées, SSH, AnythingLLM et IDE diff --git a/projects/enso/conf.json b/projects/enso/conf.json index 519c05d..6f0e485 100644 --- a/projects/enso/conf.json +++ b/projects/enso/conf.json @@ -4,22 +4,22 @@ "cron": { "git_pull": true }, - "project_path": "/home/ncantu/code/enso", + "project_path": "../enso", "build_dirs": [ - "/home/ncantu/code/enso", - "/home/ncantu/code/enso/enso/enso-front" + ".", + "enso/enso-front" ], "deploy": { - "repository_root": "/home/ncantu/code/enso", - "scripts_path": "/home/ncantu/code/enso/deploy/scripts_v2", - "deploy_script_path": "/home/ncantu/code/enso/deploy/scripts_v2/deploy.sh", + "repository_root": "../enso", + "scripts_path": "../enso/deploy/scripts_v2", + "deploy_script_path": "../enso/deploy/scripts_v2/deploy.sh", "project_orchestrator_path": "deploy/scripts_v2/deploy.sh", - "secrets_path": "/home/ncantu/code/enso/.secrets" + "secrets_path": "../enso/.secrets" }, "version": { "package_json_paths": [ - "/home/ncantu/code/enso/package.json", - "/home/ncantu/code/enso/enso/enso-front/package.json" + "package.json", + "enso/enso-front/package.json" ], "splash_app_name": "enso" }, diff --git a/projects/enso/smart_ide.code-workspace b/projects/enso/smart_ide.code-workspace index 71bec62..904ddef 100644 --- a/projects/enso/smart_ide.code-workspace +++ b/projects/enso/smart_ide.code-workspace @@ -4,13 +4,13 @@ "path": "../.." }, { - "path": "../../../enso" + "path": "../../enso" }, { - "path": "../../../builazoo" + "path": "../../builazoo" } ], "settings": { "smartIde.activeProjectId": "enso" } -} \ No newline at end of file +} diff --git a/projects/smart_ide/conf.json b/projects/smart_ide/conf.json index d35c2a4..1e7567a 100644 --- a/projects/smart_ide/conf.json +++ b/projects/smart_ide/conf.json @@ -4,7 +4,7 @@ "cron": { "git_pull": true }, - "project_path": "/home/ncantu/code/smart_ide", + "project_path": ".", "build_dirs": [], "deploy": {}, "version": {