Archive 5 phases (36 plans) to milestones/v1.0-phases/. Archive roadmap, requirements, and audit to milestones/. Evolve PROJECT.md with shipped state and validated requirements. Collapse ROADMAP.md to one-line milestone summary. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
7.5 KiB
phase, plan, type, wave, depends_on, files_modified, autonomous, requirements, must_haves
| phase | plan | type | wave | depends_on | files_modified | autonomous | requirements | must_haves | ||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 05-distribution-and-hardening | 02 | execute | 1 |
|
true |
|
|
Purpose: Addresses two of the four Phase 5 success criteria — complete French locale and single EXE distribution. These are independent file changes that can run parallel with Plan 01's test creation. Output: Corrected FR strings, publish-ready csproj.
<execution_context> @C:/Users/dev/.claude/get-shit-done/workflows/execute-plan.md @C:/Users/dev/.claude/get-shit-done/templates/summary.md </execution_context>
@.planning/PROJECT.md @.planning/ROADMAP.md @.planning/STATE.md @.planning/phases/05-distribution-and-hardening/05-RESEARCH.md@SharepointToolbox/Localization/Strings.fr.resx @SharepointToolbox/SharepointToolbox.csproj
Task 1: Fix French diacritic-missing strings in Strings.fr.resx SharepointToolbox/Localization/Strings.fr.resx Open `Strings.fr.resx` and fix ALL the following strings. The file is XML — edit the `` elements directly. Be careful to preserve the XML structure and encoding.Corrections (key -> wrong value -> correct value):
transfer.sourcelibrary: "Bibliotheque source" -> "Bibliothèque source"transfer.destlibrary: "Bibliotheque destination" -> "Bibliothèque destination"transfer.mode.move: "Deplacer" -> "Déplacer"transfer.conflict.overwrite: "Ecraser" -> "Écraser"transfer.start: "Demarrer le transfert" -> "Démarrer le transfert"transfer.nofiles: "Aucun fichier a transferer" -> "Aucun fichier à transférer."bulkmembers.preview: "Apercu" (in the value) -> "Aperçu" (preserve the rest of the value including any format placeholders)bulksites.execute: "Creer les sites" -> "Créer les sites"bulksites.preview: "Apercu" -> "Aperçu" (preserve format placeholders)bulksites.owners: "Proprietaires" -> "Propriétaires"folderstruct.execute: "Creer les dossiers" -> "Créer les dossiers"folderstruct.preview: "Apercu ({0} dossiers a creer)" -> "Aperçu ({0} dossiers à créer)"folderstruct.library: "Bibliotheque cible" -> "Bibliothèque cible"templates.list: "Modeles enregistres" -> "Modèles enregistrés"templates.opt.libraries: "Bibliotheques" -> "Bibliothèques"bulk.result.success: "Termine : {0} reussis, {1} echoues" -> "Terminé : {0} réussis, {1} échoués"bulk.result.allfailed: "Les {0} elements ont echoue." -> "Les {0} éléments ont échoué."bulk.result.allsuccess: "Les {0} elements ont ete traites avec succes." -> "Les {0} éléments ont été traités avec succès."bulk.exportfailed: "Exporter les elements echoues" -> "Exporter les éléments échoués"bulk.retryfailed: "Reessayer les echecs" -> "Réessayer les échecs"bulk.validation.invalid: fix "reimportez" -> "réimportez" (preserve rest of string)bulk.csvimport.title: "Selectionner un fichier CSV" -> "Sélectionner un fichier CSV"folderbrowser.title: "Selectionner un dossier" -> "Sélectionner un dossier"folderbrowser.select: "Selectionner" -> "Sélectionner"
Also check for these templates.* keys (noted in research):
25. templates.capture: if contains "modele" without accent -> "modèle"
26. templates.apply: if contains "modele" without accent -> "modèle"
27. templates.name: if contains "modele" without accent -> "modèle"
IMPORTANT: Do NOT change any key names. Only change <value> content. Do NOT add or remove keys. Preserve all XML structure and comments.
dotnet msbuild SharepointToolbox/SharepointToolbox.csproj -t:Compile -p:DesignTimeBuild=true -v:quiet 2>&1 | tail -5
All 25+ FR strings corrected with proper French diacritics (e, a -> e with accent, a with accent, c with cedilla). Project compiles without errors. No keys added or removed.
Add exactly these properties:
<PropertyGroup Condition="'$(PublishSingleFile)' == 'true'">
<SelfContained>true</SelfContained>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
</PropertyGroup>
Using a conditional PropertyGroup so these properties only activate during publish (when PublishSingleFile is passed via CLI or profile). This avoids affecting normal dotnet build and dotnet test behavior.
The existing <PublishTrimmed>false</PublishTrimmed> MUST remain in the main PropertyGroup — do NOT change it.
After editing, verify the publish command works:
dotnet publish SharepointToolbox/SharepointToolbox.csproj -c Release -p:PublishSingleFile=true -o ./publish
Confirm output is a single EXE (no loose .dll files in the publish folder).
dotnet publish SharepointToolbox/SharepointToolbox.csproj -c Release -p:PublishSingleFile=true -o ./publish 2>&1 | tail -3 && ls ./publish/*.dll 2>/dev/null | wc -l
SharepointToolbox.csproj has PublishSingleFile configuration. dotnet publish -p:PublishSingleFile=true produces a single SharepointToolbox.exe (~200 MB) with zero loose DLL files in the output directory. PublishTrimmed remains false.
<success_criteria>
- Strings.fr.resx contains proper diacritics for all 25+ corrected keys
- SharepointToolbox.csproj has PublishSingleFile + SelfContained + IncludeNativeLibrariesForSelfExtract in conditional PropertyGroup
- PublishTrimmed remains false
- dotnet publish produces single EXE with 0 loose DLLs
- Existing test suite unaffected </success_criteria>