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
13 changes: 6 additions & 7 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,23 +44,22 @@ jobs:
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
- name: Install uv
uses: astral-sh/setup-uv@v6
with:
python-version: "3.11"
enable-cache: true

- name: Install package and dependencies
run: |
# Using pip to ensure proper environment discovery by PyInstaller
python -m pip install --upgrade pip
pip install --only-binary :all: .[ionmob] pyinstaller
run: uv sync --group installer

- name: Install Inno Setup
uses: crazy-max/ghaction-chocolatey@v3
with:
args: install innosetup -y --allow-unofficial --force
args: install innosetup -y --allow-unofficial

- name: Run pyinstaller
run: pyinstaller ./ms2rescore.spec --clean --noconfirm
run: uv run pyinstaller ./ms2rescore.spec --clean --noconfirm

- name: Test built exe
run: dist/ms2rescore/ms2rescore.exe
Expand Down
19 changes: 8 additions & 11 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,35 +45,32 @@ jobs:
run: uv run ms2rescore --help

test-windows-installer:
# Only run on push to main (e.g., after PR merge)
if: ${{ github.ref == 'refs/heads/main' }}
runs-on: windows-latest
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
- name: Install uv
uses: astral-sh/setup-uv@v6
with:
python-version: "3.12"
python-version: "3.11"
enable-cache: true

- name: Install package and dependencies
run: |
# Using pip to ensure proper environment discovery by PyInstaller
python -m pip install --upgrade pip
pip install --only-binary :all: .[ionmob,idxml] pyinstaller
run: uv sync --group installer

- name: Install Inno Setup
uses: crazy-max/ghaction-chocolatey@v1
with:
args: install innosetup -y --allow-unofficial --force
args: install innosetup -y --allow-unofficial

- name: Run pyinstaller
run: pyinstaller ./ms2rescore.spec --clean --noconfirm
run: uv run pyinstaller ./ms2rescore.spec --clean --noconfirm

- name: Test built exe
run: dist/ms2rescore/ms2rescore.exe

- name: Run Inno Setup
run: ISCC.exe ./ms2rescore_innosetup.iss /DAppVersion=${{ github.ref_name }}
run: ISCC.exe ./ms2rescore_innosetup.iss /DAppVersion=test-build

- name: Upload artifact
uses: actions/upload-artifact@v4
Expand Down
4 changes: 3 additions & 1 deletion ms2rescore.spec
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,9 @@ while requirements:
module_version = importlib.metadata.version(re.match(r"^[\w\-]+", requirement)[0])
try:
datas_, binaries_, hidden_imports_ = collect_all(requirement, include_py_files=True)
except ImportError:
except (ImportError, RuntimeError) as e:
# Skip packages that fail to collect (e.g., xgboost.testing requires hypothesis)
print(f"Warning: Failed to collect {requirement}: {e}")
continue
datas += datas_
hidden_imports_ = set(hidden_imports_)
Expand Down
2 changes: 1 addition & 1 deletion ms2rescore/feature_generators/im2deep.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ def make_calibration_df(psm_list_df: pd.DataFrame, threshold: float = 0.25) -> p
DataFrame with PSMs.
threshold
Percentage of highest scoring identified target PSMs to use for calibration,
default 0.95.
default 0.25.

Returns
-------
Expand Down
13 changes: 11 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ authors = [
{ name = "Ralf Gabriels", email = "ralf@gabriels.dev" },
{ name = "Arthur Declercq", email = "arthur.declercq@ugent.be" },
{ name = "Ana Sílvia C. Silva" },
{ name = "Robbe Devreese" },
{ name = "Robbin Bouwmeester" },
{ name = "Louise Buur" },
]
Expand All @@ -37,12 +38,12 @@ dependencies = [
"customtkinter>=5,<6",
"deeplc>=3.1",
"deeplcretrainer",
"im2deep>=0.3.1",
"im2deep>=1.1",
"jinja2>=3",
"lxml>=4.5",
"mokapot==0.10", # 0.11.0 will introduce API changes
"ms2pip>=4.0.0",
"ms2rescore_rs>=0.4.3",
"ms2rescore_rs>=0.4",
"numpy>=1.25",
"packaging>=25.0",
"pandas>=1",
Expand Down Expand Up @@ -71,6 +72,14 @@ docs = [
"sphinx-autobuild",
"toml",
]
installer = [
# Pinned dependencies for reproducible Windows installer builds
"pyinstaller",
"pyopenms==3.3",
"ionmob>=0.2",
"tensorflow",
"im2deep==1.1.1",
]

[project.urls]
GitHub = "https://github.com/compomics/ms2rescore"
Expand Down
Loading
Loading