Closed
Description
From #819 (comment):
Developer Experience: The Publish Dance
One of the biggest hurdles to releases is a term the contributors call the "publish dance" which requires a coordinated effort of publishing around 20 different npm modules that together constitute an OrbitDB release. There's no need to enumerate them here but the process generally starts from ipfs-log and moves upward to the top-level orbit-db.
The community has discussed about solving this on tooling level, such as using Lerna for module management, but a better alternative would be to address this on the architecture / implementation level by:
* remove the inheritance of stores and inject the Store module to stores
* remove ipfs-log dependency from Store and inject it from OrbitDB
* generally switch all inheritance to dependency injection (eg. feedstore takes in as a parameter an eventstore instead of inheriting from it)
All these would make it possible to configure the dependencies on the main package level, in orbit-db, giving the users more flexibility in choosing which modules and versions they use.
Success criteria: OrbitDB can deploy a new release to npm.
Context: OrbitDB already uses Circle CI, but if that's inconvenient for some reason, Github Actions would work too.
Metadata
Metadata
Assignees
Labels
No labels