Skip to content

Conversation

@t0mdavid-m
Copy link
Member

@t0mdavid-m t0mdavid-m commented Dec 17, 2025

Summary by CodeRabbit

  • Chores

    • Updated OpenMS to 3.5.0 across Windows build workflows and container images.
    • Upgraded and simplified Qt installation for Windows packaging.
    • Relaxed strict version pins for some Python build dependencies.
    • Added environment capture and adjusted runtime PATH to include contrib libs; injected runtime data-path handling for packaged app.
  • Removed

    • Removed the Windows PyInstaller-based executable build workflow and associated packaging steps.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Dec 17, 2025

📝 Walkthrough

Walkthrough

Removed a Windows PyInstaller build workflow and updated the remaining Windows CI workflow and Dockerfile: OpenMS version/branch bumped to 3.5.0, Qt install and contrib/THIRDPARTY path handling adjusted, capture-env added before build, WITH_PARQUET disabled, and pip pins loosened in the Dockerfile.

Changes

Cohort / File(s) Summary
Removed Windows PyInstaller workflow
​.github/workflows/build-windows-executable-app-with-pyinstaller.yaml
Entire workflow deleted (previously handled OpenMS build + PyInstaller app packaging and artifact upload).
Windows CI workflow updates
​.github/workflows/build-windows-executable-app.yaml
OPENMS_VERSION updated 3.2.03.5.0; removed temporary "Get latest cibuild.cmake" step; added capture-env before the cibuild.cmake/CMake step; renamed/updated Qt install to "Install Qt (Windows)" and set Qt 6.8.3 for win64_msvc2022_64 (archives: qtsvg, qtimageformats, qtbase); changed THIRDPARTY copy path Windows/64bitWindows/x86_64; added contrib/lib to PATH at runtime; set WITH_PARQUET=OFF; adjusted packaging and runtime OPENMS_DATA_PATH/PATH handling.
Docker build change
Dockerfile
OPENMS_BRANCH ARG changed release/3.4.1release/3.5.0; pip install loosened strict pins for cython and autowrap and adjusted quoting.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

  • Areas to focus:
    • ​.github/workflows/build-windows-executable-app.yaml — verify Qt args/archives, capture-env placement, THIRDPARTY path changes, PATH/runtime data-path injections, and WITH_PARQUET implications.
    • Deleted build-windows-executable-app-with-pyinstaller.yaml — confirm no downstream consumers expect this artifact or steps.
    • Dockerfile — confirm branch bump impacts and loosened pip pins for reproducibility/security.

Possibly related PRs

Suggested reviewers

  • Arslan-Siraj

Poem

"I hopped from 3.2 to 3.5 with a twitchy nose,

I scrubbed a workflow and tuned where Qt goes.
Paths now align and pins fly free,
CI hums anew — a carrot for me. 🥕"

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Fix Builds for OpenMS 3.5' clearly summarizes the main objective of the changeset, which updates build configurations and workflows to support OpenMS version 3.5.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix_windows_build

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 480349f and dee23b6.

📒 Files selected for processing (2)
  • .github/workflows/build-windows-executable-app-with-pyinstaller.yaml (0 hunks)
  • .github/workflows/build-windows-executable-app.yaml (7 hunks)
💤 Files with no reviewable changes (1)
  • .github/workflows/build-windows-executable-app-with-pyinstaller.yaml
🔇 Additional comments (7)
.github/workflows/build-windows-executable-app.yaml (7)

16-16: LGTM!

Version bump to 3.5.0 aligns with the PR objectives.


91-95: LGTM!

Adding the contrib library path to GITHUB_PATH ensures runtime DLL resolution for subsequent steps.


142-142: Parquet support disabled.

WITH_PARQUET is set to OFF. Verify this is intentional—if the Streamlit app or any TOPP tools used (FeatureFinderMetabo, FeatureLinkerUnlabeledKD, SiriusExport) require Parquet file support, this could cause runtime issues.


261-263: LGTM!

Setting OPENMS_DATA_PATH in the batch file ensures TOPP tools can locate their data files at runtime. The path %~dp0share\OpenMS correctly references the installation directory structure.


37-43: Qt installation configuration is compatible and appropriate.

The upgrade to Qt 6.8.3 aligns with OpenMS 3.4.0 and later versions, which require Qt 6 (>= 6.5). Qt 6.8.3 with win64_msvc2022_64 architecture is suitable for Windows 2022 runners. The narrowed archives (qtsvg, qtimageformats, qtbase) provide the essential components needed for OpenMS TOPP tools.


130-130: Remove unverified version reference.

The capture-env.sh script addition is appropriate for CI environment setup. However, the reference to OpenMS 3.5.0 cannot be verified—no public release or branch by this name exists in the OpenMS repository as of available documentation (latest documented is 3.4.0). Update the review to either:

  • Specify the correct branch name (e.g., develop, release/3.4.0)
  • Or remove the version-specific reference if this applies generally to OpenMS CI workflows

