Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Tests

on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
test:
name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
python-version:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
- "3.14"

steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install NEXCISION
run: python -m pip install .

- name: Run tests
run: python -m unittest discover -s tests -v
21 changes: 21 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Python virtual environments
.venv/
venv/

# Python cache files
__pycache__/
*.py[cod]

# Python package/build metadata
*.egg-info/
build/
dist/

# Test and coverage artefacts
.pytest_cache/
.coverage
htmlcov/

# Operating-system/editor files
.DS_Store
Thumbs.db
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# Changelog

## 0.1.1 — 2026-08-10

- Synchronizes the public source with the implementation used in the formal NEXCISION validation.
- Rejects removal of every matrix row by default; `--allow-empty` permits this only when explicitly requested.
- Stages all requested outputs before committing them and rolls back partial writes if a multi-output operation fails.
- Handles invalid UTF-8 NEXUS and region files with controlled errors.
- Records the `allow_empty` setting in the deterministic JSON provenance report.
- Adds permanent regression tests for these safety behaviours.

## 0.1.0 — 2026-07-21

- Initial NEXCISION release.
Expand Down
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ type: software
authors:
- family-names: "White"
given-names: "Rhys"
version: 0.1.0
date-released: 2026-07-21
version: 0.1.1
date-released: 2026-08-10
repository-code: "https://github.com/RhysWhite/nexcision"
license: MIT
abstract: >-
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,9 @@ acceptance rule depends on the supplied mask and analysis. See
[Workflow integration](docs/workflow-integration.md) for shell and Snakemake
examples, including a report-gated downstream step.

For a detailed plain-English explanation of how the program works, see the
[Code walkthrough](docs/code-walkthrough.md).

## Dimension handling

By default, NEXCISION automatically selects the appropriate NEXUS dimension to update:
Expand Down
Loading
Loading