Skip to content

Commit cefa34b

Browse files
author
Arturo R Montesinos
committed
Packaging: set static version; add CHANGELOG and CITATION
1 parent c7358ab commit cefa34b

File tree

3 files changed

+54
-4
lines changed

3 files changed

+54
-4
lines changed

CHANGELOG.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format loosely follows Keep a Changelog and uses semantic-ish versioning (major.minor.patch).
6+
7+
## [0.1.0] - 2024-01-01
8+
Initial curated release.
9+
10+
Highlights:
11+
- Pure-stdlib ODS parser (zipfile + xml.etree) with multi-sheet, multi-table extraction.
12+
- Dialect-aware SQL emission (sqlite, postgres/postgresql, mysql) including quoting & booleans.
13+
- Automatic per-column indexes (configurable / disable-able) plus composite index support.
14+
- PRIMARY KEY handling with redundant index suppression.
15+
- MySQL TEXT/BLOB index skipping with warnings.
16+
- Empty string → NULL normalization and numeric/boolean/date inference.
17+
- Identifier length limiting with deterministic hash suffix.
18+
- CLI batching of INSERT statements and optional single-transaction output.
19+
- Robust warnings for malformed instrumentation plus fail-fast on duplicate column names.
20+
- ADR-driven architecture documentation & AI curation policy.
21+
- Pre-commit quality gates (Ruff lint/format, fast tests, ADR index sync, print guard).
22+
- GitHub Actions CI matrix (3.9–3.12) for lint, type check, tests, build.
23+
24+
### Packaging Note
25+
The dynamic version attribute configuration was replaced with a static `version = "0.1.0"` in `pyproject.toml` to resolve a CI build metadata resolution error. The module constant `__version__` remains for runtime visibility.
26+
27+
---
28+
29+
Future entries will document incremental improvements and bug fixes.

CITATION.cff

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
cff-version: 1.2.0
2+
title: ods2sql-python
3+
message: >-
4+
If you use ods2sql-python in academic work, please cite it using the metadata below.
5+
type: software
6+
authors:
7+
- given-names: Arturo
8+
family-names: Montesinos
9+
repository-code: https://github.com/your-org/ods2sql-python
10+
license: MIT
11+
version: 0.1.0
12+
date-released: 2024-01-01
13+
abstract: >-
14+
Pure standard-library Python CLI that converts instrumented LibreOffice Calc .ods files into
15+
SQL for SQLite, PostgreSQL, and MySQL, featuring automatic per-column indexing, optional
16+
composite indexes, primary key handling, and dialect-aware quoting.
17+
keywords:
18+
- ods
19+
- libreoffice
20+
- sql
21+
- etl
22+
- sqlite
23+
- postgres
24+
- mysql

pyproject.toml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ classifiers = [
2323
"Topic :: Database",
2424
"Topic :: Utilities",
2525
]
26-
dynamic = ["version"]
26+
version = "0.1.0"
2727

2828
[project.scripts]
2929
ods2sql = "ods2sql:main"
@@ -32,9 +32,6 @@ ods2sql = "ods2sql:main"
3232
py-modules = ["ods2sql"]
3333
package-dir = {"" = "src"}
3434

35-
[tool.setuptools.dynamic]
36-
version = { attr = "ods2sql:__version__" }
37-
3835
[tool.ruff]
3936
line-length = 100
4037
target-version = "py39"

0 commit comments

Comments
 (0)