diff --git a/README.md b/README.md index 8317fea..3c298b1 100644 --- a/README.md +++ b/README.md @@ -132,6 +132,12 @@ Pour produire les paquets Linux : npm run tauri build -- --bundles deb,appimage ``` +Ils sont écrits sous `src-tauri/target/release/bundle/`. Le paquet Debian s'installe +avec `sudo apt install ./EnvEdit_1.0.0_amd64.deb` depuis son dossier. L'AppImage se lance +après `chmod +x EnvEdit_1.0.0_amd64.AppImage`. Ces paquets ne contiennent pas le backend +Python. Les projets locaux restent hors ligne ; seuls les projets SSH utilisent une +connexion configurée explicitement par l'utilisateur. + ## Préparer une release GitHub La version cible est choisie **avant** le tag. Créer une branche `release/X.Y.Z`, @@ -152,12 +158,12 @@ Le contrôle de version se lance aussi localement avec installateurs avant de publier manuellement le brouillon. Ne pas déplacer un tag déjà publié : corriger sur une nouvelle version si nécessaire. -Exemple de préparation de `0.5.0` une fois les versions modifiées et la PR validée : +Exemple pour `1.0.0` une fois les versions modifiées et la PR validée : ```bash -node scripts/check-release-version.mjs v0.5.0 -git tag -a v0.5.0 -m "EnvEdit 0.5.0" -git push origin v0.5.0 +node scripts/check-release-version.mjs v1.0.0 +git tag -a v1.0.0 -m "EnvEdit 1.0.0" +git push origin v1.0.0 ``` La CI produit des builds Windows/macOS **expérimentaux** ; elle ne valide pas encore @@ -166,12 +172,6 @@ distribution comme versions prises en charge reste différée. Les installateurs sont pas encore signés ni, pour macOS, notarisés. Aucun déploiement n'est déclenché par les pull requests ou par la branche de préparation. -Ils sont écrits sous `src-tauri/target/release/bundle/`. Le paquet Debian s'installe -avec `sudo apt install ./EnvEdit_0.4.4_amd64.deb` depuis son dossier. L'AppImage se lance -après `chmod +x EnvEdit_0.4.4_amd64.AppImage`. Ces paquets ne contiennent pas le backend -Python. Les projets locaux restent hors ligne ; seuls les projets SSH utilisent une -connexion configurée explicitement par l'utilisateur. - La configuration réside dans `$XDG_CONFIG_HOME/envedit/catalog.json` (ou `~/.config/envedit/catalog.json`). Elle contient les sections, leurs noms et les chemins des projets, jamais les valeurs des variables. L'ancien `projects.json` n'est pas migré et est diff --git a/docs/RELEASE-1.0.0.md b/docs/RELEASE-1.0.0.md new file mode 100644 index 0000000..6013dca --- /dev/null +++ b/docs/RELEASE-1.0.0.md @@ -0,0 +1,42 @@ +# Préparation de la version 1.0.0 + +Branche de validation : `release/1.0.0`. Aucun tag ni release publiée à ce stade. + +## Vérifications effectuées localement + +- Versions synchronisées dans `package.json`, `package-lock.json`, `Cargo.toml`, + `Cargo.lock` et `tauri.conf.json` (`v1.0.0`). +- Vitest : 18 tests réussis ; Rust : 22 tests réussis. +- `npm run tauri build -- --bundles deb` : paquet + `src-tauri/target/release/bundle/deb/EnvEdit_1.0.0_amd64.deb` produit. +- Métadonnées du paquet contrôlées avec `dpkg-deb --info` : paquet `env-edit`, + version `1.0.0`, architecture `amd64`, dépendances GTK/WebKitGTK annoncées. +- Contenu extrait dans un dossier temporaire ; le binaire démarre avec + `XDG_CONFIG_HOME` et `XDG_CACHE_HOME` isolés et reste actif jusqu'au délai de + huit secondes du test de lancement. Une fixture `.env` synthétique a été copiée + dans le dossier temporaire, sans être ouverte par l'application pendant ce test. + +## Validation manuelle encore nécessaire + +Le propriétaire du projet a installé localement le `.deb` 1.0.0 et indique que +l'application « semble fonctionnelle ». Ce retour confirme l'installation et un +premier essai utilisateur, sans constituer une validation exhaustive des critères +ci-dessous. L'agent n'a pas exécuté lui-même l'installation système : `sudo` +demande le mot de passe de l'utilisateur. Pour réinstaller depuis la racine du +dépôt : + +```bash +sudo apt install ./src-tauri/target/release/bundle/deb/EnvEdit_1.0.0_amd64.deb +``` + +Tester ensuite l'application installée avec **un nouveau dossier temporaire et une +fixture sans secret réel** : ajout du projet, ouverture du `.env`, édition inline, +commentaire en tooltip, masquage/copie d'une valeur sensible, sauvegarde ciblée, +avertissement de valeur vide, fermeture avec modifications non sauvegardées et +comparaison avec `.env.example`. Ne pas utiliser un projet de production pour +valider cette release. + +Les vérifications SSH sur serveur de test, les critères manuels encore ouverts +dans `ACCEPTANCE.md` et la parité Windows/macOS restent à traiter ou à déclarer +explicitement comme limites de la release. Le test historique Python/GTK n'a +pas été exécuté localement : `pytest` est absent de cet environnement. diff --git a/package-lock.json b/package-lock.json index deae6a0..eb18475 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "envedit", - "version": "0.4.4", + "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "envedit", - "version": "0.4.4", + "version": "1.0.0", "dependencies": { "@quasar/extras": "^1.16.17", "@tauri-apps/api": "^2.8.0", diff --git a/package.json b/package.json index 5383999..f76dfa5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "envedit", "private": true, - "version": "0.4.4", + "version": "1.0.0", "type": "module", "scripts": { "dev": "vite", diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 0ca6861..cc1facb 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -764,7 +764,7 @@ checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" [[package]] name = "envedit" -version = "0.4.4" +version = "1.0.0" dependencies = [ "serde", "serde_json", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 8b6ab99..44233d9 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "envedit" -version = "0.4.4" +version = "1.0.0" description = "Portable, conservative dotenv editor" authors = ["EnvEdit contributors"] edition = "2021" diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 5ceb3f4..e923752 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "EnvEdit", - "version": "0.4.4", + "version": "1.0.0", "identifier": "io.github.envedit.EnvEdit", "build": { "beforeDevCommand": "npm run dev", diff --git a/src/App.test.ts b/src/App.test.ts index 460f668..cc1322a 100644 --- a/src/App.test.ts +++ b/src/App.test.ts @@ -3,6 +3,7 @@ import { config, flushPromises, mount } from '@vue/test-utils' import { Dialog, Notify, Quasar } from 'quasar' import { beforeEach, describe, expect, it, vi } from 'vitest' +import packageInfo from '../package.json' import App from './App.vue' const { invoke, writeText, openDirectory } = vi.hoisted(() => ({ invoke: vi.fn(), writeText: vi.fn(), openDirectory: vi.fn() })) @@ -91,7 +92,7 @@ describe('parcours principal portable', () => { expect(invoke).toHaveBeenCalledWith('open_env_file', { path: '/fixture/project/.env' }) expect(wrapper.findAll('input').some((input) => input.element.value === 'APP_URL')).toBe(true) expect(wrapper.text()).toContain('1 variable(s) affichée(s)') - expect(wrapper.text()).toContain('v0.4.4') + expect(wrapper.text()).toContain(`v${packageInfo.version}`) wrapper.unmount() })