loopbackio / loopbackio/loopback-next

Migrate connector repos into monorepo

Open
#7,368 6 comments 0 reactions 0 assignees View on GitHub
Internal Tooling
Dominant language
TypeScript
Stars
5.1k
Forks
1.1k
Avg merge
2d 21h
Merged PRs (30d)
27

Description

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

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the listed connector repositories and their existing CI workflows, then assess the migration concerns described in the issue, including commit history and testing environments. Done means producing a feasibility decision and migration plan that addresses the connector list, CI integration, and the stated risks.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, typescript
Domain
build-system, devops
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.