Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
daaf948
feat(status): add status tracking utilities
holsam Jul 7, 2026
ceb004e
feat(pca): implement status reporting
holsam Jul 7, 2026
9796792
feat(da): implement status reporting
holsam Jul 7, 2026
75bc50d
feat(qc): implement status reporting
holsam Jul 7, 2026
f550070
feat(concordance): implement status reporting
holsam Jul 7, 2026
5c69610
feat(ev-markers): implement status reporting
holsam Jul 7, 2026
61f7814
feat(report): rebuild logging logic to use status
holsam Jul 8, 2026
7b7dd27
test(report): update report unit tests
holsam Jul 8, 2026
373a74a
pr: merge report-improvements to v3.0.0-release
holsam Jul 8, 2026
58b9dc2
feat(R): add R package dependencies file
holsam Jul 8, 2026
f6ac310
fix(R): add jsonlite dependency
holsam Jul 8, 2026
243f6ea
refactor(R): move dependency-related scripts
holsam Jul 8, 2026
116ab97
feat(R): add dependency check script
holsam Jul 8, 2026
99104fc
feat(R): update dependency installation script
holsam Jul 8, 2026
0f6083d
feat(r-utils): add wrapper for R dependency utils
holsam Jul 8, 2026
12b3ca7
feat(cli): add r-utils command to utilities
holsam Jul 8, 2026
b718c0a
feat(r-utils): print dependency checks to terminal
holsam Jul 8, 2026
bb0807d
feat(rutils): update rutils function call
holsam Jul 8, 2026
9a4fce3
style(r-utils): remove initial debug log message
holsam Jul 8, 2026
5249667
style(r-utils): update r-utils formatting
holsam Jul 8, 2026
c7ff64d
style(r-utils): update log message formatting
holsam Jul 8, 2026
e3498e4
feat(log): add an input level to log for inputs
holsam Jul 8, 2026
3ba52a7
style(r-utils): update log levels
holsam Jul 8, 2026
2ed08d1
feat(sheet): add sample sheet parser utility
holsam Jul 8, 2026
c4daebf
feat(experiment): add existing experiment check
holsam Jul 8, 2026
9bf4c1b
feat(experiment): update experiment logic for edit
holsam Jul 8, 2026
599e9ed
feat(experiment): update cli command to accept dir
holsam Jul 8, 2026
00919b7
fix(log): allow case_sensitive kwarg in input
holsam Jul 8, 2026
0b21ae0
fix(cli): add required libraries to cli
holsam Jul 8, 2026
4b176e4
style(experiment): update experiment input logging
holsam Jul 8, 2026
24b13ef
feat(experiment): update experiment gui launcher
holsam Jul 8, 2026
8cd3f5b
feat(gui): update app launcher to pass arguments
holsam Jul 8, 2026
d25ce76
feat(gui): update main window
holsam Jul 8, 2026
ed2d113
feat(gui): add load existing functions to tabs
holsam Jul 8, 2026
c420a38
feat(validate): add non-raising binary checks
holsam Jul 9, 2026
370a079
feat(readiness): update command readiness probes
holsam Jul 9, 2026
1ae2e4c
feat(gui): update readiness_panel
holsam Jul 9, 2026
65666ad
feat(gui): add setter function for bin directory
holsam Jul 9, 2026
2e60d28
style(gui): reorder sections of experiment panel
holsam Jul 9, 2026
73bc0bc
fix(experiment): resolve root directory for paths
holsam Jul 9, 2026
5433408
fix(gui): fix existing data not persisting
holsam Jul 9, 2026
a63598a
fix(gui): fix existing data not persisting
holsam Jul 9, 2026
7874337
fix: fix clip_n_met config not storing as bool
holsam Jul 9, 2026
3692aaf
fix(gui): fix dependencies panel not refreshing
holsam Jul 9, 2026
ee7ae30
test(experiment): update experiment unit tests
holsam Jul 9, 2026
ad97e15
pr: merge experiment-improvements to v3.0.0-release
holsam Jul 9, 2026
7331e40
feat(settings): add config value resolver utility
holsam Jul 9, 2026
d66e297
feat(modspec): add modspec utility functions
holsam Jul 9, 2026
ebc4536
chore: update default config.toml
holsam Jul 9, 2026
787456d
feat(config): update config resolution functions
holsam Jul 10, 2026
53309cb
fix(config): resolve config file path per function
holsam Jul 10, 2026
8831fd6
feat(config): update config cli signature
holsam Jul 10, 2026
f80ab9a
refactor(config): move config writer to utilities
holsam Jul 10, 2026
1c4a93f
feat(convert): align command cli with config
holsam Jul 10, 2026
9ce5228
feat(index): align command cli with config
holsam Jul 10, 2026
1c066d6
feat(search): align command cli with config
holsam Jul 10, 2026
8ada764
feat(rescore): align command cli with config
holsam Jul 10, 2026
78658cf
feat(quantify): align command cli with config
holsam Jul 10, 2026
799e87e
feat(report): align command cli with config
holsam Jul 10, 2026
e3fbf63
fix(pipeline): fix pipeline overriding config
holsam Jul 10, 2026
8302562
fix(pipeline): remove outdated comment
holsam Jul 10, 2026
a4a83de
refactor(search): de-duplicate search configs
holsam Jul 10, 2026
4140444
fix(report): fix variable name in report command
holsam Jul 10, 2026
a97cb4e
fix(settings): add missing library import
holsam Jul 10, 2026
fbf61b6
pr: merge config-improvements to v3.0.0-release
holsam Jul 10, 2026
fbb1c8f
test(conftest): update binary directory
holsam Jul 10, 2026
664a629
test(conftest): update test suite fixtures
holsam Jul 27, 2026
7946529
test: update unit tests
holsam Aug 10, 2026
51aa1dd
fix(rescore): fix bug in rescoring
holsam Aug 11, 2026
5fb9d9d
test(conftest): fix COMMS_BIN_DIR wiring
holsam Aug 12, 2026
9ab7483
test: fix crux integration tests
holsam Aug 12, 2026
f93f46f
fix(config): use absolute not relative paths
holsam Aug 12, 2026
48bbe09
refactor(report): update logging levels
holsam Aug 12, 2026
dca83c4
refactor(utils): update R installs logging level
holsam Aug 12, 2026
2781b96
fix(lfq): fix file name parsing
holsam Aug 12, 2026
618e6c6
fix(utils): update readiness checks
holsam Aug 12, 2026
cbd7673
test(conftest): change fixture scope to session
holsam Aug 12, 2026
a9485ed
test: update unit tests
holsam Aug 12, 2026
37e7ac3
test: add unit tests
holsam Aug 12, 2026
93baa26
test: update integration tests
holsam Aug 12, 2026
39f09bd
chore: update pyproject.toml
holsam Aug 12, 2026
1920075
docs(TEST): update TESTS.md
holsam Aug 12, 2026
d37c23d
pr: merge test-refactor to v3.0.0-release
holsam Aug 12, 2026
45823ae
feat(log): add pipeline logging utilities
holsam Aug 12, 2026
3b078c5
refactor(pipeline): update pipeline logging
holsam Aug 12, 2026
38041fe
refactor: update command log file configuration
holsam Aug 12, 2026
df3a9f9
pr: merge split-logging to v3.0.0-release
holsam Aug 12, 2026
ef1e731
chore: update pyproject.toml description
holsam Aug 12, 2026
0a42cd6
fix(config): unify section name for rescoring PSMs
holsam Aug 12, 2026
16cc864
docs(README): update README.md
holsam Aug 12, 2026
52cd4d4
docs(README): update README.md
holsam Aug 12, 2026
307ddd0
docs(CONTRIBUTING): update CONTRIBUTING.md
holsam Aug 12, 2026
4a2cd8f
docs: update command documentation
holsam Aug 12, 2026
6bd9311
docs: update configuration file documentation
holsam Aug 12, 2026
2480e92
docs: update output and logging documentation
holsam Aug 12, 2026
9267218
docs: update experiment/config documentation
holsam Aug 12, 2026
dffdb90
pr: merge v3.0.0-docs to v3.0.0-release
holsam Aug 12, 2026
f931a09
chore: add GitHub pull request template
holsam Aug 12, 2026
960eedd
chore: add script to create pull request CI report
holsam Aug 12, 2026
32e42d0
chore: add workflow for pull request CI reports
holsam Aug 12, 2026
0e4d749
chore: add workflow for checking main PR version
holsam Aug 12, 2026
09903e5
chore: add workflow for publishing releases
holsam Aug 12, 2026
0cca519
fix: fix pull request CI report workflow bugs
holsam Aug 12, 2026
453e294
fix: fix pull request CI report workflow bugs
holsam Aug 12, 2026
2757e00
test: fix r import tests
holsam Aug 12, 2026
722388e
fix: fix pull request CI report workflow bug
holsam Aug 12, 2026
6952d03
fix: fix pull request CI report workflow bug
holsam Aug 12, 2026
e4292d8
fix: fix pull request CI report workflow bug
holsam Aug 12, 2026
34c8ab8
chore: add debug step to pull request CI report
holsam Aug 13, 2026
93f0e34
chore: update pull request CI report workflow
holsam Aug 13, 2026
33dd594
debug: pull request CI report workflow debugging
holsam Aug 13, 2026
a049044
fix: fix pull request CI report workflow bug
holsam Aug 13, 2026
5221a40
pr: merge gh-improvements to v3.0.0-release
holsam Aug 13, 2026
9074ca3
chore(release): update for v3.0.0 release
holsam Aug 13, 2026
7ac5c0a
fix: fix pull request version check workflow
holsam Aug 13, 2026
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
7 changes: 7 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
## Pull request (PR) description:
> Provide a brief description of the PR here.
>
> It does not need to list what each individual commit does, but rather provide a high-level overview of the PR.

