reazen / relude

FP-inspired prelude/standard library for ReasonML projects
https://reazen.github.io/relude
MIT License
267 stars 41 forks source link

Monorepo/package set options #326

Open andywhite37 opened 2 years ago

andywhite37 commented 2 years ago

There has been some discussion about moving all the relude ecosystem libraries into a monorepo to solve some of the build and versioning woes with having separate repos. I think this might be a beneficial direction, but I wanted to list out some pros and cons, and also propose an alternative path to explore: trying to build out a package-set ecosystem within Reason.

Monorepo

The idea with a monorepo would be to move all the relude-* libraries into a single code repository, and set up some tooling support to centralize the versioning of dependencies, and have scripts to execute commands consistently on each of the packages.

Package sets

The idea of package sets can be seen in things like purescript package-sets, or Haskell stack. Rather than putting all the code into a single code repository, you create the notion of a set of packages that can be built together, and are proven to work nicely together via an automated build+test cycle. Having a set of packages that are known to work well together also reduces the burden of developers when they have to cobble together libraries that use various different versions of the same dependencies.