Skip to content

dotnet added to DIANN after 2.0.0 versions#17

Merged
ypriverol merged 2 commits into
mainfrom
dev
Apr 24, 2026
Merged

dotnet added to DIANN after 2.0.0 versions#17
ypriverol merged 2 commits into
mainfrom
dev

Conversation

@ypriverol
Copy link
Copy Markdown
Member

@ypriverol ypriverol commented Apr 24, 2026

This pull request adds support for new DIA-NN container versions (2.3.2 and 2.5.0) and ensures that all containers for DIA-NN ≥ 2.1.0 install the required .NET SDK 8.0 to enable native Thermo .raw file reading on Linux. The documentation is updated to clearly describe these changes and the new requirements for native Thermo file support.

Container build updates:

  • Added installation of dotnet-sdk-8.0 and ca-certificates in the Dockerfile for all containers with DIA-NN ≥ 2.1.0 (diann-2.1.0, diann-2.2.0, diann-2.3.2, diann-2.5.0), ensuring native Thermo .raw file reading works out of the box. [1] [2] [3] [4]
  • Removed the --no-check-certificate flag from wget commands in all relevant Dockerfiles, as ca-certificates are now installed and certificate checks are expected to succeed. [1] [2] [3] [4]

Documentation updates:

  • Updated the README.md to list new available versions (2.3.2 and 2.5.0) and clarify that all containers from 2.1.0 onward bundle the .NET SDK 8 and support native Thermo .raw reading. Also added a detailed explanation of the .NET SDK requirement and the behavior of DIA-NN when the SDK is missing. [1] [2]

These changes make it easier for users to work with Thermo .raw files directly in Linux containers and ensure the documentation accurately reflects the new capabilities and requirements.

ypriverol and others added 2 commits April 23, 2026 19:26
DIA-NN 2.1.0+ bundles Thermo DLLs targeting net8.0 and calls
`dotnet --list-sdks` at startup. Without the SDK, DIA-NN aborts with
"ERROR: cannot read .raw files, please download and install .NET Runtime
8.0.14 or later". Installing the Ubuntu 22.04 `dotnet-sdk-8.0` package
(jammy-updates, 8.0.126) satisfies the probe and enables native .raw
reading on Linux. Applied to 2.1.0, 2.2.0, 2.3.2, 2.5.0; 2.0.2 is
unchanged because it does not ship the Thermo reader.

Verified end-to-end: `diann --f input.raw --convert` on a real 835 MB
Thermo .raw succeeds in all four Docker images and all four Singularity
images, producing a 239 MB .dia.

Also gitignores build-diann-singularity.sh (a local build helper used
during verification) and the singularity-cache/ output directory so the
repo stays clean.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
🐛 install dotnet-sdk-8.0 so DIA-NN >=2.1.0 can read Thermo .raw
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 24, 2026

📝 Walkthrough

Walkthrough

These changes extend .gitignore to exclude local build artifacts, update README documentation for new DIA-NN container versions and native Thermo .raw support, and consistently update Dockerfiles (versions 2.1.0–2.5.0) to install dotnet-sdk-8.0 and ca-certificates while enabling standard TLS certificate verification.

Changes

Cohort / File(s) Summary
Version Control
.gitignore
Added exclusion patterns for local build helper script build-diann-singularity.sh and its generated singularity-cache/ directory.
Documentation
README.md
Updated DIA-NN availability documentation with new container releases (2.3.2, 2.5.0), corrected directory paths, and added explanatory block describing native Thermo .raw support for DIA-NN ≥ 2.1.0 with .NET SDK enumeration details.
Container Infrastructure
diann-2.1.0/Dockerfile, diann-2.2.0/Dockerfile, diann-2.3.2/Dockerfile, diann-2.5.0/Dockerfile
Added installation of ca-certificates and dotnet-sdk-8.0 packages; updated comments to document .NET SDK requirement for native .raw reading; removed --no-check-certificate flag from wget commands to enable standard TLS verification.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Suggested labels

Review effort [1-5]: 2

Suggested reviewers

  • enryH

Poem

🐰 Hopping through containers with glee,
dotnet-sdk-eight now bundled, you see!
Raw files read native on Linux so fair,
With certs verified proper—no compromise there!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: dotnet SDK 8.0 is being added to DIA-NN container versions after 2.0.0, which aligns with modifications to Dockerfiles for versions 2.1.0, 2.2.0, 2.3.2, and 2.5.0.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

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.

@ypriverol ypriverol requested a review from enryH April 24, 2026 05:51
Copy link
Copy Markdown

@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)
README.md (1)

32-35: Optional: differentiate "Key Features" per 2.x version.

