craft-application 4.2.4__tar.gz → 4.2.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {craft_application-4.2.4/craft_application.egg-info → craft_application-4.2.6}/PKG-INFO +5 -6
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/_version.py +2 -2
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/services/config.py +11 -0
- {craft_application-4.2.4 → craft_application-4.2.6/craft_application.egg-info}/PKG-INFO +5 -6
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application.egg-info/requires.txt +4 -5
- {craft_application-4.2.4 → craft_application-4.2.6}/docs/reference/changelog.rst +16 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/pyproject.toml +4 -7
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/services/test_config.py +33 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/.editorconfig +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/.github/.jira_sync_config.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/.github/ISSUE_TEMPLATE/bug.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/.github/ISSUE_TEMPLATE/task.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/.github/release-drafter.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/.github/release-drafter.yml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/.github/renovate.json5 +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/.github/workflows/check-renovate.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/.github/workflows/cla-check.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/.github/workflows/docs.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/.github/workflows/release-drafter.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/.github/workflows/release-publish.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/.github/workflows/tests.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/.gitignore +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/.pre-commit-config.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/.readthedocs.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/.yamllint.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/HACKING.rst +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/LICENSE +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/README.rst +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/_config.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/application.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/commands/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/commands/base.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/commands/lifecycle.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/commands/other.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/errors.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/git/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/git/_errors.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/git/_git_repo.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/git/_models.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/grammar.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/launchpad/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/launchpad/errors.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/launchpad/launchpad.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/launchpad/models/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/launchpad/models/base.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/launchpad/models/build.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/launchpad/models/code.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/launchpad/models/distro.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/launchpad/models/project.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/launchpad/models/recipe.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/launchpad/util.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/misc/instance_bashrc +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/models/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/models/base.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/models/constraints.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/models/grammar.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/models/metadata.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/models/project.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/py.typed +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/remote/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/remote/errors.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/remote/git.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/remote/utils.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/remote/worktree.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/secrets.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/services/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/services/base.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/services/lifecycle.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/services/package.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/services/provider.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/services/remotebuild.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/services/request.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/services/service_factory.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/util/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/util/callbacks.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/util/docs.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/util/error_formatting.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/util/logging.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/util/paths.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/util/platforms.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/util/repositories.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/util/retry.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/util/snap_config.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/util/string.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application/util/yaml.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application.egg-info/SOURCES.txt +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application.egg-info/dependency_links.txt +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/craft_application.egg-info/top_level.txt +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/docs/conf.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/docs/explanation/build-plans.rst +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/docs/explanation/index.rst +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/docs/howto/index.rst +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/docs/howto/partitions.rst +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/docs/index.rst +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/docs/reference/environment-variables.rst +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/docs/reference/index.rst +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/docs/reference/platforms.rst +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/docs/tutorials/index.rst +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/setup.cfg +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/conftest.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/conftest.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/data/build-secrets/secret-source-folder/source-file.txt +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/data/build-secrets/testcraft.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/data/invalid_projects/build-error/testcraft.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/data/valid_projects/adoption/stderr +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/data/valid_projects/adoption/testcraft.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/data/valid_projects/basic/stderr +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/data/valid_projects/basic/testcraft.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/data/valid_projects/build-for-all/stderr +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/data/valid_projects/build-for-all/testcraft.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/data/valid_projects/environment/stderr +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/data/valid_projects/environment/testcraft.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/data/valid_projects/grammar/src/on-amd64-to-amd64/hello.txt +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/data/valid_projects/grammar/src/on-amd64-to-arm64/hello.txt +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/data/valid_projects/grammar/stderr +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/data/valid_projects/grammar/testcraft.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/launchpad/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/launchpad/conftest.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/launchpad/test_anonymous_access.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/services/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/services/test_lifecycle.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/services/test_provider.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/services/test_remotebuild.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/services/test_request.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/services/test_service_factory.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/test_application.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/test_version.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/commands/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/commands/test_base.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/commands/test_lifecycle.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/commands/test_other.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/conftest.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/git/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/git/test_errors.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/git/test_git.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/launchpad/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/launchpad/conftest.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/launchpad/models/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/launchpad/models/test_base.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/launchpad/models/test_code.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/launchpad/test_launchpad.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/launchpad/test_util.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/models/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/models/project_models/basic_project.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/models/project_models/full_project.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/models/project_models/invalid_project.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/models/test_base.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/models/test_constraints.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/models/test_grammar.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/models/test_project.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/remote/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/remote/conftest.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/remote/test_errors.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/remote/test_git.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/remote/test_utils.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/remote/test_worktree.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/services/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/services/conftest.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/services/test_lifecycle.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/services/test_package.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/services/test_provider.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/services/test_remotebuild.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/services/test_repositories.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/services/test_request.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/services/test_service_factory.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/test_application.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/test_errors.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/test_grammar.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/test_nothing.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/test_secrets.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/util/__init__.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/util/invalid_yaml/_README +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/util/invalid_yaml/duplicate_second_level.yaml-invalid +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/util/invalid_yaml/duplicate_top_level.yaml-invalid +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/util/invalid_yaml/unhashable.yaml-invalid +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/util/test_docs.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/util/test_error_formatting.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/util/test_logging.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/util/test_paths.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/util/test_platforms.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/util/test_retry.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/util/test_snap_config.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/util/test_string.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/util/test_yaml.py +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/util/valid_yaml/empty.yaml +0 -0
- {craft_application-4.2.4 → craft_application-4.2.6}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: craft-application
|
|
3
|
-
Version: 4.2.
|
|
3
|
+
Version: 4.2.6
|
|
4
4
|
Summary: A framework for *craft applications.
|
|
5
5
|
Classifier: Development Status :: 5 - Production/Stable
|
|
6
6
|
Classifier: Environment :: Console
|
|
@@ -18,15 +18,15 @@ License-File: LICENSE
|
|
|
18
18
|
Requires-Dist: craft-archives>=2.0.0
|
|
19
19
|
Requires-Dist: craft-cli>=2.6.0
|
|
20
20
|
Requires-Dist: craft-grammar>=2.0.0
|
|
21
|
-
Requires-Dist: craft-parts>=2.
|
|
22
|
-
Requires-Dist: craft-providers>=2.0.
|
|
21
|
+
Requires-Dist: craft-parts>=2.1.1
|
|
22
|
+
Requires-Dist: craft-providers>=2.0.4
|
|
23
23
|
Requires-Dist: snap-helpers>=0.4.2
|
|
24
24
|
Requires-Dist: platformdirs>=3.10
|
|
25
25
|
Requires-Dist: pydantic~=2.0
|
|
26
26
|
Requires-Dist: license-expression>=30.0.0
|
|
27
27
|
Requires-Dist: pygit2<1.15.0,>=1.13.0
|
|
28
28
|
Requires-Dist: PyYaml>=6.0
|
|
29
|
-
Requires-Dist: requests
|
|
29
|
+
Requires-Dist: requests~=2.32
|
|
30
30
|
Requires-Dist: typing_extensions>=4.4.0
|
|
31
31
|
Provides-Extra: remote
|
|
32
32
|
Requires-Dist: launchpadlib>=1.10.16; extra == "remote"
|
|
@@ -41,7 +41,6 @@ Requires-Dist: pytest-mock==3.14.0; extra == "dev"
|
|
|
41
41
|
Requires-Dist: pytest-rerunfailures==14.0; extra == "dev"
|
|
42
42
|
Requires-Dist: pytest-subprocess~=1.5.2; extra == "dev"
|
|
43
43
|
Requires-Dist: pytest-time>=0.3.1; extra == "dev"
|
|
44
|
-
Requires-Dist: requests<2.32.0; extra == "dev"
|
|
45
44
|
Requires-Dist: responses~=0.25.0; extra == "dev"
|
|
46
45
|
Requires-Dist: craft-application[remote]; extra == "dev"
|
|
47
46
|
Provides-Extra: lint
|
|
@@ -54,7 +53,7 @@ Requires-Dist: pyright==1.1.376; extra == "types"
|
|
|
54
53
|
Requires-Dist: types-requests; extra == "types"
|
|
55
54
|
Requires-Dist: types-urllib3; extra == "types"
|
|
56
55
|
Provides-Extra: docs
|
|
57
|
-
Requires-Dist: canonical-sphinx~=0.1; extra == "docs"
|
|
56
|
+
Requires-Dist: canonical-sphinx~=0.1.0; extra == "docs"
|
|
58
57
|
Requires-Dist: sphinx-autobuild==2024.9.3; extra == "docs"
|
|
59
58
|
Requires-Dist: sphinx-lint==0.9.1; extra == "docs"
|
|
60
59
|
Provides-Extra: apt
|
|
@@ -91,10 +91,21 @@ class SnapConfigHandler(ConfigHandler):
|
|
|
91
91
|
|
|
92
92
|
def __init__(self, app: application.AppMetadata) -> None:
|
|
93
93
|
super().__init__(app)
|
|
94
|
+
if not snaphelpers.is_snap():
|
|
95
|
+
raise OSError("Not running as a snap.")
|
|
94
96
|
try:
|
|
95
97
|
self._snap = snaphelpers.SnapConfig()
|
|
96
98
|
except KeyError:
|
|
97
99
|
raise OSError("Not running as a snap.")
|
|
100
|
+
except snaphelpers.SnapCtlError:
|
|
101
|
+
# Most likely to happen in a container that has the snap environment set.
|
|
102
|
+
# See: https://github.com/canonical/snapcraft/issues/5079
|
|
103
|
+
emit.progress(
|
|
104
|
+
"Snap environment is set, but cannot connect to snapd. "
|
|
105
|
+
"Snap configuration is unavailable.",
|
|
106
|
+
permanent=True,
|
|
107
|
+
)
|
|
108
|
+
raise OSError("Not running as a snap or with snapd disabled.")
|
|
98
109
|
|
|
99
110
|
@override
|
|
100
111
|
def get_raw(self, item: str) -> Any:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: craft-application
|
|
3
|
-
Version: 4.2.
|
|
3
|
+
Version: 4.2.6
|
|
4
4
|
Summary: A framework for *craft applications.
|
|
5
5
|
Classifier: Development Status :: 5 - Production/Stable
|
|
6
6
|
Classifier: Environment :: Console
|
|
@@ -18,15 +18,15 @@ License-File: LICENSE
|
|
|
18
18
|
Requires-Dist: craft-archives>=2.0.0
|
|
19
19
|
Requires-Dist: craft-cli>=2.6.0
|
|
20
20
|
Requires-Dist: craft-grammar>=2.0.0
|
|
21
|
-
Requires-Dist: craft-parts>=2.
|
|
22
|
-
Requires-Dist: craft-providers>=2.0.
|
|
21
|
+
Requires-Dist: craft-parts>=2.1.1
|
|
22
|
+
Requires-Dist: craft-providers>=2.0.4
|
|
23
23
|
Requires-Dist: snap-helpers>=0.4.2
|
|
24
24
|
Requires-Dist: platformdirs>=3.10
|
|
25
25
|
Requires-Dist: pydantic~=2.0
|
|
26
26
|
Requires-Dist: license-expression>=30.0.0
|
|
27
27
|
Requires-Dist: pygit2<1.15.0,>=1.13.0
|
|
28
28
|
Requires-Dist: PyYaml>=6.0
|
|
29
|
-
Requires-Dist: requests
|
|
29
|
+
Requires-Dist: requests~=2.32
|
|
30
30
|
Requires-Dist: typing_extensions>=4.4.0
|
|
31
31
|
Provides-Extra: remote
|
|
32
32
|
Requires-Dist: launchpadlib>=1.10.16; extra == "remote"
|
|
@@ -41,7 +41,6 @@ Requires-Dist: pytest-mock==3.14.0; extra == "dev"
|
|
|
41
41
|
Requires-Dist: pytest-rerunfailures==14.0; extra == "dev"
|
|
42
42
|
Requires-Dist: pytest-subprocess~=1.5.2; extra == "dev"
|
|
43
43
|
Requires-Dist: pytest-time>=0.3.1; extra == "dev"
|
|
44
|
-
Requires-Dist: requests<2.32.0; extra == "dev"
|
|
45
44
|
Requires-Dist: responses~=0.25.0; extra == "dev"
|
|
46
45
|
Requires-Dist: craft-application[remote]; extra == "dev"
|
|
47
46
|
Provides-Extra: lint
|
|
@@ -54,7 +53,7 @@ Requires-Dist: pyright==1.1.376; extra == "types"
|
|
|
54
53
|
Requires-Dist: types-requests; extra == "types"
|
|
55
54
|
Requires-Dist: types-urllib3; extra == "types"
|
|
56
55
|
Provides-Extra: docs
|
|
57
|
-
Requires-Dist: canonical-sphinx~=0.1; extra == "docs"
|
|
56
|
+
Requires-Dist: canonical-sphinx~=0.1.0; extra == "docs"
|
|
58
57
|
Requires-Dist: sphinx-autobuild==2024.9.3; extra == "docs"
|
|
59
58
|
Requires-Dist: sphinx-lint==0.9.1; extra == "docs"
|
|
60
59
|
Provides-Extra: apt
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
craft-archives>=2.0.0
|
|
2
2
|
craft-cli>=2.6.0
|
|
3
3
|
craft-grammar>=2.0.0
|
|
4
|
-
craft-parts>=2.
|
|
5
|
-
craft-providers>=2.0.
|
|
4
|
+
craft-parts>=2.1.1
|
|
5
|
+
craft-providers>=2.0.4
|
|
6
6
|
snap-helpers>=0.4.2
|
|
7
7
|
platformdirs>=3.10
|
|
8
8
|
pydantic~=2.0
|
|
9
9
|
license-expression>=30.0.0
|
|
10
10
|
pygit2<1.15.0,>=1.13.0
|
|
11
11
|
PyYaml>=6.0
|
|
12
|
-
requests
|
|
12
|
+
requests~=2.32
|
|
13
13
|
typing_extensions>=4.4.0
|
|
14
14
|
|
|
15
15
|
[apt]
|
|
@@ -28,12 +28,11 @@ pytest-mock==3.14.0
|
|
|
28
28
|
pytest-rerunfailures==14.0
|
|
29
29
|
pytest-subprocess~=1.5.2
|
|
30
30
|
pytest-time>=0.3.1
|
|
31
|
-
requests<2.32.0
|
|
32
31
|
responses~=0.25.0
|
|
33
32
|
craft-application[remote]
|
|
34
33
|
|
|
35
34
|
[docs]
|
|
36
|
-
canonical-sphinx~=0.1
|
|
35
|
+
canonical-sphinx~=0.1.0
|
|
37
36
|
sphinx-autobuild==2024.9.3
|
|
38
37
|
sphinx-lint==0.9.1
|
|
39
38
|
|
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
Changelog
|
|
3
3
|
*********
|
|
4
4
|
|
|
5
|
+
4.2.6 (2024-Oct-04)
|
|
6
|
+
-------------------
|
|
7
|
+
|
|
8
|
+
- Remove the ``requests<2.32.0`` constraint to resolve CVE-2024-35195.
|
|
9
|
+
|
|
10
|
+
4.2.5 (2024-Oct-04)
|
|
11
|
+
-------------------
|
|
12
|
+
|
|
13
|
+
Services
|
|
14
|
+
========
|
|
15
|
+
|
|
16
|
+
- The config service handles snap issues better.
|
|
17
|
+
|
|
18
|
+
For a complete list of commits, check out the `4.2.5`_ release on GitHub.
|
|
19
|
+
|
|
5
20
|
4.2.4 (2024-Sep-19)
|
|
6
21
|
-------------------
|
|
7
22
|
|
|
@@ -289,3 +304,4 @@ For a complete list of commits, check out the `2.7.0`_ release on GitHub.
|
|
|
289
304
|
.. _4.2.2: https://github.com/canonical/craft-application/releases/tag/4.2.2
|
|
290
305
|
.. _4.2.3: https://github.com/canonical/craft-application/releases/tag/4.2.3
|
|
291
306
|
.. _4.2.4: https://github.com/canonical/craft-application/releases/tag/4.2.4
|
|
307
|
+
.. _4.2.5: https://github.com/canonical/craft-application/releases/tag/4.2.5
|
|
@@ -6,8 +6,8 @@ dependencies = [
|
|
|
6
6
|
"craft-archives>=2.0.0",
|
|
7
7
|
"craft-cli>=2.6.0",
|
|
8
8
|
"craft-grammar>=2.0.0",
|
|
9
|
-
"craft-parts>=2.
|
|
10
|
-
"craft-providers>=2.0.
|
|
9
|
+
"craft-parts>=2.1.1",
|
|
10
|
+
"craft-providers>=2.0.4",
|
|
11
11
|
"snap-helpers>=0.4.2",
|
|
12
12
|
"platformdirs>=3.10",
|
|
13
13
|
"pydantic~=2.0",
|
|
@@ -22,8 +22,7 @@ dependencies = [
|
|
|
22
22
|
# Pygit2 changelog: https://github.com/libgit2/pygit2/blob/master/CHANGELOG.md
|
|
23
23
|
"pygit2>=1.13.0,<1.15.0",
|
|
24
24
|
"PyYaml>=6.0",
|
|
25
|
-
|
|
26
|
-
"requests<2.32",
|
|
25
|
+
"requests~=2.32",
|
|
27
26
|
"typing_extensions>=4.4.0",
|
|
28
27
|
]
|
|
29
28
|
classifiers = [
|
|
@@ -58,8 +57,6 @@ dev = [
|
|
|
58
57
|
"pytest-rerunfailures==14.0",
|
|
59
58
|
"pytest-subprocess~=1.5.2",
|
|
60
59
|
"pytest-time>=0.3.1",
|
|
61
|
-
# Pin requests because of https://github.com/msabramo/requests-unixsocket/issues/73
|
|
62
|
-
"requests<2.32.0",
|
|
63
60
|
"responses~=0.25.0",
|
|
64
61
|
"craft-application[remote]"
|
|
65
62
|
]
|
|
@@ -75,7 +72,7 @@ types = [
|
|
|
75
72
|
"types-urllib3",
|
|
76
73
|
]
|
|
77
74
|
docs = [
|
|
78
|
-
"canonical-sphinx~=0.1",
|
|
75
|
+
"canonical-sphinx~=0.1.0",
|
|
79
76
|
"sphinx-autobuild==2024.9.3",
|
|
80
77
|
"sphinx-lint==0.9.1",
|
|
81
78
|
]
|
|
@@ -15,16 +15,19 @@
|
|
|
15
15
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
"""Unit tests for the configuration service."""
|
|
17
17
|
|
|
18
|
+
import io
|
|
18
19
|
import itertools
|
|
19
20
|
import json
|
|
20
21
|
import string
|
|
21
22
|
import subprocess
|
|
22
23
|
from collections.abc import Iterator
|
|
24
|
+
from unittest import mock
|
|
23
25
|
|
|
24
26
|
import craft_application
|
|
25
27
|
import craft_cli
|
|
26
28
|
import pytest
|
|
27
29
|
import pytest_subprocess
|
|
30
|
+
import snaphelpers
|
|
28
31
|
from craft_application import launchpad
|
|
29
32
|
from craft_application.services import config
|
|
30
33
|
from hypothesis import given, strategies
|
|
@@ -136,6 +139,36 @@ def test_craft_environment_handler_error(
|
|
|
136
139
|
assert craft_environment_handler.get_raw(item) == content
|
|
137
140
|
|
|
138
141
|
|
|
142
|
+
@pytest.mark.parametrize(
|
|
143
|
+
"error",
|
|
144
|
+
[
|
|
145
|
+
KeyError("SNAP_INSTANCE_NAME something or other"),
|
|
146
|
+
snaphelpers.SnapCtlError(
|
|
147
|
+
mock.Mock(returncode=1, stderr=io.BytesIO(b"snapd socket asplode"))
|
|
148
|
+
),
|
|
149
|
+
],
|
|
150
|
+
)
|
|
151
|
+
def test_snap_config_handler_create_error(mocker, default_app_metadata, error):
|
|
152
|
+
mocker.patch("snaphelpers.is_snap", return_value=True)
|
|
153
|
+
mock_snap_config = mocker.patch(
|
|
154
|
+
"snaphelpers.SnapConfig",
|
|
155
|
+
side_effect=error,
|
|
156
|
+
)
|
|
157
|
+
with pytest.raises(OSError, match="Not running as a snap."):
|
|
158
|
+
config.SnapConfigHandler(default_app_metadata)
|
|
159
|
+
|
|
160
|
+
mock_snap_config.assert_called_once_with()
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
def test_snap_config_handler_not_snap(mocker, default_app_metadata):
|
|
164
|
+
mock_is_snap = mocker.patch("snaphelpers.is_snap", return_value=False)
|
|
165
|
+
|
|
166
|
+
with pytest.raises(OSError, match="Not running as a snap."):
|
|
167
|
+
config.SnapConfigHandler(default_app_metadata)
|
|
168
|
+
|
|
169
|
+
mock_is_snap.asssert_called_once_with()
|
|
170
|
+
|
|
171
|
+
|
|
139
172
|
@given(
|
|
140
173
|
item=strategies.text(alphabet=string.ascii_letters + "_", min_size=1),
|
|
141
174
|
content=strategies.text(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/craft_application/launchpad/launchpad.py
RENAMED
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/craft_application/launchpad/models/__init__.py
RENAMED
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/craft_application/launchpad/models/base.py
RENAMED
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/craft_application/launchpad/models/build.py
RENAMED
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/craft_application/launchpad/models/code.py
RENAMED
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/craft_application/launchpad/models/distro.py
RENAMED
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/craft_application/launchpad/models/project.py
RENAMED
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/craft_application/launchpad/models/recipe.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/craft_application/services/remotebuild.py
RENAMED
|
File without changes
|
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/craft_application/services/service_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/craft_application/util/error_formatting.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/craft_application.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/craft_application.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/docs/reference/environment-variables.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/services/test_lifecycle.py
RENAMED
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/services/test_provider.py
RENAMED
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/services/test_remotebuild.py
RENAMED
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/tests/integration/services/test_request.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/launchpad/models/test_base.py
RENAMED
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/launchpad/models/test_code.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/services/test_repositories.py
RENAMED
|
File without changes
|
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/services/test_service_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{craft_application-4.2.4 → craft_application-4.2.6}/tests/unit/util/test_error_formatting.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|