Skip to content

fix: sdk release - #222

Merged
epappas merged 2 commits into
mainfrom
fix/sdk_release
Nov 10, 2025
Merged

fix: sdk release#222
epappas merged 2 commits into
mainfrom
fix/sdk_release

Conversation

@distributedstatemachine

@distributedstatemachine distributedstatemachine commented Nov 4, 2025

Copy link
Copy Markdown
Contributor

Summary

Brief description of what this PR does.

Related Issues

Closes #(issue number)

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Performance improvement
  • Code refactoring

Changes Made

List the main changes in this PR:

Testing

How Has This Been Tested?

Describe the tests you ran to verify your changes.

  • Unit tests pass (cargo test)
  • Integration tests pass
  • Manual testing completed

Test Configuration

  • OS:
  • Rust version:
  • Bittensor version (if applicable):

Checklist

  • My code follows the project's style guidelines
  • I have run cargo fmt to format my code
  • I have run cargo clippy and addressed all warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

Additional Context

Add any other context about the PR here.

Summary by CodeRabbit

  • Chores
    • Linux release build now targets x86_64 only; platform docs updated to reflect this change.
    • Release workflow adds explicit Python 3.10 setup steps across platforms to standardize build initialization.
    • Manylinux/Linux builds now perform in-container toolchain installation to ensure consistent wheel creation.

@coderabbitai

coderabbitai Bot commented Nov 4, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

The release CI workflow was updated: Linux build matrix now targets x86_64 only (aarch64 removed). The workflow also adds explicit Python 3.10 setup steps and installs protoc inside the manylinux/Linux container before building wheels/sdist across several job paths.

Changes

Cohort / File(s) Summary
Release workflow changes
\.github/workflows/release-python-sdk.yml``
Linux matrix restricted to x86_64 (removed aarch64); added explicit Python 3.10 setup steps in multiple jobs; added in-container protoc installation (protoc-25.1) for manylinux/Linux paths; reordered steps so Python setup precedes toolchain/protoc install; updated "Supported Platforms" to list Linux x86_64 only.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant Dev as "GitHub Action Runner"
  participant Setup as "setup-python (3.10)"
  participant Protoc as "in-container protoc (25.1)"
  participant Build as "build (wheel/sdist)"
  Note over Dev,Setup: Job starts (Linux x86_64 only)
  Dev->>Setup: install Python 3.10
  Setup-->>Dev: Python ready
  Dev->>Protoc: download & install protoc in container
  Protoc-->>Dev: protoc ready
  Dev->>Build: build wheels/sdist
  alt success
    Build-->>Dev: artifacts produced
  else failure
    Build-->>Dev: error logs
  end
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Pay attention to ordering of setup steps in different job blocks and any duplicated copies of those blocks.
  • Verify the manylinux/protoc install logic and version (protoc-25.1) and that it’s gated only where intended.
  • Confirm the matrix change didn’t leave residual aarch64 references or documentation mismatches.

Poem

🐰 Inside the CI burrow I hop with delight,
I set Python first, then protoc just right,
Linux now hums on x86_64 light,
Builds march forward, neat and tight,
A happy bunny stamps release goodnight. 🥕

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'fix: sdk release' is vague and generic, using non-descriptive terms that don't convey meaningful information about the specific changes made to the SDK release workflow. Consider a more specific title that describes the actual changes, such as 'fix: update SDK release workflow for Linux x86_64 and Python 3.10' or similar to clarify the primary modifications.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/sdk_release

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

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/release-python-sdk.yml (1)

1-272: PR description is incomplete; it contains only template placeholders with no substantive change context.

The PR description lacks critical information for a breaking change PR:

  • Summary: "Brief description of what this PR does" (placeholder, not filled)
  • Related Issues: Empty (no issue referenced to explain the decision)
  • Type of Change: No checkboxes selected (unclear if this is a bug fix vs. intentional breaking change)
  • Changes Made: Empty list
  • Testing: No items checked; no test verification performed
  • Checklist: No formatting, clippy, tests, or documentation checks completed

