Skip to content

feat: support ubuntu@24.04 devel rocks#458

Merged
tigarmo merged 3 commits into
mainfrom
CRAFT-2394-noble-rock
Feb 7, 2024
Merged

feat: support ubuntu@24.04 devel rocks#458
tigarmo merged 3 commits into
mainfrom
CRAFT-2394-noble-rock

Conversation

@tigarmo
Copy link
Copy Markdown
Collaborator

@tigarmo tigarmo commented Jan 22, 2024

This PR is a prototype/wip implementation of the same support for devel bases that Snapcraft has. The gist of it is: to build a noble-based rock, while noble is still in development, one can do:

base: ubuntu@24.04
build-base: devel

The PR is still in draft and has some failing integration tests but I'm putting it up for two reasons:

  1. To add some spread tests to see whether we're able to build noble rocks at all (we are)
  2. To have a place to discuss/argue so we can decide on the path forward and support 24.04 sooner rather than later.

So, have at it!

@tigarmo tigarmo force-pushed the CRAFT-2394-noble-rock branch from 36e48b4 to f8f885a Compare January 23, 2024 17:39
Comment thread tests/spread/general/base-devel/rockcraft.orig.yaml
Copy link
Copy Markdown
Contributor

@cjdcordeiro cjdcordeiro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Noice!! Just a couple of minor comments

Comment thread rockcraft/models/project.py
Comment thread tests/spread/general/base-devel/rockcraft.orig.yaml
@tigarmo tigarmo marked this pull request as ready for review January 25, 2024 10:27
@tigarmo
Copy link
Copy Markdown
Collaborator Author

tigarmo commented Jan 25, 2024

@cjdcordeiro I think it's ready for re-review

@tigarmo tigarmo requested a review from cmatsuoka January 25, 2024 10:29
Comment thread docs/reference/rockcraft.yaml.rst
@tigarmo tigarmo requested a review from cjdcordeiro January 25, 2024 10:43
Comment thread rockcraft/models/project.py Outdated
@tigarmo tigarmo requested a review from cjdcordeiro February 7, 2024 14:06
Copy link
Copy Markdown
Contributor

@cjdcordeiro cjdcordeiro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the test is taking forever but it lgtm if it passes

