Snapcraft's state tracking improvements
Stuart Bishop
stuart.bishop at canonical.com
Thu Dec 15 09:01:54 UTC 2016
On 14 December 2016 at 04:57, Kyle Fazzari <kyle.fazzari at canonical.com>
wrote:
> Hey everyone.
>
> I feel it coming on... this is going to be a tome. tl;dr... snapcraft
> could be smarter than it is. But would that lead to its doing more for
> you than you want? We'd like to find out.
>
>
> *Option 1*: Error out and make you be specific. This is the current
> behavior.
>
> *Option 2*: Automatically take care of everything. If you modify a part
> with dependencies, snapcraft will rebuild those dependencies as it sees
> fit without your needing to say so. Similarly, if you clean a part with
> dependencies, snapcraft will clean those dependencies as it sees fit
> without your needing to say so.
>
I would prefer a reliable Option 2. If it can't be reliable, then Option 1.
*Option 3*: Prompt. "You've modified part A, but part B depends upon it.
> Would you like to rebuild it as well? (Y/n)" and the like.
>
No thanks. There seems little purpose to answering 'no', apart from blowing
off your foot. And useless if you are driving this from a Makefile or
similar (think generating your snapcraft.yaml).
> *Option 4*: Add the ability to configure this behavior between options
> 1-3. Perhaps the sensible default would be option 3.
>
>
> Our goal here is to do the least surprising thing, which is why we're
> asking for input from our users. Please let your voice be heard!
I found it annoying that I would need to run three or more commands to
build my snap when iterating, and would certainly like it if cleaning and
rebuilding happened automatically if I have touched relevant source code.
People might need to separate out their parts into different directories to
make this reliable. A problematic case I would have tripped over is a slow
building autotools project, in which I've added a snapcraft.yaml and some
Python wrappers. I would not want to trigger a rebuild of the autotools
part because I'm fixing a bug in my wrappers (a second part, but stored in
the same tree). Maybe you could handle this by monitoring the files opened
by the build process somehow?
--
Stuart Bishop <stuart.bishop at canonical.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/snapcraft/attachments/20161215/8cccdc27/attachment.html>
More information about the Snapcraft
mailing list