All four 2.1.0+ rows carry the identical Native .raw on Linux (bundles .NET SDK 8) string, which hides why a user would choose, say, 2.3.2 over 2.1.0. Per upstream release notes, 2.3.0+ adds InfinDIA and is no longer DIA-only (DDA support). Consider noting the version-specific highlight alongside the shared .raw/SDK note, e.g.:

✏️ Suggested wording
-| 2.1.0   | `diann-2.1.0/` | Native `.raw` on Linux (bundles .NET SDK 8)   | `ghcr.io/bigbio/diann:2.1.0` |
-| 2.2.0   | `diann-2.2.0/` | Native `.raw` on Linux (bundles .NET SDK 8)   | `ghcr.io/bigbio/diann:2.2.0` |
-| 2.3.2   | `diann-2.3.2/` | Native `.raw` on Linux (bundles .NET SDK 8)   | `ghcr.io/bigbio/diann:2.3.2` |
-| 2.5.0   | `diann-2.5.0/` | Native `.raw` on Linux (bundles .NET SDK 8)   | `ghcr.io/bigbio/diann:2.5.0` |
+| 2.1.0   | `diann-2.1.0/` | First release with native `.raw` on Linux (bundles .NET SDK 8) | `ghcr.io/bigbio/diann:2.1.0` |
+| 2.2.0   | `diann-2.2.0/` | Stability / QC-plot improvements over 2.1.0                    | `ghcr.io/bigbio/diann:2.2.0` |
+| 2.3.2   | `diann-2.3.2/` | Adds InfinDIA + DDA support; native `.raw` on Linux            | `ghcr.io/bigbio/diann:2.3.2` |
+| 2.5.0   | `diann-2.5.0/` | Latest 2.x; native `.raw` on Linux                             | `ghcr.io/bigbio/diann:2.5.0` |