## Issues resolved:
> Any associated issues should be provided here using the format: 'Resolves #<issue>' (e.g. Resolves #1). If there are none, use 'n/a' instead.
249 changes: 249 additions & 0 deletions .github/workflows/pr-ci-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,249 @@
name: Pull Request CI Report

on:
pull_request:

permissions:
contents: read
pull-requests: write

jobs:
python-tests:
name: Python ${{ matrix.python-version }} (${{ matrix.os }})
runs-on: ${{ matrix.os }}
if: github.event.pull_request.head.repo.full_name == github.repository
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
python-version: ["3.14", "3.15"]
steps:
- uses: actions/checkout@v7

- name: OS version (Linux)
if: runner.os == 'Linux'
shell: bash
run: |
. /etc/os-release
echo "OS_NAME=$NAME" >> "$GITHUB_ENV"
echo "OS_VER=$VERSION_ID" >> "$GITHUB_ENV"

- name: OS version (macOS)
if: runner.os == 'macOS'
shell: bash
run: |
echo "OS_NAME=macOS" >> "$GITHUB_ENV"
echo "OS_VER=$(sw_vers -productVersion)" >> "$GITHUB_ENV"

- name: Install Linux Qt runtime dependencies
if: runner.os == 'Linux'
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y \
libegl1 \
libgl1 \
libdbus-1-3 \
libxkbcommon-x11-0 \
libxcb-cursor0 \
libxcb-icccm4 \
libxcb-image0 \
libxcb-keysyms1 \
libxcb-randr0 \
libxcb-render-util0 \
libxcb-shape0 \
libxcb-xinerama0 \
libxcb-xfixes0 \
xvfb

- name: Install uv
uses: astral-sh/setup-uv@ae62891fec2bb8e7d6c99fc78c9fec3a63790f8d
with:
python-version: ${{ matrix.python-version }}

- name: Sync dependencies
run: uv sync --all-extras

- name: Run pytest
id: pytest
continue-on-error: true
run: uv run pytest

- name: Build package
id: build
continue-on-error: true
run: uv build

- name: Add venv bin to PATH
shell: bash
run: echo "$PWD/.venv/bin" >> "$GITHUB_PATH"

- name: Check CLI entry point
id: cli
continue-on-error: true
run: comms --help

- name: Write result file
if: always()
shell: bash
run: |
mkdir -p result
cat > result/result.json <<EOF
{
"os_name": "${{ env.OS_NAME }}",
"os_ver": "${{ env.OS_VER }}",
"python_version": "${{ matrix.python-version }}",
"tests": "${{ steps.pytest.outcome == 'success' && 'pass' || 'fail' }}",
"build": "${{ steps.build.outcome == 'success' && 'pass' || 'fail' }}",
"cli": "${{ steps.cli.outcome == 'success' && 'pass' || 'fail' }}"
}
EOF

- name: Upload result artifact
if: always()
uses: actions/upload-artifact@v7
with:
name: python-result-${{ matrix.os }}-${{ matrix.python-version }}
path: result/result.json

- name: Fail if any check failed
if: always() && (steps.pytest.outcome == 'failure' || steps.build.outcome == 'failure' || steps.cli.outcome == 'failure')
run: exit 1

r-tests:
name: R ${{ matrix.r-version }} (${{ matrix.os }})
runs-on: ${{ matrix.os }}
if: github.event.pull_request.head.repo.full_name == github.repository
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
r-version: ["4.4.3", "4.5.3", "4.6.1"]
steps:
- uses: actions/checkout@v7

- name: OS version (Linux)
if: runner.os == 'Linux'
shell: bash
run: |
. /etc/os-release
echo "OS_NAME=$NAME" >> "$GITHUB_ENV"
echo "OS_VER=$VERSION_ID" >> "$GITHUB_ENV"
echo "USE_BUNDLED_LIBUV=1" >> "$GITHUB_ENV"

- name: OS version (macOS)
if: runner.os == 'macOS'
shell: bash
run: |
echo "OS_NAME=macOS" >> "$GITHUB_ENV"
echo "OS_VER=$(sw_vers -productVersion)" >> "$GITHUB_ENV"

- name: Install Linux runtime dependencies
if: runner.os == 'Linux'
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y \
libcurl4-openssl-dev \
libfontconfig1-dev \
libfreetype6-dev \
libfribidi-dev \
libharfbuzz-dev \
libjpeg-dev \
libpng-dev \
libtiff5-dev \
libwebp-dev

- name: Set up R
uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.r-version }}
use-public-rspm: true

- name: Install R dependencies
run: |
Rscript -e 'install.packages("testthat", repos = "https://cloud.r-project.org")'
Rscript src/comms/r/deps/install_deps.R

- name: Run R tests
id: rtests
continue-on-error: true
run: Rscript -e 'testthat::test_dir("tests/r")'

- name: Write result file
if: always()
shell: bash
run: |
mkdir -p result
cat > result/result.json <<EOF
{
"os_name": "${{ env.OS_NAME }}",
"os_ver": "${{ env.OS_VER }}",
"r_version": "${{ matrix.r-version }}",
"tests": "${{ steps.rtests.outcome == 'success' && 'pass' || 'fail' }}"
}
EOF

- name: Upload result artifact
if: always()
uses: actions/upload-artifact@v7
with:
name: r-result-${{ matrix.os }}-${{ matrix.r-version }}
path: result/result.json

- name: Fail if R tests failed
if: always() && steps.rtests.outcome == 'failure'
run: exit 1

all-checks-passed:
name: All checks passed
needs: [python-tests, r-tests]
if: always() && github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
steps:
- name: Check job results
run: |
if [ "${{ needs.python-tests.result }}" != "success" ] || \
[ "${{ needs.r-tests.result }}" != "success" ]; then
echo "One or more required checks failed."
exit 1
fi
echo "All required checks passed."

