Ajouter @lightweight-sdk/service-registry (packages/common) #2

Merged
kyuno merged 4 commits from feat/service-registry-package into main 2026-09-18 20:56:44 +02:00
4 changed files with 30 additions and 0 deletions
Showing only changes of commit f0f57f170c - Show all commits

View file

@ -19,5 +19,10 @@
"src/index.ts"
],
"readme": "README.md"
},
"devDependencies": {
"@types/node": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
}
}

View file

@ -211,6 +211,18 @@ importers:
packages/client/web-component: {}
packages/common/service-registry:
devDependencies:
'@types/node':
specifier: 'catalog:'
version: 22.20.3
typescript:
specifier: 'catalog:'
version: 5.9.3
vitest:
specifier: 'catalog:'
version: 2.1.9(@types/node@22.20.3)
packages:
'@babel/runtime@7.29.7':

View file

@ -53,6 +53,15 @@ const packageJson = {
entryPoints: ['src/index.ts'],
readme: 'README.md',
},
// Déclarées explicitement (même si déjà présentes à la racine, où elles
// seraient hoistées) : un package workspace sans aucune dépendance propre
// peut se retrouver sans entrée dans pnpm-lock.yaml, ce qui casse
// `pnpm install --frozen-lockfile` en CI (voir spec/ci-cd.md).
devDependencies: {
'@types/node': 'catalog:',
typescript: 'catalog:',
vitest: 'catalog:',
},
};
writeFileSync(join(packageDir, 'package.json'), `${JSON.stringify(packageJson, null, '\t')}\n`);

View file

@ -35,6 +35,10 @@ Pas de bot automatique type `changesets/action` (spécifique GitHub, incertain s
1. Forgejo → Settings → Applications → générer un token avec les scopes `write:package` + `read:package`.
2. L'ajouter comme secret de repo nommé `REGISTRY_TOKEN` sur **ce** repo (`lightweight-sdk`) — les secrets de repo ne sont pas partagés entre repos sur cette instance ; celui de `watchparty` ne peut pas être réutilisé tel quel.
### Troubleshooting : `pnpm-lock.yaml` sans entrée pour un nouveau package
Si `pnpm install --frozen-lockfile` échoue en CI avec `pnpm-lock.yaml has no importers["packages/<catégorie>/<nom>"] entry` alors que `pnpm install` (sans `--frozen-lockfile`) fonctionne en local sans se plaindre : un package workspace **sans aucune `dependencies`/`devDependencies` propre** peut ne pas obtenir d'entrée dans le lockfile généré par pnpm 12.4.2, même après suppression complète du lockfile et réinstallation. Constaté en ajoutant `@lightweight-sdk/service-registry` (package.json sans champ de dépendances du tout). Remède : déclarer explicitement quelques `devDependencies` (ex. `typescript`, `vitest` via `catalog:`) même si elles seraient de toute façon hoistées depuis la racine — `create-package.mjs` le fait automatiquement pour tout nouveau package. Vérifier avant de pousser : `pnpm install --frozen-lockfile` en local doit passer, pas seulement `pnpm install`.
### Troubleshooting : 404 sur un package scopé
Si `pnpm changeset:publish` échoue avec une 404 sur un nom de package scopé (`@lightweight-sdk/...`), la cause probable est le reverse proxy devant l'instance : npm encode le `/` d'un nom scopé en `%2F`, ce qu'Apache refuse par défaut. Vérifier `AllowEncodedSlashes NoDecode` dans le VirtualHost et `nocanon` sur la directive `ProxyPass`. Ce point n'a pas pu être vérifié depuis l'agent (config réseau propre à l'instance).