118-118: The THIRDPARTY path is correct for OpenMS 3.5.0. The THIRDPARTY repository for the release/3.5.0 branch uses Windows/x86_64, not Windows/64bit. The directory exists and contains the necessary binaries.

Likely an incorrect or invalid review comment.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/build-windows-executable-app-with-pyinstaller.yaml (1)

21-30: Remove the obsolete temporary workaround.

The temporary workaround fetching CMake scripts from the develop branch should be removed, as indicated by the comment referencing OpenMS release 3.4. Since this PR targets OpenMS 3.5.0, the workaround is no longer necessary. Additionally, the related workflow file .github/workflows/build-windows-executable-app.yaml removes this same workaround block, creating an inconsistency between the two Windows build workflows.

Apply this diff to remove the workaround:

-    # Temporary fix - until seqan is back online or new OpenMS release (3.4)
-    - name: Get latest cibuild.cmake
-      working-directory: OpenMS
-      run: |
-        git config user.name "GitHub Actions"
-        git config user.email "actions@github.com"
-        git fetch origin develop
-        git checkout origin/develop -- tools/ci/cibuild.cmake
-        git checkout origin/develop -- tools/ci/citest.cmake
-        git checkout origin/develop -- tools/ci/cipackage.cmake
-
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6fd1a91 and 21dd4a1.

