Proposal: Convert go-storage to monorepo

How about convert go-storage to monorepo instead?

For now, we have 54 repos and still keep increasing which makes it hard to maintian. Now we are facing following problems:

  • Too many repos make it hard to track issues, we have to switch between different repos.
  • Seperate repos makes it complex to do automation, we spent a log of time to tag / release and so on.
  • Seperate repos makes it hard to do huge refactor, we have to submit different PRs again and again.
  • Seperate repos makes it hard to sync changes, we have to wait release for go-storage (Compatibility requirements · Issue #653 · beyondstorage/go-storage · GitHub)
  • Add new services need to add a new repo which needs maintains operations.

Convert go-storage to a mono repo could make our life easier, we can have all our services and related packages in the same repo but with different go module names.

One possible way:

  • github.com/beyondstorage/go-storagebeyondstorage.io/go
  • github.com/beyondstorage/typesbeyondstorage.io/go/types
  • github.com/beyondstorage/go-service-s3beyondstorage.io/go/services/s3
  • github.com/beyondstorage/go-service-gcsbeyondstorage.io/go/services/gcs

We will need to bump a major version for those changes

1 Like