Renommage AJEAN (1/3) : module, chemins de donnees et auto-MAJ

Socle du renommage jean -> AJEAN, sans aucun impact visible pour le parc
installe. Trois briques :

- module github.com/nathaninline/ajean, cmd/ajean, internal/ajean,
  package ajean. Purement interne.

- AjeanHome() remplace JeanHome(). Les defauts deviennent
  %ProgramData%\ajean et /etc/ajean, avec migration du dossier existant
  au premier lancement. La migration est un os.Rename dans le dossier
  parent de l'ancien chemin : intra-volume, donc atomique et instantane
  meme avec des .gguf de plusieurs dizaines de Go. Si le rename echoue
  (handle ouvert sous Windows, droits, volume en lecture seule) on
  CONTINUE sur l'ancien chemin et on retentera : jamais de copie, jamais
  de suppression, le pire cas est "rien n'a bouge".
  $AJEAN_HOME et $JEAN_HOME restent tous deux honores, ainsi que
  /etc/default/ajean et /etc/default/jean : un chemin impose a la main
  est un ordre, on ne le migre pas.

- l'auto-MAJ accepte desormais ajean-<os>-<arch> ET jean-<os>-<arch>,
  dans cet ordre. Indispensable dans les deux sens : les binaires deja
  installes ne connaissent que jean-*, et ce binaire-ci doit pouvoir
  s'installer depuis une release anterieure au renommage.

Couvert par des tests, dont le repli quand un handle ouvert bloque le
rename sous Windows.
This commit is contained in:
nathaninline committed 2026-08-04 13:59:25 +02:00
1 parent c1d58b19f2
commit 110458c133
104 files changed
+514 -226

No files matched your search

File renamed without changes.
File renamed without changes.
+4 -4
View File
@@ -1,4 +1,4 @@
// Point d'entrée du binaire jean. Tout le code vit dans internal/jean ; ce
// Point d'entrée du binaire ajean. Tout le code vit dans internal/jean ; ce
// dossier ne porte que le main() et les ressources Windows (.syso, icône,
// versioninfo) qui doivent résider dans le dossier du package main.
//
@@ -7,11 +7,11 @@
// les .syso après avoir bumpé la version : `go generate ./...`
// (nécessite : go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo@latest)
//
//go:generate go run github.com/nathaninline/jean/tools/gen-icon icon.ico
//go:generate go run github.com/nathaninline/ajean/tools/gen-icon icon.ico
//go:generate goversioninfo -64 -icon=icon.ico -o resource_windows_amd64.syso versioninfo.json
//go:generate goversioninfo -64 -arm -icon=icon.ico -o resource_windows_arm64.syso versioninfo.json
package main
import "github.com/nathaninline/jean/internal/jean"
import "github.com/nathaninline/ajean/internal/ajean"
func main() { jean.Main() }
func main() { ajean.Main() }
File renamed without changes.
File renamed without changes.
@@ -26,7 +26,7 @@
"OriginalFilename": "jean.exe",
"ProductName": "AJEAN",
"ProductVersion": "0.6.15",
"Comments": "https://github.com/nathaninline/jean — projet open source (MIT)"
"Comments": "https://github.com/nathaninline/ajean — projet open source (MIT)"
},
"VarFileInfo": {
"Translation": {