I’ve recently had a few discussions about this with other Cinder devs and I was curious how everyone else tackles this in a production environment: Where do you put your Cinder project folders and how do you deal with version dependencies?
- A: All projects inside Cinder folder (
- B: All projects inside Cinder subfolder (
- C: Independent project and Cinder folders (
- D: Cinder submodule inside each project (
- E: Other
I currently have about a dozen projects across several Cinder versions (not counting prototypes/scratchpads) ranging from 0.8.6 to 0.9.2 dev, all of which are still out in the wild and could require me to get back up and running at any point.
We typically face following questions with each new project:
- How do you capture where your project should be cloned to in relation to Cinder?
- How do you capture dependencies to a specific Cinder version? Submodule? Readme?
- How do you deal with multiple projects across multiple Cinder versions?
- How do you ensure the specific Cinder version persists in the future? Do you fork and/or tag?
- If you use Cinder as a submodule, how do you handle limited disk storage? Do you use shallow git clones? Do you wipe build files?
Currently—mostly because this is “the way we’ve always done things”—we put all of our projects in a shared Cinder folder for each minor version. So my Cinder directory looks like (
I’m really curious how everyone else tackles this and would love to find a way that solves all of the above while being friendly to our small laptop drives. If you have any other suggestions I’ll update the poll above to capture.