Metadata-Version: 2.4
Name: unlibcore-template
Version: 1.0.0
Summary: Core package for unlib.
Author-email: Matt Coulter <mattcoul7@gmail.com>, Jai Lafferty <jai.lafferty@gmail.com>
Requires-Python: <4.0,>=3.12
Description-Content-Type: text/markdown

<div align="center">

# unlibcore-template

Template Python package for the `unlibcore` monorepo package suite.

![Python](https://img.shields.io/badge/Python-3.12+-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)
![UV](https://img.shields.io/badge/UV-Fast-6E40C9?style=for-the-badge)
![Hatchling](https://img.shields.io/badge/Hatchling-PEP517-6E40C9?style=for-the-badge)
![Ruff](https://img.shields.io/badge/Ruff-Lint-000000?style=for-the-badge)
![Pytest](https://img.shields.io/badge/Pytest-Unit-08979C?style=for-the-badge)
![PyPI](https://img.shields.io/badge/PyPI-Publish-6E40C9?style=for-the-badge)

[![Package CI / unlibcore-template](https://github.com/mattcoulter7/unlib/actions/workflows/package-unlibcore-template-ci.yaml/badge.svg?branch=main)](https://github.com/mattcoulter7/unlib/actions/workflows/package-unlibcore-template-ci.yaml)
[![Package CD / unlibcore-template](https://github.com/mattcoulter7/unlib/actions/workflows/package-unlibcore-template-cd.yaml/badge.svg?branch=main)](https://github.com/mattcoulter7/unlib/actions/workflows/package-unlibcore-template-cd.yaml)

</div>

## Quick Start

Install dependencies:

```shell
uv sync
```

Run local checks:

```shell
make lint
make test
```

Format code:

```shell
make format
```

## Development

Packages in this monorepo use `uv`, `ruff`, `pytest`, and `hatchling`.

Packages target Python 3.12 or newer. This package contributes to the shared
`unlib` namespace:

```python
from unlibcore.template import template_func
```

## CI/CD

Package CI runs with `uv run pytest` through the reusable
`.github/workflows/package-ci.yaml` workflow. This package's PR workflow is
`.github/workflows/package-unlibcore-ci.yaml`, which only runs when files under
`packages/unlibcore/` or its workflow files change.

Package publishing is handled by `.github/workflows/package-cd.yaml`. Run it
manually and provide `unlibcore` as the package name, or publish a GitHub
Release tagged `packages/unlibcore@X.Y.Z`.
