loopbackio / loopbackio/loopback-next

Spike: Switch from lerna to pnpm workspaces

Aperta
#5,671 8 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Internal Tooling spike
Lingua principale
TypeScript
Stelle
5.1k
Fork
1.1k
Merge medio
2g 21h
PR unite (30g)
27

Descrizione

Our current lerna-based setup is very inefficient. Most of the pull requests in this repository are created by RenovateBot to update package-lock files, our git history is full of RenovateBot commits that make it difficult to spot relevant changes.

Let's investigate how to switch from lerna to [pnpm](https://pnpm.js.org/) and use a single root package-lock file for the entire monorepo.

References:
- pnpm workspaces: https://pnpm.js.org/en/workspaces
- Travis CI setup: https://pnpm.js.org/en/continuous-integration#travis

Topics to investigate:
- How to release new versions using conventional release process? Can we perhaps use https://github.com/atlassian/changesets? Related: https://github.com/pnpm/pnpm/issues/2225
- Does RenovateBot support pnpm? If not, is there any other bot we could use instead? E.g. GitHub's [Dependabot](https://github.com/dependabot). Related: https://github.com/renovatebot/renovate/issues/2015

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia dai riferimenti a pnpm workspaces e Travis CI nell’issue, quindi esamina gli attuali workflow di Lerna, package-lock, RenovateBot e delle release. Il lavoro è completato quando viene documentato un piano di migrazione attuabile, che includa la gestione delle release e il supporto agli aggiornamenti delle dipendenze, anziché apportare una modifica all’implementazione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
nodejs, typescript
Ambito
build-system, devops, release, tooling
Tipo di issue
Refactoring
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.