Orbifx ~ Ecological Jedi is a user on mstdn.io. You can follow them or interact with them if you have an account anywhere in the fediverse. If you don't, you can sign up here.

@orbifx will anything else depend on any of the sub-repos?

@latersauctro yes. One of them will be a library and servers and front-ends will depend on it.

@orbifx trying to figure out the answer to this question for one of my projects. Pros for sub-repos: separate issue trackers & easier sharing of the code for multiple dependencies. Cons: extra complexity & dev confusion. Maybe start with a monorepo and split out a sub-repo when you notice you're frequently updating the same code from multiple dependent projects?

@latersauctro I'm more concerned about noise in the history from independent parts of code now living in the same repository only because they are related in the ecosystem. The have been a mono repo which can also be installed by 's package manager () but it pulls the dependencies for all modules, servers and front-ends.

@orbifx Good point re: noise. If it's become a pain point, it's time to spin off a sub-repo. But wait for the pain -- it's easy to prematurely optimize! 😜

@latersauctro what is your repository about? And what is about your situation that makes it hard to choose?

@orbifx It's an open science project -- diagrams for communicating discoveries in biological research: github.com/wikipathways/wikipa The extensions directory only has sub-repos, but many of them have a single dependent: the parent project.

@orbifx With or without sub-repos, what do you think about installation/deployment? Should the git repo(s) be for development and opam (in your case) be for a production installation? How does a new dev get started initially -- maybe with a bash script that handles installation for the parent repo, including calling an install command for each sub-repo?

@latersauctro binaries for deployment. This trend of installing gigs of tools and dev libraries is not on. @Git only for modifications, for dev dependencies (not production unless it's a library), and binaries for production.
Readme's for bootstrapping devs. Best if they know what they are getting.