Releases: canonical/snapcraft
7.2.0
Snapcraft 7.2.0
Snap Linting
This feature is applicable for those using core22
as a base. The resulting snap is now linted with messages to help out with resolving the issue.
Linters
classic
This is mostly a rework of the mix of behavior with classic
confinement that automatically patched binaries, welcomed by some, fraught by others, to a more indicative message of what needs to happen for a snap to work properly in classic
.
Output from this linter will look as follows:
Running linter: classic
Lint OK:
- classic: Snap confinement is set to classic.
Lint warnings:
- classic: usr/bin/toilet: ELF interpreter should be set to '/snap/core22/current/lib64/ld-linux-x86-64.so.2'.
- classic: usr/bin/toilet: ELF rpath should be set to '$ORIGIN/../lib/x86_64-linux-gnu:/snap/core22/current/lib/x86_64-linux-gnu'.
- classic: usr/lib/x86_64-linux-gnu/caca/libgl_plugin.so.0.0.0: ELF interpreter should be set to '/snap/core22/current/lib64/ld-linux-x86-64.so.2'.
- classic: usr/lib/x86_64-linux-gnu/caca/libgl_plugin.so.0.0.0: ELF rpath should be set to '$ORIGIN/..:/snap/core22/current/lib/x86_64-linux-gnu'.
- classic: usr/lib/x86_64-linux-gnu/caca/libx11_plugin.so.0.0.0: ELF interpreter should be set to '/snap/core22/current/lib64/ld-linux-x86-64.so.2'.
- classic: usr/lib/x86_64-linux-gnu/caca/libx11_plugin.so.0.0.0: ELF rpath should be set to '$ORIGIN/..:/snap/core22/current/lib/x86_64-linux-gnu'.
- classic: usr/lib/x86_64-linux-gnu/libcaca++.so.0.99.19: ELF interpreter should be set to '/snap/core22/current/lib64/ld-linux-x86-64.so.2'.
- classic: usr/lib/x86_64-linux-gnu/libcaca++.so.0.99.19: ELF rpath should be set to '$ORIGIN:/snap/core22/current/lib/x86_64-linux-gnu'.
- classic: usr/lib/x86_64-linux-gnu/libcaca.so.0.99.19: ELF interpreter should be set to '/snap/core22/current/lib64/ld-linux-x86-64.so.2'.
- classic: usr/lib/x86_64-linux-gnu/libcaca.so.0.99.19: ELF rpath should be set to '$ORIGIN:/snap/core22/current/lib/x86_64-linux-gnu'.
- classic: usr/lib/x86_64-linux-gnu/libslang.so.2.3.2: ELF interpreter should be set to '/snap/core22/current/lib64/ld-linux-x86-64.so.2'.
- classic: usr/lib/x86_64-linux-gnu/libslang.so.2.3.2: ELF rpath should be set to '/snap/core22/current/lib/x86_64-linux-gnu'.
library
This linter reports missing library dependencies.
The output looks as follows:
Running linter: library
Lint warnings:
- library: my-app: missing dependency 'libcaca.so.0'.
- library: my-app: missing dependency 'libslang.so.2'.
Future iterations of this linter will warn of unused libraries too.
Disabling
Linting can be disabled per lint type or for a specific file path.
To completely disable a linter type, set the following at the root of your snapcraft.yaml
:
lint:
ignore:
- library
To disable linting for a specific file path for a linter, set the following at the root of your snapcraft.yaml
:
lint:
ignore:
- classic:
- usr/lib/x86_64-linux-gnu/libcaca.so.0.99.19
Switching the default provider
Linux users of Snapcraft can now switch the default provider (LXD) to Multipass. Do to so, run:
snap set snapcraft provider=multipass
To go back to LXD, run:
snap set snapcraft provider=lxd
Store
Validation Sets
Incorrecly YAML formated Validation Sets or those not completely accepted by the store can now be interactively edited for further iteration
On Prem Store
Supported commands are:
- upload
- release
- list-revisions
- close
- status
- login
- export-login
- logout
- whoami
To work with a deployed on premises store, the following must be set:
STORE_DASHBOARD_URL=http[s]://<store-IP>/publishergw
STORE_UPLOAD_URL=http[s]://<store-IP>
SNAPCRAFT_STORE_AUTH=onprem
Credentials Format
Snapcraft 7.2 now outputs a new standard (to the tools that require it) export login. This format is usable by Ubuntu Image and Snapd.
Existing exported credentials remain compatible, however these newly exported tokens are not backwards compatible with versions lower than Snapcraft 7.2.0.
All changes
- linters: add linting infrastructure by @cmatsuoka in #3847
- lint: lint legacy code with isort by @mr-cal in #3852
- lint: lint legacy code with black by @mr-cal in #3853
- lint: lint legacy code with flake8 by @mr-cal in #3854
- linters: add classic confinement linter by @cmatsuoka in #3849
- Release/7.1 merge by @sergiusens in #3861
- store: move package out of commands by @sergiusens in #3862
- whoami command: account for missing expires by @sergiusens in #3863
- Add binding for amdgpu.ids by @sergio-costas in #3859
- names command: move presentation logic to StoreClientCLI by @sergiusens in #3864
- plugins command: support for core22 by @sergiusens in #3870
- meta: get content provider dirs from snap metadata by @cmatsuoka in #3871
- linters: add missing library linter by @cmatsuoka in #3872
- lint: lint legacy code with black by @mr-cal in #3865
- meta: fix content plug detection by @cmatsuoka in #3874
- store: on prem base client by @sergiusens in #3880
- extensions: replace execs with source by @sergio-costas in #3869
- ua: add support to ua token management by @cmatsuoka in #3883
- store: initial support for an onprem store by @sergiusens in #3885
- store: support status for an onprem store by @sergiusens in #3887
- Hotfix/7.1.2 merge by @sergiusens in #3888
- Write passthrough to meta data and add some missing fields by @valentindavid in #3882
- DT-500 Fix Cups for Gtk support in Gnome-42 by @sergio-costas in #3867
- ua: specify and enable ua services by @cmatsuoka in #3886
- ua: enable ua services in legacy by @cmatsuoka in #3890
- store: support close for an on prem store by @sergiusens in #3892
- Merge 7.1.3 release by @sergiusens in #3894
- Hotfix/7.1.4 merge by @sergiusens in #3900
- config: add snap config model by @mr-cal in #3898
- store: on prem support for list-revisions by @sergiusens in #3901
- commands: update lifecycle docstrings by @cmatsuoka in #3902
- providers: choose default provider from snap config for core 22 by @mr-cal in #3899
- providers: choose legacy default provider from snap config by @mr-cal in #3903
- providers: pass http-proxy and https-proxy to craft-providers by @mr-cal in #3906
- parts: minor refactoring in instance log capture by @cmatsuoka in #3905
- tests: minor refactoring in shell/shell-after tests by @cmatsuoka in #3904
- parts: use part validator from craft-parts by @cmatsuoka in #3909
- tests unit: add for on prem store list-revisions by @sergiusens in #3908
- store: improve error message for 401 error by @sergiusens in #3907
- unit tests: minor improvement to fixture usage by @sergiusens in #3910
- requirements: update craft-providers to 1.4.2 by @mr-cal in #3911
- discovery.py: correct comment, "extensions" should say "plugins" by @rpjday in #3912
- build(deps): bump oauthlib from 3.2.0 to 3.2.1 by @dependabot in #3914
- legacy: install unpinned build packages by @cmatsuoka in #3915
- cli: move remote build out of legacy by @sergiusens in #3919
- schema: allow the gnome extension by @sergiusens in #3920
- store: correctly logout when credentials are invalid for legacy by @sergiusens in #3921
- providers: move
get_instance_name()
to providers.py by @mr-cal in #3926 - requirements: update craft-parts to 1.14.2 by @cmatsuoka in #3924
- providers: move
get_command_environment()
to providers.py by @mr-cal in #3927 - build(deps): bump protobuf from 3.20.1 to 3.20.2 by @dependabot in #3923
- test_pip.py: correct typo "enviroment" consistently so things keep wo… b...
7.1.4
What's Changed
- cli: disable log filename report in managed hosts by @cmatsuoka in #3891
- requirements: update craft-providers to 1.4.1 by @mr-cal in #3896
- cli: graciously handle keyboard interrupt by @cmatsuoka in #3897
- parts: allow debug shell after the lifecycle by @cmatsuoka in #3895
Full Changelog: 7.1.3...7.1.4
7.1.3
What's Changed
- cli: parse http-proxy and https-proxy by @mr-cal in #3884
- providers: delete instances via Executor object by @mr-cal in #3875
- cli: add legacy envvar for logging and check stdin by @sergiusens in #3889
Full Changelog: 7.1.2...7.1.3
7.1.2
What's Changed
- meta: add support for riscv64 by @mr-cal in #3868
- tests: enable provider spread tests for core22 by @mr-cal in #3877
- requirements: update craft-parts to 1.12.1 by @cmatsuoka in #3879
- tests: uprev miniconda by @sergiusens in #3881
- kde extension: new content snap for core20 by @ppd in #3846
Full Changelog: 7.1.1...7.1.2
7.1.1
What's Changed
- cli: add KeyAlreadyExists error by @mr-cal in #3844
- names.py: correct typo "logged it" to "logged in" by @rpjday in #3845
- meta: add support for s390x by @mr-cal in #3850
- repo: fix_pkg_config removes prefixes from staged snap's .pc files. by @mr-cal in #3848
- plugins: early registration of application plugins by @cmatsuoka in #3856
- cli: fixup args to list-validation-sets by @sergiusens in #3858
- requirements: update craft-parts to 1.10.2 by @cmatsuoka in #3857
- extensions: Do not default to Nvidia VDPAU by @nteodosio in #3855
New Contributors
- @rpjday made their first contribution in #3845
- @nteodosio made their first contribution in #3855
Full Changelog: 7.1.0...7.1.1
7.1.0
What's Changed
- lifecyle: root level build-packages and build-snaps by @sergiusens in #3790
- extensions: method to get data dir by @sergiusens in #3810
- commands,providers: implement ssh directory bind by @cmatsuoka in #3796
- extensions: prepend and append functions for ENV by @sergiusens in #3811
- lint: bump pylint by @mr-cal in #3813
- utils: move process_version to utils.py by @mr-cal in #3815
- spread: set colcon for 18.04 to manual by @sergiusens in #3817
- project: method to return snaps to install by @sergiusens in #3816
- extensions: use pydantic to validate yaml before expanding by @mr-cal in #3814
- fix(colcon-core18-test): use underscore instead of dash by @Guillaumebeuzeboc in #3818
- projects: add support for sigint by @Guillaumebeuzeboc in #3782
- providers: specify build-on and build-for in instance name by @mr-cal in #3820
- pack: specify snap filename by @mr-cal in #3819
- architectures: add schema support by @mr-cal in #3812
- extensions: add core22 gnome by @sergiusens in #3798
- pack: only print the basename of the snap filename by @sergiusens in #3822
- requirements: update craft-parts to 1.8.1 by @cmatsuoka in #3825
- hotfix/7.0.9 merge by @sergiusens in #3827
- Hotfix/7.0.10 merge by @sergiusens in #3830
- cli: update craft-cli to comply with UX guidelines by @cmatsuoka in #3833
- Hotfix/7.0.11 merge by @sergiusens in #3834
- Add core22 colcon plugin / ros2-humble extension by @artivis in #3750
- build(deps): bump lxml from 4.9.0 to 4.9.1 by @dependabot in #3829
- meta: architectures by @mr-cal in #3821
- utils: add calls to find host and snap tools by @cmatsuoka in #3838
- Fix gnome extension g-ir-scanner PYTHONPATH by @diddledani in #3835
- elf: add elf file handler class by @cmatsuoka in #3839
- snapcraft/meta: make Manifest.base optional by @jhenstridge in #3836
- elf: add handling and patching helpers by @cmatsuoka in #3840
- fix: hooks: process generated hooks by @mr-cal in #3837
- requirements: update by @sergiusens in #3842
- elf: add elf file patcher by @cmatsuoka in #3841
- parts: Do not import craft_parts.packages.deb until needed by @valentindavid in #3843
New Contributors
- @valentindavid made their first contribution in #3843
Full Changelog: 7.0.11...7.1.0
7.0.10
What's Changed
- manifest: correctly handle unspecified stage packages by @cmatsuoka in #3828
Full Changelog: 7.0.9...7.0.10
7.0.9
7.0.8
What's Changed
- store: export-login with legacy by @sergiusens in #3797
- export-login: clarify use of exported tokens by @sergiusens in #3799
- status command: static linting by @sergiusens in #3802
- package repositories: ensure dependencies are installed before use by @sergiusens in #3801
- package repositories: force package refresh by @sergiusens in #3804
- spread: add build packages to package repository tests by @cmatsuoka in #3806
- store: support configparser credentials by @sergiusens in #3805
- promote: add snap-name to args by @sergiusens in #3807
- store: login requires no exported credentials by @sergiusens in #3808
- store: correct login for register-key by @sergiusens in #3809
Full Changelog: 7.0.7...7.0.8
7.0.7
What's Changed
- legacy plugins: backwards compatibility by @sergiusens in #3795
Full Changelog: 7.0.6...7.0.7