Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .copier-answers.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Changes here will be overwritten by Copier; NEVER EDIT MANUALLY
_commit: 0.13.0
_commit: 0.14.0
_src_path: gh:quickplates/meta
accountname: quickplates
description: Generic project template 馃懁
Expand Down
19 changes: 19 additions & 0 deletions .devcontainer/devcontainer-lock.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"features": {
"ghcr.io/devcontainers-extra/features/direnv:1.0.3": {
"integrity": "sha256:cd4c07352fb75cadcdde6f8cabba49224341eb4d5348870a7434b0ad15128a48",
"resolved": "ghcr.io/devcontainers-extra/features/direnv@sha256:cd4c07352fb75cadcdde6f8cabba49224341eb4d5348870a7434b0ad15128a48",
"version": "1.0.3"
},
"ghcr.io/devcontainers-extra/features/starship:1.0.10": {
"integrity": "sha256:3184b569f58b9106a27fff1e76566f2ac7a03835c3bc01b0853566b8503b2b54",
"resolved": "ghcr.io/devcontainers-extra/features/starship@sha256:3184b569f58b9106a27fff1e76566f2ac7a03835c3bc01b0853566b8503b2b54",
"version": "1.0.10"
},
"ghcr.io/devcontainers/features/nix:1.3.1": {
"integrity": "sha256:8953a9da475055d140db0ede314e8e1b117d28c1eabf289c1b07c7619ce6c078",
"resolved": "ghcr.io/devcontainers/features/nix@sha256:8953a9da475055d140db0ede314e8e1b117d28c1eabf289c1b07c7619ce6c078",
"version": "1.3.1"
}
}
}
7 changes: 3 additions & 4 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -139,16 +139,15 @@
"version": "2.37.1"
},
"ghcr.io/devcontainers-extra/features/starship:1.0.10": {
"version": "1.24.0"
"version": "1.26.0"
},
"ghcr.io/devcontainers/features/nix:1.2.0": {
"ghcr.io/devcontainers/features/nix:1.3.1": {
"extraNixConfig": "experimental-features = nix-command flakes",
"version": "2.28.5"
"version": "2.35.2"
}
},
"mounts": [
"source=devcontainer-shared-secrets,target=/secrets/,type=volume",
"source=devcontainer-${devcontainerId}-nix,target=/nix/,type=volume",
"source=devcontainer-${devcontainerId}-shellhistory-persist,target=/persist/shellhistory/,type=volume",
"source=devcontainer-shared-trunk-cache,target=/cache/trunk/,type=volume",
"source=devcontainer-shared-npm-cache,target=/cache/npm/,type=volume"
Expand Down
2 changes: 1 addition & 1 deletion .devcontainer/image/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# It also has git, zsh and a bunch of other stuff preinstalled
# Also, it includes a non-root 'vscode' user with sudo access
# The version is pinned to ensure reproducibility
FROM mcr.microsoft.com/devcontainers/base:1.2.6-ubuntu-24.04
FROM mcr.microsoft.com/devcontainers/base:3.0.8-ubuntu24.04

ENV REMOTE_USER=vscode

Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/example.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,18 +37,18 @@ jobs:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v5.0.0
uses: actions/checkout@v7.0.1
- name: Setup Nix cache
uses: actions/cache@v4.3.0
uses: actions/cache@v6.1.0
id: cache-nix
with:
path: ${{ env.NIX_CACHE_DIR }}
key: example-nix
- name: Install Nix
uses: cachix/install-nix-action@v31.8.4
uses: cachix/install-nix-action@v31.11.1
with:
github_access_token: ${{ github.token }}
install_url: https://releases.nixos.org/nix/nix-2.28.5/install
install_url: https://releases.nixos.org/nix/nix-2.35.2/install
# See: https://github.com/cachix/install-nix-action/issues/56
- name: Import Nix store cache
if: steps.cache-nix.outputs.cache-hit == 'true'
Expand Down Expand Up @@ -86,7 +86,7 @@ jobs:
archive.tar
./
- name: Upload artifact
uses: actions/upload-artifact@v5.0.0
uses: actions/upload-artifact@v7.0.1
with:
include-hidden-files: true
name: build
Expand All @@ -112,7 +112,7 @@ jobs:
timeout-minutes: 10
steps:
- name: Download artifact
uses: actions/download-artifact@v6.0.0
uses: actions/download-artifact@v8.0.1
with:
name: build
- name: Extract archive
Expand All @@ -129,7 +129,7 @@ jobs:
--file
archive.tar
- name: Checkout example repository
uses: actions/checkout@v5.0.0
uses: actions/checkout@v7.0.1
with:
repository: quickplates/generic-example
token: ${{ secrets.EXAMPLES_ACCESS_TOKEN }}
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v5.0.0
uses: actions/checkout@v7.0.1
# We need to fetch upstream so Trunk can compare against it
- name: Fetch upstream
if: github.event_name == 'pull_request'
Expand All @@ -38,21 +38,21 @@ jobs:
origin
${{ github.event.pull_request.base.ref }}
- name: Setup Nix cache
uses: actions/cache@v4.3.0
uses: actions/cache@v6.1.0
id: cache-nix
with:
path: ${{ env.NIX_CACHE_DIR }}
key: lint-nix
- name: Setup Trunk cache
uses: actions/cache@v4.3.0
uses: actions/cache@v6.1.0
with:
path: ${{ env.TRUNK_CACHE_DIR }}
key: lint-trunk
- name: Install Nix
uses: cachix/install-nix-action@v31.8.4
uses: cachix/install-nix-action@v31.11.1
with:
github_access_token: ${{ github.token }}
install_url: https://releases.nixos.org/nix/nix-2.28.5/install
install_url: https://releases.nixos.org/nix/nix-2.35.2/install
# See: https://github.com/cachix/install-nix-action/issues/56
- name: Import Nix store cache
if: steps.cache-nix.outputs.cache-hit == 'true'
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,23 +46,23 @@ jobs:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v5.0.0
uses: actions/checkout@v7.0.1
- name: Setup Nix cache
uses: actions/cache@v4.3.0
uses: actions/cache@v6.1.0
id: cache-nix
with:
path: ${{ env.NIX_CACHE_DIR }}
key: test-nix
- name: Setup Trunk cache
uses: actions/cache@v4.3.0
uses: actions/cache@v6.1.0
with:
path: ${{ env.TRUNK_CACHE_DIR }}
key: test-trunk
- name: Install Nix
uses: cachix/install-nix-action@v31.8.4
uses: cachix/install-nix-action@v31.11.1
with:
github_access_token: ${{ github.token }}
install_url: https://releases.nixos.org/nix/nix-2.28.5/install
install_url: https://releases.nixos.org/nix/nix-2.35.2/install
# See: https://github.com/cachix/install-nix-action/issues/56
- name: Import Nix store cache
if: steps.cache-nix.outputs.cache-hit == 'true'
Expand Down
48 changes: 43 additions & 5 deletions .trunk/configs/ruff.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Python version to target
target-version = "py313"
target-version = "py314"

select = [
# Enable all rules
Expand All @@ -10,12 +10,13 @@ ignore = [
# Disable rules that might conflict with the formatter
"COM812",
"COM819",
"D203",
"D206",
"D213",
"D300",
"E111",
"E114",
"E117",
"E501",
"ISC002",
"Q000",
"Q001",
Expand All @@ -26,24 +27,61 @@ ignore = [
# Disable rules that are too strict
"ANN401",
"ARG",
"BLE",
"ASYNC109",
"B024",
"CPY",
"D100",
"D104",
"D105",
"D106",
"D107",
"DTZ",
"EM101",
"EM102",
"ERA001",
"PLR1711",
"PLW0108",
"RET501",
"S104",
"TC001",
"TC002",
"TC003",
"TC006",
"TRY003",
]

[lint.extend-per-file-ignores]
# Disable some rules in tests
"tests/**" = [
# Disable irrelevant rules
"S",
# Disable rules that are too strict for tests
"FBT003",
"PLR0904",
"PLR0911",
"PLR0912",
"PLR0913",
"PLR0914",
"PLR0915",
"PLR0916",
"PLR0917",
"PLR1702",
"PLR2004",
"S101",
]

[lint.isort]
# Combine import aliases
combine-as-imports = true

known-first-party = [
# Treat tests as a first-party module
"tests",
]

# Force 2 blank lines after imports
lines-after-imports = 2

[lint.pylint]
# Increase limits
max-args = 10
max-bool-expr = 10
max-positional-args = 10
26 changes: 13 additions & 13 deletions .trunk/trunk.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@ cli:
plugins:
sources:
- id: trunk
ref: v1.7.4
ref: v1.11.0
uri: https://github.com/trunk-io/plugins
runtimes:
enabled:
# Needed for gitleaks, shfmt
- go@1.25.0
- go@1.27.0
# Needed for markdownlint, prettier, pyright
- node@22.20.0
- node@26.8.2
# Needed for ruff, yamllint
- python@3.13.3
- python@3.14.4
lint:
ignore:
- linters: [ALL]
Expand Down Expand Up @@ -66,34 +66,34 @@ lint:
- ${env.PYRIGHT_PYTHON}/bin
enabled:
# GitHub Actions linting
- actionlint@1.7.8
- actionlint@1.7.12
# Check for whitespace errors
- git-diff-check
# Check for secrets in the code
- gitleaks@8.29.0
- gitleaks@8.30.1
# Markdown linting
- markdownlint@0.45.0
- markdownlint@0.49.1
# Nix formatting check
- nix-fmt-check@SYSTEM
# Nix flake check
- nix-flake-check@SYSTEM
# JSON, YAML, Markdown formatting
- prettier@3.6.2:
- prettier@3.9.6:
packages:
# JSON sorting
- prettier-plugin-sort-json@4.1.1
- prettier-plugin-sort-json@4.2.0
# Python type checking
- pyright@1.1.407
- pyright@1.1.414
# Python formatting and linting
- ruff@0.14.5:
- ruff@0.16.7:
commands:
- lint
- format
# Shell linting
- shellcheck@0.11.0
# Shell formatting
- shfmt@3.12.0
- shfmt@3.14.1
# TOML formatting
- taplo@0.10.0
# YAML linting
- yamllint@1.37.1
- yamllint@1.38.0
4 changes: 2 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
},
"git.autoRepositoryDetection": false,
"python.analysis.diagnosticMode": "workspace",
"python.analysis.diagnosticsSource": "Pyright",
"python.analysis.pyrightVersion": "1.1.407",
"python.analysis.diagnosticsSource": "Pylance + Pyright",
"python.analysis.pyrightVersion": "1.1.414",
"python.testing.pytestEnabled": true
}
3 changes: 2 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ to open the project in a `Dev Container`.
If you don't want to use the `Dev Container` setup,
you can also use [`Nix`](https://nixos.org) to setup your development environment.
`flake.nix` contains the configuration of development shells.
`Nix` will automatically install all dependencies and setup the environment for you.
`Nix` will automatically install all dependencies
and setup the environment for you.

All you need to do is have `Nix` installed and run the following command:

Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT No Attribution

Copyright (c) 2025 quickplates
Copyright (c) 2026 quickplates

Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software
Expand Down
2 changes: 1 addition & 1 deletion Taskfile.dist.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version: "3.43"
version: "3.48"

tasks:
template:
Expand Down
Loading