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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
127 changes: 127 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
name: "CI"

on:
push:
branches: [main, dev]
pull_request:
branches: [main]

jobs:
lint:
runs-on: ubuntu-latest
timeout-minutes: 30

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"

- name: Run linter
run: |
pip install pylint==3.3.5
chmod +x lint.sh
bash lint.sh

test-rust:
runs-on: ubuntu-latest
timeout-minutes: 120
needs: lint
defaults:
run:
shell: bash -l {0}

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Free disk space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
tool-cache: false
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true

- name: Set up Miniconda
uses: conda-incubator/setup-miniconda@v3
with:
miniconda-version: "latest"
activate-environment: test-env
python-version: "3.10"
channels: conda-forge,bioconda,defaults
channel-priority: strict

- name: Install Rust toolchain
run: |
conda install -y rust=1.88.0

- name: Run Rust unit tests
run: |
cd exacto/
cargo test -- --nocapture

test-python:
runs-on: ubuntu-latest
timeout-minutes: 120
needs: lint
defaults:
run:
shell: bash -l {0}

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Free disk space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
tool-cache: false
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true

- name: Set up Miniconda
uses: conda-incubator/setup-miniconda@v3
with:
miniconda-version: "latest"
activate-environment: test-env
python-version: "3.10"
channels: conda-forge,bioconda,defaults
channel-priority: strict

- name: Install dependencies
run: |
conda install -y \
pip \
rust=1.88.0 \
pandas=2.2.3 \
polars=1.26.0 \
pyarrow=19.0.1 \
coveralls=4.0.1 \
pytest=8.3.5 \
pytest-cov=6.1.1
python -m pip install pysam==0.23.0
python -m pip install . --verbose

- name: Verify install
run: |
which python
which pip
python -c "import sys; print('sys.executable:', sys.executable)"
python -c "import pysam; print('pysam OK:', pysam.__file__)"
python -c "import exactolib; print('exactolib OK:', exactolib.__file__)"

- name: Run Python unit tests
run: |
chmod +x unittest.sh
bash unittest.sh
61 changes: 0 additions & 61 deletions .github/workflows/main.yml

This file was deleted.

7 changes: 5 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,12 @@ Exacto.egg-info/
docs/.ipynb_checkpoints/
target/
docs/_site
docs/.quarto
docs/.quarto/
docs/cli/*
docs/pipelines/*
!docs/cli/index.qmd
!docs/pipelines/index.qmd
Cargo.lock
.nojekyll
*.nextflow.log*
**/.nextflow/

25 changes: 13 additions & 12 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,46 +1,47 @@
[package]
name = "exactolib"
version = "0.4.5"
version = "0.4.6"
edition = "2021"

[package.metadata.maturin]
name = "exactolib.exactolibrs"

[lib]
name = "exactolib"
name = "exactolibrs"
crate-type = ["cdylib"]

[dependencies]
bstr = "1.9.0"
chrono = "0.4"
env_logger = "0.9"
exacto = { path = "exacto/exacto", version = "0.4.5" }
exacto = { path = "exacto/exacto", version = "0.4.6" }
exitcode = "1.1.2"
flate2 = "1.0.35"
log = "0.4"
noodles-bgzf = "0.34.0"
noodles-fasta = "0.46.0"
noodles-bgzf = "0.43.0"
noodles-fasta = "0.56.0"
noodles-fastq = "0.16.0"
polars = { version = "0.45.0", features = ["csv", "ipc", "lazy", "parquet"] }
pyo3 = { version = "0.22.0", features = ["extension-module"] }
pyo3-polars = "0.19.0"
serde = { version = "1.0", features = ["derive"] }
rayon = "1.10.0"
serde = { version = "1.0.210", features = ["derive", "rc"] }
sysinfo = "0.32.0"
tempfile = "3.6"

[profile.dev]
opt-level = 0
debug = true
debug = 1
overflow-checks = true
panic = 'unwind'
incremental = true
codegen-units = 256

[profile.release]
opt-level = 0
debug = false
lto = true
opt-level = 3
debug = 0
lto = "thin"
overflow-checks = false
panic = 'unwind'
incremental = true
codegen-units = 1
incremental = false
codegen-units = 16
Loading
Loading