Activity log for bug #1582469

Date Who What changed Old value New value Message
2016-05-17 01:52:32 Gustavo Niemeyer bug added bug
2016-05-17 01:52:41 Gustavo Niemeyer snapcraft: status New Confirmed
2016-05-17 01:52:44 Gustavo Niemeyer snapcraft: importance Undecided High
2016-05-19 08:16:06 Chen-Han Hsiao (Stanley) bug added subscriber Chen-Han Hsiao (Stanley)
2016-06-07 21:30:01 Sergio Schvezov description When using snapcraft in practice I've been often stumbling upon the behavior of "cleaning". Several small nits that come in mind right now: 1. Forcing a particular stage does not work If one types "snapcraft build some-part", this should indeed build the part. Right now it skips if it was already done before, which is a fine behavior when a part name is not given, but when the developer requested a specific part, it should actually respect the request rather than assuming a cached result is okay. 2. "snapcraft clean" doesn't always work For example: % snapcraft clean --step snap 'snap' is not a valid step for part 'qt5-packages' 3. Removing content doesn't work This is the most obvious way to "clean" when one really cannot tell snapcraft what to do. Just nuke the phase content (e.g. "rm -rf ./snap/"). Instead of taking the cue that the directory is simply not there, snapcraft barfs on internal state: % rm -rf snap % snapcraft snap Skipping pull qt5conf (already ran) (...) [Errno 2] No such file or directory: '/home/niemeyer/src/makemkv/snap/bin/qt5-launch' To recover from this state I had to nuke the parts/qt5conf path, which is not intuitive. We need to urgently improve the experience of people re-running stages, as this is foundation of the try-and-run cycle. When using snapcraft in practice I've been often stumbling upon the behavior of "cleaning". Several small nits that come in mind right now: 1. Forcing a particular stage does not work If one types "snapcraft build some-part", this should indeed build the part. Right now it skips if it was already done before, which is a fine behavior when a part name is not given, but when the developer requested a specific part, it should actually respect the request rather than assuming a cached result is okay. 2. "snapcraft clean" doesn't always work For example:     % snapcraft clean --step snap     'snap' is not a valid step for part 'qt5-packages' 3. Removing content doesn't work This is the most obvious way to "clean" when one really cannot tell snapcraft what to do. Just nuke the phase content (e.g. "rm -rf ./snap/"). Instead of taking the cue that the directory is simply not there, snapcraft barfs on internal state:     % rm -rf snap     % snapcraft snap     Skipping pull qt5conf (already ran)     (...)     [Errno 2] No such file or directory:     '/home/niemeyer/src/makemkv/snap/bin/qt5-launch' To recover from this state I had to nuke the parts/qt5conf path, which is not intuitive. We need to urgently improve the experience of people re-running stages, as this is foundation of the try-and-run cycle. [Impact] * `snapcraft clean` is a convoluted cli to manage states for parts. * This introduces un and re prefixes for the lifecycle commands available for snapcraft [Test Case] * Run snapcraft prime * Run snapcraft reprime * Verify the lifecycle step is rerun. * Repeat for pull, build and stage * Run unprime, unstage, unbuild and unpull * Run snapcraft reprime <part-name> * Verify the lifecycle step for only <part-name> is rerun. * Repeat for pull, build and stage * Run unprime, unstage, unbuild and unpull for <part-name> * Verify only <part-name> is cleaned. * Run snapcraft clean with and without <part-name> and -s <step> and verify it still works with a deprecation message shown to use the new syntax. [Regression Potential] * This should had minimal effect on regressions as the clean command is staying for backwards compatibility. * The un and re commands will be UI modifications not touching the lower layers of snapcraft that manage states. * The "re" commands are totally new feature but with minimal impact (per plugin).
2016-06-07 21:55:47 Sergio Schvezov snapcraft: status Confirmed Triaged
2016-06-07 21:55:51 Sergio Schvezov snapcraft: assignee Sergio Schvezov (sergiusens)
2016-06-07 21:55:55 Sergio Schvezov snapcraft: milestone 2.11
2016-06-27 14:05:22 Sergio Schvezov snapcraft: milestone 2.12 2.13
2016-07-07 18:23:41 Sergio Schvezov snapcraft: milestone 2.13 2.14
2016-07-21 08:18:38 Sergio Schvezov snapcraft: milestone 2.13
2016-09-02 15:39:46 Leo Arias tags clean
2017-01-11 16:28:09 Kyle Nitzsche bug added subscriber Kyle Nitzsche
2018-06-19 14:55:04 Kyle Fazzari tags clean 18.10-build-caching clean
2020-07-04 07:42:57 Chen-Han Hsiao (Stanley) removed subscriber Chen-Han Hsiao (Stanley)
2021-04-27 01:14:01 Sergio Schvezov tags 18.10-build-caching clean 18.10-build-caching clean craft-5