Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
45f10b4
Feat: extension dispatch for 12-factor extensions.
alithethird Jun 12, 2026
91704fd
chore: cleanup
alithethird Jun 15, 2026
ad71489
chore: addback the resolute invalid
alithethird Jun 15, 2026
687afdc
chore: revert fmt
alithethird Jun 15, 2026
d4dbd67
chore: create get_project_bases back
alithethird Jun 15, 2026
15fd4bf
chore: cleanup
alithethird Jun 15, 2026
4ab80ec
chore: Bring back old init templates and version the new ones
alithethird Jun 15, 2026
80d88cd
chore: set 26.04 and 26.10 as experimental for charm plugin
alithethird Jun 15, 2026
f280400
chore: apply comments
alithethird Jun 16, 2026
c4d347e
chore: use pascalcase for class
alithethird Jun 17, 2026
98431e5
chore: doc links
alithethird Jun 17, 2026
dc87866
Merge branch 'main' into feat/extension-dispatch
alithethird Jun 17, 2026
319f7e9
Merge branch 'main' into feat/extension-dispatch
alithethird Jun 18, 2026
5120976
chore: apply comments
alithethird Jun 18, 2026
ffabbf4
fix: experimental
alithethird Jun 18, 2026
de0a12b
fix: default to v2 and rename v1 frameworks
alithethird Jun 18, 2026
54befed
Merge branch 'main' into feat/extension-dispatch
alithethird Jun 18, 2026
f062b3d
Merge branch 'main' into feat/extension-dispatch
alithethird Jun 19, 2026
6b3787a
Merge branch 'main' into feat/extension-dispatch
alithethird Jun 23, 2026
ba30292
docs: Update docs for v2 12-factor extensions.
alithethird Jun 24, 2026
f2cba0b
Merge branch 'main' into docs/12-factor-v2
alithethird Jun 24, 2026
630da5a
Merge branch 'main' into docs/12-factor-v2
alithethird Jun 26, 2026
e0306a4
docs: add linting and testing dependencies to project templates
alithethird Jun 26, 2026
5a3acee
fix(templates): organize imports in new templates
dwilding Jun 26, 2026
0a7eb49
Merge branch 'main' into docs/12-factor-v2
alithethird Jun 30, 2026
a723676
fix(tox): enable tests path in tox.ini templates for various frameworks
alithethird Jun 30, 2026
86a0779
Merge branch 'main' into docs/12-factor-v2
alithethird Jun 30, 2026
cff223a
Merge branch 'main' into docs/12-factor-v2
alithethird Jul 2, 2026
834d3b0
Merge branch 'main' into docs/12-factor-v2
alithethird Jul 3, 2026
0b76ad8
fix(docs): standardize tab indentation for Kubernetes log commands in…
alithethird Jul 6, 2026
982f365
fix(docs): correct indentation and formatting in manage-extensions.rst
alithethird Jul 6, 2026
068d32d
Merge branch 'main' into docs/12-factor-v2
erinecon Jul 7, 2026
5ad5671
fix(docs): update paas-charm library version information and standard…
alithethird Jul 8, 2026
1644bfe
Merge branch 'main' into docs/12-factor-v2
erinecon Jul 9, 2026
30f38b5
Merge branch 'main' into docs/12-factor-v2
erinecon Jul 10, 2026
210ec54
Merge branch 'main' into docs/12-factor-v2
erinecon Jul 14, 2026
37a906e
Apply suggestions from code review
alithethird Jul 15, 2026
fabb870
Merge branch 'main' into docs/12-factor-v2
alithethird Jul 15, 2026
584a0cc
docs: update extension management guidance for Ubuntu versions
alithethird Jul 15, 2026
54f9533
docs: remove outdated extension behavior notes for Ubuntu versions
alithethird Jul 16, 2026
b7c4747
docs: improve formatting and consistency in manage-extensions guide
alithethird Jul 16, 2026
54bf80f
Merge branch 'main' into docs/12-factor-v2
alithethird Jul 17, 2026
1e673d6
Merge branch 'main' into docs/12-factor-v2
alithethird Jul 20, 2026
b3f7743
Merge branch 'main' into docs/12-factor-v2
medubelko Jul 20, 2026
fa995d3
Merge branch 'main' into docs/12-factor-v2
erinecon Jul 21, 2026
cc1d132
retrigger CI
erinecon Jul 21, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions charmcraft/templates/init-django-framework-26.04/pyproject.toml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,25 @@ charmlibs-pydeps = [
"cosl==1.9.1",
"pydantic==2.13.3",
]
# Dependencies of linting and static type checks
lint = [
"ruff",
"codespell",
"pyright",
]
# Dependencies of unit tests
unit = [
"coverage[toml]",
"ops[testing]",
"pytest",
]
# Dependencies of integration tests
integration = [
"jubilant>=1.8,<2",
"pytest",
"pytest-jubilant>=2.0.1,<3",
"PyYAML",
]