Please update the PR description with:

  1. A meaningful summary of why aarch64 Linux support is being removed
  2. A link to the related issue or decision (e.g., "Closes #XYZ" or "Related to: ")
  3. Selection of "Breaking change" in Type of Change
  4. Completion of the pre-merge checklist items
  5. Confirmation that formatting, clippy, tests, and documentation requirements have been met
♻️ Duplicate comments (1)
.github/workflows/release-python-sdk.yml (1)

262-262: Release notes updated consistently; however, review the breaking change rationale first.

The release notes documentation has been updated to reflect the x86_64-only Linux support, which is consistent with the workflow matrix change. However, this change should not be merged until the rationale for removing aarch64 support is documented.

This is consistent with the change at line 53, but both changes should be considered as part of the breaking change concern already flagged above.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5d304d3 and 76104b7.

📒 Files selected for processing (1)
  • .github/workflows/release-python-sdk.yml (2 hunks)

strategy:
matrix:
target: [x86_64, aarch64]
target: [x86_64]

Copy link
Copy Markdown
Contributor

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

Breaking change: aarch64 Linux support removed without clear rationale or migration guidance.

The Linux build matrix has been restricted to x86_64 only, removing aarch64 support. This is a significant breaking change that could disrupt users on ARM-based Linux systems. The PR description provides no explanation for this change, no related issue reference, and no migration guidance.

Before approving this change, please provide:

  1. A clear rationale for removing aarch64 support (is it a build issue, maintenance burden, or intentional platform limitation?)
  2. A reference to the related issue or ADR (Architectural Decision Record) explaining this decision
  3. Updated CHANGELOG entry documenting this breaking change
  4. Migration guidance for users currently using aarch64 Linux wheels

You can verify if there's a related issue or CHANGELOG entry:


🏁 Script executed:

#!/bin/bash
# Check for related issues or PRs
gh pr view 222 --json body,labels

# Search for aarch64 references in CHANGELOG files
fd -e md -e MD CHANGELOG | xargs grep -l "aarch64" || echo "No aarch64 references found in CHANGELOG files"

# Look for recent commits related to aarch64 removal
git log --oneline --all -n 50 | grep -i "aarch64\|arm64" || echo "No recent commits mentioning aarch64/arm64"

Length of output: 2011


Breaking change requires proper documentation and rationale before merging.

Verification confirms this PR introduces a breaking change (removing aarch64 Linux support) without the necessary supporting documentation:

  • PR description is empty template text with no explanation for the removal
  • No related issue referenced
  • No CHANGELOG entry documenting the breaking change
  • No commit history explaining the decision

Required before approval:

  1. Fill PR description with actual rationale for removing aarch64 support
  2. Add CHANGELOG entry documenting this as a breaking change
  3. Reference related issue/ADR explaining the architectural decision
  4. Consider providing migration guidance for affected users
🤖 Prompt for AI Agents
In .github/workflows/release-python-sdk.yml around line 53 the workflow was
changed to target only x86_64 which removes aarch64 Linux support; before
merging, update project documentation and metadata: replace the PR template text
with a clear rationale for removing aarch64 (who/why/impact), add a CHANGELOG
entry marking this as a breaking change with affected versions and migration
guidance, link or create an issue/ADR that records the architectural decision
and alternatives considered, and add a short note in the workflow file or commit
message referencing the issue/ADR so reviewers can verify intent.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (1)
.github/workflows/release-python-sdk.yml (1)

53-53: ⚠️ Duplicate: Breaking change requires prior documentation requirements to be met.

This represents the same critical issue flagged in the previous review: removing aarch64 Linux support is a breaking change that requires proper documentation before approval.

The prior review required:

  1. Clear rationale for removing aarch64 support
  2. Reference to related issue/ADR explaining the decision
  3. Updated CHANGELOG entry documenting this as a breaking change
  4. Migration guidance for affected users

Current status: None of these requirements have been addressed in this PR. The PR description remains empty template text, no CHANGELOG entry exists, and no issue reference is provided.

Before proceeding, please:

  • Fill the PR description with the actual rationale for removing aarch64 Linux build support
  • Add a CHANGELOG entry documenting this as a breaking change (affected versions, impact, migration path)
  • Reference or create an issue/ADR documenting the architectural decision
  • Update commit message to reference the issue for traceability

