Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
5d181ef
Migrate from Makefile and pyproject.toml to mise
google-labs-jules[bot] May 11, 2026
b006213
Integrate mise for tool management and task automation
google-labs-jules[bot] May 11, 2026
791c26a
Address PR feedback for mise integration
google-labs-jules[bot] May 11, 2026
b92c2c1
Address secondary PR feedback for mise integration
google-labs-jules[bot] May 11, 2026
c23c102
Format new script
amrabed May 12, 2026
d14f82e
Update mise.toml
amrabed May 12, 2026
f52d244
Add more aliases
amrabed May 12, 2026
3524371
Refine mise integration based on feedback
google-labs-jules[bot] May 12, 2026
0b5c7c6
Format new script
amrabed May 12, 2026
4edf5e0
Update mise.toml
amrabed May 12, 2026
f5f6857
Add more aliases
amrabed May 12, 2026
7090211
Complete mise migration with environment and documentation updates
google-labs-jules[bot] May 12, 2026
a278940
Update mise.toml
amrabed May 12, 2026
b79368d
Add more aliases
amrabed May 12, 2026
1fa9f7d
Update devcontainer Dockerfile
amrabed May 12, 2026
f493f0f
Update devcontainer
amrabed May 12, 2026
90b8a84
Fix errors
amrabed May 12, 2026
ebd9a48
Fix devcontainer.json
amrabed May 13, 2026
436c625
Fix CDK tasks
amrabed May 13, 2026
a94d2f4
Update devcontainer
amrabed May 13, 2026
914076e
Update mise.toml
amrabed May 13, 2026
6e0f414
Delete Dockerfile
amrabed May 13, 2026
9291ee5
Update mise.toml
amrabed May 13, 2026
36ed7da
Update vscode settings
amrabed May 13, 2026
fb31729
Update CONTRIBUTING.md
amrabed May 13, 2026
e0a807f
Fix deploy command in workflow
amrabed May 13, 2026
0c36d18
Update CONTRIBUTING.md
amrabed May 13, 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
1 change: 0 additions & 1 deletion .devcontainer/Dockerfile

This file was deleted.

44 changes: 25 additions & 19 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,21 +1,27 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/python
// For format details, see https://aka.ms/devcontainer.json.
{
"name": "Python 3",
"build": { "dockerfile": "Dockerfile" },

// Features to add to the dev container. More info: https://containers.dev/features.
// "features": {},

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],

// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "pip3 install --user -r requirements.txt",

// Configure tool-specific properties.
// "customizations": {},

// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
"remoteUser": "root"
"name": "dev",
"image": "mcr.microsoft.com/devcontainers/python:3",
"features": {
"ghcr.io/devcontainers-extra/features/mise:1": {},
"ghcr.io/devcontainers/features/aws-cli:1": {}
},
"customizations": {
"vscode": {
"extensions": [
"hverlin.mise-vscode",
"tamasfe.even-better-toml",
"redhat.vscode-yaml",
"charliermarsh.ruff",
"ms-python.python"
]
}
},
"mounts": [
"source=${localEnv:HOME}/.aws,target=/home/vscode/.aws,type=bind"
],
"postCreateCommand": "echo 'eval \"$(mise activate bash)\"' >> ~/.bashrc",
"forwardPorts": [
"8000:8000"
]
}
13 changes: 4 additions & 9 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install uv and setup Python
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
python-version: 3.14
- name: Install dependencies
run: make install
- name: Install mise
uses: jdx/mise-action@v4
- name: Format and lint
run: make lint
run: mise run lint
- name: Run tests
run: make test
run: mise run test
env:
AWS_DEFAULT_REGION: us-east-1
13 changes: 3 additions & 10 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,20 +44,13 @@ jobs:
stack: [agent, api, eventbridge, graphql, s3, sqs, stream]
steps:
- uses: actions/checkout@v6
- name: Install uv and setup Python
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
python-version: 3.14
- name: Install dependencies
run: make install
- name: Install AWS CDK CLI
run: npm install -g aws-cdk
- name: Install mise
uses: jdx/mise-action@v4
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v6
with:
role-to-assume: ${{ secrets.AWS_DEPLOY_ROLE_ARN }}
aws-region: ${{ vars.AWS_REGION }}
- name: Deploy stack
if: github.event_name != 'workflow_dispatch' || inputs.stack == 'all' || contains(inputs.stack, matrix.stack)
run: make deploy STACK=${{ matrix.stack }}
run: mise run deploy ${{ matrix.stack }}
18 changes: 3 additions & 15 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install uv and setup Python
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
python-version: 3.14
- name: Install mise
uses: jdx/mise-action@v4
- name: Configure Git Credentials
run: |
git config user.name github-actions[bot]
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
- uses: actions/cache@v5
with:
key: mkdocs-material-${{ env.cache_id }}
path: .cache
restore-keys: |
mkdocs-material-
- name: Install dependencies
run: make install-docs
- name: Publish to GitHub Pages
run: make docs
run: mise run docs
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -165,4 +165,10 @@ cython_debug/
.pypirc

