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 https://github.com/snapcore/snapcraft/pull/3847
- lint: lint legacy code with isort by @mr-cal in https://github.com/snapcore/snapcraft/pull/3852
- lint: lint legacy code with black by @mr-cal in https://github.com/snapcore/snapcraft/pull/3853
- lint: lint legacy code with flake8 by @mr-cal in https://github.com/snapcore/snapcraft/pull/3854
- linters: add classic confinement linter by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3849
- Release/7.1 merge by @sergiusens in https://github.com/snapcore/snapcraft/pull/3861
- store: move package out of commands by @sergiusens in https://github.com/snapcore/snapcraft/pull/3862
- whoami command: account for missing expires by @sergiusens in https://github.com/snapcore/snapcraft/pull/3863
- Add binding for amdgpu.ids by @sergio-costas in https://github.com/snapcore/snapcraft/pull/3859
- names command: move presentation logic to StoreClientCLI by @sergiusens in https://github.com/snapcore/snapcraft/pull/3864
- plugins command: support for core22 by @sergiusens in https://github.com/snapcore/snapcraft/pull/3870
- meta: get content provider dirs from snap metadata by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3871
- linters: add missing library linter by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3872
- lint: lint legacy code with black by @mr-cal in https://github.com/snapcore/snapcraft/pull/3865
- meta: fix content plug detection by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3874
- store: on prem base client by @sergiusens in https://github.com/snapcore/snapcraft/pull/3880
- extensions: replace execs with source by @sergio-costas in https://github.com/snapcore/snapcraft/pull/3869
- ua: add support to ua token management by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3883
- store: initial support for an onprem store by @sergiusens in https://github.com/snapcore/snapcraft/pull/3885
- store: support status for an onprem store by @sergiusens in https://github.com/snapcore/snapcraft/pull/3887
- Hotfix/7.1.2 merge by @sergiusens in https://github.com/snapcore/snapcraft/pull/3888
- Write passthrough to meta data and add some missing fields by @valentindavid in https://github.com/snapcore/snapcraft/pull/3882
- DT-500 Fix Cups for Gtk support in Gnome-42 by @sergio-costas in https://github.com/snapcore/snapcraft/pull/3867
- ua: specify and enable ua services by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3886
- ua: enable ua services in legacy by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3890
- store: support close for an on prem store by @sergiusens in https://github.com/snapcore/snapcraft/pull/3892
- Merge 7.1.3 release by @sergiusens in https://github.com/snapcore/snapcraft/pull/3894
- Hotfix/7.1.4 merge by @sergiusens in https://github.com/snapcore/snapcraft/pull/3900
- config: add snap config model by @mr-cal in https://github.com/snapcore/snapcraft/pull/3898
- store: on prem support for list-revisions by @sergiusens in https://github.com/snapcore/snapcraft/pull/3901
- commands: update lifecycle docstrings by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3902
- providers: choose default provider from snap config for core 22 by @mr-cal in https://github.com/snapcore/snapcraft/pull/3899
- providers: choose legacy default provider from snap config by @mr-cal in https://github.com/snapcore/snapcraft/pull/3903
- providers: pass http-proxy and https-proxy to craft-providers by @mr-cal in https://github.com/snapcore/snapcraft/pull/3906
- parts: minor refactoring in instance log capture by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3905
- tests: minor refactoring in shell/shell-after tests by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3904
- parts: use part validator from craft-parts by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3909
- tests unit: add for on prem store list-revisions by @sergiusens in https://github.com/snapcore/snapcraft/pull/3908
- store: improve error message for 401 error by @sergiusens in https://github.com/snapcore/snapcraft/pull/3907
- unit tests: minor improvement to fixture usage by @sergiusens in https://github.com/snapcore/snapcraft/pull/3910
- requirements: update craft-providers to 1.4.2 by @mr-cal in https://github.com/snapcore/snapcraft/pull/3911
- discovery.py: correct comment, "extensions" should say "plugins" by @rpjday in https://github.com/snapcore/snapcraft/pull/3912
- build(deps): bump oauthlib from 3.2.0 to 3.2.1 by @dependabot in https://github.com/snapcore/snapcraft/pull/3914
- legacy: install unpinned build packages by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3915
- cli: move remote build out of legacy by @sergiusens in https://github.com/snapcore/snapcraft/pull/3919
- schema: allow the gnome extension by @sergiusens in https://github.com/snapcore/snapcraft/pull/3920
- store: correctly logout when credentials are invalid for legacy by @sergiusens in https://github.com/snapcore/snapcraft/pull/3921
- providers: move
get_instance_name()
to providers.py by @mr-cal in https://github.com/snapcore/snapcraft/pull/3926
- requirements: update craft-parts to 1.14.2 by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3924
- providers: move
get_command_environment()
to providers.py by @mr-cal in https://github.com/snapcore/snapcraft/pull/3927
- build(deps): bump protobuf from 3.20.1 to 3.20.2 by @dependabot in https://github.com/snapcore/snapcraft/pull/3923
- test_pip.py: correct typo "enviroment" consistently so things keep wo… by @rpjday in https://github.com/snapcore/snapcraft/pull/3916
- tests: mock and test provider calls from lifecycle.py by @mr-cal in https://github.com/snapcore/snapcraft/pull/3928
- providers: move mount logic to lifecycle.py by @mr-cal in https://github.com/snapcore/snapcraft/pull/3930
- providers: refactor clean_project_environments by @mr-cal in https://github.com/snapcore/snapcraft/pull/3929
- providers: refactor
launched_environment()
by @mr-cal in https://github.com/snapcore/snapcraft/pull/3932
- providers: install snaps and packages via craft-providers API by @mr-cal in https://github.com/snapcore/snapcraft/pull/3933
- providers: deprecate SnapcraftBuilddBaseConfiguration by @mr-cal in https://github.com/snapcore/snapcraft/pull/3934
- providers: refactor
capture_logs_from_instance()
by @mr-cal in https://github.com/snapcore/snapcraft/pull/3935
- commands: make help message consistent by @nteodosio in https://github.com/snapcore/snapcraft/pull/3917
- tests: add unit test for
capture_logs_from_instance()
by @mr-cal in https://github.com/snapcore/snapcraft/pull/3937
- providers: move
confirm_with_user()
call to providers.py (#91) by @mr-cal in https://github.com/snapcore/snapcraft/pull/3938
- linters: allow ignoring files per-linter by @tigarmo in https://github.com/snapcore/snapcraft/pull/3931
- providers: move
get_provider()
to providers.py by @mr-cal in https://github.com/snapcore/snapcraft/pull/3940
- command: update edit-validation-sets to craft-cli by @sergiusens in https://github.com/snapcore/snapcraft/pull/3939
- lint: support the existence of 'venv' by @tigarmo in https://github.com/snapcore/snapcraft/pull/3941
- commands: allow re-editing validation sets on error by @sergiusens in https://github.com/snapcore/snapcraft/pull/3942
- providers: use new craft-providers interface by @mr-cal in https://github.com/snapcore/snapcraft/pull/3943
- tests: fix electron spread test by @mr-cal in https://github.com/snapcore/snapcraft/pull/3944
- requirements: craft-store 2.3.0 for new credentials by @sergiusens in https://github.com/snapcore/snapcraft/pull/3945
- fix: confirm provider install when using experiental extension by @Guillaumebeuzeboc in https://github.com/snapcore/snapcraft/pull/3866
- requirements: update by @sergiusens in https://github.com/snapcore/snapcraft/pull/3948
New Contributors
- @tigarmo made their first contribution in https://github.com/snapcore/snapcraft/pull/3931
Full Changelog: https://github.com/snapcore/snapcraft/compare/7.1.4...7.2.0
Source code(tar.gz)
Source code(zip)