Also applies to: 277-277

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 76104b7 and 72ef30f.

📒 Files selected for processing (1)
  • .github/workflows/release-python-sdk.yml (5 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). (11)
  • GitHub Check: build-payments (stable)
  • GitHub Check: test-python-sdk (3.12)
  • GitHub Check: test-python-sdk (3.13)
  • GitHub Check: build-cli (stable)
  • GitHub Check: test-python-sdk (3.10)
  • GitHub Check: test-python-sdk (3.11)
  • GitHub Check: build-billing (stable)
  • GitHub Check: build-api (stable)
  • GitHub Check: build-validator (stable)
  • GitHub Check: build-miner (stable)
  • GitHub Check: quick-checks
🔇 Additional comments (3)
.github/workflows/release-python-sdk.yml (3)

64-69: Protoc installation in manylinux container looks sound.

The approach of downloading and installing protoc v25.1 directly in the manylinux container is reasonable and ensures availability before the build. Version pinning improves reproducibility.

For context: Is this change addressing a missing protoc dependency that was causing failures, or is it unrelated to the aarch64 removal? Please clarify in the PR description or commit message for future reference.


87-90: Python 3.10 setup is explicit and consistent across jobs.

Adding explicit Python 3.10 setup via actions/setup-python@v5 across macOS, Windows, and sdist jobs is good practice. The configuration is consistent and well-formed.

Clarification needed: The project supports Python 3.10–3.13 (line 280). Why is Python 3.10 specifically required for the build/release workflow (as opposed to 3.11, 3.12, or 3.13)? Is this a protoc build requirement, a maturin requirement, or something else? Please document this in the PR description or commit message.

Also applies to: 115-118, 143-146


1-12: The review comment cannot be fully verified against only the code provided.

Based on the workflow file content and search results, I can confirm:

  1. Platform support state (actual code):

    • The workflow builds only x86_64 for Linux—no aarch64-unknown-linux-gnu is present in the build matrix
    • macOS supports both x86_64-apple-darwin and aarch64-apple-darwin
    • Release notes correctly document supported platforms
  2. Protoc installation (valid approach):

    • Three OS-specific methods are appropriate: manual install on Linux, brew on macOS, choco on Windows
    • The arduino/setup-protoc action for sdist is a standard approach
  3. Python 3.10 pinning (clear):

    • Explicitly set in three jobs; reasonable for reproducibility

However, the review comment's core claim—that aarch64-linux support was removed without documentation—cannot be verified from the workflow file alone. The workflow shows only the current state, not what changed. To properly verify the review comment, I would need:

  • PR description (to confirm it's empty template as claimed)
  • Commit messages explaining the matrix change
  • Previous workflow version (to confirm aarch64-linux was removed)
  • Related issues or ADRs

Comment on lines 275 to 280
## Supported Platforms

- Linux: x86_64, aarch64 (ARM64)
- Linux: x86_64
- macOS: x86_64 (Intel), aarch64 (Apple Silicon)
- Windows: x86_64
- Python: 3.10, 3.11, 3.12, 3.13

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Release notes need breaking-change highlight for aarch64 removal.

The release notes correctly show "Linux: x86_64" but lack any callout that aarch64 Linux support has been removed. Users on ARM-based Linux systems will see this without explanation.

Recommendation: Add a "⚠️ Breaking Changes" section to the release body (around line 282, before or after "What's Changed") highlighting aarch64 Linux removal and offering migration guidance or alternatives.

🤖 Prompt for AI Agents
.github/workflows/release-python-sdk.yml around lines 275–280: the release notes
list supported platforms but omit a prominent notice that Linux aarch64 support
was removed; add a "⚠️ Breaking Changes" section near line 282 (before or after
"What's Changed") that clearly states the removal of aarch64 Linux support,
explains impact on ARM-based Linux users, and provides brief migration guidance
or alternatives (e.g., use x86_64 builds under emulation, run on supported
x86_64 hardware, or contact support/roadmap for aarch64 reinstatement).

@epappas
epappas merged commit 31fd5bc into main Nov 10, 2025
22 of 23 checks passed
@epappas
epappas deleted the fix/sdk_release branch November 10, 2025 17:03
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