Version 1.22.0 fixes the issue of trying to update /etc/apt/sources.list
in devel images (file is no longer there since Noble).
Includes a warning if using a devel base
This commit updates the rock's internal metadata (the file /.rock/metadata.yaml)
with an extra "grade: devel" key if the project's build-base is "devel". This is
to provide some amount of traceability/record that the rock was originally
created from a development base.
@tigarmo tigarmo force-pushed the CRAFT-2394-noble-rock branch from 349ca0b to a230b84 Compare February 7, 2024 18:24
@tigarmo tigarmo merged commit f47fabe into main Feb 7, 2024
@tigarmo tigarmo deleted the CRAFT-2394-noble-rock branch February 7, 2024 20:15
tigarmo pushed a commit that referenced this pull request Nov 26, 2025
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
tigarmo added a commit that referenced this pull request Mar 26, 2026
* chore: remove dynamic readme field (#388)

* ci(tics): add branch for troubleshooting changes to tics (#391)

* build(deps): update dependencies

❯ uv lock --upgrade
Resolved 205 packages in 4.46s
Updated astroid v3.3.9 -> v3.3.10
Updated cachecontrol v0.14.2 -> v0.14.3
Updated charset-normalizer v3.4.1 -> v3.4.2
Updated click v8.1.8 -> v8.2.1
Updated coverage v7.8.0 -> v7.8.2
Updated craft-application v5.2.0 -> v5.3.0
Updated craft-parts v2.9.1 -> v2.10.0
Updated craft-platforms v0.8.0 -> v0.9.0
Updated craft-providers v2.2.0 -> v2.3.0
Updated cryptography v44.0.2 -> v45.0.3
Updated exceptiongroup v1.2.2 -> v1.3.0
Updated pbs-installer v2025.4.9 -> v2025.5.17
Updated platformdirs v4.3.7 -> v4.3.8
Updated pluggy v1.5.0 -> v1.6.0
Updated poetry v2.1.2 -> v2.1.3
Updated poetry-core v2.1.2 -> v2.1.3
Updated protobuf v6.30.2 -> v6.31.1
Updated pydantic v2.11.3 -> v2.11.5
Updated pydantic-core v2.33.1 -> v2.33.2
Updated pylint v3.3.6 -> v3.3.7
Updated pytest-mock v3.14.0 -> v3.14.1
Updated python-apt v2.4.0+ubuntu4, v2.7.7+ubuntu3, v2.9.0+ubuntu1, v2.9.9 -> v2.4.0+ubuntu4, v2.7.7+ubuntu3, v2.9.0+ubuntu1, v3.0.0
Updated ruamel-yaml v0.18.10 -> v0.18.11
Updated setuptools v80.0.0 -> v80.9.0
Updated snowballstemmer v2.2.0 -> v3.0.1
Updated sphinx-toolbox v3.9.0 -> v3.10.0
Updated trove-classifiers v2025.4.28.22 -> v2025.5.9.12
Updated types-docutils v0.21.0.20241128 -> v0.21.0.20250526
Updated types-pygments v2.19.0.20250305 -> v2.19.0.20250516
Updated types-pyyaml v6.0.12.20250402 -> v6.0.12.20250516
Updated types-setuptools v80.0.0.20250429 -> v80.8.0.20250521
Updated typing-inspection v0.4.0 -> v0.4.1
Updated virtualenv v20.30.0 -> v20.31.2
Updated zipp v3.21.0 -> v3.22.0

* build(deps): pin craft-providers to 2.2.x

This issue: canonical/craft-providers#753
is preventing builds on non-Ubuntu.

* chore: use CRAFT_ARTIFACT in test init template

* chore: set flask and gevent min versions

Due to:

- https://osv.dev/vulnerability/PYSEC-2023-62
- https://osv.dev/vulnerability/PYSEC-2023-177

* build(deps): pin setuptools

Version 80.9.0 gives a very early warning about the deprecation of
pkg_resources in another dependency.

* docs: release notes for 1.12

* feat(lint): add uv lockfile linter (#396)

This came from this discussion: https://github.com/canonical/snapcraft/pull/5529/files#r2121219994

Adds a `lint-uv-lockfile` make target that checks whether uv.lock is
valid with the current pyproject.toml. It does not check whether the
packages in that file are up to date.

Signed-off-by: Alex Lowe <alex.lowe@canonical.com>

* chore: bump gevent dependency (#897)

* docs: rearrange READMEs (#397)

* build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.11.12 (#394)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* docs: add linkcheck to doc checks (#398)

* ci: make RTD use `make docs` (#401)

* chore: remove codeowners

* build(deps): update dependency mypy to ~=1.16.0 (#402)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* docs: add links and buttons to conf.py (#403)

* docs: Incorporate UX feedback into 12-factor tutorials (#893)

* docs: cover statsd metrics in extensions (#887)

Co-authored-by: Michael DuBelko <michael.dubelko@gmail.com>
Co-authored-by: Erin Conley <erin.conley@canonical.com>
Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* build(docs): add sitemap generator (#404)

* build(docs): update build, add sphinx sitemap, update site links (#900)

* build(docs): update site links

ROCKCRAFT-237

Also, do some small housekeeping in docs config file.

* chore(deps): add dependency sphinx-sitemap to 'docs' group

For ROCKCRAFT-238.

* build(docs): add sphinx sitemap

For ROCKCRAFT-238:

- Configure sitemap.
- Switch Sphinx builder to `dirhtml`, as it's required for sitemap
  generation.

* ci: configure rtd platform builds to call `make docs`

Make local and builds use the same consistent tooling.

* build(docs): clean up the config some more

* test: don't leave behind test files (#896)

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* chore: update the Jira project to ROCKCRAFT (#858)

Signed-off-by: Sergio Schvezov <sergio.schvezov@canonical.com>

* chore: update craft-providers (#903)

Signed-off-by: Sergio Schvezov <sergio.schvezov@canonical.com>

* build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.12.0 (#407)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* style: autoformat with newest prettier (#411)

* style: adjust linting rules for ruff 0.12 (#907)

Rockcraft uses PLC0415 frequently enough that it doesn't make sense to noqa it.

* docs: Fix summary for Spring Boot template (#904)

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* style: add pre-commit to auto-formatting (#405)

* docs: update code of conduct link (#410)

Signed-off-by: Alex Lowe <alex.lowe@canonical.com>

* style(ruff): disable PLW1641 (#409)

https://docs.astral.sh/ruff/rules/eq-without-hash/

* docs: Add spring-boot-framework to rockcraft.yaml.rst (#914)

* style: fix linting for ruff 0.12 (#408)

Co-authored-by: Imani Pelton <imani.pelton@canonical.com>

* build(deps): update dependencies, bring in pydantic-kitbash (#913)

Updated bracex v2.5.post1 -> v2.6
Updated certifi v2025.4.26 -> v2025.6.15
Updated coverage v7.8.2 -> v7.9.2
Updated craft-application v5.3.0 -> v5.4.0
Updated craft-parts v2.10.0 -> v2.16.0
Updated craft-store v3.2.1 -> v3.3.0
Updated cryptography v45.0.3 -> v45.0.5
Updated flake8 v7.2.0 -> v7.3.0
Updated jaraco-functools v4.1.0 -> v4.2.1
Updated license-expression v30.4.1 -> v30.4.3
Updated lxml v5.4.0 -> v6.0.0
Updated markdown v3.8 -> v3.8.2
Updated msgpack v1.1.0 -> v1.1.1
Updated oauthlib v3.2.2 -> v3.3.1
Updated pbs-installer v2025.5.17 -> v2025.7.2
Updated pycodestyle v2.13.0 -> v2.14.0
Updated pydantic v2.11.5 -> v2.11.7
Updated pyflakes v3.3.2 -> v3.4.0
Updated pygments v2.19.1 -> v2.19.2
Updated pytest v8.3.5 -> v8.4.1
Updated pytest-cov v6.1.1 -> v6.2.1
Updated requests v2.32.3 -> v2.32.4
Updated ruamel-yaml v0.18.11 -> v0.18.14
Added sphinx-last-updated-by-git v0.3.8
Updated sphinx-prompt v1.8.0 -> v1.8.0, v1.10.0
Updated sphinx-reredirects v0.1.6 -> v0.1.6, v1.0.0
Updated sphinx-sitemap v2.6.0 -> v2.7.2
Updated starlette v0.46.2 -> v0.47.1
Updated tomlkit v0.13.2 -> v0.13.3
Updated types-docutils v0.21.0.20250526 -> v0.21.0.20250604
Updated types-setuptools v80.8.0.20250521 -> v80.9.0.20250529
Updated typing-extensions v4.13.2 -> v4.14.1
Updated urllib3 v2.4.0 -> v2.5.0
Updated uvicorn v0.34.2 -> v0.35.0
Updated watchfiles v1.0.5 -> v1.1.0
Updated wcmatch v10.0 -> v10.1
Updated zipp v3.22.0 -> v3.23.0

* docs: bring in pydantic-kitbash

Craft-parts 2.16 uses pydantic-kitbash to generate the reference for part
properties, so we need to use it too. This means updating some of the refs
as the labels are also generated by the extension.

* build(docs): pin sphinx-sitemap to 2.6.x

Version 2.7.0 brings in a 'last-modification' feature that conflicts with our
vendoring of craft-parts docs when building in RTD.

* chore: Update pyproject.toml

Co-authored-by: JJ Coldiron <jj.coldiron@canonical.com>

---------

Co-authored-by: JJ Coldiron <jj.coldiron@canonical.com>

* docs: fix broken links

* docs: don't linkcheck in common/

* fix: walk back pre-commit all-files

Using `--all-files` for pre-commit format affects more files than `make format` would otherwise do.

Signed-off-by: Alex Lowe <alex.lowe@canonical.com>

* ci: restore CODEOWNERS

The current strategy is to remove the file for libraries, but keep them in apps
where the brunt of the outside contributing happens.

* build: add python-apt for Ubuntu Questing (#906)

* docs: release notes for 1.13.0 (#917)

Co-authored-by: Michael DuBelko <michael.dubelko@canonical.com>

* style: add TC001, TC002 and TC003 rules (#415)

Signed-off-by: Paul Mars <paul.mars@canonical.com>

* docs: update contribution links (#416)

Signed-off-by: Callahan Kovacs <callahan.kovacs@canonical.com>

* ci: install python3-venv in release workflow (#414)

If python3-venv isn't installed, setuptools will fail.

* docs: add 'about this documentation' (#920)

* docs: exclude reuse dir from search results (#924)

Removing it entirely from the node graph seems to do the trick.

* chore: pin all flask versions for osv warning (#921)

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* docs: Incorporate UX feedback into 12-factor tutorials (#918)

- port changes from charmcraft tutorials
- more explanation on Rockcraft
- move LXD/Docker warning
- make commands arch agnostic
- improve product terminology
- remove whilst
- lint issues
- remove lxd link from setup files
- explicit fix for LXD Docker issue

---------

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* fix: install system packages during setup (#418)

* fix: install system packages during setup

* test(spread): update key-id for nginx repo

Looks like the public key changed recently.

* test(spread): don't use a different docker for fedora

The 'core18/stable' channel for the 'docker' snap is no longer available, but
apparently the default track now works - whatever issue we had in the past
has resolved itself in the meantime.

* build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.12.4 (#412)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix: remove conflicting syncs during setup (#419)

* fix: install system packages during setup (#418)

* fix: install system packages during setup

* fix: remove conflicting syncs during setup (#419)

* build(deps): update dependency canonical-sphinx to ~=0.5.1 (#420)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* docs: add `CONTRIBUTING.md`

Provides updated guidelines.

Remove `CONTRIBUTING.rst.`

* docs: rename 'about this doc' → 'contribute to this doc' (#930)

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* docs: enable Google Analytics (#931)

* docs: add static resources for GA

* chore: refine pre-commit formatting

* docs: fix contributing links

* docs: fix code of conduct link

* build(deps): update dependency mypy to ~=1.17.1 (#421)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(deps): update all dependencies

Added accessible-pygments v0.0.5
Updated anyio v4.9.0 -> v4.10.0
Updated astroid v3.3.10 -> v3.3.11
Updated build v1.2.2.post1 -> v1.3.0
Updated canonical-sphinx-extensions v0.0.27 -> v0.0.33
Updated certifi v2025.6.15 -> v2025.8.3
Updated coverage v7.9.2 -> v7.10.2
Updated craft-application v5.4.0 -> v5.6.3
Updated craft-cli v3.0.0 -> v3.1.2
Updated craft-parts v2.16.0 -> v2.20.0
Updated craft-platforms v0.9.0 -> v0.10.0
Updated craft-providers v2.3.1 -> v2.4.0
Updated distlib v0.3.9 -> v0.4.0
Updated furo v2024.8.6 -> v2025.7.19
Updated gitpython v3.1.44 -> v3.1.45
Updated license-expression v30.4.3 -> v30.4.4
Updated nh3 v0.2.21 -> v0.3.0
Updated pbs-installer v2025.7.2 -> v2025.7.23
Updated poetry v2.1.3 -> v2.1.4
Updated pywin32 v310 -> v311
Updated regex v2024.11.6 -> v2025.7.34
Updated rich v14.0.0 -> v14.1.0
Updated sphinx-prompt v1.8.0, v1.10.0 -> v1.8.0
Updated sphinxext-opengraph v0.10.0 -> v0.12.0
Updated starlette v0.47.1 -> v0.47.2
Updated types-colorama v0.4.15.20240311 -> v0.4.15.20250801
Updated types-docutils v0.21.0.20250604 -> v0.21.0.20250728
Updated types-pygments v2.19.0.20250516 -> v2.19.0.20250715
Updated types-setuptools v80.9.0.20250529 -> v80.9.0.20250801
Updated virtualenv v20.31.2 -> v20.32.0
Updated xattr v1.1.4 -> v1.2.0

* docs: update docs for craft-parts 2.20.0

* build: update schema

* build(snap): add lxml dependencies

These are needed by lxml, a dependency of craft-parts >=2.19

* test: update tests from craft-application updates

* build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.12.8 (#422)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(springboot): add missing migrate and migrate.sh

Add missing files migrate and migrate.sh files if they are in the root directory of the Spring Boot project.

* docs: enable Google Analytics (#424)

* build(deps): update dependency sphinx-toolbox to v4 (#393)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(deps): update pre-commit hook pre-commit/pre-commit-hooks to v6 (#425)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* docs: update code of conduct links (#427)

This is a redirect but why force it?

* build(deps): update github actions to v5 (#428)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(deps): lock file maintenance (#426)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* ci: fix publish workflow (#430)

On our self-hosted runners we need to specify --yes

Signed-off-by: Alex Lowe <alex.lowe@canonical.com>

* build(deps): lock file maintenance (#431)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.12.9 (#432)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(tests): better typing for tests (#433)

This change makes ty happy

Signed-off-by: Alex Lowe <alex.lowe@canonical.com>

* feat: add entrypoint-command (#939)

---------

Signed-off-by: Alejandro Santisteban <alex.santisteban@canonical.com>
Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* build(deps): update dependencies

Also update python-apt to 2.7.7ubuntu5

Updated beautifulsoup4 v4.13.4 -> v4.13.5
Removed chardet v5.2.0
Updated charset-normalizer v3.4.2 -> v3.4.3
Updated coverage v7.10.2 -> v7.10.5
Updated craft-application v5.6.3 -> v5.7.1
Updated craft-archives v2.1.0 -> v2.2.0
Updated craft-grammar v2.0.3 -> v2.2.0
Updated craft-parts v2.20.0 -> v2.20.1
Updated craft-providers v2.4.0 -> v3.0.0
Updated cryptography v45.0.5 -> v45.0.6
Added distro-support v2025.8.13
Updated fastjsonschema v2.21.1 -> v2.21.2
Updated filelock v3.18.0 -> v3.19.1
Updated jaraco-functools v4.2.1 -> v4.3.0
Updated lxml v6.0.0 -> v6.0.1
Updated mdit-py-plugins v0.4.2 -> v0.5.0
Updated pbs-installer v2025.7.23 -> v2025.8.27
Updated platformdirs v4.3.8 -> v4.4.0
Updated protobuf v6.31.1 -> v6.32.0
Updated pylint v3.3.7 -> v3.3.8
Updated pyspelling v2.10 -> v2.11
Updated python-debian v0.1.49 -> v1.0.1
Updated rapidfuzz v3.13.0 -> v3.14.0
Updated requests v2.32.4 -> v2.32.5
Updated ruamel-yaml v0.18.14 -> v0.18.15
Updated soupsieve v2.7 -> v2.8
Updated sphinx-jinja2-compat v0.3.0 -> v0.4.1
Updated starlette v0.47.2 -> v0.47.3
Updated trove-classifiers v2025.5.9.12 -> v2025.8.26.11
Updated types-docutils v0.21.0.20250728 -> v0.22.0.20250822
Updated types-pygments v2.19.0.20250715 -> v2.19.0.20250809
Updated types-pyyaml v6.0.12.20250516 -> v6.0.12.20250822
Updated types-setuptools v80.9.0.20250801 -> v80.9.0.20250822
Updated typing-extensions v4.14.1 -> v4.15.0
Updated zstandard v0.23.0 -> v0.24.0

* test(spread): improve remove-hook test

Apparently "lxc image list" is no longer returning non-zero if there are no images,
so do a more robust check against the csv output.

* chore: address OSV-scanner report for Django

* docs: release notes for 1.14.0 (#950)

Co-authored-by: Michael DuBelko <michael.dubelko@canonical.com>
Signed-off-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* feat: enable interim bases (#946)

This does the following:

1. Enable's craft-application's check_supported_base metadata
2. Adds  questing as supported bases
3. Adds tests questing.

---------

Signed-off-by: Tiago Nobrega <tiago.nobrega@canonical.com>
Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.12.11 (#434)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: add IDE configs to gitignore (#435)

* chore: pin gunicorn package in flask and django extensions (#944)

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.12.12 (#440)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* docs: Incorporate UX feedback into 12-factor tutorials (#956)

Incorporate feedback from UX sessions into the 12-factor tutorials.
Summary of changes:

- Django and Express tutorials: The note about visiting the app in a browser was incorrect. This PR updates the notes to provide the correct instructions for visiting the app in a browser. I tested the instructions to verify that they work for my setup.
- Express tutorial: A participant noted that the cd .. command before initializing the rock was easily missed and caused issues for them during the session. This PR moves the command into the same code block that initializes the rock.
- FastAPI tutorial: Export ROCKCRAFT_ENABLE_EXPERIMENTAL_EXTENSIONS as an environment variable, identical to the other tutorials showcasing experimental extensions.
- All tutorials: Add or update the "Next steps" section to provide more relevant and useful links for the user looking for next steps, more information behind the extension or rocks, and to understand the "why" behind the 12-factor tooling.
- conf.py: Add intersphinx for the Charmcraft and 12-factor links in the "Next steps" sections of the tutorials.

* feat(Makefile): add ty as an optional linter (#429)

* feat(Makefile): add ty linting

This adds the ability to lint a project with ty, but since ty is not yet
ready for production, it doesn't make it default.

This allows us to easily check a project with ty if we want without
forcing all projects to use it.

Signed-off-by: Alex Lowe <alex.lowe@canonical.com>

---------

Signed-off-by: Alex Lowe <alex.lowe@canonical.com>
Co-authored-by: Imani Pelton <imani.pelton@canonical.com>
Co-authored-by: Callahan Kovacs <callahan.kovacs@canonical.com>

* build(deps): update actions/setup-node action to v5 (#439)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat: allow single and two chars project names

---------

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* build(deps): update craft-parts and craft-providers (#961)

This updates to new minimum versions of craft-parts and craft-providers
in order to give `_apt` write access to the staging deb cache directory.

Fixes: #937
ROCKCRAFT-254

Signed-off-by: Alex Lowe <alex.lowe@canonical.com>

* ci: ignore sample files in OSV scans (#962)

This ignores files from documentation and spread tests in our OSV scans.
They're probably okay to have vulnerable versions since they're for demo
purposes only.

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* build(deps): update github actions (#783)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(deps): update dependency mypy to ~=1.18.1 (#443)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(gitignore): only ignore a top-level parts dir (#441)

* build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.13.0 (#442)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(deps): update craft-application

* test(spread): add '--ignore=unmaintained' to 20.04 tests

* feat: use 'rock' for the artifact type

* test: create the app like in production

The test was failing to run in isolation because it doesn't call
register_rockcraft_services(). Use the same function as the production
version so that we don't have to keep track of all of this.

* fix: handle 'devel' bases in eol check

* test: use 'devel' build-base for 25.10 test

* fix(templates): typo in spread .extension (#934)

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>
Co-authored-by: Alex Lowe <alex.lowe@canonical.com>

* build(deps): update craft-parts to 2.23.0

* feat: new Pebble part for 25.10+

Starting with ubuntu@25.10 the Pebble part will get usrmerged, which means we
don't need to organize "bin/pebble" into "usr/bin/pebble" anymore. Since we
now have *three* different specs dependending on the base rename things a bit
so that their purpose is clearer.

* feat: use usrmerged install dirs for 25.10+

This only applies to projects with ubuntu@25.10 or later, and does not apply
to parts using the 'nil' or 'dump' plugins (at least for now).

* docs: remove references to Ubuntu LTS 

Revise the product definition, as well.

* docs: make linkcheck more forgiving (#444)

Signed-off-by: Alex Lowe <alex.lowe@canonical.com>

* build(deps): update dependency pytest-cov to v7 (#445)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.13.1 (#446)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(docs): remove line length check from linting

* docs: cover interim bases in 'bases' explanation

Also, substantively edit the explanation.

* docs: include 25.10 in rockcraft.yaml reference

* build(deps): update craft-parts

This new version brings in PythonPlugin v2.

* feat: consider the base when registering plugins

* feat: fix shebangs in Python plugin v2 files

* test(spread): add spread tests for Python plugin v2

The tests cover the basic cases of whether the Python interpreter is provided
by the part itself or an earlier one, whether it comes from Chisel slices, and
both 'bare' and Ubuntu bases.

Also bump up the number of spread workers a bit; this is tangentially related
to the task but the spread tests are taking a long time nowadays.

* chore: rename starter pack submodule (#979)

Normalizes the name of the Starter Pack submodule.

* build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.13.2 (#447)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(docs): add starbase linkcheck filters (#980)

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* docs: add `CONTRIBUTING.md` template (#448)

* fix: export deps with hashes (#987)

Signed-off-by: Paul Mars <paul.mars@canonical.com>

* build(deps): update dependency sphinxext-rediraffe to v0.3.0 (#449)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.13.3 (#450)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix: build latest fuse-overlayfs to fix warning message (#989)

Signed-off-by: Paul Mars <paul.mars@canonical.com>
Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* fix(ci): restore the manual spread label

* chore: add Matrix channel to 12-factor YAML templates (#988)

---------

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* build(deps): update all dependencies (#993)

Updated anyio v4.10.0 -> v4.11.0
Updated beautifulsoup4 v4.13.5 -> v4.14.2
Updated canonical-sphinx-extensions v0.0.33 -> v0.0.34
Updated certifi v2025.8.3 -> v2025.10.5
Updated cffi v1.17.1 -> v2.0.0
Updated click v8.2.1 -> v8.3.0
Updated coverage v7.10.5 -> v7.10.7
Updated craft-application v5.10.1 -> v5.11.0
Updated craft-grammar v2.2.0 -> v2.3.0
Updated craft-parts v2.24.0 -> v2.25.0
Updated cryptography v45.0.6 -> v46.0.2
Updated dulwich v0.22.8 -> v0.24.2
Updated findpython v0.6.3 -> v0.7.0
Updated furo v2025.7.19 -> v2025.9.25
Updated httplib2 v0.22.0 -> v0.31.0
Updated isort v6.0.1 -> v6.1.0
Updated lxml v6.0.1 -> v6.0.2
Updated markdown v3.8.2 -> v3.9
Updated markupsafe v3.0.2 -> v3.0.3
Updated more-itertools v10.7.0 -> v10.8.0
Updated nh3 v0.3.0 -> v0.3.1
Updated pbs-installer v2025.8.27 -> v2025.9.18
Updated poetry v2.1.4 -> v2.2.1
Updated poetry-core v2.1.3 -> v2.2.1
Updated protobuf v6.32.0 -> v6.32.1
Updated pycparser v2.22 -> v2.23
Updated pydantic v2.11.7 -> v2.12.0
Updated pydantic-core v2.33.2 -> v2.41.1
Updated pydantic-kitbash v0.0.7 -> v0.0.8
Updated pylint v3.3.8 -> v3.3.9
Updated pynacl v1.5.0 -> v1.6.0
Updated pyparsing v3.2.3 -> v3.2.5
Updated pytest v8.4.1 -> v8.4.2
Updated pytest-check v2.5.3 -> v2.6.0
Updated pytest-cov v6.2.1 -> v6.3.0
Updated pytest-mock v3.14.1 -> v3.15.1
Updated pyyaml v6.0.2 -> v6.0.3
Updated rapidfuzz v3.14.0 -> v3.14.1
Updated regex v2025.7.34 -> v2025.9.18
Updated requests-unixsocket2 v1.0.0 -> v1.0.1
Updated ruamel-yaml-clib v0.2.12 -> v0.2.14
Updated secretstorage v3.3.3 -> v3.4.0
Updated sphinxext-opengraph v0.12.0 -> v0.13.0
Updated starlette v0.47.3 -> v0.48.0
Updated trove-classifiers v2025.8.26.11 -> v2025.9.11.17
Updated twine v6.1.0 -> v6.2.0
Updated types-docutils v0.22.0.20250822 -> v0.22.2.20251006
Updated types-pyyaml v6.0.12.20250822 -> v6.0.12.20250915
Updated typing-inspection v0.4.1 -> v0.4.2
Updated uvicorn v0.35.0 -> v0.37.0
Updated virtualenv v20.32.0 -> v20.34.0
Updated zstandard v0.24.0 -> v0.25.0

---------

Signed-off-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* chore: update codeowners (#995)

Adds the starcraft-authors group to codeowners and assigns @steinbro as the codeownersowner.

---------

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* docs: update links (#983)

This PR:

1. Switches several Pebble links to use intersphinx
2. Switches several internal links to use Sphinx references rather than global URLs
3. Switches several redirected external links to the updated versions

Signed-off-by: Alex Lowe <alex.lowe@canonical.com>
Co-authored-by: Michael DuBelko <michael.dubelko@canonical.com>

* docs: add usrmerge explanation (#1003)

---------

Signed-off-by: Michael DuBelko <michael.dubelko@gmail.com>
Co-authored-by: Michael DuBelko <michael.dubelko@canonical.com>

* docs: add a reference doc for the new python plugin (#994)

---------

Co-authored-by: Alex Lowe <alex.lowe@canonical.com>
Co-authored-by: Alex Lowe <alex.lowe@canonical.com>
Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>
Co-authored-by: Michael DuBelko <michael.dubelko@canonical.com>
Signed-off-by: Michael DuBelko <michael.dubelko@gmail.com>

* docs: add 'specify a base' how-to (#998)

---------

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* docs: release notes for 1.15.0 (#999)

---------

Signed-off-by: Tiago Nobrega <tiago.nobrega@canonical.com>
Co-authored-by: Michael DuBelko <michael.dubelko@canonical.com>

* build(deps): lock file maintenance (#452)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.0 (#451)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(models): add documentation to the Project model (#982)

This adds docstrings, examples, etc. to the Project model and its child
models.

---------

Signed-off-by: Alex Lowe <alex.lowe@canonical.com>
Co-authored-by: Michael DuBelko <michael.dubelko@canonical.com>
Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>
Co-authored-by: JJ Coldiron <jj.coldiron@canonical.com>

* build(docs): remove line length check from linter (#453)

* build(deps): update actions/setup-node action to v6 (#454)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix: unhelpful error message when `base` is missing from YAML (#1004)

Fixes #997

---------

Co-authored-by: Alex Lowe <alex.lowe@canonical.com>

* build(deps): update craft-parts

This updates craft-parts to 2.26.0 so we can use chisel 1.3.

* docs: Incorporate UX feedback into 12-factor tutorials (#1006)

- make Multipass VM usage clearer

- update instructions for closing the app

- clarify note about updating rock version

---------

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* docs: maintain how-to quadrant

- Reorganise landing page.
- Improve the wording of the landing page.
- Rename 'rocks' and 'chisel' sections.
- Harmonize page titles and anchors.

* docs: fix typo in tutorial index and academy link (#1013)

Number 9. was repeated. Changed to 10.

CODA link was updated.

---------

Signed-off-by: Michael DuBelko <michael.dubelko@gmail.com>
Co-authored-by: Michael DuBelko <michael.dubelko@gmail.com>
Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* docs: maintain reference quadrant (#1012)

---------

Signed-off-by: JJ Coldiron <jj.coldiron@canonical.com>

* docs: maintain explanation quadrant (#1011)

* docs: maintain the tutorial quadrant (#1002)

- Update the landing page so it's in line with the model.
- Adjust some of the tutorial titles and anchors.

* build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.2 (#457)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix: convert build-for to a string before serializing to metadata (#1014)

* docs: Add how-to to override commands in web apps (#1000)

---------

Signed-off-by: javierdelapuente <javier.delapuente@canonical.com>
Co-authored-by: Erin Conley <erin.conley@canonical.com>
Co-authored-by: Michael DuBelko <michael.dubelko@gmail.com>

* build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.3 (#459)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build: use uv plugin to build (#1018)

---------

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* build: update craft-providers (#1019)

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* Add .venv removal to make clean (#461)

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: lengau <4305943+lengau@users.noreply.github.com>

* build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.5 (#462)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(deps): update github actions (#458)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(deps): update craft-application to 6.0 (#1027)

This new version lets us use 26.04 as the 'devel' base.

* docs: use lists for all links in landing pages (#1015)

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* build(snap): re-enable riscv64 and armhf (#1024)

The restrictions that made us disable those archs are gone - the store supports
riscv64 and we have a 'good' uv snap for armhf.

* docs: fix 'spring boot framework' (#1025)

- Fix spelling in title.
- Hide the page's headings from the TOC.

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* feat(project): add 'ubuntu@26.04' as a devel base (#1020)

* test(spread): fix python3.6 test (#1021)

The actual purpose of the test is to check that a rock that is built using the
Python plugin but without a 'python3' symlink works correctly if
PARTS_PYTHON_INTERPRETER is correctly set.

The test checked this by using python3.6 from the deadsnakes ppa, whose dependency
chain did *not* include 'python3-minimal' (I think), which is the package that
provides 'python3'.

Since python3.6 is gone from deadsnakes, update the test to be more explicit about
the intention by using the default Python interpreter for the base but removing
'python3' out "manually".

* build(deps): update craft-application to 6.0.1 (#1029)

This patch version fixes the 'random' schema breakage from invalid platform
names.

* chore: add documentation items to PR checklist (#463)

* docs: add docs items to PR template (#1035)

* docs: revise issue templates (#1033)

* chore: revise issue templates

---------

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* build(snap): include store dependencies (#1038)

This got dropped by accident when we migrated to the 'uv' plugin. Rockcraft
itself doesn't have Store-related code at the moment, but craft-application
plugins do.

* build(deps): update dependency pytest to v9 (#464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* docs: add targets for intersphinx linking (#1037)

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* build(deps): update actions/checkout action to v6 (#465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(deps): update dependency mypy to ~=1.18.2 (#990)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix: use (build-)base's coreutils in pebble part (#1026)

---------

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* ci: make manual spread more cooperative (#1034)

* docs: fix some URL issues in docs and CLI messages (#1030)

- Remove localisation stub from CLI URLs
- Fix extension link in express template
- Change 'expressjs' paths to 'express'
- Add redirects as well.

---------

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* fix: preserve previous entrypoint-service behaviour (#1032)

---------

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* docs: generate 'rockcraft.yaml' with kitbash (#1041)

---------

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* build(deps): update all dependencies

* build(snap): update libgit2

The pygit2 update needs a newer libgit2, which in turn needs some tweaks on the
snap.

* build(snap): update umoci and skopeo

* docs: release notes for 1.16 (#1039)

---------

Signed-off-by: Tiago Nobrega <tiago.nobrega@canonical.com>
Co-authored-by: Imani Pelton <imani.pelton@canonical.com>
Co-authored-by: Michael DuBelko <michael.dubelko@canonical.com>

* docs: fix linkcheck config from merge

* build(deps): update dependency setuptools to ~=80.9.0 (#975)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: update error messages in extensions (#1042)

---------

Signed-off-by: Ali UĞUR <39213991+alithethird@users.noreply.github.com>

* build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.8 (#1047)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: add asanvaq to documentation owners in CODEOWNERS (#1053)

Signed-off-by: Anna Sancho Vaquer <anna.sanchovaquer@canonical.com>

* Update README.md contributing link (#1052)

The contributing link was not working anymore, I fixed it and linked it to CONTRIBUTING.md.

Signed-off-by: Anna Sancho Vaquer <anna.sanchovaquer@canonical.com>

* build(deps): update dependency mypy to ~=1.19.0 (#1054)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* test: randomize the order of tests (#895)

* docs: fix canonical url (#1055)

* docs: clean up 'rockcraft.yaml' (#1056)

* docs: fix a missing link

* docs: Update LXD/Docker warning block in 12-factor tutorials (#1061)

During a UX session, a participant required the workaround in the 12-factor Flask tutorial to fix the connectivity issue between Docker and LXD. The experience had some tension that can be resolved with documentation changes.

The following updates were made to the warning blocks in all 12-factor tutorials:

    The user needs to know the name of the network bridge before running the commands, so this instruction was moved earlier in the block.
    The code block contains four commands that all require the name of the network bridge, so the block now instructs the user to save the name of their network bridge to an environment variable before running the fix. The environment variable is now used in the code block instead of a placeholder variable.
    Added sudo to all commands (required to run the commands, and should be safe since the tutorial takes place within a Multipass VM).

Ideally, a code block that can dynamically update with the name of the user's network bridge would be best. However, this solution would require custom JS code, and I didn't want to make this RTD project more complex when an environment variable can achieve the same result.

* docs: list command shows all networks

* docs: Update CONTRIBUTING.md for PR titles (#1065)

---------

Signed-off-by: Anna Sancho Vaquer <anna.sanchovaquer@canonical.com>
Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>
Co-authored-by: JJ Coldiron <jj.coldiron@canonical.com>

* docs: Updating how to crafting pages to new linking method (#1068)

Signed-off-by: Anna Sancho Vaquer <anna.sanchovaquer@canonical.com>
Co-authored-by: Michael DuBelko <michael.dubelko@gmail.com>

* fix: hello world tutorial output (#1064)

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* fix: ubuntu@26.04 is not a valid build-base yet (#1074)

There is no way to define a valid project with `build-base:ubuntu@26.04` at the
moment, and there won't be until we stabilize the base. The only way to build
26.04 rocks at this stage of development is to use `build-base: devel`.

So in this sense, the valid options for 'build-base' are the bases that Rockcraft
considers stable, plus of course 'devel'.

Fixes #1069

* build(deps): update craft-application and craft-parts (#1073)

Update dependencies to their latest versions:
- craft-application: 6.0.1 → 6.1.0
- craft-parts: 2.27.0 → 2.28.0

* fix: Update Spring Boot version to 3.5.10 (#1076)

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* docs: incorporate pydantic-kitbash 1.0.0 (#1075)

---------

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* docs: linking Chisel docs to slice definitions ROCKS-2605 (#1062)

---------

Signed-off-by: Anna Sancho Vaquer <anna.sanchovaquer@canonical.com>
Co-authored-by: Michael DuBelko <michael.dubelko@gmail.com>
Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* docs: fix links go Gunicorn docs (#1078)

Apparently the docs migrated to a different url today [1].

1: https://gunicorn.org/news/#2400-2026-01-23

* fix: reference slug path in for rockcraft.yaml

* feat(plugins): set plugin groups per base

This commit makes use of the new API in the LifecycleService to fully define
the set of plugins for each base. This initial definition is similar to the
previous status quo with two differences:

- the "dotnet" plugin (v1) is only enabled for 20.04, 22.04 and 24.04. This is
  because we should look into using version 2 of the plugin if possible, on a
  separate task.
- the new "ruby" plugin is not added to any bases until we have a need for it
  and can verify that it works for Rockcraft.

* feat: disable uv and poetry in 25.10+

These plugins need new, usrmerge-ready version. Now that we have plugin
groups we can at least disable the plugins instead of having the lifecycle
fail during build.

* build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.14 (#1060)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(snap): add rockcraft.json to the snap

This is a request from the Rocks team. With the project schema in the snap,
users can do things like validate a rockcraft.yaml against the version of
rockcraft they have, check which bases are supported, etc.

* build(deps): update all dependencies

* fix: sh executable for bare bases (#1092)

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* feat: default to bare base for flask, django and fastapi extensions (#1086)

---------

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* build: constrain protobuf

Version 6.33.* segfaults in s390x when building on Launchpad:

```
Building bash-completion
:: + python3 -m craft_cli.completion rockcraft rockcraft.cli:get_app_info
:: /tmp/tmpuxak9d5b/scriptlet.sh: line 6: 29574 Segmentation fault      (core dumped) python3 -m craft_cli.completion rockcraft rockcraft.cli:get_app_info > $CRAFT_PART_INSTALL/completion.sh
'override-build' in part 'bash-completion' failed with code 139.
```

dmesg output:

```
[ 2101.323998] User process fault: interruption code 0010 ilc:2 in _message.cpython-312-s390x-linux-gnu.so[3ff7e500000+104000]
[ 2101.324020] Failing address: 0000000000000000 TEID: 0000000000000800
[ 2101.324023] Fault in primary space mode while using user ASCE.
```

That `_message` shared library is from protobuf. This GH issue seems to match:
protocolbuffers/protobuf#24103
So once that's resolved we should try the new protobuf version.

* docs: release notes for 1.17.0 (#1095)

---------

Signed-off-by: Tiago Nobrega <tiago.nobrega@canonical.com>
Signed-off-by: Michael DuBelko <michael.dubelko@gmail.com>
Co-authored-by: Michael DuBelko <michael.dubelko@canonical.com>

* build: update craft-providers

This is to get rid of the snapd watch error which seems to be happening
more and more in spread tests.

* test: mark gradle test as manual

The test is currently failing and making the spread output unusable from
hundreds of megabytes of logs. We need to investigate and fix the failure
in a separate task, and then re-enable the test.

* fix: spread tests and tutorials for extentions with default base bare (#1097)

---------

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* fix(oci): ensure config has arch variant (#1099)

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* docs: updating homepage to new requirements (#1066)

---------

Signed-off-by: Anna Sancho Vaquer <anna.sanchovaquer@canonical.com>
Co-authored-by: Michael DuBelko <michael.dubelko@gmail.com>

* build(docs): refresh starter pack implementation (#1112)

* chore!: deinit sphinx-docs-starter-pack submodule

* build(docs)!: update canonical starter pack to 1.4.0

* build(deps): update documentation dependencies

* build(docs): ROCKS-2747 add passthrough to docs Makefile

dd aliases and passthrough Make targets provided by the Starter Pack.
With this, you can run make at the root of the project and access docs
commands. The goal is to keep the core files from the Starter Pack
nearly unedited.

The behaviour is:

- `docs` safely calls `html`
- `docs-auto` safely calls `serve`
- `docs-lint` calls the spelling and linkchecks, but _not_ Vale due to
  compatibility issues
- `docs-clean` safely calls `clean`
- `docs-install` calls `vale-install` and then calls root `setup-docs`
- `docs-*` passes through to all other doc targets

* docs: resolving merge conflict in linkcheck

* build(deps): Update Sphinx dependencies

* build(dep): Update Sphinx related links dependencies

* docs: fix spelling errors from new starter pack

* docs: update the documentation

* docs: add serving link to ignored links

* fix: fix the linter error in docs/README.md

* fix: remove spellcheck.yaml

* fix: rearrange order of conf.py to match standard

---------

Co-authored-by: Robert Krátký <robert.kratky@canonical.com>

* chore: rebuild to bump chisel

chisel-releases has updated the repository format for 26.04 to 'v3', which
needs chisel v1.4.0+ to handle. Add a test and a changelog entry to ensure
the version of chisel used by Rockcraft can cut 26.04 slices.

* test: mark gradle test as manual

The test is currently failing and making the spread output unusable from
hundreds of megabytes of logs. We need to investigate and fix the failure
in a separate task, and then re-enable the test.

* fix: spread tests and tutorials for extentions with default base bare (#1097)

---------

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* fix: Fix spread-test. Remove manual annotation. (#1116)

The gradle spread test because there were JAR files in the install directory
were part of gradle and not of the final application.

Gradle's JavaPlugin hardlinks all JARs under ${CRAFT_PART_BUILD} (including
internal distribution/cache JARs) into ${CRAFT_PART_INSTALL}/jar/, causing
jdeps to fail on unresolvable named modules. Fix: keep only the fat JAR,
discovered at build time from build/libs/ (bootJar's output directory).

* fix(docs): add copy button to code blocks (#1122)

---------

Signed-off-by: Anna Sancho Vaquer <anna.sanchovaquer@canonical.com>
Co-authored-by: JJ Coldiron <jj.coldiron@canonical.com>

* build(deps): update craft-application to 6.2.1

This should address the problem of incorrect plugin groups at
project-validation-time.

* build(deps): update python-apt groups

This updates the python-apt groups to match current supported and pre-release
Ubuntu distros.

- Removes oracular, plucky
- Adds resolute

Signed-off-by: Alex Lowe <alex.lowe@canonical.com>

* fix: remove ref.name from annotation (#1129)

This commit removes the field ref.name from the image annotation to remove the blockers as concerned by docker-library/official-images#20937

Rationale behind this: The annotation key `org.opencontainers.image.ref.name` should only be considered as valid if it's used in an image manifest index (i.e., the index.json) according to the OCI spec.

As a result, our adding the key `org.opencontainers.image.ref.name` to the image's manifest (instead of the manifest index) is considered invalid, and this behavior should be deprecated.

Contrarily, in the code, we are using this annotation key added implicitly by umoci in the _inject_oci_fields function to distinguish the base image and the target image (see comments), which is deemed to be a valid use case, since this key is scoped inside the index.json file.

* fix: remove base.digest for bare-based rocks

The key org.opencontainers.image.base.digest will no longer be
added to the annotations of a bare-based rock, as bare-based rocks
don't have a valid "base" image.

The key base-digest will no longer be added to the rock's metadata
for bare-based rocks due to the same reason.

* docs: release notes for 1.17.2 (#1132)

* docs: link reference to building remotely how-to (#1118)

* docs: display app logs in Node.js tutorial (#1135)

This PR addresses #1134 and refers to the Bundle a Node.js app into a rock tutorial.

Under "Run a Docker container", the command to serving the app on local port 8000 has been updated, in order to display the app logs. The corresponding output has also been updated.

---------

Signed-off-by: Michael DuBelko <michael.dubelko@gmail.com>
Co-authored-by: Michael DuBelko <michael.dubelko@gmail.com>
Co-authored-by: Alex Lowe <alex.lowe@canonical.com>

* docs: add completion time to tutorials (#1136)

Through UR, we have been asked to add completion times to the rest of the tutorials. The tutorials have been tested and timed. The resulting time has been added.

For the "Hello World rock" tutorial, I have also added an introductory sentence, as this was missing.

* chore: remove comment fences from GitHub templates (#1123)

* docs: remove bounty instructions (#1149)

* docs: clarify time endpoint timezone in tutorials (#1152)

* docs: remove redundant chiselling steps from Flask and Django tutorials (#1151)

---------

Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* docs: clarify Django tutorial directory changes (#1150)

---------

Signed-off-by: Michael DuBelko <michael.dubelko@gmail.com>
Co-authored-by: Michael DuBelko <michael.dubelko@gmail.com>
Co-authored-by: Tiago Nobrega <tiago.nobrega@canonical.com>

* build: constrain setuptools-scm (#1157)

Version 10.0.2 causes a hang when building Pydantic.
Ref: pypa/setuptools-scm#1302

* build(deps): constrain setuptools-scm due to cyclic dependency (#1158)

Workaround for pypa/setuptools-scm#1302

Snap build not tested yet, but it works with `UV_PYTHON=3.12 UV_PYTHON_DOWNLOADS=never UV_NO_BINARY=1 uv sync --frozen --no-dev --no-editable --no-cache`

Signed-off-by: Alex Lowe <alex.lowe@canonical.com>

---------

Signed-off-by: Alex Lowe <alex.lowe@canonical.com>
Signed-off-by: Sergio Schvezov <sergio.schvezov@canonical.com>
Signed-off-by: Paul Mars <paul.mars@canonical.com>
Signed-off-by: Callahan Kovacs <callahan.kovacs@canonical.com>
Signed-off-by: Alejandro Santisteban <alex.santisteban@canonical.com>
Signed-off-by: Tiago Nobrega <tiago.nobrega@canonical.com>
Signed-off-by: Michael DuBelko <michael.dubelko@gmail.com>
Signed-off-by: JJ Coldiron <jj.coldiron@canonical.com>
Signed-off-by: javierdelapuente <javier.delapuente@canonical.com>
Signed-off-by: Ali UĞUR <39213991+alithethird@users.noreply.github.com>
Signed-off-by: Anna Sancho Vaquer <anna.sanchovaquer@canonical.com>
Co-authored-by: Imani Pelton <imani.pelton@canonical.com>
Co-authored-by: Alex Lowe <alex.lowe@canonical.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: JJ Coldiron <jj.coldiron@canonical.com>
Co-authored-by: Erin Conley <erin.conley@canonical.com>
Co-authored-by: javierdelapuente <javier.delapuente@canonical.com>
Co-authored-by: Michael DuBelko <michael.dubelko@gmail.com>
Co-authored-by: Michael DuBelko <michael.dubelko@canonical.com>
Co-authored-by: Sergio Schvezov <sergio.schvezov@canonical.com>
Co-authored-by: Aleksander Baranowski <aleksander.baranowski@yahoo.pl>
Co-authored-by: Upils <5464641+upils@users.noreply.github.com>
Co-authored-by: Callahan <callahan.kovacs@canonical.com>
Co-authored-by: Alejandro Santisteban <alex.santisteban@canonical.com>
Co-authored-by: Cristovao Cordeiro <cristovao.cordeiro@canonical.com>
Co-authored-by: Daniel W. Steinbrook <daniel.steinbrook@canonical.com>
Co-authored-by: Anna Sancho Vaquer <anna.sanchovaquer@canonical.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: lengau <4305943+lengau@users.noreply.github.com>
Co-authored-by: zhijie-yang <zhijie.yang@canonical.com>
Co-authored-by: Ali UĞUR <39213991+alithethird@users.noreply.github.com>
Co-authored-by: Gunnar <95594654+Guno327@users.noreply.github.com>
Co-authored-by: arturo-seijas <102022572+arturo-seijas@users.noreply.github.com>
Co-authored-by: Robert Krátký <robert.kratky@canonical.com>
Co-authored-by: Giancarlo Cicellyn Comneno <126195429+gcomneno@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants