Package, distribute, and update any app for Linux and IoT.

Related tags

Build Toolssnaps
Overview

snapcraft Build Status Coverage Status Code style: black

Snapcraft

Package, distribute, and update any app for Linux and IoT.

Snaps are containerised software packages that are simple to create and install. They auto-update and are safe to run. And because they bundle their dependencies, they work on all major Linux systems without modification.

Build your first snap or learn more about how Snapcraft can help you.

Get support

We’re here to help. Ask your questions at the Snapcraft Forum. Report bugs on Launchpad.

Learn about the latest features by following Snapcraft on Twitter or Facebook.

Contribute to Snapcraft

We love contributors. Read the hacking guide if you're interested in helping out.

Comments
  • gnome extension

    gnome extension

    • [x] Have you followed the guidelines for contributing?
    • [x] Have you signed the CLA?
    • [ ] If this is a bugfix. Have you checked that there is a bug report open for the issue you are trying to fix on bug reports?
    • [x] If this is a new feature. Have you discussed the design on the forum?

    I discussed this with @kyrofa directly at snapcraft summit.

    • [x] Have you successfully run ./runtests.sh static?
    • [x] Have you successfully run ./runtests.sh tests/unit?

    I have successfully run unit and spread tests relating to this feature.


    Please review with prejudice :-)

    opened by diddledani 41
  • docker: parametrize risk and OS for image builds (core18 etc)

    docker: parametrize risk and OS for image builds (core18 etc)

    This PR allows to change Ubuntu version and risk level of docker image from command line without editing Dockerfiles as advised at https://forum.snapcraft.io/t/creating-docker-images-for-snapcraft/11739

    • [x] Have you followed the guidelines for contributing?
    • [x] Have you signed the CLA?
    • [x] Have you successfully run ./runtests.sh static?
    • [x] Have you successfully run ./runtests.sh tests/unit?

    opened by abitrolly 30
  • Add Waf plugin (LP: #1611335)

    Add Waf plugin (LP: #1611335)

    Hi, I was snapping a project using the waf build sytem (https://github.com/waf-project/waf) and realized snapcraft has no waf plugin yet. This is added by this PR together with a unittest for it.

    opened by cpaelzer 28
  • pluginhandler: support more complex stage-packages.

    pluginhandler: support more complex stage-packages.

    Currently snapcraft only supports a flat list of stage packages to be staged regardless of target architecture. This PR resolves LP: #1637282 by introducing a more complex grammar that allows one to filter stage packages depending on various selectors (target arch for right now), as well as specify optional packages.

    The grammar is made up of two statements: on and try.

    - on <selector>[,<selector>...]:
      - ...
    - else[ fail]:
      - ...
    

    The body of the on clause is taken into account if every (AND, not OR) selector is true for the target build environment. Currently the only selectors supported are target architectures (e.g. amd64).

    If the on clause doesn't match and it's immediately followed by an else clause, the else clause must be satisfied. An on clause without an else clause is considered satisfied even if no selector matched. The else fail form allows erroring out if an on clause was not matched.

    - try:
      - ...
    - else:
      - ...
    

    The body of the try clause is taken into account only when all packages contained within it are valid. If not, if it's immediately followed by else clauses they are tried in order, and one of them must be satisfied. A try clause with no else clause is considered satisfied even if it contains invalid packages.

    This PR is larger than I'd like it to be, I'm sorry about that-- I didn't see a logical place to split. Lots of the line count is tests.

    Note also that I tried to test a number of combinations, but the grammar is recursive, allowing for unlimited combinations. This could use some good poking.

    opened by kyrofa 26
  • Redo pkg-config handling with library collecting

    Redo pkg-config handling with library collecting

    pkg-config only handled PKG_CONFIG_SYSROOT_DIR as the stage dir providing many issues when using packages from installdir for a part and also build-packages from the host.

    For a full implementation, elf dependency tracking from the host to the snap is also implemented here

    LP: #1549570

    Signed-off-by: Sergio Schvezov [email protected]

    opened by sergiusens 24
  • Add support for confinement property.

    Add support for confinement property.

    Snaps need to be able to specify if they require devmode or if they can be run confined. This will allow for snapd to provide reasonable errors if one tries to install a snap that cannot run successfully under confinement.

    This PR resolves LP: #1580819 by adding the "confinement" property, which must be one of "strict" or "devmode". This property is optional, and defaults to "strict" if unspecified (to maintain backward-compatibility with current behavior). However, snapcraft init generates a YAML that sets "confinement" to "devmode" since we expect most snaps to start out needing that.

    opened by kyrofa 23
  • sources: add optional

    sources: add optional "source-checksum" property

    Features

    • Solution for LP: #1585913 bug based on work done by @tsimonq2 in PR #619 but with support only for checksums specified in the snapcraft.yml file.
    • The code adds the optional property "source-checksum" to check the integrity of the source files (tar, zip, deb or rpm).
    • The format of the property is <algorithm>/<digest>. For example:
      • sha256/de2fb61252548af3c87c4aab17e82601691d19e37fd3d29ea6288e56
    • Currently, the supported algorithms are: md5, sha1, sha224, sha256, sha384, sha512, sha3_256, sha3_384 & sha3_512
    • The sha3 support comes from pysha3 in systems where python version < 3.6.
    • ~~The size of sha2 digests is automatically detected, supporting the following bit sizes:~~
      • ~~224~~
      • ~~256~~
      • ~~384~~
      • ~~512~~

    Failsafes

    • It has the following failsafes to ensure the code always works as intended:
      • Special exception for a checksum that doesn't match
      • Raises an exception for a checksum that is invalid, or incompatible with the checksums supported

    Testing coverage

    • I have the following testing in place:
      • Integration tests:
        • Testing of each supported algorithm in raw form with a created file (tar) that has a static checksum in the snapcraft.yaml file.
        • A single test in simple-zip.
        • Tests deb-with-checksum and rpm-with-checksum created.
      • Unit tests:
        • Testing for sources that don't allow digest.
        • Testing for sources that allow digest and where the digest:
          • is correct
          • is wrong
          • uses an invalid algorithm
    opened by pachulo 22
  • Add source-checksum option

    Add source-checksum option

    This adds an optional source-checksum tag to ensure download integrity by checking the checksum.

    Features

    • It supports the following source-types:
      • source-type: tar
      • source-type: zip
    • It supports the following checksums:
      • md5
      • sha1
      • sha224
      • sha256
      • sha384
      • sha512
    • You can use it in the following ways:
      • source-checksum: HASH - raw hash
      • source-checksum: checksum.txt - local file
      • source-checksum: http(s)://example.com/checksum - remote URL

    Failsafes

    It has the following failsafes to ensure the code always works as intended:

    • Special exception for a checksum that doesn't match
    • Raises an exception for a checksum that is invalid, or incompatible with the checksums supported

    Testing coverage

    I have the following testing in place:

    • Unit tests:
      • Testing of each checksum in raw form with a created file (tar/zip) that has a static checksum
      • Creation of a checksum file and checking the checksum with that local file
      • Pulling http://tsimonq2.net/misc/snapcraft-checksum-tar and http://tsimonq2.net/misc/snapcraft-checksum-zip respectively and checking the checksum of the static file with those
      • Checking for an invalid checksum
    • Integration tests:
      • Testing of each checksum in raw form with a created file (tar/zip) that has a static checksum in the snapcraft.yaml files for simple-tar and simple-zip

    Discrepancies between this specification and the source

    If you find any difference between the code in this PR and the specification above, please comment, as that wasn't intended.

    opened by tsimonq2 22
  • plugins: add crystal v2 plugin

    plugins: add crystal v2 plugin

    • [x] Have you followed the guidelines for contributing?
    • [x] Have you signed the CLA?
    • [x] Have you successfully run ./runtests.sh static?
    • [x] Have you successfully run ./runtests.sh tests/unit?

    Initial implementation of a v2 Crystal plugin. Manually tested by loading in the changes as a local plugin and build a Crystal shard via snap.

    NOTE: You'll need to name the local plugin PluginImpl instead of CrystalPlugin

    @mamantoha If you could test with your project that would be 💯.

    Some things that still need handled:

    • [ ] I'm not sure how to replicate the elf stuff in the v1 plugin given there isn't a place to run arbitrary code like that after build? Maybe @bcardiff would have an idea?
    • [x] Is there a better way to move the built binaries than just cp?
      • Ideally we update it once https://github.com/crystal-lang/shards/issues/518 is implemented/released
    • [x] Do I need to write a spread test for the v2 plugin? I didn't see one for go or rust so I didn't bother...

    (CRAFT-823)

    opened by Blacksmoke16 21
  • Add support for hooks.

    Add support for hooks.

    Hooks are now supported in snapd and the click reviewer tools. Time to finish off LP: #1586465 by supporting them in snapcraft as well. This is done declaratively via a hooks option in the snapcraft.yaml, for example:

    hooks:
      configure:
        command: run-my-hook
        plugs: [network]
    

    This works exactly like apps, where run-my-hook should be a binary available within the snap. Then during the prime step, snapcraft will generate the hook (the configure hook in this example), which calls the command supplied.

    opened by kyrofa 20
  • Remove Unicode quotes from help text

    Remove Unicode quotes from help text

    Help text has Unicode quotes in a few places, which breaks help output as noted in https://bugs.launchpad.net/snapcraft/+bug/1555733. This change replaces them with ASCII quotes

    opened by ssweeny 20
  • build(deps): bump setuptools from 49.6.0 to 65.5.1

    build(deps): bump setuptools from 49.6.0 to 65.5.1

    Bumps setuptools from 49.6.0 to 65.5.1.

    Release notes

    Sourced from setuptools's releases.

    v65.5.1

    No release notes provided.

    v65.5.0

    No release notes provided.

    v65.4.1

    No release notes provided.

    v65.4.0

    No release notes provided.

    v65.3.0

    No release notes provided.

    v65.2.0

    No release notes provided.

    v65.1.1

    No release notes provided.

    v65.1.0

    No release notes provided.

    v65.0.2

    No release notes provided.

    v65.0.1

    No release notes provided.

    v65.0.0

    No release notes provided.

    v64.0.3

    No release notes provided.

    v64.0.2

    No release notes provided.

    v64.0.1

    No release notes provided.

    v64.0.0

    No release notes provided.

    v63.4.3

    No release notes provided.

    v63.4.2

    No release notes provided.

    ... (truncated)

    Changelog

    Sourced from setuptools's changelog.

    v65.5.1

    Misc ^^^^

    • #3638: Drop a test dependency on the mock package, always use :external+python:py:mod:unittest.mock -- by :user:hroncok
    • #3659: Fixed REDoS vector in package_index.

    v65.5.0

    Changes ^^^^^^^

    • #3624: Fixed editable install for multi-module/no-package src-layout projects.
    • #3626: Minor refactorings to support distutils using stdlib logging module.

    Documentation changes ^^^^^^^^^^^^^^^^^^^^^

    • #3419: Updated the example version numbers to be compliant with PEP-440 on the "Specifying Your Project’s Version" page of the user guide.

    Misc ^^^^

    • #3569: Improved information about conflicting entries in the current working directory and editable install (in documentation and as an informational warning).
    • #3576: Updated version of validate_pyproject.

    v65.4.1

    Misc ^^^^

    v65.4.0

    Changes ^^^^^^^

    v65.3.0

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies python 
    opened by dependabot[bot] 1
  • docs: update HACKING.md to recurse submodules

    docs: update HACKING.md to recurse submodules

    • [X] Have you followed the guidelines for contributing?
    • [X] Have you signed the CLA?
    • [X] Have you successfully run make lint?
    • [X] Have you successfully run pytest tests/unit?

    A minor HACKING.md update requested by @giusebar.

    I recently added snapd-testing-tools as a submodule. This submodule is required for running spread tests, so now I've updated the hacking instructions.

    opened by mr-cal 1
  • Testing: Lint and test using Tox

    Testing: Lint and test using Tox

    Configures tox for linting and unit testing and provides a GitHub workflow for running Tox.

    Does not disable old linting and testing yet for the sake of comparison.

    (CRAFT-1513)

    opened by lengau 0
  • Suggest an arguably simpler alternative

    Suggest an arguably simpler alternative

    The dev container can also be accessed via su - ubuntu. This suggestion does not have a lot of practical relevance, the command is slightly shorter though :)

    Signed-off-by: Nicolas Bock [email protected]

    • [x] Have you followed the guidelines for contributing?
    • [x] Have you signed the CLA?
    • [x] Have you successfully run make lint?
    • [x] Have you successfully run pytest tests/unit?

    opened by nicolasbock 1
  • Make test_patcher tests not require a real patchelf in /usr/bin

    Make test_patcher tests not require a real patchelf in /usr/bin

    Discovered this accidentally thanks to a ~/.bashrc that put /bin before /usr/bin in $PATH.

    I'm not entirely sure this was unintentional, so unless someone else knows we should probably wait for @sergiusens.

    opened by lengau 0
  • experimental: disable overlay feature

    experimental: disable overlay feature

    Signed-off-by: Claudio Matsuoka [email protected]

    • [ ] Have you followed the guidelines for contributing?
    • [ ] Have you signed the CLA?
    • [ ] Have you successfully run make lint?
    • [ ] Have you successfully run pytest tests/unit?

    do-not-merge 
    opened by cmatsuoka 0
Releases(7.2.10)
  • 7.2.10(Dec 14, 2022)

    What's Changed

    • dependencies: update craft-providers to 1.6.2 by @mr-cal in https://github.com/snapcore/snapcraft/pull/3999
      • disables automatic snap refreshes inside of instances

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.2.9...7.2.10

    Source code(tar.gz)
    Source code(zip)
  • 7.2.9(Nov 28, 2022)

    What's Changed

    • ci: remove docker before building snap by @mr-cal in https://github.com/snapcore/snapcraft/pull/3990
    • linters: don't list dynamic linker as missing library by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3989
    • dependencies: update craft-parts to 1.15.2 by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3993

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.2.8...7.2.9

    Source code(tar.gz)
    Source code(zip)
  • 7.2.8(Nov 28, 2022)

    What's Changed

    • tests: allow local git submodules by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3979
    • lifecycle: fix double emit.pause() call by @mr-cal in https://github.com/snapcore/snapcraft/pull/3982
    • linters: fix classic linter interpreter warning by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3978

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.2.7...7.2.8

    Source code(tar.gz)
    Source code(zip)
  • 7.2.7(Nov 4, 2022)

    What's Changed

    • snap config: catch more errors when config cannot be retrieved by @mr-cal in https://github.com/snapcore/snapcraft/pull/3974

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.2.6...7.2.7

    Source code(tar.gz)
    Source code(zip)
  • 7.2.6(Nov 4, 2022)

    What's Changed

    • snap config: do not crash when config cannot be retrieved by @mr-cal in https://github.com/snapcore/snapcraft/pull/3971

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.2.5...7.2.6

    Source code(tar.gz)
    Source code(zip)
  • 7.2.5(Nov 2, 2022)

    What's Changed

    • Setup snapd for snapcraft_legacy providers by @mr-cal in https://github.com/snapcore/snapcraft/pull/3962

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.2.4...7.2.5

    Source code(tar.gz)
    Source code(zip)
  • 7.2.4(Nov 2, 2022)

    What's Changed

    • ua: do not re-enable enabled services by @mr-cal in https://github.com/snapcore/snapcraft/pull/3960
    • ua: do not re-enable enabled services for snapcraft_legacy by @mr-cal in https://github.com/snapcore/snapcraft/pull/3961
    • requirements: update craft-providers to v1.6.1 by @mr-cal in https://github.com/snapcore/snapcraft/pull/3969

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.2.3...7.2.4

    Source code(tar.gz)
    Source code(zip)
  • 7.2.3(Oct 26, 2022)

    What's Changed

    • meta: fix snap.yaml app slots by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3959

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.2.2...7.2.3

    Source code(tar.gz)
    Source code(zip)
  • 7.2.2(Oct 26, 2022)

    What's Changed

    • onprem store: support new credentials format by @sergiusens in https://github.com/snapcore/snapcraft/pull/3955

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.2.1...7.2.2

    Source code(tar.gz)
    Source code(zip)
  • 7.2.1(Oct 20, 2022)

    What's Changed

    • legacy/plugins: improve nil plugin docstring by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3949
    • providers: capture logs with debug-level logging by @mr-cal in https://github.com/snapcore/snapcraft/pull/3950

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.2.0...7.2.1

    Source code(tar.gz)
    Source code(zip)
  • 7.2.0(Oct 12, 2022)

    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

    asciicast

    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)
  • 7.1.4(Sep 1, 2022)

    What's Changed

    • cli: disable log filename report in managed hosts by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3891
    • requirements: update craft-providers to 1.4.1 by @mr-cal in https://github.com/snapcore/snapcraft/pull/3896
    • cli: graciously handle keyboard interrupt by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3897
    • parts: allow debug shell after the lifecycle by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3895

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.1.3...7.1.4

    Source code(tar.gz)
    Source code(zip)
  • 7.1.3(Sep 1, 2022)

    What's Changed

    • cli: parse http-proxy and https-proxy by @mr-cal in https://github.com/snapcore/snapcraft/pull/3884
    • providers: delete instances via Executor object by @mr-cal in https://github.com/snapcore/snapcraft/pull/3875
    • cli: add legacy envvar for logging and check stdin by @sergiusens in https://github.com/snapcore/snapcraft/pull/3889

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.1.2...7.1.3

    Source code(tar.gz)
    Source code(zip)
  • 7.1.2(Aug 22, 2022)

    What's Changed

    • meta: add support for riscv64 by @mr-cal in https://github.com/snapcore/snapcraft/pull/3868
    • tests: enable provider spread tests for core22 by @mr-cal in https://github.com/snapcore/snapcraft/pull/3877
    • requirements: update craft-parts to 1.12.1 by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3879
    • tests: uprev miniconda by @sergiusens in https://github.com/snapcore/snapcraft/pull/3881
    • kde extension: new content snap for core20 by @ppd in https://github.com/snapcore/snapcraft/pull/3846

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.1.1...7.1.2

    Source code(tar.gz)
    Source code(zip)
  • 7.1.1(Aug 4, 2022)

    What's Changed

    • cli: add KeyAlreadyExists error by @mr-cal in https://github.com/snapcore/snapcraft/pull/3844
    • names.py: correct typo "logged it" to "logged in" by @rpjday in https://github.com/snapcore/snapcraft/pull/3845
    • meta: add support for s390x by @mr-cal in https://github.com/snapcore/snapcraft/pull/3850
    • repo: fix_pkg_config removes prefixes from staged snap's .pc files. by @mr-cal in https://github.com/snapcore/snapcraft/pull/3848
    • plugins: early registration of application plugins by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3856
    • cli: fixup args to list-validation-sets by @sergiusens in https://github.com/snapcore/snapcraft/pull/3858
    • requirements: update craft-parts to 1.10.2 by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3857
    • extensions: Do not default to Nvidia VDPAU by @nteodosio in https://github.com/snapcore/snapcraft/pull/3855

    New Contributors

    • @rpjday made their first contribution in https://github.com/snapcore/snapcraft/pull/3845
    • @nteodosio made their first contribution in https://github.com/snapcore/snapcraft/pull/3855

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.1.0...7.1.1

    Source code(tar.gz)
    Source code(zip)
  • 7.1.0(Jul 20, 2022)

    What's Changed

    • lifecyle: root level build-packages and build-snaps by @sergiusens in https://github.com/snapcore/snapcraft/pull/3790
    • extensions: method to get data dir by @sergiusens in https://github.com/snapcore/snapcraft/pull/3810
    • commands,providers: implement ssh directory bind by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3796
    • extensions: prepend and append functions for ENV by @sergiusens in https://github.com/snapcore/snapcraft/pull/3811
    • lint: bump pylint by @mr-cal in https://github.com/snapcore/snapcraft/pull/3813
    • utils: move process_version to utils.py by @mr-cal in https://github.com/snapcore/snapcraft/pull/3815
    • spread: set colcon for 18.04 to manual by @sergiusens in https://github.com/snapcore/snapcraft/pull/3817
    • project: method to return snaps to install by @sergiusens in https://github.com/snapcore/snapcraft/pull/3816
    • extensions: use pydantic to validate yaml before expanding by @mr-cal in https://github.com/snapcore/snapcraft/pull/3814
    • fix(colcon-core18-test): use underscore instead of dash by @Guillaumebeuzeboc in https://github.com/snapcore/snapcraft/pull/3818
    • projects: add support for sigint by @Guillaumebeuzeboc in https://github.com/snapcore/snapcraft/pull/3782
    • providers: specify build-on and build-for in instance name by @mr-cal in https://github.com/snapcore/snapcraft/pull/3820
    • pack: specify snap filename by @mr-cal in https://github.com/snapcore/snapcraft/pull/3819
    • architectures: add schema support by @mr-cal in https://github.com/snapcore/snapcraft/pull/3812
    • extensions: add core22 gnome by @sergiusens in https://github.com/snapcore/snapcraft/pull/3798
    • pack: only print the basename of the snap filename by @sergiusens in https://github.com/snapcore/snapcraft/pull/3822
    • requirements: update craft-parts to 1.8.1 by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3825
    • hotfix/7.0.9 merge by @sergiusens in https://github.com/snapcore/snapcraft/pull/3827
    • Hotfix/7.0.10 merge by @sergiusens in https://github.com/snapcore/snapcraft/pull/3830
    • cli: update craft-cli to comply with UX guidelines by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3833
    • Hotfix/7.0.11 merge by @sergiusens in https://github.com/snapcore/snapcraft/pull/3834
    • Add core22 colcon plugin / ros2-humble extension by @artivis in https://github.com/snapcore/snapcraft/pull/3750
    • build(deps): bump lxml from 4.9.0 to 4.9.1 by @dependabot in https://github.com/snapcore/snapcraft/pull/3829
    • meta: architectures by @mr-cal in https://github.com/snapcore/snapcraft/pull/3821
    • utils: add calls to find host and snap tools by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3838
    • Fix gnome extension g-ir-scanner PYTHONPATH by @diddledani in https://github.com/snapcore/snapcraft/pull/3835
    • elf: add elf file handler class by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3839
    • snapcraft/meta: make Manifest.base optional by @jhenstridge in https://github.com/snapcore/snapcraft/pull/3836
    • elf: add handling and patching helpers by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3840
    • fix: hooks: process generated hooks by @mr-cal in https://github.com/snapcore/snapcraft/pull/3837
    • requirements: update by @sergiusens in https://github.com/snapcore/snapcraft/pull/3842
    • elf: add elf file patcher by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3841
    • parts: Do not import craft_parts.packages.deb until needed by @valentindavid in https://github.com/snapcore/snapcraft/pull/3843

    New Contributors

    • @valentindavid made their first contribution in https://github.com/snapcore/snapcraft/pull/3843

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.0.11...7.1.0

    Source code(tar.gz)
    Source code(zip)
  • 7.0.10(Jul 7, 2022)

    What's Changed

    • manifest: correctly handle unspecified stage packages by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3828

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.0.9...7.0.10

    Source code(tar.gz)
    Source code(zip)
  • 7.0.9(Jul 6, 2022)

    What's Changed

    • meta: create manifest file by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3824

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.0.8...7.0.9

    Source code(tar.gz)
    Source code(zip)
  • 7.0.8(Jun 24, 2022)

    What's Changed

    • store: export-login with legacy by @sergiusens in https://github.com/snapcore/snapcraft/pull/3797
    • export-login: clarify use of exported tokens by @sergiusens in https://github.com/snapcore/snapcraft/pull/3799
    • status command: static linting by @sergiusens in https://github.com/snapcore/snapcraft/pull/3802
    • package repositories: ensure dependencies are installed before use by @sergiusens in https://github.com/snapcore/snapcraft/pull/3801
    • package repositories: force package refresh by @sergiusens in https://github.com/snapcore/snapcraft/pull/3804
    • spread: add build packages to package repository tests by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3806
    • store: support configparser credentials by @sergiusens in https://github.com/snapcore/snapcraft/pull/3805
    • promote: add snap-name to args by @sergiusens in https://github.com/snapcore/snapcraft/pull/3807
    • store: login requires no exported credentials by @sergiusens in https://github.com/snapcore/snapcraft/pull/3808
    • store: correct login for register-key by @sergiusens in https://github.com/snapcore/snapcraft/pull/3809

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.0.7...7.0.8

    Source code(tar.gz)
    Source code(zip)
  • 7.0.7(Jun 24, 2022)

    What's Changed

    • legacy plugins: backwards compatibility by @sergiusens in https://github.com/snapcore/snapcraft/pull/3795

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.0.6...7.0.7

    Source code(tar.gz)
    Source code(zip)
  • 7.0.6(Jun 16, 2022)

    What's Changed

    • cli: message with more information about keyring by @sergiusens in https://github.com/snapcore/snapcraft/pull/3793
    • store: full support for legacy login by @sergiusens in https://github.com/snapcore/snapcraft/pull/3794

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.0.5...7.0.6

    Source code(tar.gz)
    Source code(zip)
  • 7.0.5(Jun 15, 2022)

    What's Changed

    • packaging: ignore craftctl python environment variables by @cmatsuoka in https://github.com/snapcore/snapcraft/pull/3791
    • commands: add legacy push by @sergiusens in https://github.com/snapcore/snapcraft/pull/3792

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.0.4...7.0.5

    Source code(tar.gz)
    Source code(zip)
  • 7.0.4(Jun 14, 2022)

    What's Changed

    • lint: apply black to parts directories by @mr-cal in https://github.com/snapcore/snapcraft/pull/3787
    • parts: correct spelling of build-base in yaml_utils.load by @jhenstridge in https://github.com/snapcore/snapcraft/pull/3788
    • store: support login --with by @sergiusens in https://github.com/snapcore/snapcraft/pull/3789

    Full Changelog: https://github.com/snapcore/snapcraft/compare/7.0.3...7.0.4

    Source code(tar.gz)
    Source code(zip)
  • 7.0.3(Jun 10, 2022)

    • setup assets: ensure hooks when command-chain is present
    • provider: forward SNAPCRAFT_ENABLE_EXPERIMENTAL_EXTENSIONS
    • core20 ros plugin: build failure should stop snapcraft
    • parts,projects: add verifications and warnings
    • parts: fix metadata extraction dirs
    • cli: reset the logger before running legacy
    • extensions: refactor
    • meta: handle version git
    • enviroment: deprecate ld.conf.so library path searching for libgl1-mesa
    • pack: display snap filename
    • ci: add branch to sergiusens/actions-publish
    • providers: update craft-providers
    Source code(tar.gz)
    Source code(zip)
  • 7.0.2(Jun 10, 2022)

    • pack: check if output directory is current working directory
    • parts: don't copy metadata if already at destination
    • parts: fix base package cutoff
    Source code(tar.gz)
    Source code(zip)
  • 7.0.1(Jun 10, 2022)

    • legacy: plugins: convert paths to strings for commands
    • repo: enable package repository architectures
    • parts: copy kernel.yaml and gadget.yaml
    • pack: check skeleton
    • extensions/desktop: preload bindtextdomain from snap first if it exists
    • cli: enable craft-store logging
    • cli: disable new pylint false positive
    • project: support system-usernames
    • parts: define variables and expand them in snapcraft.yaml
    • slots: allow lists
    • parts: replace snapcraft command-chain with environment
    • craftctl: add snapcraftctl compatibility wrapper
    • spread: move core22 to stable
    • requirements: update dependencies
    • meta: add slots
    • parts: fix parallel build count
    • environment: get LD_LIBRARY_PATH and migrate setup logic
    Source code(tar.gz)
    Source code(zip)
  • 7.0(May 25, 2022)

    Support for core22 as a base

    Support for the core22 base introduces a new lifecycle with the introduction of craft-parts.

    These changes are applicable when switching to core22:

    • Add craftctl tool replacing snapcraftctl (this also requires replacing snapcraftctl <step-name> with craftctl default and snapcraftctl set-version <value> with craftctl set version=<value>).
    • Define CRAFT_* environment variables during step execution, replacing SNAPCRAFT_* variables.
    • Remove try from advanced grammar, this enables a more predictable planning phase without requiring an execution environment to attest what is tried. With this change, grammar has been generalized enough to allow for adding grammar seamlessly to all snapcraft supported keywords.
    • Error when duplicate keys are used in snapcraft.yaml.
    • Root level build-packages no longer supported
    • Snapcraft now makes use of the global environment keyword instead of command-chain (which allows for easy overriding)

    Follow the migration guide for hints on https://forum.snapcraft.io/t/micro-howto-migrate-from-core20-to-core22/30188 for more information.

    Build Providers

    With the move to craft-providers, Snapcraft now defaults to LXD as the build environment.

    Command Line Interface

    Packing or Snapping

    The snapping process, to align with other crafting tools, is now called pack. So instead of

    $ snapcraft snap
    

    run

    $ snapcraft pack
    

    The option of running with no arguments is still supported and defaults to packing:

    $ snapcraft
    

    Store operations with externally generated credentials

    Snapcraft has migrated to usinng craft-store. The authentication mechanism has changed, impacting those integrating with CI/CD. The snapcraft login --with command structure is no longer supported or required. The value of export login needs to be exported into the appropriate environment variable (i.e.; SNAPCRAFT_STORE_CREDENTIALS).

    Additionally a working keyring is required to be able to store credentials locally.

    Experimental login

    To change the authentication mechanism, instead of snapcraft login --enable-experimental-login, instead set SNAPCRAFT_STORE_AUTH=candid

    Listing snap names

    Instead of running

    $ snapcraft list
    

    run:

    $ snapcraft names
    

    Missing features

    Don’t migrate yet if you depend on any of these

    • Support for the architectures keyword
    • Automatic classic snap building support (ORIGIN paths and linker loader setup)
    • Plugins: ROS, crystal, qmake
    • Some source handlers: 7zip, mercurial, bazaar, deb, rpm
    • Support for user-defined plugins.

    Missing features will be ported and added to upcoming 7.x releases. If your snap relies on any of these features, please wait for the next releases to port them to use base: core22.

    Source code(tar.gz)
    Source code(zip)
  • 6.1(Mar 21, 2022)

    What's Changed

    Git Sources

    • sources: make submodule fetching configurable by @mr-cal in https://github.com/snapcore/snapcraft/pull/3629

    More fine grained source fetching, three new scenarios are supported:

    1. fetching only listed submodules, in the defined source-submodules
    parts:
      git-test:
        plugin: dump
        source-type: git
        source: [email protected]...
        source-submodules:
          - submodule_1
          - dir1/submodule_2
    
    1. excluding all submodules with an empty list
    parts:
      git-test:
        plugin: dump
        source-type: git
        source: [email protected]...
        source-submodules: []
    
    1. not defined (the default), all submodules are fetched

    Plugins

    NPM plugin

    • npm plugin: allow running as root by @om26er in https://github.com/snapcore/snapcraft/pull/3624
    • npm plugin: extract node archive without preserving ownership by @om26er in https://github.com/snapcore/snapcraft/pull/3625

    Autotools

    • Autotools Plugin (v1): Fix fatal crash when running autogen.sh or bootstrap by @diddledani in https://github.com/snapcore/snapcraft/pull/3628

    Gradle

    • feat: add support for JDK 17 in the Gradle plugin by @lupino3 in https://github.com/snapcore/snapcraft/pull/3661

    ROS

    • ROS plugins v2: respect source-subdir key by @Guillaumebeuzeboc in https://github.com/snapcore/snapcraft/pull/3664
    • colcon v2: forward cmake args by @artivis in https://github.com/snapcore/snapcraft/pull/3638

    Extensions

    KDE

    • extension: compose and deadkeys for neon by @sergiusens in https://github.com/snapcore/snapcraft/pull/3643
    • set lzo compression by default in kde-neon extension by @jriddell in https://github.com/snapcore/snapcraft/pull/3595
    • kde extension: new content snap for core20 by @jriddell in https://github.com/snapcore/snapcraft/pull/3658

    Command Line Interface

    • dependencies: missing library resolution by @mr-cal in https://github.com/snapcore/snapcraft/pull/3634
    • cli: reintroduce remote-build and promote to snapcraft help by @aritra24 in https://github.com/snapcore/snapcraft/pull/3648

    Since the /usr merge with / the potentially missing stage-packages to add and solve missing dependencies was not working correctly on core20, this has now been fixed

    The two command line client commands that were previously hidden, promote and remote-build, are now displayed as part of the general help.

    core22 parts lifecycle opt-in for core20

    • lifecycle: core22 lifecycle conditional on build-attributes entry by @sergiusens in https://github.com/snapcore/snapcraft/pull/3622
    • lifecycle: fix behavior for core22-step-dependencies by @facundobatista in https://github.com/snapcore/snapcraft/pull/3641

    To make use of this feature, something like this is needed

    parts:
        part1:
            source: ....
            plugin: make
            build-attributes: [core22-step-dependencies]
    

    Schema

    • schema: add support for activates-on app property to schema by @jhenstridge in https://github.com/snapcore/snapcraft/pull/3425

    Other

    • spread: update error when local snap is missing by @sergiusens in https://github.com/snapcore/snapcraft/pull/3640
    • tools: update staging store URL for uploading blobs by @nessita in https://github.com/snapcore/snapcraft/pull/3656
    • tests: update spread url by @mr-cal in https://github.com/snapcore/snapcraft/pull/3663
    • docker: fix Python installationby @mhoeher in https://github.com/snapcore/snapcraft/pull/3607
    • build(deps): bump pyyaml from 5.3 to 5.4 by @dependabot in https://github.com/snapcore/snapcraft/pull/3490

    New Contributors

    • @om26er made their first contribution in https://github.com/snapcore/snapcraft/pull/3624
    • @aritra24 made their first contribution in https://github.com/snapcore/snapcraft/pull/3648
    • @lupino3 made their first contribution in https://github.com/snapcore/snapcraft/pull/3661
    • @mhoeher made their first contribution in https://github.com/snapcore/snapcraft/pull/3607
    • @Guillaumebeuzeboc made their first contribution in https://github.com/snapcore/snapcraft/pull/3664

    Full Changelog: https://github.com/snapcore/snapcraft/compare/6.0.2...6.1

    Source code(tar.gz)
    Source code(zip)
  • 6.0.2(Jan 17, 2022)

    What's Changed

    • Revert "lifecycle: do not stage deps for pull on core20" by @sergiusens in https://github.com/snapcore/snapcraft/pull/3620

    Full Changelog: https://github.com/snapcore/snapcraft/compare/6.0.1...6.0.2

    Source code(tar.gz)
    Source code(zip)
  • 6.0.1(Jan 11, 2022)

    What's Changed

    • desktop: improve shell substitution logic by @sergiusens in https://github.com/snapcore/snapcraft/pull/3599
    • extensions/kde-neon: use platform snap as plug name by @ppd in https://github.com/snapcore/snapcraft/pull/3596
    • extension/desktop: Prevent keeping updating when there is no user use… by @didrocks in https://github.com/snapcore/snapcraft/pull/3584
    • remote build: use channel defaults (CRAFT-568) by @sergiusens in https://github.com/snapcore/snapcraft/pull/3600
    • autotools v1 plugin: set correct file permissions for scripts (CRAFT-666) by @sergiusens in https://github.com/snapcore/snapcraft/pull/3601
    • spread: switch to yarn for electron-builder test by @sergiusens in https://github.com/snapcore/snapcraft/pull/3602
    • lifecycle: do not stage deps for pull on core20 (CRAFT-725) by @sergiusens in https://github.com/snapcore/snapcraft/pull/3610
    • extensions/kde-neon: declare non-experimental for core20 by @ppd in https://github.com/snapcore/snapcraft/pull/3598
    • build(deps): bump lxml from 4.6.3 to 4.6.5 by @dependabot in https://github.com/snapcore/snapcraft/pull/3606
    • extensions/desktop: add layout for libdrm by @kenvandine in https://github.com/snapcore/snapcraft/pull/3611
    • spread: change uri for flutter's pubspec to https by @sergiusens in https://github.com/snapcore/snapcraft/pull/3615
    • snap: do not refresh already installed snaps by @sergiusens in https://github.com/snapcore/snapcraft/pull/3617

    New Contributors

    • @ppd made their first contribution in https://github.com/snapcore/snapcraft/pull/3596

    Full Changelog: https://github.com/snapcore/snapcraft/compare/6.0...6.0.1

    Source code(tar.gz)
    Source code(zip)
Python-based continuous integration testing framework; your pull requests are more than welcome!

Buildbot The Continuous Integration Framework Buildbot is based on original work from Brian Warner, and currently maintained by the Botherders. Visit

Buildbot 5k Jan 05, 2023
Python program for installing many tools automatically

Tool Installer is a script made with python which help user in installing tools automatically

Spider Anongreyhat 6 Mar 13, 2022
Pythonic task management & command execution.

Welcome to Invoke! Invoke is a Python (2.7 and 3.4+) library for managing shell-oriented subprocesses and organizing executable Python code into CLI-i

3.8k Jan 06, 2023
Clang-based cross platform build system written in Python

Clang-build Find the full documentation at https://clang-build.readthedocs.io First steps Customisations Multiple targets Multiple projects Defaults M

Trick 17 9 Jun 29, 2022
Building JUCE projects using CMake made easy

FRUT makes it easy to build JUCE projects using CMake instead of Projucer. It enables more flexibility in project architecture, simplified CI setup, a

Alain Martin 341 Jan 08, 2023
A pynt of Python build.

A pynt of Python build. Raghunandan Rao Features Easy to learn. Build tasks are just python funtions. Manages dependencies between tasks. Automaticall

Raghunandan Rao 154 Jan 04, 2023
Buildout is a deployment automation tool written in and extended with Python

Buildout Buildout is a project designed to solve 2 problems: Application-centric assembly and deployment Assembly runs the gamut from stitching togeth

buildout 552 Nov 26, 2022
Smaller, easier, more powerful, and more reliable than make. An implementation of djb's redo.

redo - a recursive build system Smaller, easier, more powerful, and more reliable than make. This is an implementation of Daniel J. Bernstein's redo b

1.7k Jan 04, 2023
This is a simple tool for bootstrapping Chimera systems from binaries. For source builds, you want cports.

chimera-bootstrap This is a simple tool for bootstrapping Chimera systems from binaries. For source builds, you want cports. Simple usage: $ # run as

Chimera Linux 7 Feb 11, 2022
Official project repository for the Setuptools build system

See the Installation Instructions in the Python Packaging User's Guide for instructions on installing, upgrading, and uninstalling Setuptools. Questio

Python Packaging Authority 1.9k Jan 08, 2023
Utilities for interacting with PyPI

twine Twine is a utility for publishing Python packages on PyPI. It provides build system independent uploads of source and binary distribution artifa

Python Packaging Authority 1.4k Jan 05, 2023
PlatformIO is a professional collaborative platform for embedded development :alien: A place where Developers and Teams have true Freedom! No more vendor lock-in!

PlatformIO Quick Links: Web | PlatformIO IDE | Project Examples | Docs | Donate | Contact Us Social: LinkedIn | Twitter | Facebook | Community Forums

PlatformIO 6.5k Jan 08, 2023
Python-based project scripting.

Paver - Easy Scripting for Software Projects Web: https://pythonhosted.org/Paver/ Download: https://pypi.python.org/pypi/Paver/ Source: https://github

Paver community 452 Dec 09, 2022
Python package used on Hardfight projects to make building, testing and deploying easy.

Hardfight Devtools Build, test and deploy Hardfight projects easly 💡 What is it Devtools is a Python tool to make building, testing and deploying int

Hardfight 1 Dec 05, 2021
bitbake tool

Bitbake ======= BitBake is a generic task execution engine that allows shell and Python tasks to be run efficiently and in parallel while working wit

openembedded 336 Dec 27, 2022
A Star Trek Online build tool in Python

SETS - STO Equipment and Trait Selector A Star Trek Online build tool in Python Description Pre-alpha version of build tool for STO Getting Started De

Star Trek Online Community Developers 7 Nov 12, 2022
Simplified packaging of Python modules

Flit is a simple way to put Python packages and modules on PyPI. It tries to require less thought about packaging and help you avoid common mistakes.

Thomas Kluyver 1.9k Jan 05, 2023
Package, distribute, and update any app for Linux and IoT.

Snapcraft Package, distribute, and update any app for Linux and IoT. Snaps are containerised software packages that are simple to create and install.

1.1k Jan 02, 2023
The Pants Build System

Pants Build System Pants is a scalable build system for monorepos: codebases containing multiple projects, often using multiple programming languages

Pants Build 2.5k Jan 07, 2023
🔨🐍Make-like build automation tool for Python projects with extensive DSL features.

Pyke (WIP, Beta Release) Make-like build automation tool for Python projects with extensive DSL features. Features: Users can specify tasks, subtasks,

Ire 17 Jul 05, 2022