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
This commit is contained in:
Nicolas Cantu 2026-04-03 18:03:59 +02:00
parent 01860b7af7
commit 4d04eed0f3
7 changed files with 22 additions and 17 deletions

View File

@ -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

View File

@ -47,6 +47,8 @@ flowchart TB
## Déclaration dans `projects/<id>/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.<test|pprod|prod>`** : pour chaque environnement,

2
ia_dev

@ -1 +1 @@
Subproject commit 756bab0cd8d4d77dd2e83eaf108efc4c9d132fa1
Subproject commit a7b5998f61c03dc219e077ab4fa95253ff61bc20

View File

@ -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/<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**.
- **`../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/<id>/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** lorsquil est relatif.
## Données déployées, SSH, AnythingLLM et IDE

View File

@ -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"
},

View File

@ -4,13 +4,13 @@
"path": "../.."
},
{
"path": "../../../enso"
"path": "../../enso"
},
{
"path": "../../../builazoo"
"path": "../../builazoo"
}
],
"settings": {
"smartIde.activeProjectId": "enso"
}
}
}

View File

@ -4,7 +4,7 @@
"cron": {
"git_pull": true
},
"project_path": "/home/ncantu/code/smart_ide",
"project_path": ".",
"build_dirs": [],
"deploy": {},
"version": {