Changelog¶
How Pyron actually changed. Dates are when the tree moved, not a PyPI release.
A user-facing change is unfinished until this file and the matching docs/*.md are updated in the same commit (plus README / scaffold copy when that surface is listed there). See AGENTS.md and Contributing. HTML copy of this log: https://nezbit.github.io/pyron/changelog/
0.10.0 — 2026-08-21¶
Small polish before calling this a 0.10.
- Version strings were still 0.7.x in the README and bookstore example; they follow the package now.
- First-run flash tells you to open Settings or Pages.
- Page slug fills from the title until you edit the slug yourself.
- Public header shows
site.taglinewhen set. pyron init/pyron devprint/admin/settings.- Changelog links to other docs use MkDocs paths (
admin.md, notdocs/admin.md) so the site build stays clean.
0.9.0 — 2026-08-21¶
Operate the site from the admin panel, not only the SQL tables.
- Desk is split into Site (Pages, Settings) and Data (your models).
- Settings: name, tagline, phone, email, hours, address, website. Public header/footer read
site. - Pages body is Markdown, with a live preview. Legacy HTML bodies still render. Jinja in the body stays text.
- Phone in the public footer is a
tel:link. - Docs: Settings, CLI, comparison, enable, security, architecture, README, example bookstore. Docs ship in the same commit as the feature (Contributing).
0.8.0 — 2026-08-21¶
CMS pages on the admin panel, rendered by Jinja2.
Pageis registered by default when the admin is on (Pagesin the rail). Add / edit title, slug, HTML body, published, in nav.- Public views:
/p/{slug}and/p. Jinja2 wraps the body inpage.html(appbase.htmlif you have one). The body is not executed as Jinja (no SSTI). - First run seeds About and Contact. Published pages with “in nav” show in the public header (
site_pages). - Operators can preview unpublished pages while signed in; visitors get 404.
Pyron(..., pages=False)turns the built-in pages off.- Docs: Admin — Pages, quickstart, enable, CLI, security, comparison, architecture, README, example bookstore.
pyron init/pyron devprint/p/about.
0.7.2 — 2026-08-21¶
GitHub Pages: enable Actions as the source (build_type=workflow). Docs workflow uses checkout@v5 and setup-python@v6 (Node 24).
0.7.1 — 2026-08-21¶
pyron init app asks for the project name, what it is about, and what people add. It generates a unique app (form, API, admin) and 10 starter records for that topic — not a Harbor Bindings copy.
Flags for scripts: --title --about --noun.
0.7.0 — 2026-08-21¶
The FastAPI gap: HTML form, CLI, templates — one model.
Form()for HTML posts;redirect("/", message="Saved.")flash (no admin required).pyron init(default ssr): home form writes the same SQLItemas/api/itemsand/admin. No more in-memory list vs admin table.- Scaffold CSS matches the admin (ember, no brown Georgia).
pyron init/pyron devprint/,/docs,/admin.
0.6.2 — 2026-08-21¶
Documentation website.
- MkDocs Material site from the existing
docs/*.md(ember palette, JetBrains Mono, system/light/dark). mkdocs serveon port 8001; GitHub Pages workflow in.github/workflows/docs.yml.- Extra:
pip install pyron[docs].
0.6.1 — 2026-08-21¶
Architecture cleanup after 0.6.
- One version string:
python/pyron/_version.py(app default,pyron.__version__,pyproject.toml). - Admin options (
ModelAdmin,TabularInline) live inadmin/options.py;site.pyis views + binding. - Removed unused SQL helpers left behind when Desk CRUD moved to
Store. - Public
CORSMiddlewareandGZipMiddleware(app.add_middleware(...)). - Docs: architecture map, install extras, this file.
0.6.0 — 2026-08-21¶
SQL stays. Mongo and Redis become optional extras.
Storeprotocol:SqlStore,MongoStore,MemoryStore. Desk CRUD goes through the store, not rawselect().Document(Pydantic) registers on the admin panel next to SQLModel tables.MONGO_URL/MONGO_DB, extrapyron[mongo].cache+REDIS_URL, extrapyron[redis]. Login throttle uses the cache (shared across workers when Redis is on).app.enable("mongo"|"redis").- Admin cards show
sql/mongo/memory. - Docs: data (SQL / Mongo / Redis).
0.5.0 — 2026-08-20¶
Desk power + apps + deploy check.
list_filter, bulk delete with confirm,TabularInline,pyron_loghistory.pyron startapp/app.include_app.pyron check --deploy.BackgroundTasks,app.url_for(and in Jinja).- Admin copy: Admin panel (not “Desk”).
- Language / appearance as sliding toggles; asset
?v=cache bust.
0.4.0¶
Auth shared between API and admin.
- Signed session cookie
pyron_deskon path/. current_user,@login_required,@permission_required.- Staff group: view/add/change, not delete. Root bypasses.
- PBKDF2, CSRF, login throttle.
- i18n en/es/pt/fr; theme system/light/dark; JetBrains Mono.
0.3.0¶
Enable later, security defaults, Granian.
pyron enable adminappends; does not rewrite handlers.PYRON_ENV=production,pyron check, security headers, host allowlist.pyron dev/servevia Granian (Uvicorn fallback). WindowsPYTHONPATHfor reload.
0.2.0¶
Visual admin at /admin.
- Register SQLModel, first-run root, CRUD, route map, users.
0.1.0¶
Hybrid core.
- FastAPI-shaped ASGI, Rust router / JSON schema /
dumpsvia PyO3. - OpenAPI
/docs, Jinja2, Vite, Typer CLI, SQLModel helpers.