Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
198 commits
Select commit Hold shift + click to select a range
afc6663
docs: add readme template (#387)
medubelko May 8, 2025
abed958
build(deps): lock file maintenance (#389)
renovate[bot] May 27, 2025
b532d9a
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] May 27, 2025
0f27227
chore: remove dynamic readme field (#388)
bepri May 27, 2025
09158f7
ci(tics): add branch for troubleshooting changes to tics (#391)
bepri May 28, 2025
d842e5a
feat(lint): add uv lockfile linter (#396)
lengau Jun 3, 2025
7fb5bba
docs: rearrange READMEs (#397)
bepri Jun 5, 2025
5236f2a
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Jun 6, 2025
d240af2
docs: add linkcheck to doc checks (#398)
lengau Jun 6, 2025
faccd06
ci: make RTD use `make docs` (#401)
lengau Jun 9, 2025
3b0bad9
chore: remove codeowners
bepri May 29, 2025
1e3b089
build(deps): update dependency mypy to ~=1.16.0 (#402)
renovate[bot] Jun 9, 2025
4a9a1de
docs: add links and buttons to conf.py (#403)
jahn-junior Jun 10, 2025
9b704b7
build(docs): add sitemap generator (#404)
medubelko Jun 16, 2025
c576d42
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Jun 24, 2025
c860142
style: autoformat with newest prettier (#411)
lengau Jun 24, 2025
18e50d3
style: add pre-commit to auto-formatting (#405)
lengau Jun 25, 2025
18e73be
docs: update code of conduct link (#410)
lengau Jun 25, 2025
095cb0a
style(ruff): disable PLW1641 (#409)
lengau Jun 25, 2025
dc41fe4
style: fix linting for ruff 0.12 (#408)
lengau Jul 7, 2025
2443e63
fix: walk back pre-commit all-files
lengau Jul 9, 2025
3cc0e96
style: add TC001, TC002 and TC003 rules (#415)
upils Jul 15, 2025
96a080d
docs: update contribution links (#416)
mr-cal Jul 15, 2025
2a4568f
ci: install python3-venv in release workflow (#414)
lengau Jul 17, 2025
df0ff64
fix: install system packages during setup (#418)
jahn-junior Jul 23, 2025
20991a2
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Jul 24, 2025
216fcd1
fix: remove conflicting syncs during setup (#419)
jahn-junior Jul 24, 2025
cf3900b
build(deps): update dependency canonical-sphinx to ~=0.5.1 (#420)
renovate[bot] Jul 28, 2025
4a5d6a0
build(deps): update dependency mypy to ~=1.17.1 (#421)
renovate[bot] Aug 4, 2025
0d4544f
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Aug 11, 2025
37bb2a8
docs: enable Google Analytics (#424)
jahn-junior Aug 13, 2025
4e5f81c
build(deps): update dependency sphinx-toolbox to v4 (#393)
renovate[bot] Aug 14, 2025
0ab5cfa
build(deps): update pre-commit hook pre-commit/pre-commit-hooks to v6…
renovate[bot] Aug 14, 2025
95945ac
docs: update code of conduct links (#427)
lengau Aug 14, 2025
f4d2895
build(deps): update github actions to v5 (#428)
renovate[bot] Aug 14, 2025
3e32e6d
build(deps): lock file maintenance (#426)
renovate[bot] Aug 15, 2025
b42c04a
ci: fix publish workflow (#430)
lengau Aug 15, 2025
e2c955d
build(deps): lock file maintenance (#431)
renovate[bot] Aug 15, 2025
8b2dcde
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Aug 15, 2025
2262e30
fix(tests): better typing for tests (#433)
lengau Aug 18, 2025
cd7c68c
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Sep 2, 2025
5ef1053
chore: add IDE configs to gitignore (#435)
bepri Sep 2, 2025
5185e0a
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Sep 8, 2025
c2390f0
feat(Makefile): add ty as an optional linter (#429)
lengau Sep 8, 2025
8df6d82
build(deps): update actions/setup-node action to v5 (#439)
renovate[bot] Sep 8, 2025
6c3747e
build(deps): update dependency mypy to ~=1.18.1 (#443)
renovate[bot] Sep 15, 2025
43fa30d
fix(gitignore): only ignore a top-level parts dir (#441)
lengau Sep 15, 2025
0d1ef52
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Sep 15, 2025
9cbbaf5
docs: make linkcheck more forgiving (#444)
lengau Sep 19, 2025
f9460cc
build(deps): update dependency pytest-cov to v7 (#445)
renovate[bot] Sep 22, 2025
81daaa8
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Sep 22, 2025
ebfa5cc
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Oct 1, 2025
ebfec44
docs: add `CONTRIBUTING.md` template (#448)
jahn-junior Oct 2, 2025
91e0487
build(deps): update dependency sphinxext-rediraffe to v0.3.0 (#449)
renovate[bot] Oct 6, 2025
03e9201
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Oct 6, 2025
7f4485e
build(deps): lock file maintenance (#452)
renovate[bot] Oct 14, 2025
885a3bf
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Oct 14, 2025
ec0cf32
build(docs): remove line length check from linter (#453)
medubelko Oct 16, 2025
cc5af24
build(deps): update actions/setup-node action to v6 (#454)
renovate[bot] Oct 21, 2025
4979e85
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Oct 27, 2025
9c01405
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Nov 4, 2025
ce7318f
Add .venv removal to make clean (#461)
Copilot Nov 17, 2025
7613094
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Nov 17, 2025
7803c7c
build(deps): update github actions (#458)
renovate[bot] Nov 17, 2025
93f3b47
chore: add documentation items to PR checklist (#463)
jahn-junior Nov 21, 2025
744f1ad
build(deps): update dependency pytest to v9 (#464)
renovate[bot] Nov 25, 2025
74e7e3e
build(deps): update actions/checkout action to v6 (#465)
renovate[bot] Nov 25, 2025
7f6dd57
build(deps): update dependency mypy to ~=1.19.0 (#467)
renovate[bot] Dec 1, 2025
0177b05
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Dec 1, 2025
93b1534
build(deps): lock file maintenance (#469)
renovate[bot] Dec 8, 2025
1cfd271
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Dec 8, 2025
7982765
style: enable ty by default (#472)
lengau Dec 19, 2025
334adfe
build(docs): make `clean` target scrub `docs/reference/gen` (#477)
lengau Jan 8, 2026
b38a621
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Jan 9, 2026
6910a9b
build(deps): update github actions (#479)
renovate[bot] Jan 15, 2026
c47c166
build(deps): update canonical starter pack to 1.3.1
medubelko Jan 9, 2026
7ff4723
build(deps): remove dependency sphinx-toolbox
medubelko Jan 10, 2026
e94f190
build(docs): add passthrough to docs Makefile
medubelko Jan 9, 2026
a551c9d
docs: fix spelling errors
medubelko Jan 15, 2026
9e5b300
build(deps): lock file maintenance (#471)
renovate[bot] Jan 16, 2026
602d1d0
docs: mandate conventional commits in PR titles
medubelko Jan 26, 2026
014764d
build(docs): exclude reuse dir (#483)
medubelko Jan 27, 2026
d348aad
docs: remove scheduled feature deprecations from rn template (#484)
medubelko Jan 29, 2026
ecc3462
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Jan 30, 2026
b878f19
docs: add guidance for contribs to rn template (#485)
medubelko Jan 30, 2026
1e6e525
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Feb 9, 2026
de6593f
build(deps): lock file maintenance (#486)
renovate[bot] Feb 12, 2026
64374bc
build(docs): remove myst check (#488)
medubelko Feb 12, 2026
22e9ce4
fix(build): use correct autobuild command (#491)
medubelko Feb 13, 2026
560adbf
docs: ensure we never delete a "real" file (#492)
bepri Feb 13, 2026
43c54fa
build(deps): remove unused docs dependencies (#490)
medubelko Feb 13, 2026
136c2e2
build(docs): disable vale check (#489)
medubelko Feb 13, 2026
b304e0a
fix(build): false lint errors (#493)
medubelko Feb 13, 2026
c1aab61
build(deps): restore sphinxcontrib-jquery>=4.1 (#494)
medubelko Feb 17, 2026
f768dcd
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Mar 5, 2026
e810141
chore: remove comment fences from GitHub templates (#498)
bepri Mar 6, 2026
01a6030
build(deps): update github actions (#497)
renovate[bot] Mar 9, 2026
e385e9d
feat(lint): lint the Github actions with actionlint (#473)
lengau Mar 9, 2026
0344506
fix: help formatting when running `make -f common.mk` (#501)
medubelko Mar 11, 2026
726359a
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Mar 11, 2026
8c01792
build(docs): upgrade Starter Pack to 1.5 (#499)
jahn-junior Mar 13, 2026
80e67c9
docs: add 'about this documentation' (#502)
medubelko Mar 13, 2026
22b81ba
build(deps): update dependency sphinx-sitemap to ==2.6.0 (#504)
medubelko Mar 17, 2026
4d91bce
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Mar 17, 2026
e7954a7
ci(osv-scanner): ignore integration tests (#505)
mr-cal Mar 18, 2026
0867e7e
fix(ci): collapse the docs checks in the workflow logs (#508)
lengau Mar 20, 2026
7914437
build(deps): update dependency sphinx-sitemap to v2.9.0 (#506)
renovate[bot] Mar 23, 2026
39eefe0
build(deps): lock file maintenance (#507)
renovate[bot] Mar 23, 2026
fd03adc
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Mar 30, 2026
91bfdb5
build(deps): update dependency mypy to ~=1.20.0 (#515)
renovate[bot] Apr 7, 2026
4e8ef8a
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Apr 7, 2026
c9fecdf
build(deps): bump pygments (#517)
bepri Apr 8, 2026
a38d79a
docs: block intersphinx lookup for internal links (#519)
medubelko Apr 10, 2026
66911da
docs: format doc version as major.minor (#520)
medubelko Apr 11, 2026
1107517
build(docs): fix double build with docs-lint (#513)
medubelko Apr 13, 2026
25d7d15
docs: update Starter Pack variables (#523)
jahn-junior Apr 15, 2026
3441407
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Apr 17, 2026
e372177
build(deps): bump pytest (#524)
smethnani Apr 17, 2026
a73333a
chore: add doc meta description to pr checklist (#521)
medubelko Apr 20, 2026
829b31f
style(lint): ignore FBT001 and FBT002 in tests (#528)
lengau Apr 22, 2026
b434201
build: fix docs-install target (#525)
mr-cal Apr 23, 2026
5833fc6
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Apr 27, 2026
50567fc
docs: minor clean up and reorg (#529)
medubelko Apr 28, 2026
c811509
build(deps): update softprops/action-gh-release action to v3 (#526)
renovate[bot] Apr 29, 2026
f7ccae3
docs: remove bounty instructions (#530)
bepri May 4, 2026
cf39b36
fix(ty): point to venv (#534)
bepri May 11, 2026
c7e200d
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] May 19, 2026
c9415c7
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] May 26, 2026
5641f05
build(deps): update dependency mypy to v2 (#533)
renovate[bot] May 27, 2026
fafd1fc
build(docs): update Sphinx Stack to 2.0 (#537)
jahn-junior Jun 2, 2026
663c1b4
build(deps): bump lxml (#540)
jahn-junior Jun 2, 2026
edcc1af
build(deps): update bugfixes to v0.15.15 (#539)
renovate[bot] Jun 3, 2026
ca8caba
build(deps): add constraint for Starlette (#547)
steinbro Jun 4, 2026
ccb17d2
docs: add filter to qa workflow (#546)
medubelko Jun 4, 2026
7e56723
docs: update starflow intersphinx mapping (#548)
lengau Jun 4, 2026
875e9e7
build(Makefile): add lint-code target (#549)
mr-cal Jun 5, 2026
2cf6c9a
feat: add agents files (#543)
mr-cal Jun 5, 2026
3754b6a
build: harden 'make help' for shell portability (#542)
lengau Jun 5, 2026
9491560
fix: update path in '.prettierignore' (#550)
jahn-junior Jun 5, 2026
f44e2e7
docs: resolve `docs-lint` issues (#551)
jahn-junior Jun 5, 2026
f35148c
docs(build): fix typos in make help output
bepri Jun 8, 2026
b856f52
docs: fix AGENTS.md typo (#559)
bepri Jun 15, 2026
0b67b94
docs: update docs subproject readme (#554)
medubelko Jun 15, 2026
58d539b
build(deps): update ruff pre-commit to v0.15.17 (#561)
renovate[bot] Jun 15, 2026
ba42dd9
chore: use the non-legacy ruff check pre-commit hook (#562)
lengau Jun 15, 2026
cd8d487
ci: set read permissions for qa workflow (#557)
medubelko Jun 15, 2026
544b986
fix(build): collapse docs-install logs under parent targets (#563)
lengau Jun 15, 2026
12f1281
ci: add ubuntu-26.04 test platforms to QA workflow (#564)
lengau Jun 17, 2026
eeeb3db
ci: add code owners (#567)
mr-cal Jun 18, 2026
e56cce3
build(docs): override docs-clean target (#566)
medubelko Jun 18, 2026
d0c7328
build(deps): update bugfixes to v0.15.18 (main) (#569)
renovate[bot] Jun 22, 2026
7c9407b
build(deps): update github actions to v7 (main) (#568)
renovate[bot] Jun 22, 2026
d3f08a3
feat: codify CVE policy (#570)
mr-cal Jun 29, 2026
63abe23
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Jun 29, 2026
ce67a6b
build(deps): update dorny/paths-filter action to v4.0.2 (main) (#572)
renovate[bot] Jul 6, 2026
95108a2
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Jul 13, 2026
9ee7880
build(deps): update dependency mypy to ~=2.2.0 (main) (#574)
renovate[bot] Jul 13, 2026
c4133af
ci: update usage of starflow security scanner (#573)
lengau Jul 13, 2026
be54208
ci: install uv in renovate check workflow (#576)
lengau Jul 14, 2026
e978069
feat(build): add shfmt tool for shell formatting (#565)
lengau Jul 14, 2026
523e0fc
build(deps): update github actions (#578)
renovate[bot] Jul 24, 2026
f18417a
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Aug 3, 2026
e72ef25
ci: do not double-lint renovate PRs (#581)
bepri Aug 5, 2026
adddfde
style: ruff 0.16 (#582)
mr-cal Aug 10, 2026
8f23a8b
docs: declare slug in config (#583)
jahn-junior Aug 11, 2026
c4bb984
ci: expand policy job permissions (#584)
jahn-junior Aug 11, 2026
99f4892
build(deps): update dependency mypy to ~=2.3.0 (#577)
renovate[bot] Aug 12, 2026
f35019e
fix: remove duplicate word in CONTRIBUTING.md (#586)
lengau Aug 13, 2026
f86068e
fix(ci): resolve all zizmor findings in GitHub workflows (#585)
lengau Aug 13, 2026
23328cd
docs: fix version in title (#588)
jahn-junior Aug 18, 2026
865a2ce
ci: add zizmor actions permission (#591)
bepri Aug 19, 2026
9c0cd87
docs: remove `html_title` from config (#590)
jahn-junior Aug 19, 2026
00e6976
build: run docs-clean as part of clean target (#594)
mr-cal Aug 19, 2026
7990e7f
docs(agents): update overview (#593)
mr-cal Aug 19, 2026
5565942
style: summarise -> summarize (#592)
mr-cal Aug 19, 2026
2e2d6c9
chore: make zizmor configuration less verbose (#595)
lengau Aug 20, 2026
e64bbd6
ci: fix release workflow (#596)
mr-cal Sep 9, 2026
79fa93c
feat: format toml files with tombi (#597)
bepri Sep 11, 2026
7ea9d48
ci(docs): Exclude pypi job from starbase merges (#601)
lengau Sep 25, 2026
ad3e31b
ci: allow spread-enabled actionlint label (#602)
Copilot Sep 29, 2026
02bdf79
ci(docs): Suppress Vale on the Starcraft mention (#605)
Copilot Sep 29, 2026
3c932c5
docs: yo dawg, I heard you like lint fixes (#606)
lengau Oct 1, 2026
44037ed
ci: add Copilot setup workflow with cached tool preinstall (#599)
Copilot Oct 1, 2026
23ab3cb
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Oct 5, 2026
93535c6
build(deps): update github actions (#613)
renovate[bot] Oct 5, 2026
70c895b
style: format docs README with Prettier (#616)
lengau Oct 5, 2026
114a443
ci(common.mk): add collapsible log group to lint-uv-lockfile (#615)
mr-cal Oct 6, 2026
a310931
ci: update release-publish.yaml (#617)
lengau Oct 9, 2026
e71c218
build(deps): update astral-sh/setup-uv action to v10 (#620)
renovate[bot] Oct 9, 2026
26946d1
build(deps): update github actions (#618)
renovate[bot] Oct 9, 2026
3a6537c
build(deps): update dependency mypy to ~=2.4.0 (#619)
renovate[bot] Oct 9, 2026
cb4cb54
build(deps): lock file maintenance (#622)
renovate[bot] Oct 13, 2026
1104bc6
style: drop mypy, pyright (#624)
mr-cal Oct 13, 2026
bdab610
build(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.1…
renovate[bot] Oct 15, 2026
3c895c5
build(deps): update github actions (#637)
renovate[bot] Oct 19, 2026
d7affc9
docs: instruct agents to never run 'make -C docs' (#636)
dangertoaster Oct 19, 2026
1b92e7b
docs: suggest reusing index.rst first sentence for llms_txt_descripti…
Shahzeb-DataEngineer Oct 20, 2026
8bf89c5
chore(merge): update starbase (2026-10-20)
dangertoaster Oct 20, 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
3 changes: 3 additions & 0 deletions .editorconfig
Comment thread
bepri marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,6 @@ max_line_length = off

[{*.yaml,*.yml}]
indent_size = 2

[*.toml]
indent_size = 2
11 changes: 8 additions & 3 deletions .github/PULL_REQUEST_TEMPLATE.md
Comment thread
bepri marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
- [ ] Have you followed the guidelines for contributing?
- [ ] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [ ] Have you successfully run `make lint && make test`?
Describe your changes.

---

- [ ] I've followed the [contribution guidelines](https://github.com/canonical/craft-cli/blob/main/CONTRIBUTING.md).
- [ ] I've signed the [CLA](http://www.ubuntu.com/legal/contributors/).
- [ ] I've successfully run `make lint && make test`.
- [ ] I've added or updated any relevant documentation.
- [ ] In documents I changed, I [added a meta description](https://canonical-starflow.readthedocs-hosted.com/how-to/add-a-page-meta-description/) if one was missing.
- [ ] I've updated the relevant release notes.
28 changes: 28 additions & 0 deletions .github/actionlint.yaml
Comment thread
bepri marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Configuration related to self-hosted runner.
self-hosted-runner:
# Labels of self-hosted runner in array of strings.
labels:
- spread-enabled
- spread-installed
# Architectures
- amd64
- arm64
- ppc64el
- riscv64
- s390x
# Ubuntu releases
- focal
- jammy
- noble
- resolute
# Sizes
- medium
- large
- xlarge
- 2xlarge
- 2xlarge-extra
# Additional possible labels
- edge
- tiobe
- large-tiobe
- 2xlarge-tiobe
13 changes: 10 additions & 3 deletions .github/workflows/check-renovate.yaml
Comment thread
dangertoaster marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,24 @@ on:
jobs:
renovate:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v7
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Install node
uses: actions/setup-node@v7
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24
- name: Install uv
uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
- name: Install renovate
# zizmor: ignore[adhoc-packages] renovate is installed ad-hoc here to validate its own config; there is no lockfile for this ephemeral tool.
run: npm install --global re2 renovate
- name: Enable ssh access
uses: mxschmitt/action-tmate@v3
uses: mxschmitt/action-tmate@35b54afac29c97fb54faba5b513f8fbd1882f113 # v3.24
if: ${{ inputs.enable_ssh_access }}
with:
limit-access-to-actor: true
Expand Down
75 changes: 75 additions & 0 deletions .github/workflows/copilot-setup-steps.yaml
Comment thread
bepri marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: Copilot Setup Steps

on:
workflow_dispatch:
push:
paths:
- .github/workflows/copilot-setup-steps.yaml
pull_request:
paths:
- .github/workflows/copilot-setup-steps.yaml

jobs:
copilot-setup-steps:
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Set up Node.js
uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: 24
cache: npm
cache-dependency-path: common.mk

- name: Install uv
uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
with:
enable-cache: true
cache-dependency-glob: |
pyproject.toml
uv.lock

- name: Install release tools
uses: taiki-e/install-action@8cca0918f8471c33515202b73f56ab27f2bed283 # v2.87.29
with:
tool: |
osv-scanner
prek
shellcheck
shfmt
tombi
zizmor
fallback: none

- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install --yes \
libxml2-dev \
libxslt1-dev

- name: Install actionlint
env:
GH_TOKEN: ${{ github.token }}
run: |
mkdir -p "$HOME/.local/bin"
gh release download \
--repo rhysd/actionlint \
--pattern 'actionlint_*_linux_amd64.tar.gz' \
--output /tmp/actionlint.tar.gz \
--clobber
tar -xzf /tmp/actionlint.tar.gz -C "$HOME/.local/bin" actionlint
echo "$HOME/.local/bin" >> "$GITHUB_PATH"

- name: Prepare git configuration
run: git config --local --unset-all core.hooksPath || true

- name: Set up remaining repository tooling
run: make setup
11 changes: 10 additions & 1 deletion .github/workflows/policy.yaml
Comment thread
bepri marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,19 @@ on:
jobs:
policy:
permissions:
contents: read
actions: read
contents: read
security-events: write
uses: canonical/starflow/.github/workflows/policy.yaml@main
python-scans:
name: Security scan
permissions:
contents: read
uses: canonical/starflow/.github/workflows/scan-python.yaml@main
with:
osv-extra-args: "--config=osv-scanner.toml"
osv-exclude-paths: |
docs
uv-export-no-groups: |
docs
docs-sphinx-stack
59 changes: 34 additions & 25 deletions .github/workflows/release-publish.yaml
Comment thread
bepri marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -3,70 +3,79 @@ on:
push:
tags:
# These tags should be protected, remember to enable the rule:
# https://github.com/canonical/craft-cli/settings/tag_protection
# https://github.com/canonical/starbase/settings/tag_protection
- "[0-9]+.[0-9]+.[0-9]+"

permissions:
contents: write
pull_request:
paths:
- .github/workflows/release-publish.yaml

jobs:
source-wheel:
runs-on: [self-hosted]
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository)
runs-on: [self-hosted, medium, linux]
Comment thread
dangertoaster marked this conversation as resolved.
permissions:
contents: read
steps:
- name: Install uv
run: |
sudo snap install --classic astral-uv
sudo apt-get install --yes python3-venv
- name: Checkout
uses: actions/checkout@v7
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Fetch tag annotations
if: ${{ github.event_name != 'pull_request' }}
run: |
# Note: we fetch the tags here instead of using actions/checkout's "fetch-tags"
# because of https://github.com/actions/checkout/issues/1467
git fetch --force --tags --depth 1
git describe --dirty --long --match '[0-9]*.[0-9]*.[0-9]*' --exclude '*[^0-9.]*'
- name: Build packages
run: |
uv venv --no-managed-python
uv pip install build twine
uv run -m build
uv run twine check dist/*
uv build
uvx twine check dist/*
- name: Upload pypi packages artifact
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: pypi-packages
path: dist/
# NOTE: This PyPI publishing job is often unnecessary for most applications
# that use starbase. Please ensure this job is excluded from merges/PRs
# originating from starbase unless explicitly required for a specific app.
pypi:
needs: ["source-wheel"]
runs-on: [self-hosted, amd64]
runs-on: [self-hosted, amd64, medium, linux]
permissions:
# IMPORTANT: this permission is mandatory for trusted publishing
id-token: write
steps:
- name: Get packages
uses: actions/download-artifact@v8
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
name: pypi-packages
path: dist/
- name: Publish to pypi
# Only actually push to pypi when we're on a tag.
if: ${{ startsWith(github.ref, 'refs/tags/') }}
# Note: this action uses PyPI's support for Trusted Publishers
# It needs a configuration on the PyPI project - see:
# https://docs.pypi.org/trusted-publishers/adding-a-publisher/#github-actions
uses: pypa/gh-action-pypi-publish@release/v1
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # release/v1
github-release:
needs: ["source-wheel"]
runs-on: [self-hosted]
runs-on: [self-hosted, medium, linux]
permissions:
contents: write
steps:
- name: Get pypi artifacts
uses: actions/download-artifact@v8
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
name: pypi-packages
- name: Release
uses: softprops/action-gh-release@v3
with:
# Generate release notes on the new GH release
generate_release_notes: true
# Add wheel and source tarball
files: |
*.whl
*.tar.gz
# Only actually publish the Github release when we're on a tag.
if: ${{ startsWith(github.ref, 'refs/tags/') }}
env:
GH_REPO: ${{ github.repository }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RELEASE_TAG: ${{ github.ref_name }}
run: gh release create "$RELEASE_TAG" --generate-notes -- *.whl *.tar.gz
9 changes: 6 additions & 3 deletions .github/workflows/tics.yaml
Comment thread
dangertoaster marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,15 @@ on:
push:
branches:
- "main"
# For debugging
- "work/tiobe*"
# For troubleshooting
- "work/tiobe**"

jobs:
TICS:
permissions:
contents: read
uses: canonical/starflow/.github/workflows/tics.yaml@main
with:
project: "craft-cli"
secrets: inherit
secrets:
TICSAUTHTOKEN: ${{ secrets.TICSAUTHTOKEN }}
5 changes: 5 additions & 0 deletions .github/zizmor.yaml
Comment thread
bepri marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rules:
unpinned-uses:
config:
policies: # Allow unpinned references to starflow.
canonical/starflow/*: ref-pin
15 changes: 11 additions & 4 deletions .gitignore
Comment thread
bepri marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ eggs/
.eggs/
lib/
lib64/
parts/
# Only top level parts dir, otherwise this conflicts with inner dirs called parts.
/parts/
sdist/
var/
wheels/
Expand Down Expand Up @@ -72,6 +73,8 @@ instance/

# Sphinx documentation
docs/_build/
docs/_linkcheck/
docs/reference/gen/
docs/spelling/

# PyBuilder
Expand Down Expand Up @@ -144,8 +147,12 @@ dmypy.json
# Ignore version module generated by setuptools_scm
/*/_version.py

# Visual Studio Code
.vscode/

# IDE configs
# VS Code/Codium
/.vscode/
# JetBrains IDEs
/.idea/
# Zed
/.zed/
# KDevelop
/.kdev4/
8 changes: 7 additions & 1 deletion .pre-commit-config.yaml
Comment thread
bepri marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,11 @@ repos:
rev: "" # Intentionally blank, despite the warning.
hooks:
- id: prettier
files: ^(.\/?)*\.(yaml|yml|json|json5|css|md)$
additional_dependencies:
- prettier@3.4.2
- prettier@3.6.0 # renovate: datasource=npm
- repo: https://github.com/scop/pre-commit-shfmt
rev: "v3.13.1-1"
hooks:
- id: shfmt
exclude: '\.sh\.j2$'
6 changes: 6 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,12 @@ make docs
make lint-docs
```

Run documentation targets from the repository root using `make docs-<target>`;
never invoke the docs Makefile directly, with `make -C`, or equivalent, as it
bypasses required configuration. Use `make docs-help` to list targets. This
applies only to commands you run directly, not those triggered via repo
tooling.

## Practices

- Backward compatibility is a **hard requirement**. Apps using this library must
Expand Down
21 changes: 5 additions & 16 deletions Makefile
Comment thread
bepri marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@ UV_TICS_GROUPS := "--group=tics"
include common.mk

.PHONY: format
format: format-ruff format-codespell format-prettier ## Run all automatic formatters
format: format-ruff format-codespell format-prettier format-shfmt format-tombi format-pre-commit ## Run all automatic formatters

.PHONY: lint
lint: lint-ruff lint-ty lint-codespell lint-prettier lint-shellcheck lint-docs lint-twine ## Run all linters
lint: lint-code lint-docs lint-twine lint-uv-lockfile lint-actions ## Run all linters
Comment thread
dangertoaster marked this conversation as resolved.

.PHONY: lint-code
lint-code: lint-ruff lint-ty lint-codespell lint-prettier lint-shfmt lint-shellcheck lint-tombi ## Run code-specific linters

.PHONY: pack
pack: pack-pip ## Build all packages
Expand Down Expand Up @@ -44,17 +47,3 @@ endif
# If additional build dependencies need installing in order to build the linting env.
.PHONY: install-lint-build-deps
install-lint-build-deps: install-ty

.PHONY: lint-ty
lint-ty: install-ty
ty check

.PHONY: install-ty
install-ty:
ifneq ($(shell which ty),)
else ifneq ($(shell which snap),)
sudo snap install --beta astral-ty
sudo snap alias astral-ty.ty ty
else ifneq ($(shell which uv),)
uv tool install ty
endif
Loading
Loading