Make 1CP (One Click Publish) live up to its name!
415
Views
3
Comments
New
1CP

Many years ago, when I used to program in C (!), I could make a change in some source code buried deep in an application and run "make".  It was smart enough to only compile the required code, so I could just go and grab a coffee and when I came back it was ready to test. Same applies to many modern build tools (e.g. "grunt/gradle"), in fact they even monitor file changes, so you don't even have to explicitly run a command.  

But with OS, if I make a change in a deep espace I either have to work out which consumers are affected and manually publish them one by one in the right order or run an "all content" solution which will take ages. There is a "Publish all consumers" option, but it is "dumb" and just publishes the entire dependency tree, regardless of the nature of the change, so can end up being little better than an "all content".  Then when I come back (from lunch, because I can't drink that many coffees), I have to wait for first load delays to finally see the results of my change...

I suggest this:

1. If I make a change, for example, inside an action, then 1CP should work out which espaces use THAT action and only publish them, while ensuring that nothing else needs refreshing for me to actually see the result. 

2. It should then (optionally, but automatically) precompile them so there are no first load delays. I don't mind being offered a list of entry point consumer espaces to limit the scope, as long as this is shown at the start - so I can go a get my coffee.

Now THAT is One Click Publishing!

I simply cannot believe that if I make a change to an action buried in a BL module that I have to manually trace it's consumers and manually publish them, 1 by 1, waiting for each to complete.

And if I want to debug, I have to add it as a fake reference to the entry module.

And then I have to reload the page twice (because the 1st load causes a timeout).

And then I find I've made a mistake and have to do it all again.

This is insane.

In practical terms this should be possible doing what I do manually:

  1.  Use "Find Usage in all modules" to get a list of the consumer modules
  2. Open each module and repeat, to find their consumers
  3. Build a list of the affected modules and create a solution

Note that the key difference between this and "Publish all consumers" is that it only publishes the consumers of one action, rather than a dumb publish of consumers of any action in the original module. 

Changed the category to
1CP