Metadata-Version: 2.5
Name: prefire
Version: 0.0.1
Summary: Placeholder release reserving the prefire name on PyPI.
Project-URL: Homepage, https://github.com/cxnt/prefire
Project-URL: Source, https://github.com/cxnt/prefire
Project-URL: Issues, https://github.com/cxnt/prefire/issues
Author-email: Pavel Bartsits <pavelbartsits@gmail.com>
License-Expression: MIT
License-File: LICENSE
Keywords: prefire
Classifier: Development Status :: 1 - Planning
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.9
Provides-Extra: dev
Requires-Dist: pytest>=7; extra == 'dev'
Requires-Dist: ruff>=0.5; extra == 'dev'
Description-Content-Type: text/markdown

# prefire

Placeholder release reserving the prefire name on PyPI.

> **Status:** not implemented yet. Version 0.0.1 is a placeholder so the name is taken; real functionality lands in a later release.

[![PyPI](https://img.shields.io/pypi/v/prefire.svg)](https://pypi.org/project/prefire/)
[![Python](https://img.shields.io/pypi/pyversions/prefire.svg)](https://pypi.org/project/prefire/)
[![CI](https://github.com/cxnt/prefire/actions/workflows/ci.yml/badge.svg)](https://github.com/cxnt/prefire/actions/workflows/ci.yml)

## Install

```bash
pip install prefire
```

## Usage

```bash
prefire --version
```

## Development

```bash
python -m venv .venv
.venv/bin/pip install -e ".[dev]"   # Windows: .venv\Scripts\pip
pytest
ruff check .
```

## Release

Publishing runs on GitHub Actions via [PyPI Trusted Publishing](https://docs.pypi.org/trusted-publishers/),
so no API token is stored anywhere.

### One-time setup

1. On PyPI, add a *pending publisher* at
   <https://pypi.org/manage/account/publishing/>:

   | Field | Value |
   | --- | --- |
   | PyPI project name | `prefire` |
   | Owner | `cxnt` |
   | Repository name | `prefire` |
   | Workflow name | `python-publish.yml` |
   | Environment name | `pypi` |

2. In this repository, create the `pypi` environment under
   **Settings → Environments** (optionally add a required reviewer, so a
   release cannot upload without approval).
3. Optional: repeat both steps on <https://test.pypi.org> with environment
   name `testpypi` to enable dry-run uploads.

### Cutting a release

1. Bump `__version__` in `src/prefire/__init__.py`.
2. Commit and push to `main`.
3. Create a GitHub Release with tag `vX.Y.Z` (matching the bumped version).

The workflow builds an sdist and wheel, runs `twine check --strict`, verifies
the tag matches the packaged version, and uploads to PyPI. To dry-run against
TestPyPI instead, run the **Publish** workflow manually with target `testpypi`.
