Skip to content

fix(Dockerfile): install copr-cli via dnf for better dependency management#9421

Merged
jdx merged 2 commits intojdx:mainfrom
bestagi:main
Apr 27, 2026
Merged

fix(Dockerfile): install copr-cli via dnf for better dependency management#9421
jdx merged 2 commits intojdx:mainfrom
bestagi:main

Conversation

@bestagi
Copy link
Copy Markdown
Contributor

@bestagi bestagi commented Apr 27, 2026

Copilot AI review requested due to automatic review settings April 27, 2026 11:53
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 27, 2026

Greptile Summary

Switches copr-cli installation from pip3 to dnf in the COPR packaging Dockerfile, fixing the ModuleNotFoundError: No module named 'rich' seen in the publish-copr workflow. The new RUN block correctly uses -y and cleans the dnf cache in the same layer.

Confidence Score: 5/5

Safe to merge — the fix correctly addresses the workflow failure with no new risks introduced.

Single-file, one-line-of-logic change that replaces a fragile pip3 install with the system package manager; -y flag is present, cache is cleaned, and no P1/P0 issues were found.

No files require special attention.

Important Files Changed

Filename Overview
packaging/copr/Dockerfile Replaces pip3 install copr-cli with dnf install -y copr-cli to fix the ModuleNotFoundError: No module named 'rich' caused by missing system-level Python dependencies when using pip; adds a matching dnf clean all to keep the layer lean.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A["FROM fedora:45"] --> B["dnf update -y\ndnf install -y rpm-build rpmdevtools\npython3-pip git rust cargo gcc tar gzip\ndnf clean all"]
    B --> C["dnf install -y copr-cli\ndnf clean all"]
    C --> D["ENV PATH=/root/.local/bin:PATH"]
    D --> E["curl https://mise.run | sh"]
    E --> F["mise use -g cargo-binstall cargo:cargo-vendor"]
    F --> G["rpmdev-setuptree"]
Loading

Reviews (2): Last reviewed commit: "add: "-y" argument and clean dnf" | Re-trigger Greptile

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request updates the packaging/copr/Dockerfile to install copr-cli using the dnf package manager instead of pip3. Feedback suggests adding the -y flag to the dnf install command to prevent build failures in non-interactive environments and appending dnf clean all to optimize the final image size.

Comment thread packaging/copr/Dockerfile Outdated
Comment thread packaging/copr/Dockerfile Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates the COPR build container image to install copr-cli via Fedora’s package manager to resolve missing Python dependencies (e.g., rich) seen in the publish-copr workflow.

Changes:

  • Replaces pip3 install copr-cli with a dnf install copr-cli step in the COPR Dockerfile.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packaging/copr/Dockerfile Outdated
@jdx jdx merged commit 58587d2 into jdx:main Apr 27, 2026
34 checks passed
mise-en-dev added a commit that referenced this pull request Apr 28, 2026
### 🚀 Features

- **(task)** add --name-only flag to mise tasks ls by @jdx in
[#9435](#9435)

### 🐛 Bug Fixes

- **(Dockerfile)** install copr-cli via dnf for better dependency
management by @bestagi in [#9421](#9421)
- **(aqua)** drop empty-releases fallback to tags by @jdx in
[#9443](#9443)
- **(docs)** fix theme flicker on docs by @vhespanha in
[#9427](#9427)
- **(lockfile)** update global lockfile on upgrade by @jdx in
[#9442](#9442)
- **(ls-remote)** omit rolling/prerelease from JSON when false by @jdx
in [#9439](#9439)
- **(task)** support usage refs in dependency template tags by @jdx in
[#9424](#9424)
- **(task)** populate usage.cmd for subcommand-only tasks; share
make_usage_ctx by @jdx in [#9431](#9431)
- **(task)** resolve sandbox allow_read/allow_write against task dir by
@jdx in [#9428](#9428)

### 📚 Documentation

- **(site)** add self-hosted page tracker via Cloudflare Worker, drop
GoatCounter by @jdx in [#9430](#9430)

### New Contributors

- @vhespanha made their first contribution in
[#9427](#9427)

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
bestagi added a commit to bestagi/mise that referenced this pull request Apr 28, 2026
… changes

The copr-publish workflow was pinned to a stale image digest
(sha256:da63a0f...) that predated the fix in jdx#9421 which switched
copr-cli installation from pip3 to dnf. As a result, every copr-publish
run after the merge still used the old broken image and failed with:

  ModuleNotFoundError: No module named 'rich'

Fixes:
- Remove the pinned digest from copr-publish.yml so the mutable
  ghcr.io/jdx/mise:copr tag is used, always pulling the latest built image.
- Add a push trigger to docker.yml scoped to packaging/copr/Dockerfile
  so the :copr image is automatically rebuilt (and tag updated) whenever
  the Dockerfile changes on main, preventing this class of stale-digest
  regression in the future.
bestagi added a commit to bestagi/mise that referenced this pull request Apr 29, 2026
… changes

The copr-publish workflow was pinned to a stale image digest
(sha256:da63a0f...) that predated the fix in jdx#9421 which switched
copr-cli installation from pip3 to dnf. As a result, every copr-publish
run after the merge still used the old broken image and failed with:

  ModuleNotFoundError: No module named 'rich'

Fixes:
- Remove the pinned digest from copr-publish.yml so the mutable
  ghcr.io/jdx/mise:copr tag is used, always pulling the latest built image.
- Add a push trigger to docker.yml scoped to packaging/copr/Dockerfile
  so the :copr image is automatically rebuilt (and tag updated) whenever
  the Dockerfile changes on main, preventing this class of stale-digest
  regression in the future.
bestagi added a commit to bestagi/mise that referenced this pull request Apr 29, 2026
… changes

The copr-publish workflow was pinned to a stale image digest
(sha256:da63a0f...) that predated the fix in jdx#9421 which switched
copr-cli installation from pip3 to dnf. As a result, every copr-publish
run after the merge still used the old broken image and failed with:

  ModuleNotFoundError: No module named 'rich'

Fixes:
- Remove the pinned digest from copr-publish.yml so the mutable
  ghcr.io/jdx/mise:copr tag is used, always pulling the latest built image.
- Add a push trigger to docker.yml scoped to packaging/copr/Dockerfile
  so the :copr image is automatically rebuilt (and tag updated) whenever
  the Dockerfile changes on main, preventing this class of stale-digest
  regression in the future.
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.

3 participants