Developer Notes⚓︎
Local Development⚓︎
git clone https://github.com/kyleking/corallium.git
cd corallium
uv sync --all-extras
# See the available tasks
uv run calcipy
# Or use a local 'run' file (so that 'calcipy' can be extended)
./run
# Run the default task list (lint, auto-format, test coverage, etc.)
./run main
# Make code changes and run specific tasks as needed:
./run lint.fix test
Maintenance⚓︎
Dependency upgrades can be accomplished with:
uv lock --upgrade
uv sync --all-extras
Publishing⚓︎
Publishing is automated via GitHub Actions using PyPI Trusted Publishing. Tag creation triggers automated publishing.
./run release # Bumps version, creates tag, pushes → triggers publish
./run release --suffix=rc # For pre-releases
Initial Setup⚓︎
One-time setup to enable PyPI Trusted Publishing:
Configure GitHub Environments
Repository Settings → Environments:
- Create testpypi environment (no protection rules)
- Create pypi environment with “Required reviewers” enabled
Register Trusted Publishers
PyPI: https://pypi.org/manage/project/corallium/settings/publishing/
- Owner: kyleking
- Repository: corallium
- Workflow: publish.yml
- Environment: pypi
- Or environment testpypi (for TestPyPI)
Manual Publishing⚓︎
For emergency manual publish:
export UV_PUBLISH_TOKEN=pypi-...
uv build
uv publish
Current Status⚓︎
| File | Statements | Missing | Excluded | Coverage |
|---|---|---|---|---|
corallium/__init__.py |
6 | 0 | 0 | 100.0% |
corallium/_runtime_type_check_setup.py |
13 | 0 | 37 | 100.0% |
corallium/can_skip.py |
14 | 0 | 0 | 100.0% |
corallium/code_tag_collector/__init__.py |
6 | 3 | 0 | 50.0% |
corallium/code_tag_collector/_collector.py |
133 | 30 | 0 | 73.1% |
corallium/file_helpers.py |
170 | 42 | 11 | 71.3% |
corallium/file_search.py |
52 | 2 | 2 | 97.2% |
corallium/log.py |
47 | 1 | 0 | 96.1% |
corallium/loggers/__init__.py |
0 | 0 | 0 | 100.0% |
corallium/loggers/plain_printer.py |
5 | 0 | 0 | 100.0% |
corallium/loggers/rich_printer.py |
37 | 8 | 0 | 72.5% |
corallium/loggers/structlog_logger/__init__.py |
3 | 0 | 3 | 100.0% |
corallium/loggers/structlog_logger/_structlog_logger.py |
8 | 0 | 0 | 100.0% |
corallium/loggers/styles.py |
32 | 3 | 0 | 86.1% |
corallium/markup_table.py |
31 | 0 | 0 | 100.0% |
corallium/pretty_process.py |
58 | 13 | 0 | 77.8% |
corallium/shell.py |
69 | 13 | 0 | 74.7% |
corallium/sync_dependencies.py |
155 | 8 | 0 | 90.6% |
corallium/tomllib.py |
4 | 0 | 2 | 100.0% |
corallium/vcs/__init__.py |
6 | 0 | 0 | 100.0% |
corallium/vcs/_forge.py |
50 | 2 | 0 | 94.9% |
corallium/vcs/_git_commands.py |
20 | 0 | 0 | 100.0% |
corallium/vcs/_jj_commands.py |
23 | 0 | 0 | 100.0% |
corallium/vcs/_repo.py |
67 | 2 | 0 | 94.6% |
corallium/vcs/_types.py |
21 | 0 | 0 | 100.0% |
| Totals | 1030 | 127 | 55 | 84.7% |
Generated on: 2026-03-24