Feel free to reword based on what you've validated downstream.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 32 - 35, Update the README table rows for the 2.x
diann entries to include version-specific highlights in addition to the shared
"Native `.raw` on Linux (bundles .NET SDK 8)" note; for example, append a short
feature note to the `2.3.2` (and any ≥2.3.0) row indicating "Adds InfinDIA and
DDA support" and preserve the shared SDK/raw text for `2.1.0`, `2.2.0`, `2.3.2`,
and `2.5.0` so users can see both the common runtime details and the unique
capability per version.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@diann-2.1.0/Dockerfile`:
- Around line 22-29: The RUN apt-get install step currently installs
dotnet-sdk-8.0 from Ubuntu jammy which yields an older 8.0.x feature band;
modify the Dockerfile to add Microsoft's .NET APT feed and GPG key before the
apt-get update/install step so dotnet-sdk-8.0 is fetched from Microsoft's
repository (and optionally pin to a 8.0.4xx >= 8.0.407 build); in practice
insert the Microsoft package repo setup (add-apt-repository/apt-key/gpg and the
deb line for packages.microsoft.com) prior to the RUN that installs
dotnet-sdk-8.0 so the existing RUN line that lists dotnet-sdk-8.0 will install
the correct version; apply the same change to all Dockerfiles that currently
install dotnet-sdk-8.0.

---

Nitpick comments:
In `@README.md`:
- Around line 32-35: Update the README table rows for the 2.x diann entries to
include version-specific highlights in addition to the shared "Native `.raw` on
Linux (bundles .NET SDK 8)" note; for example, append a short feature note to
the `2.3.2` (and any ≥2.3.0) row indicating "Adds InfinDIA and DDA support" and
preserve the shared SDK/raw text for `2.1.0`, `2.2.0`, `2.3.2`, and `2.5.0` so
users can see both the common runtime details and the unique capability per
version.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: b9008347-cf2f-4a70-915f-b315bd669382

📥 Commits

Reviewing files that changed from the base of the PR and between 610c2bd and 6727bd3.

📒 Files selected for processing (6)
  • .gitignore
  • README.md
  • diann-2.1.0/Dockerfile
  • diann-2.2.0/Dockerfile
  • diann-2.3.2/Dockerfile
  • diann-2.5.0/Dockerfile

Comment thread diann-2.1.0/Dockerfile
Comment on lines 22 to 29
RUN apt-get update && apt-get install -y --no-install-recommends \
wget \
unzip \
libgomp1 \
locales && \
locales \
ca-certificates \
dotnet-sdk-8.0 && \
rm -rf /var/lib/apt/lists/*
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check the current dotnet-sdk-8.0 candidate version in Ubuntu 22.04 jammy-updates
# and confirm it is >= 8.0.407 (i.e. SDK band 8.0.4xx or higher).
docker run --rm ubuntu:22.04 bash -lc '
  set -e
  export DEBIAN_FRONTEND=noninteractive
  apt-get update -qq >/dev/null
  apt-cache policy dotnet-sdk-8.0 | head -20
  apt-cache madison dotnet-sdk-8.0 | head -5
'

Repository: bigbio/quantms-containers

Length of output: 116


🏁 Script executed:

# First, locate and examine the Dockerfiles mentioned in the review
find . -name "Dockerfile" | grep -E "diann-2\.(1|2|3|5)" | head -20

Repository: bigbio/quantms-containers

Length of output: 169


🌐 Web query:

dotnet-sdk-8.0 Ubuntu 22.04 jammy-updates version 8.0.407

💡 Result:

The dotnet-sdk-8.0 package version 8.0.407 is not available in Ubuntu 22.04 (jammy-updates). Canonical's Ubuntu repositories for jammy-updates provide .NET 8.0 SDK versions in the 8.0.1xx feature band only, with the latest being 8.0.125-0ubuntu1~22.04.1 or similar as of early 2026. Microsoft's official .NET 8.0 SDK 8.0.407 (from March 2025) is available via their package repository for Ubuntu 22.04 as the deb file dotnet-sdk-8.0_8.0.407-1_amd64.deb. To install it, add Microsoft's repository: wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb sudo apt-get update sudo apt-get install -y dotnet-sdk-8.0 Note: Microsoft docs recommend using Ubuntu's feeds for .1xx versions but suggest their feed for newer feature bands like 4xx. Mixing repositories may cause issues; review .NET package mix-ups documentation. Alternatively, download and install the specific deb directly, or use tar.gz/binary installation from dotnet.microsoft.com.

Citations:


🌐 Web query:

DIA-NN .NET SDK 8.0 minimum version requirement 8.0.407

💡 Result:

Yes, DIA-NN requires the .NET SDK version 8.0.407 or later. This is the minimum version specified in the official documentation and error messages for enabling the built-in Thermo .raw file reader in recent versions (e.g., 2.1+). Newer 8.0-series versions like 8.0.411 or 8.0.412 also work, but .NET 9.x does not, as it must be the 8.0 series. Installation links point directly to the 8.0.407 installer, confirming it as the baseline minimum.

Citations:


🏁 Script executed:

# Check if the Dockerfiles add Microsoft's .NET repository
for df in ./diann-2.1.0/Dockerfile ./diann-2.2.0/Dockerfile ./diann-2.3.2/Dockerfile ./diann-2.5.0/Dockerfile; do
  echo "=== $df ==="
  cat "$df" | head -50
done

Repository: bigbio/quantms-containers

Length of output: 7390


Add Microsoft's .NET repository to obtain the required dotnet-sdk-8.0 version.

DIA-NN requires dotnet-sdk-8.0 >= 8.0.407 to read Thermo .raw files (documented in the Dockerfile comments themselves). However, Ubuntu 22.04's jammy-updates repository provides only the 8.0.1xx feature band (e.g., 8.0.125), which is below the minimum. Images built with the current Dockerfile will fail at runtime with "cannot read .raw files" errors.

To fix this, add Microsoft's .NET repository before installing dotnet-sdk-8.0. This applies identically to diann-2.2.0/Dockerfile, diann-2.3.2/Dockerfile, and diann-2.5.0/Dockerfile.

Suggested fix
RUN apt-get update && apt-get install -y --no-install-recommends \
    wget \
+   ca-certificates \
    && \
+   wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb && \
+   dpkg -i packages-microsoft-prod.deb && \
+   rm packages-microsoft-prod.deb && \
+   apt-get update && \
+   apt-get install -y --no-install-recommends \
    unzip \
    libgomp1 \
    locales \
-   ca-certificates \
    dotnet-sdk-8.0 && \
    rm -rf /var/lib/apt/lists/*

Alternatively, install dotnet-sdk-8.0 explicitly from Microsoft's feed:

-   dotnet-sdk-8.0 && \
+   dotnet-sdk-8.0=8.0.407-1 && \

(Adjust the pin to the latest stable 8.0.4xx version available.)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@diann-2.1.0/Dockerfile` around lines 22 - 29, The RUN apt-get install step
currently installs dotnet-sdk-8.0 from Ubuntu jammy which yields an older 8.0.x
feature band; modify the Dockerfile to add Microsoft's .NET APT feed and GPG key
before the apt-get update/install step so dotnet-sdk-8.0 is fetched from
Microsoft's repository (and optionally pin to a 8.0.4xx >= 8.0.407 build); in
practice insert the Microsoft package repo setup (add-apt-repository/apt-key/gpg
and the deb line for packages.microsoft.com) prior to the RUN that installs
dotnet-sdk-8.0 so the existing RUN line that lists dotnet-sdk-8.0 will install
the correct version; apply the same change to all Dockerfiles that currently
install dotnet-sdk-8.0.

@ypriverol ypriverol merged commit 15ee93b into main Apr 24, 2026
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.

1 participant