# Changelog

All notable changes to `pyprefab` are documented here.

The format is based on [Keep a Changelog](https://keepachangelog.com), and the
project uses [Semantic Versioning](https://semver.org/).

## 0.5.8

### Added

- Add a config mechanism that works via config.toml or env variables
- Add new hooks to the .pre-commit-config.yaml template

### Changed

- Make improvements to logging-related portion of the templates
- Add Python 3.14, drop 3.9 and 3.10
- Add cooldown to Dependabot settings template
- Do not allow double quotes in author name or package description

### Internal

- Move log configuration to __init__.py
- Set logging level via application configuration instead of hard-coding
- Add cooldown to project Dependabot settings
- Switch default quote style from single to double
- Pin GitHub actions uv installs to the same version

## 0.5.7

### Changed

- Improvements to CLI help text

### Internal

- Converted format of the usage documentation from markdown to Sphinx

### Fixed

- Fix typo and boolean handling in the publish-pypi template

## 0.5.6

### Added

- Add a `--version` parameter to the pyprefab CLI
- New callback function to normalize user-supplied package location

### Changed

- Update CONTRIBUTING.md to reflect the new nox setup.
- In interactive mode, Pyprefab now returns an immediate error message
  for invalid package names instead of waiting until the rest of the prompts are filled out
- Consolidate pypi and test pypi publishing into a single GitHub
  workflow

### Internal

- Add nox to the project and integrate it with GitHub actions
- CI now runs test suite against Windows and MacOS in addition to Ubuntu
- Add a new GitHub workflow to perform scheduled checks

## 0.5.5

### Added

- `.python-version` template for a more explicit uv experience
- New `LICENSE` template

### Changed

- Allow package creation in directories that already contain a `.git` folder
  (to prevent inadvertent overwriting, pyprefab will not create a package in
  a directory with existing content aside from `.git/`)
- Include a note about Sphinx documentation preview on CONTRIBUTING.md.

## 0.5.4

### Added

- Include `__main__.py` in skeleton code generated by pyprefab
- Template for Dependabot configuration
- Documentation now includes a section about GitHub-specific boilerplate files

### Changed

- Move logging setup out of `__init__.py` and into `logging.py`
- Add explicit permissions to workflow file templates
- Skip publish step by default in the PyPI-releated workflows
  (to prevent errors when test PyPI and PyPI have't been configured for the package)

### Fixed

- Spinx warning caused by readme vs README inconsistent case

## 0.5.3

### Changed

- Entry point of generated app now displays additional output
- `--docs` parameter can now be set interactively
- README examples reflect that `--name` and `--docs` options are interactive

## 0.5.2

### Changed

- Improve CHANGELOG aesthetics
- Fail when target directory is not empty (instead of prompting)
- Add colors and default values to CLI prompts

### Fixed

- Ensure pyprefab can run as `python -m pyprefab`

## 0.5.1

### Fixed

- Fail docs build GitHub action on Sphinx error or warning
- Correct pyprefab version retrieved during doc build

## 0.5.0

### Added

- Sphinx-based project documentation (published on GitHub pages)
- New CLI `--docs` option to include skeleton documentation in created package

### Fixed

- Add escape character to quotation marks in author name and project description

## 0.4.0

### Added

- New templates for GitHub workflows: ci (linting, tests, and coverage),
  publishing to TestPyPI, and publishing to PyPI
- Project changelog
- New CHANGELOG.md template
- New CONTRIBUTING.md template

### Changed

- Add CLI prompts as an alternate to passing command options
- `--directory` option renamed to `--dir`
- Prompt user when specified project directory is not empty
- List created package components on README.md
- Add a link to CONTRIBUTING.md in the README.md template

### Fixed

- Correct CLI example on README.md
- Fix pyproject.license build deprecation warning in pyproject.toml template

## 0.3.2

### Changed

- Rename CLI command to `pyprefab`

## 0.3.1

### Added

- New templates for generating Python package boilerplate: .gitignore,
  README.md, app.py

### Changed

- Rename project to `pyprefab`

### Removed

- Removed sample `hello_world` module in favor of template-driven boilerplate

## 0.3.0

### Added

- Added `pyproject.toml` template as the first piece of template-driven Python
  boilerplate

### Removed

- Removed artifacts from prior iteration of `pyprefab` that pre-dates the
  template-driven approach
