-
Notifications
You must be signed in to change notification settings - Fork 1
project structure proposal #145
Description
This project has come a long way, since it started as a little latex export experiment. But It's scope and structure have changed, naturally. So I'd like to discuss some ideas regarding the development process and code structure.
The total amount of code this repository is shrinking, which is good. But all this code has not gone away, most of it just moved to the tool repositories for the parser, linter, exporter, sitemap parser and template renderer. I like to keep these separate, but there are some drawbacks with project management:
- There is no clear place to track issues: This repository, a tool repository? Which tool repository? Often times issues affect multiple tools, but opening issues on all of them and linking those is tedious.
- We cannot make clear transitions: If the behavior of a tool changes, while other tools depend on it, the tools are often just updated one after another. Until this process is complete, the repositories reflect different, incompatible behavior.
- Things are hard to find: Especially for new developers or just interested people, there is no way to quickly grasp the structure of this tangled web of repositories, especially since the tool repositories are more or less undocumented.
So here are some ideas on how to address these issues:
- Merge repositories: Merging all MFNF-related tools into one repo makes issue tracking and documentation across these much easier. I'm not sure if it makes sense to pull in the parser as well. This would allow just creating a branch for a new feature across all tools and updating all tools at once by just merging.
There could still be a separate repo (like this one) which contains the build system and general discussion, while the tools repo deals with more technical issues and implementation details. - Move these repositories to serlo-org, so there is a clear association to Serlo and other Serlo projects.
- I'd like to work with pull requests more. Every feature or major sprint just creates a branch and opens a pull request. The author of this feature can share his WIP commits and share comments or questions in the pull request. But only when a feature is complete (and even reviewed?) it is merged into master.
Since naming is hard, I'd like to propose mfnf-export and mfnf-export-tools so we can find better ones ;)
Please let me know what you think. Is merging the repositories a good idea? Would you prefer a single repository? Or a completely different structure?