loopbackio / loopbackio/loopback-next

Migrate connector repos into monorepo

Aperta
#7,368 6 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

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

Descrizione

This issue is to track the feasibility of migration the connector repos into this monorepo.

**Problem statement**

The connectors are in separate repos, which results in...

1. Inconsistent automated maintenance and CI workflows (i.e. dependency/vuln. management, code/commit linting, CLA/DCO)
2. Disparate issue trackers (harder to keep track of connector-specific issues)
3. Non-integrated CI testing (i.e. integration tests are not executed on changes within the connector repo)

**Potential concerns**

1. **Slower CI build times** - This concern was raised when this repo was utilising Travis CI, which had slow a VM spin-up duration, and rather limited co-current actions. With GitHub Actions, this concern is potentially mitigated.
2. **Maxing out CI minutes** - This was an issue with Travis CI where there was a quota on build times. This is not an issue with GitHub Actions which has unlimited minutes for public repos.
3. **Loss of commit history** - `lerna import --preserve-commit` will preserve the relative commit history, and retain the original commit authors and committers.
4. **Linux-only testing** - GitHub Actions only supports containers/services with `ubuntu-*` images. Currently, the CI pipeline for most connectors are hosted under `cis-jenkins.swg-devops.com`, which isn't currently publicly-accessible AFAIK.

**Connectors**

These are the connectors that are officially maintained:

- [ ] loopback-connector-mysql
- [ ] loopback-connector-postgresql
- [ ] loopback-connector-mongodb
- [ ] loopback-connector-rest
- [ ] loopback-connector-mssql
- [ ] loopback-connector-soap
- [ ] loopback-connector-oracle
- [ ] loopback-connector-cloudant
- [ ] loopback-connector-cassandra
- [ ] loopback-connector-couchdb2
- [ ] loopback-connector-db2
- [ ] loopback-ibmdb
- [ ] loopback-connector-dashdb
- [ ] loopback-connector-grpc
- [ ] loopback-connector-kv-redis
- [ ] loopback-connector-openapi
- [ ] loopback-connector-sqlite3
- [ ] loopback-connector-elastic-search
- [ ] loopback-connector-redis
- [ ] loopback-connector-kv-extreme-scal
- [ ] strong-soap

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 esaminando i repository dei connector elencati e i relativi workflow CI esistenti, quindi valuta le problematiche di migrazione descritte nell’issue, inclusi la cronologia dei commit e gli ambienti di test. Il lavoro è completo quando sono stati prodotti una decisione di fattibilità e un piano di migrazione che affrontino l’elenco dei connector, l’integrazione CI e i rischi indicati.

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

Valutazione

Stack tecnologico
github-actions, typescript
Ambito
build-system, devops
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.