loopbackio / loopbackio/loopback.io

Move vendored assets to Git Submodules and `.gitignore` built assets

Aperta
#2,052 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

ci developer-experience
Lingua principale
HTML
Stelle
276
Fork
382
Merge medio
6h 17m
PR unite (30g)
18

Descrizione

The website has scripts which pulls data from GitHub and NPM:

- [`update-blog.sh`](https://github.com/loopbackio/loopback.io/blob/dc08f345c51fcf85cef04ad55c2a56e5812f2451/update-blog.sh)
Clones `loopbackio/loopback-blog` into `/blog`
- [`update-readmes.sh`](https://github.com/loopbackio/loopback.io/blob/dc08f345c51fcf85cef04ad55c2a56e5812f2451/update-readmes.sh)
Downloads READMEs from GitHub "raw" or NPM Registry into `/doc/en/[lb3|lb4|community]/readmes`
- [`update-lb4-docs.js`](https://github.com/loopbackio/loopback.io/blob/dc08f345c51fcf85cef04ad55c2a56e5812f2451/update-lb4-docs.js)
Copies pre-generated markdown API Docs from `@loopback/docs` into `/doc/en/lb4`

They pose some issues:
- **Accidental manual editing:** Contributors may accidentally contribute changes to these assets, only to be overridden by the CI pipeline.
- **Rate-limitng:** Contributors running `npm run build` -> `update-readmes.sh` may inadvertently update the local copies with GitHub "rate limit reached" error pages.
- **Unclear provenance:** As the `.git` directory is not preserved, the provenance of where and when exactly the assets were vendored is no clear.
- **Updates are reactive:** The assets are only re-vendored when a PR is merged.

Git Submodules solve this problem. Updates would be handled by [Renovate](https://github.com/renovatebot/renovate) instead, which would open PRs.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

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 leggendo update-blog.sh, update-readmes.sh e update-lb4-docs.js, quindi esamina come npm run build li invoca e come CI gestisce gli asset generati. Definisci le posizioni dei sottomoduli e i percorsi di build che devono essere ignorati. Il lavoro è completo quando le sorgenti vendorizzate hanno una provenienza Git chiara, le build non sovrascrivono più le copie generate tracciate e la build esistente del sito continua a funzionare.

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

Valutazione

Stack tecnologico
git, github, nodejs, shell
Ambito
build-system, documentation
Tipo di issue
Refactoring
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
48/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.