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 .github/workflows/linters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
python-version: '3.13'
- name: install poetry
run: curl -sSL https://install.python-poetry.org | python -
- name: install myself
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-python@v5
with:
python-version: '3.12'
python-version: '3.13'
- run: ls
- name: install poetry
run: curl -sSL https://install.python-poetry.org | python -
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ on:
pull_request:
jobs:
Unit-Tests:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- name: check out our code
uses: actions/checkout@v3
- uses: actions/setup-python@v5
with:
python-version: '3.12'
python-version: '3.13'
- name: install poetry
run: curl -sSL https://install.python-poetry.org | python -
- name: install myself
Expand Down
37 changes: 37 additions & 0 deletions guidance/setup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# On Setup

## Basics

* Learn touch typing.
* Understand the shell, do a basics `bash` course.
* Use scaffolding for bootstraping your project, e.g. `cookiecutter`. Good for standardizing your organization's projects and saving time on setup.
* Never write wikis, always scripts.
* Get your minimal hooks set up from the start with your CI.
* tests, linters, formatters.
* Use pull requests from the start.
* If reasonable, use a build system, `make` or `rake` or `just`.
* Know your ecosystem, e.g. `uv` for Python, `cargo` for Rust, `npm` for node, etc.
* use lock-files for reproducible builds.
* Save artifacts tagged by commit hash.
* Leverage ecosystem documentation.
* For a very lean project, the README lists
* one liner for setting up the project
* one liner for running tests
* minimal further explanations
* expand this only when actually needed: e.g. team members cannot onboard without it.
* Story Tests are the ultimate user guide

## Security

* Know what secrets are
* Scan for accidentally committed secrets with a pre-commit hook (e.g. `gitleaks`, `truffleHog`).
* Audit your dependencies for known vulnerabilities. Automate it in CI.
* DO NOT BE LAZY with root-level permissions. Use the principle of least privilege.
* Use vaults for secrets management, e.g. `vault` or `aws secrets manager`.

## Advanced

* Use docker for a full working environment.
* Everything should be text based.
* Use mock services for E2E tests.
* Use infrastructure-as-code even for small projects (terraform, CloudFormation). "I'll do it properly later" never happens.
Loading