Update dependency kaleido to v0.2.1.post1#46
Conversation
📝 WalkthroughWalkthroughThis PR updates the pinned version of the ChangesKaleido dependency pin
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@api/tacticalrmm/requirements.txt`:
- Line 43: The pinned dependency kaleido==0.2.1.post1 is an arm32-only wheel on
PyPI and will break installs on non-arm platforms; update
api/tacticalrmm/requirements.txt to avoid the architecture-specific pin by
either: (A) relax the pin to a Plotly-compatible range (for example change
kaleido==0.2.1.post1 to kaleido>=0.2.1,<1.0.0) so pip can select a suitable
release, or (B) make the pin platform-specific (e.g., keep kaleido==0.2.1.post1
but add an environment marker so it only applies on armv7l), and ensure
plotly==5.24.1 remains compatible with the chosen kaleido range.
🪄 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 Plus
Run ID: 146c4ff9-f583-451d-85b4-d8fcb905fd62
📒 Files selected for processing (1)
api/tacticalrmm/requirements.txt
| zipp==3.20.2 | ||
| pandas==2.2.3 | ||
| kaleido==0.2.1 | ||
| kaleido==0.2.1.post1 |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: Verify kaleido 0.2.1.post1 exists and check for security advisories
# Check if version 0.2.1.post1 exists on PyPI
echo "Checking if kaleido 0.2.1.post1 exists on PyPI..."
curl -s https://pypi.org/pypi/kaleido/json | jq -r '.releases | keys[]' | grep -E '^0\.2\.1\.post1$'
# Get latest version for comparison
echo -e "\nLatest kaleido version:"
curl -s https://pypi.org/pypi/kaleido/json | jq -r '.info.version'
# Check for security advisories
echo -e "\nChecking for security advisories..."
gh api graphql -f query='
{
securityVulnerabilities(first: 10, ecosystem: PIP, package: "kaleido") {
nodes {
advisory {
summary
severity
publishedAt
}
vulnerableVersionRange
firstPatchedVersion {
identifier
}
}
}
}'Repository: flamingo-stack/tacticalrmm
Length of output: 249
🏁 Script executed:
#!/bin/bash
set -euo pipefail
PKG="kaleido"
VER="0.2.1.post1"
URL="https://pypi.org/pypi/${PKG}/${VER}/json"
echo "Fetching PyPI metadata for ${PKG}==${VER}..."
curl -s "$URL" | jq -r '
{
version: .info.version,
requires_dist: .info.requires_dist,
classifiers: .info.classifiers,
summary: .info.summary
} | `@json`
'
echo
echo "Wheel/platform filenames for ${PKG}==${VER} (to infer arm32 support):"
curl -s "$URL" | jq -r '.releases[env.VER] // .urls' 2>/dev/null || true
# Print filenames from releases object if present
curl -s "https://pypi.org/pypi/${PKG}/${VER}/json" | jq -r '
(.urls[]?.filename // empty),
(.releases[env.VER][]?.filename // empty)
' 2>/dev/null | sed -n '1,80p'
echo
echo "Checking whether metadata declares plotly as a dependency:"
curl -s "https://pypi.org/pypi/${PKG}/${VER}/json" | jq -r '
(.info.requires_dist // []) | map(select(test("plotly";"i"))) | .[]
' || trueRepository: flamingo-stack/tacticalrmm
Length of output: 447
🌐 Web query:
Plotly Kaleido compatibility plotly 5.24 kaleido required version 0.2.1.post1
💡 Result:
For Plotly 5.24.x, the Kaleido package version 0.2.1 (not 0.2.1.post1) is the recommended and compatible version [1][2]. Key points regarding compatibility: 1. Version Mismatch: Kaleido 1.0.0 and later are not compatible with Plotly 5.x [1]. Installing the latest version of Kaleido (via pip install -U kaleido) will cause static image export (e.g., fig.write_image()) to fail in Plotly 5.24 because it triggers an incompatibility error [1]. 2. Kaleido 0.2.1.post1 Limitations: The 0.2.1.post1 version of Kaleido is a specific release intended only for ARM32 Linux architectures [3][4]. It does not provide wheels or source distributions for most standard operating systems (like Windows, macOS, or standard x86_64 Linux), and attempting to install it on those platforms will typically fail [3]. 3. Recommended Setup: For users on Plotly 5.24 who need static image export, you should explicitly install Kaleido version 0.2.1: pip install kaleido==0.2.1 [1][2][3] If you require the features or updates found in Kaleido 1.x, you must upgrade your Plotly library to version 6.1.1 or greater [5][6][1].
Citations:
- 1: Plotly 5.x recommends
pip install -U kaleidowhich is no longer compatible plotly/plotly.py#5241 - 2: Kaleido export fails intermittently in Plotly 6.x / Python 3.14 environment plotly/Kaleido#443
- 3: Distribution
kaleido==0.2.1.post1 @ registry+https://pypi.org/simplecan't be installed because it doesn't have a source distribution or wheel for the current platform plotly/Kaleido#292 - 4: https://github.com/plotly/Kaleido/releases/tag/v0.2.1.post1
- 5: https://github.com/plotly/Kaleido/releases/tag/v1.0.0
- 6: https://pypi.org/project/kaleido/1.1.0/
🏁 Script executed:
#!/bin/bash
set -euo pipefail
sed -n '35,55p' api/tacticalrmm/requirements.txt | nl -baRepository: flamingo-stack/tacticalrmm
Length of output: 113
🏁 Script executed:
#!/bin/bash
set -euo pipefail
awk 'NR>=38 && NR<=48 {print NR ":" $0}' api/tacticalrmm/requirements.txtRepository: flamingo-stack/tacticalrmm
Length of output: 285
🌐 Web query:
Plotly 5.24 kaleido==0.2.1.post1 compatibility
💡 Result:
Yes, Kaleido 0.2.1.post1 is compatible with Plotly 5.24.x [1][2]. In fact, for users running Plotly version 5.x, using the 0.2.x series of Kaleido (such as 0.2.1 or 0.2.1.post1) is the recommended approach [1]. Starting with Kaleido 1.0.0, the package introduced breaking changes and required upgrading to Plotly 6.1.1 or later [3][4]. If a user on Plotly 5.24 attempts to use Kaleido 1.0.0 or higher, they will encounter compatibility warnings and errors stating that the versions are incompatible [1]. Important notes regarding Kaleido 0.2.1.post1: 1. Installation issues: Some users have reported installation failures for 0.2.1.post1 on certain platforms because it was originally released with limited wheel support (specifically targeting arm32 Linux) [5][6][7]. If you encounter platform-specific installation errors, it is generally recommended to use kaleido==0.2.1 instead, which has broader platform support [5]. 2. Deprecation context: While the 0.2.x series works for Plotly 5.x, it is considered a legacy version [8]. Official support for Plotly image export now focuses on Kaleido 1.0.0+ for modern Plotly versions (6.x+) [3][4]. If you are using Plotly 5.24 and need to perform static image export, ensure you have a compatible version of Kaleido installed (e.g., pip install "kaleido<1.0.0") [1].
Citations:
- 1: Plotly 5.x recommends
pip install -U kaleidowhich is no longer compatible plotly/plotly.py#5241 - 2: Kaleido export fails intermittently in Plotly 6.x / Python 3.14 environment plotly/Kaleido#443
- 3: https://pypi.org/project/kaleido/
- 4: https://github.com/plotly/Kaleido/releases/tag/v1.0.0
- 5: Distribution
kaleido==0.2.1.post1 @ registry+https://pypi.org/simplecan't be installed because it doesn't have a source distribution or wheel for the current platform plotly/Kaleido#292 - 6: https://github.com/plotly/Kaleido/releases/tag/v0.2.1.post1
- 7: Can 0.2.1.post1 be yanked? plotly/Kaleido#407
- 8: https://github.com/plotly/plotly.py/blob/master/plotly/io/_kaleido.py
🏁 Script executed:
#!/bin/bash
set -euo pipefail
PKG="kaleido"
VER="0.2.1.post1"
curl -s "https://pypi.org/pypi/${PKG}/${VER}/json" | jq -r '
if (.releases["'"$VER"'"]|type)=="array" then
.releases["'"$VER"'"][]?.filename
else
"No .releases entries for that version key"
end
'Repository: flamingo-stack/tacticalrmm
Length of output: 112
🏁 Script executed:
#!/bin/bash
set -euo pipefail
PKG="kaleido"
VER="0.2.1.post1"
curl -s "https://pypi.org/pypi/${PKG}/json" | jq -r '
( .releases | keys[] ) as $k
| select($k|tostring|test("^0\\.2\\.1\\.post1$"))
| "matched_key=\($k)"
'
curl -s "https://pypi.org/pypi/${PKG}/json" | jq -r '
if (.releases|has("'"$VER"'")) then
("has_key=true type=" + (.releases["'"$VER"'"]|type))
else
"has_key=false"
end
'
curl -s "https://pypi.org/pypi/${PKG}/json" | jq -r '
.releases | keys | map(select(startswith("0.2.1"))) | .[:20] | .[]
'Repository: flamingo-stack/tacticalrmm
Length of output: 136
🏁 Script executed:
#!/bin/bash
set -euo pipefail
PKG="kaleido"
VER="0.2.1.post1"
curl -s "https://pypi.org/pypi/${PKG}/${VER}/json" | jq -r '
.releases? as $r
' >/dev/null 2>&1 || true
curl -s "https://pypi.org/pypi/${PKG}/json" | jq -r '
(.releases["'"$VER"'"] // [])[]
| .filename
'Repository: flamingo-stack/tacticalrmm
Length of output: 128
Update kaleido==0.2.1.post1 is valid and secure for Plotly 5.x, but it’s arm32-only on PyPI.
api/tacticalrmm/requirements.txt(line 43) pinskaleido==0.2.1.post1, which exists on PyPI.- No security advisories were returned for
kaleidoin the GitHub advisory lookup. plotly==5.24.1is compatible with the Kaleido0.2.xseries (Kaleido>=1.0.0is the incompatible line for Plotly 5.x).- PyPI artifacts for
0.2.1.post1only includekaleido-0.2.1.post1-...-manylinux2014_armv7l.whl(no x86_64/other wheels or sdist), so this pin may breakpip installon non-arm32 platforms unless the requirements are architecture-specific.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@api/tacticalrmm/requirements.txt` at line 43, The pinned dependency
kaleido==0.2.1.post1 is an arm32-only wheel on PyPI and will break installs on
non-arm platforms; update api/tacticalrmm/requirements.txt to avoid the
architecture-specific pin by either: (A) relax the pin to a Plotly-compatible
range (for example change kaleido==0.2.1.post1 to kaleido>=0.2.1,<1.0.0) so pip
can select a suitable release, or (B) make the pin platform-specific (e.g., keep
kaleido==0.2.1.post1 but add an environment marker so it only applies on
armv7l), and ensure plotly==5.24.1 remains compatible with the chosen kaleido
range.
This PR contains the following updates:
==0.2.1→==0.2.1.post1Release Notes
plotly/kaleido (kaleido)
v0.2.1.post1Compare Source
Adds arm32 support, no changes to other architectures so they aren't published with this tag.
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate.