Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/runtime-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -495,7 +495,8 @@ jobs:
working-directory: sdk/python
run: |
python3 ../../.github/scripts/test_prepare_sdk_dist.py
uv sync --locked --all-extras --dev
uv sync --python 3.14 --locked --all-extras --dev
uv run btcli --version
uv run ruff check .
uv run ruff format --check .
uv run ty check --exit-zero-on-warning bittensor
Expand Down
2 changes: 1 addition & 1 deletion docs/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ perform every user-facing operation on the chain.

## Install

Requires Python 3.10–3.13. Using [uv](https://docs.astral.sh/uv/):
Requires Python 3.10–3.14. Using [uv](https://docs.astral.sh/uv/):

```bash
uv venv && source .venv/bin/activate
Expand Down
10 changes: 3 additions & 7 deletions docs/migration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ equivalent.
| SDK | `bittensor` 10.x | `bittensor` 11.x |
| CLI | `bittensor-cli` 9.x (separate package) | included in `bittensor` |
| Wallet | `bittensor_wallet` (separate package) | included: `bittensor.wallet` |
| Python | 3.10+ | 3.10–3.13 |
| Python | 3.10+ | 3.10–3.14 |

```bash
uv pip install bittensor # library + btcli, one package
Expand Down Expand Up @@ -70,18 +70,14 @@ pip install --force-reinstall --no-deps bittensor
While a stale `bittensor-cli` is still installed, the v11 `btcli` prints a
warning with this fix on every run.

Two version pitfalls that fail *silently*:
One version pitfall fails *silently*:

- **Python 3.14**: v10 allowed it, v11 supports 3.10–3.13. On a 3.14
interpreter `pip install -U bittensor` quietly keeps 10.x (pip picks the
newest release whose `requires-python` matches). If `btcli --version`
still says 9.x/10.x after upgrading, check `python --version` first.
- **Pinned requirements**: anything pinning `bittensor<11` or
`bittensor~=10` keeps working against v10 untouched — the new
package changes nothing until you move the pin.

Platform support: wheels ship for Linux (x86_64, aarch64) and macOS
(Apple Silicon and Intel), Python 3.10–3.13 — the same coverage as the old
(Apple Silicon and Intel), Python 3.10–3.14 — the same coverage as the old
stack. Windows is unsupported natively (as before); use WSL. On any other
platform pip falls back to a source build, which requires a Rust toolchain.

Expand Down
2 changes: 1 addition & 1 deletion docs/quickstart.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Install, connect, read chain state, and submit your first transacti

## 1. Install

Requires Python 3.10–3.13:
Requires Python 3.10–3.14:

```bash
uv venv && source .venv/bin/activate
Expand Down
2 changes: 1 addition & 1 deletion sdk/python/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Almost everything is a projection of the chain's own runtime metadata:

## Install

Requires Python 3.10–3.13. Using [uv](https://docs.astral.sh/uv/):
Requires Python 3.10–3.14. Using [uv](https://docs.astral.sh/uv/):

```bash
uv venv && source .venv/bin/activate
Expand Down
4 changes: 2 additions & 2 deletions sdk/python/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ name = "bittensor"
version = "11.0.1.dev0"

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.

[HIGH] The 11.0.1 release still republishes an immutable core version

This branch bumps only the SDK version, while the current release workflow also builds and publishes bittensor-core at the already-released 0.1.0 version. PyPI rejects re-uploading an existing filename, so the publish job cannot deliver the promised bittensor 11.0.1. PR #2972 addresses this by bumping core to 0.1.1, updating the SDK constraint, and hardening stable publication. Make #2972 a prerequisite and rebase this PR onto it, or incorporate those changes here.

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.

[HIGH] The 11.0.1 release still republishes an immutable core version

The stable workflow builds and uploads both packages, but this branch still leaves sdk/bittensor-core-py/pyproject.toml at already-published version 0.1.0 and permits that version through bittensor-core>=0.1.0. PyPI versions are immutable, so publication cannot complete as described. PR #2972 supplies the required bittensor-core 0.1.1 bump, dependency floor, and retry-safe release pipeline; merge it first and rebase this PR.

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.

[HIGH] The 11.0.1 release still republishes an immutable core version

The release remains coupled to bittensor-core 0.1.0, while the stable workflow builds and submits that already-published version alongside SDK 11.0.1. The corrective 0.1.1 versioning and publication changes are still isolated in #2972. Merge #2972 first and rebase this branch; otherwise this PR does not provide a self-contained, reliable path to the release promised in its description.

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.

[HIGH] The 11.0.1 release still republishes an immutable core version

The base release workflow still stamps and uploads bittensor-core 0.1.0 alongside the SDK. Because that core version is already published and PyPI versions are immutable, publication of 11.0.1 cannot complete as described. PR #2972 bumps the core to 0.1.1 and makes stable publication retry-safe; merge it first and rebase this branch, retaining the Python 3.14 metadata changes.

description = "A lean Python SDK (import bittensor) and CLI (btcli) for the Bittensor chain."
readme = "README.md"
requires-python = ">=3.10,<3.14"
requires-python = ">=3.10,<3.15"
license = { text = "Apache-2.0" }
authors = [{ name = "RaoFoundation" }]
dependencies = [
Expand Down Expand Up @@ -65,7 +65,7 @@ dev = [
"pytest-asyncio>=0.24",
"pytest-cov>=6.0",
"pytest-xdist>=3.6",
"hypothesis>=6.100",
"hypothesis>=6.161.0",
"ruff>=0.14",
"ty",
]
Expand Down
5 changes: 2 additions & 3 deletions sdk/python/tests/unit/test_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,12 @@

import contextlib
import json
from importlib.metadata import version as package_version

import pytest
from typer.testing import CliRunner

import bittensor.cli.context as cli_context
from bittensor import wallets
from bittensor import __version__, wallets
from bittensor.cli.main import app
from bittensor.client import Client
from bittensor.intents import REGISTRY
Expand Down Expand Up @@ -78,7 +77,7 @@ def test_help(self):
def test_version(self):
result = invoke("--version")
assert result.exit_code == 0
assert result.output.strip() == package_version("bittensor")
assert result.output.strip() == __version__

def test_tools_catalog(self):
result = invoke("tools")
Expand Down
1,562 changes: 900 additions & 662 deletions sdk/python/uv.lock

Large diffs are not rendered by default.

Loading