Skip to content

Automate orbitdb releases #899

Closed
Closed
@holmesworcester

Description

@holmesworcester

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions