Experiments


Implementation Stories, in priority order

I can do Experiments in Querki: I can go into "Experiment Mode", where all of my changes are stored in-memory and applied only to my current Session, but not persisted.
I can see all of the Experiments I have done so far: List all of the changes in my current Experiments, in some kind of human-readable form. Ideally, this shows up as a tree, with specific Property changes folded under the Things
I can discard specific Experiments from the list: When I look at the list of all the individual changes, I can discard any of them that I choose.
I can choose to always treat Model changes as Experiments: This would be in my Profile, as a User Preference. If set, all changes I make to Models are treated as Experimental, and only committed explicitly.
When I Commit my Experiments, conflicts get dealt with intelligently: Essentially, we should think like git. This is a classic merge conflict, when two people have modified the same Property.
My Experiment Session should be persistent: Having my Experiments only in-memory kind of sucks. It should be long-term persistent, so I can take my time about it.
I can label my Experiment Commits: Another in the line of, "If we're going to ape git, do it right". Allow me to attach a full Large Text description of what this Commit is, to go into the History.
I can choose to treat *all* changes as Experiments: Another possible User Preference, I can say that my changes are always Experimental, including simple data changes.
I can run multiple, labeled Experiments: If we're going to ape git, we should eventually do it right. This is the Querki version of Branching, allowing me to run multiple Experiments in parallel, and only merge them into the Space itself when I feel like it.

Also referred to by

Fix the architecture of In-Publication Mode: Currently, In-Publication mode is kind of a horrible hack. Before we get to Experiment Mode, we need to completely rewrite this.
History should work entirely differently during an Experiment: If I'm in an Experiment, History requests should be relative to the history of that Experiment, not the Space as a whole.
I can choose to always treat Model changes as Experiments: This would be in my Profile, as a User Preference. If set, all changes I make to Models are treated as Experimental, and only committed explicitly.
I can discard specific Experiments from the list: When I look at the list of all the individual changes, I can discard any of them that I choose.
I can do Experiments in Querki: I can go into "Experiment Mode", where all of my changes are stored in-memory and applied only to my current Session, but not persisted.
I can see all of the Experiments I have done so far: List all of the changes in my current Experiments, in some kind of human-readable form. Ideally, this shows up as a tree, with specific Property changes folded under the Things
My Experiment Session should be persistent: Having my Experiments only in-memory kind of sucks. It should be long-term persistent, so I can take my time about it.
When I Commit my Experiments, conflicts get dealt with intelligently: Essentially, we should think like git. This is a classic merge conflict, when two people have modified the same Property.
I can choose to treat *all* changes as Experiments: Another possible User Preference, I can say that my changes are always Experimental, including simple data changes.
I can label my Experiment Commits: Another in the line of, "If we're going to ape git, do it right". Allow me to attach a full Large Text description of what this Commit is, to go into the History.
I can run multiple, labeled Experiments: If we're going to ape git, we should eventually do it right. This is the Querki version of Branching, allowing me to run multiple Experiments in parallel, and only merge them into the Space itself when I feel like it.

Closed Issues