# Testing tools configuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import logging
import typing

import ops

import paas_charm.django

logger = logging.getLogger(__name__)
Expand Down
66 changes: 31 additions & 35 deletions charmcraft/templates/init-django-framework-26.04/tox.ini.j2
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ min_version = 4.0.0

[vars]
src_path = {tox_root}/src
;tests_path = {tox_root}/tests
tests_path = {tox_root}/tests
all_path = {[vars]src_path}

[testenv]
Expand All @@ -31,50 +31,46 @@ commands =
ruff check --fix {[vars]all_path}

[testenv:lint]
description = Check code against coding style standards
deps =
ruff
codespell
description = Check code against coding style standards, and static checks
runner = uv-venv-lock-runner
dependency_groups =
lint
unit
integration
commands =
codespell {tox_root}
ruff check {[vars]all_path}
ruff format --check --diff {[vars]all_path}
pyright {posargs}

[testenv:unit]
description = Run unit tests
deps =
pytest
coverage[toml]
-r {tox_root}/requirements.txt
runner = uv-venv-lock-runner
dependency_groups =
unit
commands =
coverage run --source={[vars]src_path} \
-m pytest \
--tb native \
-v \
-s \
{posargs} \
{[vars]tests_path}/unit
coverage run --source={[vars]src_path} -m pytest \
-v \
-s \
--tb native \
{[vars]tests_path}/unit \
{posargs}
coverage report

[testenv:static]
description = Run static type checks
deps =
pyright
-r {tox_root}/requirements.txt
commands =
pyright {posargs}

[testenv:integration]
description = Run integration tests
deps =
pytest
juju
pytest-operator
-r {tox_root}/requirements.txt
runner = uv-venv-lock-runner
dependency_groups =
integration
pass_env =
# The integration tests don't pack the charm. If CHARM_PATH is set, the tests deploy the
# specified .charm file. Otherwise, the tests look for a .charm file in the project dir.
CHARM_PATH
commands =
pytest -v \
-s \
--tb native \
--log-cli-level=INFO \
{posargs} \
{[vars]tests_path}/integration
pytest \
-v \
-s \
--tb native \
--log-cli-level=INFO \
{[vars]tests_path}/integration \
{posargs}
2 changes: 1 addition & 1 deletion charmcraft/templates/init-django-framework/tox.ini.j2
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ min_version = 4.0.0

[vars]
src_path = {tox_root}/src
;tests_path = {tox_root}/tests
tests_path = {tox_root}/tests
all_path = {[vars]src_path}

[testenv]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,25 @@ charmlibs-pydeps = [
"cosl==1.9.1",
"pydantic==2.13.3",
]
# Dependencies of linting and static type checks
lint = [
"ruff",
"codespell",
"pyright",
]
# Dependencies of unit tests
unit = [
"coverage[toml]",
"ops[testing]",
"pytest",
]
# Dependencies of integration tests
integration = [
"jubilant>=1.8,<2",
"pytest",
"pytest-jubilant>=2.0.1,<3",
"PyYAML",
]


# Testing tools configuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import logging
import typing

import ops

import paas_charm.expressjs

logger = logging.getLogger(__name__)
Expand Down
66 changes: 31 additions & 35 deletions charmcraft/templates/init-expressjs-framework-26.04/tox.ini.j2
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ min_version = 4.0.0

[vars]
src_path = {tox_root}/src
;tests_path = {tox_root}/tests
tests_path = {tox_root}/tests
all_path = {[vars]src_path}

[testenv]
Expand All @@ -31,50 +31,46 @@ commands =
ruff check --fix {[vars]all_path}

[testenv:lint]
description = Check code against coding style standards
deps =
ruff
codespell
description = Check code against coding style standards, and static checks
runner = uv-venv-lock-runner
dependency_groups =
lint
unit
integration
commands =
codespell {tox_root}
ruff check {[vars]all_path}
ruff format --check --diff {[vars]all_path}
pyright {posargs}