summary:
name: Post pull request CI report
needs: [python-tests, r-tests]
if: always() && github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
steps:
- name: Checkout branch for workflow script
uses: actions/checkout@v7

- name: Download Python results
uses: actions/download-artifact@v7
continue-on-error: true
with:
pattern: python-result-*
path: results/python

- name: Download R results
uses: actions/download-artifact@v7
continue-on-error: true
with:
pattern: r-result-*
path: results/r

- name: List all downloaded files
shell: bash
run: ls -a

- name: Build summary
id: build
shell: bash
run: python3 .github/workflows/pr_ci_report.py

- name: Comment on pull request
uses: marocchino/sticky-pull-request-comment@v3
with:
header: pull-request-ci-report
path: pr_ci_report.md
66 changes: 66 additions & 0 deletions .github/workflows/pr-version-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Main Branch Pull Request Version Check

on:
pull_request:
branches: [main]

permissions:
contents: read

jobs:
version-check:
name: Check version bump
runs-on: ubuntu-latest
steps:
- name: Checkout PR branch
uses: actions/checkout@v7

- name: Read PR version
id: pr_version
run: |
VERSION=$(grep -m1 '^version *= *' pyproject.toml | sed -E 's/version *= *"([^"]+)"/\1/')
if [ -z "$VERSION" ]; then
echo "Could not read version from pyproject.toml" >&2
exit 1
fi
echo "version=$VERSION" >> "$GITHUB_OUTPUT"

- name: Read main version
id: main_version
run: |
git fetch origin main --depth=1
VERSION=$(git show origin/main:pyproject.toml | grep -m1 '^version *= *' | sed -E 's/version *= *"([^"]+)"/\1/')
if [ -z "$VERSION" ]; then
echo "Could not read version from main's pyproject.toml" >&2
exit 1
fi
echo "version=$VERSION" >> "$GITHUB_OUTPUT"

- name: Install uv
uses: astral-sh/setup-uv@ae62891fec2bb8e7d6c99fc78c9fec3a63790f8d

- name: Compare versions
run: |
PR_VERSION="${{ steps.pr_version.outputs.version }}"
MAIN_VERSION="${{ steps.main_version.outputs.version }}"
echo "PR version: $PR_VERSION"
echo "main version: $MAIN_VERSION"
uv run --with packaging python3 - "$PR_VERSION" "$MAIN_VERSION" <<'EOF'
import sys
from packaging.version import Version, InvalidVersion

pr_raw, main_raw = sys.argv[1], sys.argv[2]

try:
pr = Version(pr_raw)
main = Version(main_raw)
except InvalidVersion as e:
print(f"Could not parse version as PEP 440: {e}", file=sys.stderr)
sys.exit(1)

if pr <= main:
print(f'Version in pyproject.toml ({pr_raw}) is not greater than main ({main_raw}). Versions must strictly increase.', file=sys.stderr)
sys.exit(1)

print(f'OK: {pr_raw} > {main_raw}')
EOF
Loading
Loading