diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..e86b827 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,14 @@ +# Changelog + +## 0.1.0 - 2026-05-24 + +Initial MVP release. + +- Detect SQL embedded in Python triple-quoted strings. +- Format safe embedded SQL with SQLGlot. +- Extract embedded SQL into `.sql` files and replace Python strings with file references. +- Skip f-strings and Jinja-like templates conservatively. +- Support explicit SQLGlot dialect selection with `--dialect` / `-d` for `generic`, `mysql`, `postgres`, and `redshift`. +- Preserve Redshift `COPY` and `UNLOAD` command-style statements instead of rewriting load/export options. +- Provide `list`, `format`, `check`, `extract`, and `dialects` CLI commands. +- Add documentation, CI checks, package build validation, and GitHub Pages docs. diff --git a/README.md b/README.md index ce09073..c12e8e7 100644 --- a/README.md +++ b/README.md @@ -44,19 +44,21 @@ options. ## Installation -`py-sql-cleaner` is not published to PyPI yet. PyPI installation will be available -after the first package release. +Install `py-sql-cleaner` from PyPI: ```bash pip install py-sql-cleaner ``` -Or install it as an isolated CLI tool: +Or install it as an isolated CLI tool with `pipx`: ```bash pipx install py-sql-cleaner ``` +Release archives and wheels are also attached to +[GitHub Releases](https://github.com/enumura1/py-sql-cleaner/releases). + You can also run it without installing: ```bash diff --git a/docs/development/branching.md b/docs/development/branching.md index 33e7d99..8004abb 100644 --- a/docs/development/branching.md +++ b/docs/development/branching.md @@ -79,7 +79,9 @@ Releases are cut from `main`. 1. Merge release preparation changes through a pull request. 2. Tag the release commit on `main`. -3. Build and publish artifacts from the tagged commit. +3. Build artifacts from the tagged commit. +4. Publish the package to PyPI. +5. Create a GitHub Release and attach the source distribution and wheel. Do not release from feature branches. diff --git a/pyproject.toml b/pyproject.toml index aeda7e0..3998899 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,12 +9,28 @@ license-files = ["LICENSE"] authors = [ { name = "enumura1" }, ] +classifiers = [ + "Development Status :: 3 - Alpha", + "Environment :: Console", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Software Development :: Quality Assurance", + "Topic :: Software Development :: Libraries :: Python Modules", +] dependencies = [ "typer>=0.12", "rich>=13", "sqlglot>=25", ] +[project.urls] +Documentation = "https://enumura1.github.io/py-sql-cleaner/" +Repository = "https://github.com/enumura1/py-sql-cleaner" +Issues = "https://github.com/enumura1/py-sql-cleaner/issues" + [project.optional-dependencies] dev = [ "build>=1.2", diff --git a/website/docs/getting-started/installation.md b/website/docs/getting-started/installation.md index bdeee9a..c18d097 100644 --- a/website/docs/getting-started/installation.md +++ b/website/docs/getting-started/installation.md @@ -4,19 +4,21 @@ sidebar_position: 1 # Installation -`py-sql-cleaner` is not published to PyPI yet. PyPI installation will be available -after the first package release. +Install `py-sql-cleaner` from PyPI: ```bash pip install py-sql-cleaner ``` -After release, it can also be installed as an isolated CLI tool: +It can also be installed as an isolated CLI tool with `pipx`: ```bash pipx install py-sql-cleaner ``` +Release archives and wheels are also attached to +[GitHub Releases](https://github.com/enumura1/py-sql-cleaner/releases). + Or run without installing: ```bash diff --git a/website/docs/project/status.md b/website/docs/project/status.md index 9ed349e..b1ee3e9 100644 --- a/website/docs/project/status.md +++ b/website/docs/project/status.md @@ -4,7 +4,8 @@ sidebar_position: 2 # Project Status -`py-sql-cleaner` is currently an early MVP. +`py-sql-cleaner` is currently an early MVP. The `0.1.x` release line is intended +for early use and feedback, not long-term compatibility guarantees. The current focus is: