snapcraft currently has a behavior which can lead to surprises given it is not well known when it does not work and provides a somewhat pleasant experience when it does.
The feature in question is that of, when not specified for a part, an implicit value for source to .
(read as, the local directory tree from where snapcraft is running).
This feature is of importance when dealing with collocated sources and a snapcraft project, such that certain plugins like go and nodejs will behave in unexpected ways as they would try to build local assets when maybe the intention was to only use a go-packages
or node-packages
entry.
The case this was trying to solve was one where backwards compatibility for the copy
plugin was being sorted out and detect when rebuilding was necessary.
The reasons for keeping the implicit source behavior does not outweigh the need of just specifying it when needed, so with the introduction of bases
we will make it a requirement for the cases where a source is required to be specified and keep it as None
for when it is not really required (like when only adding go-packages
).