📒 Files selected for processing (3)
  • .github/workflows/build-windows-executable-app-with-pyinstaller.yaml (1 hunks)
  • .github/workflows/build-windows-executable-app.yaml (2 hunks)
  • Dockerfile (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: build-full-app
  • GitHub Check: build-openms
🔇 Additional comments (3)
Dockerfile (1)

12-12: LGTM!

The OpenMS branch update to 3.5.0 aligns with the Windows workflow changes and ensures consistency across the build pipeline.

.github/workflows/build-windows-executable-app.yaml (2)

16-16: LGTM!

The OpenMS version bump to 3.5.0 is consistent with other workflow files and the Dockerfile.


126-126: Good addition for environment debugging.

The capture-env.sh step provides valuable build environment logging, which aids in debugging and reproducibility. The placement before the ctest build command is appropriate.

workflow_dispatch:
env:
OPENMS_VERSION: 3.2.0
OPENMS_VERSION: 3.5.0
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

OpenMS 3.5.0 is not an official release; use 3.4.0 instead.

The latest official OpenMS release is 3.4.0 (May 9, 2025). Update the version reference to match an official release.

🤖 Prompt for AI Agents
.github/workflows/build-windows-executable-app-with-pyinstaller.yaml around line
5: the workflow pins OPENMS_VERSION to 3.5.0 which is not an official release;
change the value to the latest official release 3.4.0 by updating the
OPENMS_VERSION variable to "3.4.0" so the workflow uses the supported OpenMS
release.

@t0mdavid-m t0mdavid-m changed the title Fix Windows Build Fix Builds for OpenMS 3.5 Dec 17, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b8106a1 and 2835a1c.

📒 Files selected for processing (2)
  • .github/workflows/build-windows-executable-app.yaml (5 hunks)
  • Dockerfile (2 hunks)
🧰 Additional context used
🪛 Hadolint (2.14.0)
Dockerfile

[error] 61-61: Ensure the shebang uses an absolute path to the interpreter.

(SC2239)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: build-openms
  • GitHub Check: build-full-app
  • GitHub Check: build
  • GitHub Check: build-simple-app
  • GitHub Check: test (ubuntu-latest, 3.11)
🔇 Additional comments (6)
.github/workflows/build-windows-executable-app.yaml (5)

16-16: LGTM!

The OpenMS version bump to 3.5.0 correctly aligns with the PR objective and matches the Docker configuration changes.


136-136: Clarify the reason for disabling Parquet support.

Setting WITH_PARQUET: "OFF" disables Parquet file format support. This functional change is not mentioned in the PR description.

Please clarify:

  1. Is this a temporary workaround for a build issue in OpenMS 3.5.0?
  2. Is Parquet support intentionally removed?
  3. Are there any downstream impacts on users who depend on Parquet functionality?

If this is a known issue or intentional change in OpenMS 3.5.0, consider documenting it in the PR description or commit message.


37-43: No issues identified. The Qt 6.8.3 upgrade meets OpenMS compatibility requirements and the win64_msvc2022_64 architecture aligns with the MSVC 2022 toolchain used in the workflow. The restricted archives and disabled caching are suitable for CI.


124-124: Verify the capture-env.sh script exists in OpenMS 3.5.0.

The addition of capture-env.sh before cibuild.cmake appears to be a new requirement in the OpenMS 3.5.0 build process. Ensure tools/ci/capture-env.sh exists in the release/3.5.0 branch and is properly executable, as the workflow will fail if this script is missing.


112-112: Verify that the THIRDPARTY directory path Windows/x86_64 exists in OpenMS 3.5.0.

The path change from Windows/64bit to Windows/x86_64 appears to be nonstandard. Official OpenMS documentation consistently references Windows/64bit for 64-bit Windows builds. If this path does not exist in the OpenMS 3.5.0 THIRDPARTY submodule, the build workflow will fail.

Dockerfile (1)

12-12: OpenMS 3.5.0 branch does not exist as a release.

The specified branch release/3.5.0 is not available in the OpenMS repository. The latest release branch is 3.4.1. Update to an existing release branch (e.g., release/3.4.1) or verify the intended version number.

Likely an incorrect or invalid review comment.

# Install up-to-date cmake via mamba and packages for pyOpenMS build.
RUN mamba install cmake
RUN pip install --upgrade pip && python -m pip install -U setuptools nose 'cython<3.1' 'autowrap<0.23' pandas numpy pytest
RUN pip install --upgrade pip && python -m pip install -U setuptools nose cython autowrap pandas numpy pytest
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Consider pinning Python package versions for reproducible builds.

Removing version constraints for cython and autowrap makes the build non-reproducible and vulnerable to breaking changes in future package releases. This could lead to unexpected build failures.

Apply this diff to restore version pinning:

-RUN pip install --upgrade pip && python -m pip install -U setuptools nose cython autowrap pandas numpy pytest
+RUN pip install --upgrade pip && python -m pip install -U setuptools nose cython==<version> autowrap==<version> pandas numpy pytest

Replace <version> with specific versions that are known to work with OpenMS 3.5.0.

Alternatively, if you intentionally removed the pins to avoid compatibility issues, please verify that the latest versions of these packages work correctly with pyOpenMS 3.5.0.

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 Hadolint (2.14.0)

[error] 61-61: Ensure the shebang uses an absolute path to the interpreter.

(SC2239)

🤖 Prompt for AI Agents
In Dockerfile around line 61, the RUN pip install command installs cython and
autowrap without pinned versions, making builds non-reproducible; update that
line to pin cython and autowrap to specific versions known to work with OpenMS
3.5.0 (e.g., replace cython and autowrap with cython==<version> and
autowrap==<version>), or explicitly document and verify compatibility if you
intend to keep them unpinned.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
.github/workflows/build-windows-executable-app.yaml (1)

142-142: Consider documenting why Parquet support is disabled.

WITH_PARQUET has been set to OFF. If this is a temporary workaround for OpenMS 3.5.0 build issues, consider adding a comment explaining the reason and whether it should be re-enabled in the future.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2835a1c and 480349f.

📒 Files selected for processing (1)
  • .github/workflows/build-windows-executable-app.yaml (6 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: build-openms
  • GitHub Check: build-simple-app
  • GitHub Check: build-full-app
  • GitHub Check: test (ubuntu-latest, 3.11)
🔇 Additional comments (4)
.github/workflows/build-windows-executable-app.yaml (4)

16-16: LGTM!

The OpenMS version bump to 3.5.0 aligns with the PR objectives to fix builds for OpenMS 3.5.


91-96: LGTM!

Adding the contrib library path to PATH for runtime DLL resolution is appropriate and correctly placed after the contrib is downloaded.


37-43: Qt 6.8.3 meets the Qt version requirement for OpenMS. OpenMS 3.4 switched to Qt 6 (>= 6.5), and Qt 6.8.3 satisfies this minimum version constraint. The architecture win64_msvc2022_64 is appropriate for Windows builds.


130-130: Verify the capture-env.sh script exists in OpenMS 3.5.0.

The workflow now invokes capture-env.sh before the build step. Ensure this script exists in OpenMS 3.5.0 at tools/ci/capture-env.sh and accepts the -v flag with a CMakeCache.txt path argument.

# use flat THIRDPARTY structure
mkdir -p _thirdparty
cp -R OpenMS/THIRDPARTY/Windows/64bit/* _thirdparty/
cp -R OpenMS/THIRDPARTY/Windows/x86_64/* _thirdparty/
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

The path change from Windows/64bit to Windows/x86_64 is unsupported by the actual OpenMS THIRDPARTY directory structure.

Official OpenMS documentation prescribes copying subdirectories to ./Windows/64bit/, not Windows/x86_64. The live THIRDPARTY repository uses the Windows/64bit directory structure. This path change will cause the workflow to fail when attempting to copy from a non-existent directory. Revert to Windows/64bit as specified in OpenMS's official build instructions.

🤖 Prompt for AI Agents
.github/workflows/build-windows-executable-app.yaml around line 118: the
workflow copies third-party binaries from OpenMS/THIRDPARTY/Windows/x86_64 which
does not exist in the upstream THIRDPARTY layout; change the path back to
OpenMS/THIRDPARTY/Windows/64bit so it matches the official OpenMS directory
structure and will succeed when copying those subdirectories during the build.

@t0mdavid-m t0mdavid-m merged commit f2ad2b1 into main Dec 18, 2025
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants