Skip to content

Commit c9e5049

Browse files
committed
Add scriv-managed changelog
1 parent ac97c94 commit c9e5049

File tree

4 files changed

+124
-0
lines changed

4 files changed

+124
-0
lines changed

CHANGELOG.rst

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
CHANGELOG
2+
=========
3+
4+
All notable changes to rots are documented here.
5+
6+
The format is based on `Keep a
7+
Changelog <https://keepachangelog.com/en/1.1.0/>`__, and this project
8+
adheres to `Semantic
9+
Versioning <https://semver.org/spec/v2.0.0.html>`__.
10+
11+
.. raw:: html
12+
13+
<!--scriv-insert-here-->
14+
15+
.. _changelog-0.4.0:
16+
17+
0.4.0 — 2026-03-02
18+
==================
19+
20+
Added
21+
-----
22+
23+
- Surface container health in ``instances list`` — combined status like "active (healthy)"
24+
- Add ``instances ps`` subcommand for podman-native container view
25+
- Add ``proxy push`` command for remote Caddyfile template deployment
26+
- Add ``_path_exists`` and ``_copy_template`` helpers in init module
27+
28+
- Unified image reference parsing with ``parse_image_reference()`` supporting registry ports and digest refs
29+
- Positional ``reference: ImageRef`` parameter on deploy, redeploy, run, shell, and config-transform commands
30+
- Precedence chain: positional ref > --tag flag > IMAGE/TAG env vars > @current alias > defaults
31+
32+
Changed
33+
-------
34+
35+
- Skip SSH connection for local-only ``build`` command
36+
- Print immediate context feedback showing project dir and config mode during build
37+
38+
- Remove ``--remote`` flag from instance run/shell/config-transform; always use config-based image lookup
39+
- Replace hardcoded image names with config-driven resolution throughout
40+
41+
- Rename package from ots-containers to rots across source, tests, CI, and pyproject.toml
42+
- Add ots-shared as co-located workspace package under ``packages/ots-shared/``
43+
- Add uv workspace config so ots-shared resolves from local path
44+
45+
Fixed
46+
-----
47+
48+
- DRY ``_get_error_stderr()`` helper in assets.py to deduplicate exception handling (#20)
49+
- Replace fragile ``type(exc).__name__`` string matching with ``isinstance()`` and lazy paramiko import
50+
- Fix Caddyfile.template to valkey.conf entry in manifest
51+
52+
Security
53+
--------
54+
55+
- Fix credential exposure in ``podman login`` — use ``--password-stdin`` instead of CLI flag
56+
- Wire ``Config.validate()`` into ``__post_init__`` (was dead code)
57+
- Reject path traversal in IMAGE_RE and REGISTRY_RE patterns
58+
- Add OTS_REGISTRY hostname validation
59+
- Add MEMORY_MAX/CPU_QUOTA newline injection prevention
60+
- Add VALKEY_SERVICE systemd unit name validation
61+
- Add defense-in-depth checks in quadlet.py
62+
63+
Documentation
64+
-------------
65+
66+
- Add ADR-002: Split scheduler into rufus (in-process) and systemd timers (batch)
67+
68+
- Update repository URLs and stale references from ots-containers to rots
69+
70+
AI Assistance
71+
-------------
72+
73+
- Security analysis, test coverage development, and implementation for image reference overhaul

changelog.d/README.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Changelog Fragments
2+
3+
This directory contains changelog fragments managed by [scriv](https://scriv.readthedocs.io/).
4+
5+
## Developer Workflow
6+
7+
```bash
8+
# Create a new fragment
9+
scriv create
10+
11+
# Edit the generated fragment file
12+
# Add entries under the appropriate categories
13+
14+
# Commit the fragment with your code changes
15+
git add changelog.d/*.rst
16+
git commit
17+
```
18+
19+
## Fragment Categories
20+
21+
- **Added** — New features
22+
- **Changed** — Changes to existing functionality
23+
- **Deprecated** — Features marked for future removal
24+
- **Removed** — Features removed in this release
25+
- **Fixed** — Bug fixes
26+
- **Security** — Vulnerability fixes or security improvements
27+
- **Documentation** — Documentation updates
28+
- **AI Assistance** — Work developed with AI assistance (security analysis, implementation, testing, code review)
29+
30+
## Release Process
31+
32+
```bash
33+
# Aggregate all fragments into CHANGELOG.rst
34+
scriv collect
35+
```
36+
37+
This merges all fragment files into `CHANGELOG.rst` under a versioned heading
38+
and removes the individual fragment files.
39+
40+
## Guidelines
41+
42+
- One fragment per PR or logical change
43+
- Use present tense ("Add feature" not "Added feature")
44+
- Reference related issues/PRs where relevant (e.g., `#42`)
45+
- Keep entries concise but descriptive
46+
- Use the **AI Assistance** category to document AI contributions transparently

changelog.d/scriv.ini

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[scriv]
2+
format = rst
3+
categories = Added, Changed, Deprecated, Removed, Fixed, Security, Documentation, AI Assistance
4+
version = literal: pyproject.toml: project.version
5+
main_branches = main, develop
File renamed without changes.

0 commit comments

Comments
 (0)