[testenv:unit]
description = Run unit tests
deps =
pytest
coverage[toml]
-r {tox_root}/requirements.txt
runner = uv-venv-lock-runner
dependency_groups =
unit
commands =
coverage run --source={[vars]src_path} \
-m pytest \
--tb native \
-v \
-s \
{posargs} \
{[vars]tests_path}/unit
coverage run --source={[vars]src_path} -m pytest \
-v \
-s \
--tb native \
{[vars]tests_path}/unit \
{posargs}
coverage report

[testenv:static]
description = Run static type checks
deps =
pyright
-r {tox_root}/requirements.txt
commands =
pyright {posargs}

[testenv:integration]
description = Run integration tests
deps =
pytest
juju
pytest-operator
-r {tox_root}/requirements.txt
runner = uv-venv-lock-runner
dependency_groups =
integration
pass_env =
# The integration tests don't pack the charm. If CHARM_PATH is set, the tests deploy the
# specified .charm file. Otherwise, the tests look for a .charm file in the project dir.
CHARM_PATH
commands =
pytest -v \
-s \
--tb native \
--log-cli-level=INFO \
{posargs} \
{[vars]tests_path}/integration
pytest \
-v \
-s \
--tb native \
--log-cli-level=INFO \
{[vars]tests_path}/integration \
{posargs}
2 changes: 1 addition & 1 deletion charmcraft/templates/init-expressjs-framework/tox.ini.j2
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ min_version = 4.0.0

[vars]
src_path = {tox_root}/src
;tests_path = {tox_root}/tests
tests_path = {tox_root}/tests
all_path = {[vars]src_path}

[testenv]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,25 @@ charmlibs-pydeps = [
"cosl==1.9.1",
"pydantic==2.13.3",
]
# Dependencies of linting and static type checks
lint = [
"ruff",
"codespell",
"pyright",
]
# Dependencies of unit tests
unit = [
"coverage[toml]",
"ops[testing]",
"pytest",
]
# Dependencies of integration tests
integration = [
"jubilant>=1.8,<2",
"pytest",
"pytest-jubilant>=2.0.1,<3",
"PyYAML",
]


# Testing tools configuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import logging
import typing

import ops

import paas_charm.fastapi

logger = logging.getLogger(__name__)
Expand Down
66 changes: 31 additions & 35 deletions charmcraft/templates/init-fastapi-framework-26.04/tox.ini.j2
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ min_version = 4.0.0

[vars]
src_path = {tox_root}/src
;tests_path = {tox_root}/tests
tests_path = {tox_root}/tests
all_path = {[vars]src_path}

[testenv]
Expand All @@ -31,50 +31,46 @@ commands =
ruff check --fix {[vars]all_path}

[testenv:lint]
description = Check code against coding style standards
deps =
ruff
codespell
description = Check code against coding style standards, and static checks
runner = uv-venv-lock-runner
dependency_groups =
lint
unit
integration
commands =
codespell {tox_root}
ruff check {[vars]all_path}
ruff format --check --diff {[vars]all_path}
pyright {posargs}

[testenv:unit]
description = Run unit tests
deps =
pytest
coverage[toml]
-r {tox_root}/requirements.txt
runner = uv-venv-lock-runner
dependency_groups =
unit
commands =
coverage run --source={[vars]src_path} \
-m pytest \
--tb native \
-v \
-s \
{posargs} \
{[vars]tests_path}/unit
coverage run --source={[vars]src_path} -m pytest \
-v \
-s \
--tb native \
{[vars]tests_path}/unit \
{posargs}
coverage report

[testenv:static]
description = Run static type checks
deps =
pyright
-r {tox_root}/requirements.txt
commands =
pyright {posargs}

[testenv:integration]
description = Run integration tests
deps =
pytest
juju
pytest-operator
-r {tox_root}/requirements.txt
runner = uv-venv-lock-runner
dependency_groups =
integration
pass_env =
# The integration tests don't pack the charm. If CHARM_PATH is set, the tests deploy the
# specified .charm file. Otherwise, the tests look for a .charm file in the project dir.
CHARM_PATH
commands =
pytest -v \
-s \
--tb native \
--log-cli-level=INFO \
{posargs} \
{[vars]tests_path}/integration
pytest \
-v \
-s \
--tb native \
--log-cli-level=INFO \
{[vars]tests_path}/integration \
{posargs}
2 changes: 1 addition & 1 deletion charmcraft/templates/init-fastapi-framework/tox.ini.j2
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ min_version = 4.0.0

[vars]
src_path = {tox_root}/src
;tests_path = {tox_root}/tests
tests_path = {tox_root}/tests
all_path = {[vars]src_path}

[testenv]
Expand Down
Loading
Loading