Announcing snapcraft 2.41
Hello snapcrafters! The snapcraft team is pleased to announce that version 2.41 of snapcraft.
Contributions
This release saw some excellent contributions from outside the snapcraft core team, and we want to give a shout out to those folks. A team thank you to:
New in this release
Core
Information extraction: setup.py
New in this release, snapcraft has added logic for information extraction from setup.py
.
Currently only version
and description
are retrieved from setup.py
.
Check the documentation for further use of the feature.
Improved mechanism for overriding lifecycle steps
The feature carrying the name of scriplets has been vastly improved with common understandable logic. To override a step in the lifecycle the semantics are as simple as override-<step>
, to call the original logic for the step (useful when wanting to perform operations prior or after the step), one just needs to run within the script snapcraftctl <step>
Furthermore, it is now possible to programatically set the version
and grade
from within these overriden steps, using whatever logic pertinent or artifact available in that step by eventually calling snapcraftctl set-version <version>
and snapcraftctl set-grade <grade>
.
Read more about this feature on the documentation site.
passthrough property
Occasionally snapd adds a new experimental feature that may or may not make it to a stable release. In order to support such features as soon as they're added, this release sees the addition of a passthrough
keyword that one can use in the root of the YAML as well as in apps
and hooks
, which can contain properties that are simply passed through to the final snap.yaml
.
Error reporting
This release sees the integration of Snapcraft with Sentry. This is still in the testing phases and nothing is enabled by default, but if you would like to enable it and optionally send us any terrible tracebacks you see, simply set SNAPCRAFT_ENABLE_SENTRY=on
(perhaps in your ~/.bashrc
) and you will be prompted if such an error occurs. Note that no personally identifiable information is sent: just the traceback (which may include the project name).
Plugins
dotnet
Upstream's release information is now used to determine the correct dotnet artifacts to use depending on the target defined in the project.
nodejs
It is now possible to pass an npm-flags
list of arguments when using the nodejs
plugin.
python
For users experimenting on bionic, snapcraft has caught up with the latest changes to this date occurring there.
Final notes
To get the source for this release, check it out on github. For the full extent of changes, take a glance at https://github.com/snapcore/snapcraft/milestone/18?closed=1
A great place to collaborate and discuss features, bugs and ideas on snapcraft are the forums. Please also feel free to file a bug.
Happy snapcrafting!
-- Sergio and the team