@Allistar
Re: Whether your team would use it
Indeed our current tooling and processes are mature/ingrained now too, so it would need to be compelling. Possibly an easier business case for those who haven’t built as much of their own tooling.
Re: Single environment/unison
Pros and cons, reorgs in dev environments are a killer too.
As it stands the approach wouldn’t prevent several users from coding in the same environment, you’d likely just have to forgo some features and work more regimented eg. committing in unison, no accuracy in who changed what.
Re: Difficult points to solve
Inbuilt vs Existing Deployment functionality
Maybe a combination, so native support up to a point, so being able to run a mix of jcfs, scm loads and scripts to allow for loading into test and managed live environments. But additionally to provide the work files/API for some other smarter & more specialised tools, such as your own & JCM to take over?
Data migrations
You’re right, this will be tough to crack, there’s many scenarios to consider.
I have this theory to try though, store specifics (so anything that cant be inferred) as part of the commit info. Lets say moveFwd and moveBack migration scripts, so when you change branches, you moveBack down to the common ancestor, then moveFwd to the new point.
Support for all types of Jade constructs
You mention interfaces & packages, agreed.
Definitely need to fail gracefully if the load fails, because we all know they do, and not always Jades fault either!
As for supporting all types of Jade constructs, that seems like a great area to put out to the wider community to help with, ie. we all pick 2
Also have an eye on the JadePlant for this, they’re looking at round tripping a type of extract, so we might be able to tap into that.
Jade Forms
This wasn’t mentioned, but I expect will be one of the most complex areas to crack. You’ve seen the ddbs, how we merge those… much to think about on this one!
Git or Mercurial
Git seems the more popular, but have recently been reading about the latter. Git infers what has happened, where (as I understand it) you can tell Hg you’ve done a rename vs an add/remove. For a code file you could live your tool not getting this right, but for a jade data class that could be a disaster!
Thanks.