22
33## Environment Setup
44
5- This project requires two core dependencies: ** [ uv] ( https://docs.astral.sh/uv/ ) ** (Python package
6- manager) and ** [ Task ] ( https://taskfile.dev/ ) ** (task runner). Once both are installed, you can use
5+ This project requires two core dependencies: ** [ uv] ** (Python package
6+ manager) and ** [ task ] ** (task runner). Once both are installed, you can use
77` task ` to interact with the project for all development workflows.
88
991 . [ Install uv] ( https://docs.astral.sh/uv/getting-started/installation/ )
1010
11- ``` shell
12- curl -LsSf https://astral.sh/uv/install.sh | sh
13- ```
11+ ``` shell
12+ curl -LsSf https://astral.sh/uv/install.sh | sh
13+ ```
1414
15- 2. [Install Task ](https://taskfile.dev/installation/)
15+ 2 . [ Install task ] ( https://taskfile.dev/installation/ )
1616
17- ` ` ` shell
18- sh -c " $( curl --location https://taskfile.dev/install.sh) " -- -d
19- ` ` `
17+ ``` shell
18+ sh -c " $( curl --location https://taskfile.dev/install.sh) " -- -d
19+ ```
2020
21213 . Install project dependencies and list available tasks
2222
23- ` ` ` shell
24- task install
25- ` ` `
23+ ``` shell
24+ task install
25+ ```
2626
27274 . Optionally, activate the virtual environment created by ` uv ` :
2828
29- ` ` ` shell
30- source .venv/bin/activate
31- ` ` `
29+ ``` shell
30+ source .venv/bin/activate
31+ ```
3232
3333## Using Task
3434
3535### Task Cheat Sheet
3636
37- | Command Description | Command | Notes |
38- | -------------------------- | ----------------- | - --------------------------------------- |
39- | Install Dependencies | ` task install` | Installs project and dev dependencies |
40- | Run Tests | ` task test` | Runs tests with ` pytest` |
41- | Run Linting | ` task lint ` | Runs ` ruff check ` , formatting, and type checks |
42- | Fix Code Issues | ` task fix` | Auto -fixes issues with ` ruff format ` and ` ruff check --fix ` |
43- | Run Formatting | ` task fmt` | Runs ` ruff format ` code formatter |
44- | Run Type Checking | ` task check` | Runs ` mypy ` static type checker |
45- | Build Project | ` task build` | Builds project artifacts |
46- | Update Dependencies | ` task lock` | Regenerates ` uv.lock ` lockfile |
47- | Serve Documentation | ` task docs` | Serves docs with ` mkdocs` |
48- | Run Commands | ` task run -- < cmd> ` | Runs arbitrary commands |
37+ | Command Description | Command | Notes |
38+ | ------------------- | ------------------- | --------------------------------------- |
39+ | Install Project | ` task install ` | Installs project and dev dependencies |
40+ | Run Tests | ` task test ` | Runs tests with ` pytest ` |
41+ | Run Linting | ` task lint ` | Lints code with ` ruff ` |
42+ | Fix Code Issues | ` task fix ` | Formats and auto -fixes code with ` ruff ` |
43+ | Run Formatting | ` task fmt ` | Formats code with ` ruff ` |
44+ | Run Type Checking | ` task check ` | Runs static analysis with ` mypy ` |
45+ | Build Project | ` task build ` | Builds project artifacts |
46+ | Update Dependencies | ` task lock ` | Regenerates project lockfile |
47+ | Serve Documentation | ` task docs ` | Serves docs with ` mkdocs ` |
48+ | Run Commands | ` task run -- <cmd> ` | Runs arbitrary commands |
4949
5050### Task Explanation
5151
52- Task is a task runner built in Go that aims to be simpler and easier to use than GNU Make.
52+ ` task ` is a task runner built in Go that aims to be simpler and easier to use than GNU Make.
5353Task uses a ` Taskfile.yaml ` file to define tasks and their dependencies. This project
5454uses Task to organize and run common development operations like testing, linting,
5555building, and documentation generation.
@@ -86,7 +86,7 @@ task run -- python -m browsr --help
8686```
8787
8888You can also run tasks from subdirectories, and Task will automatically
89- find and use the Taskfile.yaml from the project root.
89+ find and use the ` Taskfile.yaml ` from the project root.
9090
9191## Committing Code
9292
@@ -104,11 +104,11 @@ commit message emoji prefixes are the only ones to trigger new releases:
104104
105105| Emoji | Shortcode | Description | Semver |
106106| ----- | ------------- | --------------------------- | ------ |
107- | 💥 | \ : boom\: | Introduce breaking changes. | Major |
108- | ✨ | \ : sparkles\: | Introduce new features. | Minor |
109- | 🐛 | \ : bug\: | Fix a bug. | Patch |
110- | 🚑 | \ : ambulance\: | Critical hotfix. | Patch |
111- | 🔒 | \ : lock\: | Fix security issues. | Patch |
107+ | 💥 | ` :boom: ` | Introduce breaking changes. | Major |
108+ | ✨ | ` :sparkles: ` | Introduce new features. | Minor |
109+ | 🐛 | ` :bug: ` | Fix a bug. | Patch |
110+ | 🚑 | ` :ambulance: ` | Critical hotfix. | Patch |
111+ | 🔒 | ` :lock: ` | Fix security issues. | Patch |
112112
113113Most features can be squash merged into a single commit on a pull-request.
114114When merging multiple commits, they will be summarized into a single release.
@@ -158,10 +158,11 @@ would create a branch named `1.2.x` and merge your changes into that branch.
158158See the [ semantic-release documentation] for more information about
159159branch based releases and other advanced release cases.
160160
161- [pipx]: https://pypa.github.io/pipx/
162- [pre-commit]: https://pre-commit.com/
163- [gitmoji]: https://gitmoji.dev/
164161[ conventional commits ] : https://www.conventionalcommits.org/en/v1.0.0/
162+ [ gitmoji ] : https://gitmoji.dev/
163+ [ pre-commit ] : https://pre-commit.com/
165164[ semantic-release ] : https://github.com/semantic-release/semantic-release
166- [semantic-versioning]: https://semver.org/
167165[ semantic-release documentation ] : https://semantic-release.gitbook.io/semantic-release/usage/configuration#branches
166+ [ semantic-versioning ] : https://semver.org/
167+ [ task ] : https://github.com/go-task/task
168+ [ uv ] : https://github.com/astral-sh/uv
0 commit comments