From 7d3c352666e6ea39bf02907bf21a922975981c86 Mon Sep 17 00:00:00 2001 From: Elmehdi Aitbrahim Date: Wed, 12 Aug 2026 07:30:19 -0400 Subject: [PATCH] chore: bump to 0.7.0 for the taker-fee correction and the live PBO gate Minor, not patch: #247 changed `can_promote`'s return type from a bare `(bool, reasons)` tuple to a `PromotionDecision`, and added a blocking condition that did not exist before. Every backtest number this release produces also differs from 0.6.1's, because fills are now priced at the taker rate the simulator actually models. Co-Authored-By: Claude Opus 5 (1M context) --- packages/keel-broker-api/pyproject.toml | 4 ++-- packages/keel-broker-coinbase/pyproject.toml | 4 ++-- packages/keel-broker-fake/pyproject.toml | 4 ++-- packages/keel-broker-robinhood/pyproject.toml | 4 ++-- packages/keel-core/pyproject.toml | 2 +- pyproject.toml | 8 ++++---- uv.lock | 12 ++++++------ 7 files changed, 19 insertions(+), 19 deletions(-) diff --git a/packages/keel-broker-api/pyproject.toml b/packages/keel-broker-api/pyproject.toml index bd51e17d..3458f58c 100644 --- a/packages/keel-broker-api/pyproject.toml +++ b/packages/keel-broker-api/pyproject.toml @@ -1,11 +1,11 @@ [project] name = "keel-broker-api" -version = "0.6.1" +version = "0.7.0" description = "Broker port, domain types, capability model, and conformance suite for keel" requires-python = ">=3.14.4" # Pinned `==`: see the note in the root `pyproject.toml`. An unpinned sibling is satisfied by # whatever is already installed, which is how a deployment ends up running mixed versions. -dependencies = ["keel-core==0.6.1"] +dependencies = ["keel-core==0.7.0"] [project.optional-dependencies] conformance = ["pytest>=9.1.1"] diff --git a/packages/keel-broker-coinbase/pyproject.toml b/packages/keel-broker-coinbase/pyproject.toml index ae0fb51e..3905b179 100644 --- a/packages/keel-broker-coinbase/pyproject.toml +++ b/packages/keel-broker-coinbase/pyproject.toml @@ -1,11 +1,11 @@ [project] name = "keel-broker-coinbase" -version = "0.6.1" +version = "0.7.0" description = "Coinbase Advanced Trade adapter for keel" requires-python = ">=3.14.4" # Siblings pinned `==` (see the root `pyproject.toml`); the third-party SDK is not, because it # has its own release cycle and is not cut from this repo. -dependencies = ["keel-core==0.6.1", "keel-broker-api==0.6.1", "coinbase-advanced-py>=1.8.4"] +dependencies = ["keel-core==0.7.0", "keel-broker-api==0.7.0", "coinbase-advanced-py>=1.8.4"] [project.entry-points."keel.brokers"] coinbase = "keel_broker_coinbase:CoinbaseAdapter" diff --git a/packages/keel-broker-fake/pyproject.toml b/packages/keel-broker-fake/pyproject.toml index 1b21e2e2..5a8dec89 100644 --- a/packages/keel-broker-fake/pyproject.toml +++ b/packages/keel-broker-fake/pyproject.toml @@ -1,10 +1,10 @@ [project] name = "keel-broker-fake" -version = "0.6.1" +version = "0.7.0" description = "A deliberately divergent second broker adapter, to keep the port honest" requires-python = ">=3.14.4" # Pinned `==`: see the note in the root `pyproject.toml`. -dependencies = ["keel-core==0.6.1", "keel-broker-api==0.6.1"] +dependencies = ["keel-core==0.7.0", "keel-broker-api==0.7.0"] [project.entry-points."keel.brokers"] fake = "keel_broker_fake:FakeAdapter" diff --git a/packages/keel-broker-robinhood/pyproject.toml b/packages/keel-broker-robinhood/pyproject.toml index 52b01098..2ff88808 100644 --- a/packages/keel-broker-robinhood/pyproject.toml +++ b/packages/keel-broker-robinhood/pyproject.toml @@ -1,13 +1,13 @@ [project] name = "keel-broker-robinhood" -version = "0.6.1" +version = "0.7.0" description = "Robinhood Crypto Trading API v2 adapter for keel" requires-python = ">=3.14.4" # `pynacl` is here and nowhere else in the workspace: Robinhood signs every request with an # Ed25519 key, which no other venue keel talks to requires. Keeping it a dependency of this # package alone means an engine that never installs this adapter never installs the crypto stack # either -- the whole point of adapters being separate distributions. -dependencies = ["keel-core==0.6.1", "keel-broker-api==0.6.1", "pynacl>=1.5.0", "requests>=2.32.0"] +dependencies = ["keel-core==0.7.0", "keel-broker-api==0.7.0", "pynacl>=1.5.0", "requests>=2.32.0"] [project.entry-points."keel.brokers"] robinhood = "keel_broker_robinhood:RobinhoodAdapter" diff --git a/packages/keel-core/pyproject.toml b/packages/keel-core/pyproject.toml index 402e774f..f63d337c 100644 --- a/packages/keel-core/pyproject.toml +++ b/packages/keel-core/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "keel-core" -version = "0.6.1" +version = "0.7.0" description = "Shared domain types, configuration, and logging for keel" requires-python = ">=3.14.4" dependencies = ["pyyaml>=6.0.3", "python-dotenv>=1.2.2"] diff --git a/pyproject.toml b/pyproject.toml index 9078078b..b9b7de34 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "keel-trader" -version = "0.6.1" +version = "0.7.0" description = "Offline-first, broker-agnostic, rule-based spot-trading agent (halal policy by default)" readme = "README.md" authors = [ @@ -22,11 +22,11 @@ dependencies = [ # in one build, so `==` states a fact rather than guessing at compatibility. The cost is that # a version bump must move these numbers too -- the bump already edits every package's # `version`, and `tests/test_packaging.py` fails the build if a pin is left behind. - "keel-core==0.6.1", - "keel-broker-api==0.6.1", + "keel-core==0.7.0", + "keel-broker-api==0.7.0", # keel/cli.py and keel/data/cb_client.py still import the Coinbase SDK directly; depending # on the adapter keeps it available transitively. Phase B deletes those imports and this. - "keel-broker-coinbase==0.6.1", + "keel-broker-coinbase==0.7.0", ] [project.scripts] diff --git a/uv.lock b/uv.lock index 1b63d4dc..75543790 100644 --- a/uv.lock +++ b/uv.lock @@ -345,7 +345,7 @@ wheels = [ [[package]] name = "keel-broker-api" -version = "0.6.1" +version = "0.7.0" source = { editable = "packages/keel-broker-api" } dependencies = [ { name = "keel-core" }, @@ -365,7 +365,7 @@ provides-extras = ["conformance"] [[package]] name = "keel-broker-coinbase" -version = "0.6.1" +version = "0.7.0" source = { editable = "packages/keel-broker-coinbase" } dependencies = [ { name = "coinbase-advanced-py" }, @@ -382,7 +382,7 @@ requires-dist = [ [[package]] name = "keel-broker-fake" -version = "0.6.1" +version = "0.7.0" source = { editable = "packages/keel-broker-fake" } dependencies = [ { name = "keel-broker-api" }, @@ -397,7 +397,7 @@ requires-dist = [ [[package]] name = "keel-broker-robinhood" -version = "0.6.1" +version = "0.7.0" source = { editable = "packages/keel-broker-robinhood" } dependencies = [ { name = "keel-broker-api" }, @@ -416,7 +416,7 @@ requires-dist = [ [[package]] name = "keel-core" -version = "0.6.1" +version = "0.7.0" source = { editable = "packages/keel-core" } dependencies = [ { name = "python-dotenv" }, @@ -431,7 +431,7 @@ requires-dist = [ [[package]] name = "keel-trader" -version = "0.6.1" +version = "0.7.0" source = { editable = "." } dependencies = [ { name = "click" },