# Ale's Python Toolkit

This is a collection of tools that I use to make my life easier when working with Python. I hope you find them useful too!

## Development Setup

```bash
git clone git@gitlab.com:alebg/aletk.git
cd aletk
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
```

## Code Quality

This project uses strict mypy type checking:

```bash
mypy src/aletk/
```

## Making a Release

Versioning is handled automatically by `setuptools_scm` — the version is derived from git tags. The CI/CD pipeline (GitLab CI) triggers only on semantic version tags.

1. Commit your changes and merge to `main`
2. Tag the commit with a semver tag:
   ```bash
   git tag v0.X.Y
   git push origin v0.X.Y
   ```
3. The CI pipeline will automatically: build the package, publish to PyPI, and create a GitLab release

## Updating Client Projects

After a new release is published to PyPI, update the dependency in client projects:

```bash
# If using poetry
poetry update aletk

# If using pip
pip install --upgrade aletk
```