# AI Agent logs
.[jJ]ules/
.[jJ]ules/

# Dev container
devcontainer-lock.json

# CDK
cdk.out/
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ repos:
hooks:
- id: lint
name: Linting
entry: make lint
entry: mise run lint
language: system
44 changes: 43 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,45 @@
{
"makefile.configureOnOpen": false
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.formatOnSave": true,
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.codeActionsOnSave": {
"source.fixAll.ruff": "explicit",
"source.organizeImports.ruff": "explicit"
}
},
"[toml]": {
"editor.defaultFormatter": "tamasfe.even-better-toml"
},
"[yaml]": {
"editor.defaultFormatter": "redhat.vscode-yaml"
},
"python.testing.pytestEnabled": true,
"python.testing.unittestEnabled": false,
"python.testing.pytestArgs": [
"--tb=short"
],
"files.exclude": {
"**/__pycache__": true,
"**/*.pyc": true,
"**/.pytest_cache": true,
"**/.ruff_cache": true,
"**/cdk.out": true,
"**/.venv": true
},
"search.exclude": {
"**/__pycache__": true,
"**/.venv": true,
"**/cdk.out": true,
"**/node_modules": true,
"uv.lock": true
},
"editor.rulers": [
120
],
"editor.insertSpaces": true,
"editor.tabSize": 4,
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true
}
26 changes: 13 additions & 13 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,37 +4,37 @@ This file provides guidance for AI agents working in this repository.

## Project Overview

Python AWS Lambda project template using [uv](https://docs.astral.sh/uv/) for dependency management, Click for CLI, and pytest for testing.
Python AWS Lambda project template using [mise](https://mise.jdx.dev/) for tool management and [uv](https://docs.astral.sh/uv/) for dependency management.

## Setup

```bash
make install # install dependencies
make precommit # install pre-commit hooks
mise run install # install dependencies
mise run precommit # install pre-commit hooks
```

## Common Commands

```bash
make lint # run ruff (check + format) and pyright
make test # run pytest with coverage
make docs # build and deploy docs to GitHub Pages
make local # serve docs locally
mise run lint # run ruff (check + format) and pyright
mise run test # run pytest with coverage
mise run docs # build and deploy docs to GitHub Pages
mise run local # serve docs locally
```

## Code Style

- Line length: 120 characters (enforced by ruff)
- Linting rules: `E` (pycodestyle errors) and `I` (isort) via ruff
- Type checking: pyright in strict mode
- All code must pass `make lint` before committing (enforced by pre-commit hooks)
- All code must pass `mise run lint` before committing (enforced by pre-commit hooks)

## Testing

Tests live in `tests/`. Run with:

```bash
make test
mise run test
```

Coverage is measured with `coverage` and reported to stdout and `coverage.xml`. The source under test is `templates/`.
Expand All @@ -55,7 +55,7 @@ infra/ # AWS CDK infrastructure stacks
To rename the project from the default `templates` name, run:

```bash
make project NAME=my-project DESCRIPTION="My description" AUTHOR="Name" EMAIL=handle GITHUB=username
mise run project name=my-project description="My description" author="Name" email=handle github=username
```

## Dependencies
Expand All @@ -76,15 +76,15 @@ make project NAME=my-project DESCRIPTION="My description" AUTHOR="Name" EMAIL=ha
- Use `moto.mock_aws` for mocking AWS services in tests (e.g. DynamoDB, S3, Secrets Manager)
- Do not cheat! Never modify source code just to make a failing test pass. Fix real bugs in source code and fix incorrect assertions in tests

## Make Targets
## Mise Tasks

Use `make` targets for all common workflows: lint, test, run locally, and deploy. Refer to `docs/README.md` for currently available targets. Add new targets to `Makefile` as needed.
Use `mise run <task>` for all common workflows: lint, test, run locally, and deploy. Refer to `docs/README.md` for currently available tasks. Add new tasks to `mise.toml` as needed.

## Notes

- Python 3.14+ required
- Dependencies are managed via `pyproject.toml` and locked in `uv.lock`
- Do not edit `uv.lock` directly; use `make update` to update dependencies
- Tooling is managed via `mise.toml`

## Coding Conventions

Expand Down
93 changes: 0 additions & 93 deletions Makefile

This file was deleted.

4 changes: 4 additions & 0 deletions cdk.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"app": "python infra/app.py",
"requireApproval": "never"
}
Loading