smart_ide/projects/README.md
Nicolas Cantu d98e6bce60 feat: logs/ for pull-sync and ia_dev; document ia_dev as in-repo module
- 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
2026-04-03 17:50:49 +02:00

3.0 KiB
Raw Blame History

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 nest 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.
  • ../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

enso

  • Fichier : 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.
  • 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 (PULL_SYNC_*) et le wrapper cron/git-pull-wrapper.sh, qui appelle 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
  • 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. 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 lignorer sil ne le lit pas.