diff --git a/HISTORY.md b/HISTORY.md index 3e83f48a12..3b4bacf552 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,5 +1,11 @@ # Release History - `open-autonomy` +# 0.21.27 (2026-08-13) + +Framework / dependency bumps: + +- Moves `open-aea-ledger-solana` from a hard runtime dependency to an optional `[solana]` extra, kept out of `[all]`. #2489 (closing #2479) re-enabled the plugin as a top-level dep in `0.21.20`, which dragged `solana<0.34.0` → `websockets<12.0` into every install. That cap cannot co-resolve with modern-websockets downstreams such as `google-genai>=1.0` (`websockets>=13.0`), so `pip install open-autonomy==0.21.26 google-genai==1.17.0` failed with `ResolutionImpossible` — or `resolution-too-deep` on `pip>=26.2` — breaking image builds for services that never touch Solana. Only `packages/valory/contracts/squads_multisig` imports the plugin; nothing under `autonomy/` does. The `[all]` exclusion is load-bearing given `open-aea-test-autonomy`'s `open-autonomy[all,docker]` pin (#2490). Solana users install `open-autonomy[solana]`; the dev env is unaffected (`poetry install --all-extras`). An upstream widening to `solana>=0.36.2` — the first release accepting `websockets>=13`, which also needs `solders>=0.23` — remains the better long-term fix. #2541 + # 0.21.26 (2026-07-02) Feature additions: diff --git a/autonomy/__version__.py b/autonomy/__version__.py index 1cbeb435c6..8626b4bb62 100644 --- a/autonomy/__version__.py +++ b/autonomy/__version__.py @@ -22,7 +22,7 @@ __title__ = "open-autonomy" __description__ = "A framework for the creation of autonomous agent services." __url__ = "https://github.com/valory-xyz/open-autonomy.git" -__version__ = "0.21.26" +__version__ = "0.21.27" __author__ = "Valory AG" __license__ = "Apache-2.0" __copyright__ = "2021-2024 Valory AG" diff --git a/deployments/Dockerfiles/autonomy-user/requirements.txt b/deployments/Dockerfiles/autonomy-user/requirements.txt index 18ff4e1dc6..b763b9b57d 100644 --- a/deployments/Dockerfiles/autonomy-user/requirements.txt +++ b/deployments/Dockerfiles/autonomy-user/requirements.txt @@ -1,4 +1,4 @@ -open-autonomy[all]==0.21.26 +open-autonomy[all]==0.21.27 open-aea[all]==2.2.9 open-aea-cli-ipfs==2.2.9 open-aea-ledger-ethereum==2.2.9 diff --git a/docs/package_list.md b/docs/package_list.md index ddd6a29113..424f7dcd46 100644 --- a/docs/package_list.md +++ b/docs/package_list.md @@ -15,7 +15,7 @@ | contract/valory/erc20/0.1.0 | `bafybeibpuyikvpmtaraca4lqokf3kf6jlpmafkqm6oixnps3ig23jfbllq` | | contract/valory/recovery_module/0.1.0 | `bafybeihagyenarjnqy43moina3vnrguyaaa5n7q2d7ptn4putocaz747vq` | | contract/valory/service_registry_token_utility/0.1.0 | `bafybeicardlxzha2yrvjkom7gt4albrou7grnhvvqoczpujwdajsucri4i` | -| contract/valory/squads_multisig/0.1.0 | `bafybeidti5ocru2ov7rgxasv5tqyc3cz7vixelkagd3h3hjtr5mjzdrapa` | +| contract/valory/squads_multisig/0.1.0 | `bafybeibaphiwqlvdfydbz52vog3w3d322wm4ujenn4lfegfyhcn2g6lw4m` | | contract/valory/multicall2/0.1.0 | `bafybeifoltz5j2voopihpfku5oxf55c6bqprqgizhjz7qe32q2cbi3zdxy` | | contract/valory/poly_safe_creator_with_recovery_module/0.1.0 | `bafybeihxiiucd7rvizjpobbivil6doionychrck7lownbgfvaxye3prc2u` | | contract/valory/sign_message_lib/0.1.0 | `bafybeihjzuyywusbmtyofuotcfkgpzy3sr247s6fap2vpg5zb7hahao7sa` | @@ -30,33 +30,33 @@ | skill/valory/test_ipfs_abci/0.1.0 | `bafybeigfidi4tc3dnwfbhhxzchqzj4pot43iw5ymso3sbrbscgqanjhxp4` | | skill/valory/abstract_abci/0.1.0 | `bafybeie5et43th2nta76cd3kpm3fmurd7oyzk3qxim76octvt56m6r2poi` | | skill/valory/abstract_round_abci/0.1.0 | `bafybeifkxnvvgsldkb4rgejsoon2mvrmrnl7asy2nhenwss7hpwg3myflu` | -| skill/valory/transaction_settlement_abci/0.1.0 | `bafybeihizaapype5sz7vlosms3nfo6jzfj4ujycuf5uthviq2otvmw6f6m` | +| skill/valory/transaction_settlement_abci/0.1.0 | `bafybeidb2skdi7clqmqzrnatm7yv733mfwwsr26bz3a7kmsclqwgaalbya` | | skill/valory/registration_abci/0.1.0 | `bafybeif4n2esdjvquomdkwktv7eolepskpo5jlqrfda2abxjqzy2ljsxzi` | | skill/valory/reset_pause_abci/0.1.0 | `bafybeifrnmlscfiki7wojs6zasppefupd2wkjyq6orhdllfppjud7isrxi` | -| skill/valory/termination_abci/0.1.0 | `bafybeih6sa2ttcvvjk7rcfn7ure2ws23kcfufssb4qmluzcfvednkfpvoi` | +| skill/valory/termination_abci/0.1.0 | `bafybeibgjzo323qxqxv54boz4nzo6ka5kqebrxq3d62ahhypx2ei4ivsma` | | skill/valory/counter/0.1.0 | `bafybeidlocnzu2euqtzhimsmduzn2wtoi7glabc7ro2xjqe5t2uez7xvlm` | | skill/valory/counter_client/0.1.0 | `bafybeiet5imrfz4yggyhuhsv3jwemqjv3lcohzpdaeexr5dijq6j3nczpa` | | skill/valory/register_reset_abci/0.1.0 | `bafybeiekmegqarrrzjh33w42awbuoccn26q4mrbfq47vxe5p3enajzu3xu` | -| skill/valory/register_termination_abci/0.1.0 | `bafybeig7tr7x5ii2c2fcampps2fqvo553eax45sq42y4ooztq5krngm3cy` | +| skill/valory/register_termination_abci/0.1.0 | `bafybeibkbxujswnntz35bjk425zht4zewkktojffcrf5r352asr4wr2mxi` | | skill/valory/test_abci/0.1.0 | `bafybeift5eoabaxtmhy46gggp7oabl6kzxl75dx6n3oattygxjiad3byli` | | skill/valory/register_reset_recovery_abci/0.1.0 | `bafybeidnpe4db5z7z4esaqqadauad3pw4ut6pbtss5u55bovnbxnsundme` | -| skill/valory/slashing_abci/0.1.0 | `bafybeiapy6dtegp2yyq7qfn3ibljlsm3jslaqpqn627dxen664ihcx2ioy` | +| skill/valory/slashing_abci/0.1.0 | `bafybeic4hzqhklhyzu7xn2hv4sv66uz2qu5ekz5typ64xmsed6elnzxvmy` | | skill/valory/offend_abci/0.1.0 | `bafybeicml5wy5kn6jh4es5vsg3seiaov7t65ug7m6hrdijy2q62ubh2ckq` | -| skill/valory/offend_slash_abci/0.1.0 | `bafybeierp5ygofig5jvt5gs7zhl2yhmhpp33fki3eeuqtx77xiho35wpiq` | -| skill/valory/squads_transaction_settlement_abci/0.1.0 | `bafybeiemijara5dcr3egnoeqd4n77aqwtidc75hv2fion4yqvzmjibnsfi` | -| skill/valory/test_solana_tx_abci/0.1.0 | `bafybeigctthy5qrps2jafhnx3y5rdkznam2p24y6bas67m6p7s7cqr74ue` | +| skill/valory/offend_slash_abci/0.1.0 | `bafybeiheyxicvsg6rn66ziaq2hra2akvb47dbbuajy3dxpnmj4eja56pw4` | +| skill/valory/squads_transaction_settlement_abci/0.1.0 | `bafybeidtr4vmmsezfbb4a2gaui3txbowsb5qffu7btg5qnnt7q7dkjkgci` | +| skill/valory/test_solana_tx_abci/0.1.0 | `bafybeifdawtgd5k7mitf5wmq7vieudufpizjcmdkdij6aflukeftqzlgrq` | | skill/valory/identify_service_owner_abci/0.1.0 | `bafybeiai4w2lrzs7jauoldjmqdztmkx4gojwxqb32c7qahrhrcoaybcfw4` | -| skill/valory/funds_forwarder_abci/0.1.0 | `bafybeiaeuq3j44d3h4msbsc4zwqphpk4xt2z65u5rkicvdd2bdy75ipeze` | +| skill/valory/funds_forwarder_abci/0.1.0 | `bafybeifg7gjebqx5hdzivdyhq7diynk7ue7yf7p4tlwvyuuu6htgpk4f5m` | | agent/valory/test_ipfs/0.1.0 | `bafybeidqsxbmfan7pzo2t2mnfwelcfo6qjd2b5eyvkzawi3azbbkalxume` | | agent/valory/abstract_abci/0.1.0 | `bafybeicbdh2nlamij27qd4lyk2ip3omzmm5rahbsaldo3i6twk7r4qcs7a` | | agent/valory/counter/0.1.0 | `bafybeibd3sw7jtbpycpyqc3v73s6kqo2imhoy2lu3z6fupszp5swooaaoe` | | agent/valory/counter_client/0.1.0 | `bafybeie2l7742uqghasr4wauppu64rddgdfodrsrlaq55scgl7u4ua226i` | | agent/valory/register_reset/0.1.0 | `bafybeianjakot3icyfaaxvpecgbmdqz3oiggcry4isy5klpocoh7b7hhg4` | -| agent/valory/register_termination/0.1.0 | `bafybeiai7n5grk2rs7qgcnwry2eheamxivt6fm5kacyfpd4gtujogna22i` | +| agent/valory/register_termination/0.1.0 | `bafybeiev7m5va5yvad5vzatnbkkmmgljqda4ldlpat4or2es6hpljpgg6a` | | agent/valory/registration_start_up/0.1.0 | `bafybeidya3nzkdhf6quokp5kss3insu52jsgoeq6hapjdl2s6wh7reayom` | | agent/valory/test_abci/0.1.0 | `bafybeiexnoyfgd4envb4gh6zyxbpoflv3my23znxb3d6fcmc3yrjlyejla` | | agent/valory/register_reset_recovery/0.1.0 | `bafybeifblbbuhuwxyel6ja3tvl7nkjeqenh5eocitdex2wp3imw5tiw2gu` | -| agent/valory/offend_slash/0.1.0 | `bafybeidcoyyfmlej4dohoedv25azbfzvcn26edbrwv2zwhxxwhwbcjvx5e` | -| agent/valory/solana_transfer_agent/0.1.0 | `bafybeigogwpvkwyqtyskboubbs5nsbljzf5qyeacszvfxue7isny4dbt5e` | +| agent/valory/offend_slash/0.1.0 | `bafybeig4vmldb3csrwojc3hfkxvnivcv5aat7y24eyhrwygheqnxztf4fa` | +| agent/valory/solana_transfer_agent/0.1.0 | `bafybeicoeylm64w2imymvdxnndes4hd6xezuy4wzkypppnluo7tddxtls4` | | service/valory/counter/0.1.0 | `bafybeicpyssnq37ukjjwzsmbg4bu5rcn3jnbueybktjbqvb7zn3r4ue6z4` | | service/valory/register_reset/0.1.0 | `bafybeie6m233uqlea6qh5wp7oiwnw5yufn74ko2jy5b5r4enc4hr2vuxci` | diff --git a/docs/upgrading.md b/docs/upgrading.md index f48d7269b3..0874c15ed5 100644 --- a/docs/upgrading.md +++ b/docs/upgrading.md @@ -5,6 +5,24 @@ Below, we describe the additional manual steps required to upgrade between diffe # Open Autonomy +## `v0.21.26` to `v0.21.27` + +### `open-aea-ledger-solana` moved to a `[solana]` extra + +`open-aea-ledger-solana` is no longer a hard dependency of `open-autonomy`, and is **not** part of `[all]`. + +**If your service uses Solana** (any of `contracts/squads_multisig`, `skills/squads_transaction_settlement_abci`, `skills/test_solana_tx_abci`, `agents/solana_transfer_agent`), add the extra: + +```bash +pip install open-autonomy[solana] +``` + +`[all]` does not imply `[solana]`, so combine them if you need both: `open-autonomy[all,solana]`. The same applies to `deployments/Dockerfiles/autonomy-user/requirements.txt`-style pins in downstream images. + +**If your service does not use Solana**, no action is required — and this release unblocks a dependency conflict you may have been hitting. The plugin pulled in `solana<0.34.0`, which caps `websockets<12.0`, so any downstream needing modern `websockets` (e.g. `google-genai>=1.0`, which requires `websockets>=13.0`) could not resolve against `open-autonomy` `0.21.20`–`0.21.26`. It failed with `ResolutionImpossible`, or on `pip>=26.2` the less obvious `resolution-too-deep`. If you pinned `open-autonomy<=0.21.19`, forced a `websockets` override, or vendored a constraints file to work around it, drop the workaround. + +This supersedes the "`open-aea-ledger-solana` re-enabled" note under `v0.21.19` to `v0.21.20` below: letting `open-autonomy[all]` pull the plugin in is no longer the recommended path. + ## `v0.21.24` to `v0.21.25` This release bumps `open-aea` `2.2.8` → `2.2.9`. No API or wire-format changes. @@ -163,6 +181,10 @@ If you call `aea-helpers bin-template-path` from your own tooling — `make ejec ### `open-aea-ledger-solana` re-enabled +!!! warning "Superseded — do not follow this step against `0.21.27` or later" + + From `0.21.27` the plugin is an optional `[solana]` extra and is **not** part of `[all]`, so relying on `open-autonomy[all]` to supply it no longer works. Install `open-autonomy[solana]` instead — see the `v0.21.26` to `v0.21.27` section above. + The plugin had been excluded from `[all]` since `0.21.17` because of a transitive `construct<=2.10.61` cap. Open-aea `2.2.2` removed the cap, and `0.21.20` re-includes the plugin. If you removed an explicit `open-aea-ledger-solana` pin as a workaround, you can let `open-autonomy[all]` pull it back in. ### Tooling: `tomte` bumped `0.6.5` → `0.7.0`, `setup.cfg` removed diff --git a/packages/packages.json b/packages/packages.json index c50d0b2c6a..e4f9b959af 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -15,7 +15,7 @@ "contract/valory/erc20/0.1.0": "bafybeibpuyikvpmtaraca4lqokf3kf6jlpmafkqm6oixnps3ig23jfbllq", "contract/valory/recovery_module/0.1.0": "bafybeihagyenarjnqy43moina3vnrguyaaa5n7q2d7ptn4putocaz747vq", "contract/valory/service_registry_token_utility/0.1.0": "bafybeicardlxzha2yrvjkom7gt4albrou7grnhvvqoczpujwdajsucri4i", - "contract/valory/squads_multisig/0.1.0": "bafybeidti5ocru2ov7rgxasv5tqyc3cz7vixelkagd3h3hjtr5mjzdrapa", + "contract/valory/squads_multisig/0.1.0": "bafybeibaphiwqlvdfydbz52vog3w3d322wm4ujenn4lfegfyhcn2g6lw4m", "contract/valory/multicall2/0.1.0": "bafybeifoltz5j2voopihpfku5oxf55c6bqprqgizhjz7qe32q2cbi3zdxy", "contract/valory/poly_safe_creator_with_recovery_module/0.1.0": "bafybeihxiiucd7rvizjpobbivil6doionychrck7lownbgfvaxye3prc2u", "contract/valory/sign_message_lib/0.1.0": "bafybeihjzuyywusbmtyofuotcfkgpzy3sr247s6fap2vpg5zb7hahao7sa", @@ -30,34 +30,34 @@ "skill/valory/test_ipfs_abci/0.1.0": "bafybeigfidi4tc3dnwfbhhxzchqzj4pot43iw5ymso3sbrbscgqanjhxp4", "skill/valory/abstract_abci/0.1.0": "bafybeie5et43th2nta76cd3kpm3fmurd7oyzk3qxim76octvt56m6r2poi", "skill/valory/abstract_round_abci/0.1.0": "bafybeifkxnvvgsldkb4rgejsoon2mvrmrnl7asy2nhenwss7hpwg3myflu", - "skill/valory/transaction_settlement_abci/0.1.0": "bafybeihizaapype5sz7vlosms3nfo6jzfj4ujycuf5uthviq2otvmw6f6m", + "skill/valory/transaction_settlement_abci/0.1.0": "bafybeidb2skdi7clqmqzrnatm7yv733mfwwsr26bz3a7kmsclqwgaalbya", "skill/valory/registration_abci/0.1.0": "bafybeif4n2esdjvquomdkwktv7eolepskpo5jlqrfda2abxjqzy2ljsxzi", "skill/valory/reset_pause_abci/0.1.0": "bafybeifrnmlscfiki7wojs6zasppefupd2wkjyq6orhdllfppjud7isrxi", - "skill/valory/termination_abci/0.1.0": "bafybeih6sa2ttcvvjk7rcfn7ure2ws23kcfufssb4qmluzcfvednkfpvoi", + "skill/valory/termination_abci/0.1.0": "bafybeibgjzo323qxqxv54boz4nzo6ka5kqebrxq3d62ahhypx2ei4ivsma", "skill/valory/counter/0.1.0": "bafybeidlocnzu2euqtzhimsmduzn2wtoi7glabc7ro2xjqe5t2uez7xvlm", "skill/valory/counter_client/0.1.0": "bafybeiet5imrfz4yggyhuhsv3jwemqjv3lcohzpdaeexr5dijq6j3nczpa", "skill/valory/register_reset_abci/0.1.0": "bafybeiekmegqarrrzjh33w42awbuoccn26q4mrbfq47vxe5p3enajzu3xu", - "skill/valory/register_termination_abci/0.1.0": "bafybeig7tr7x5ii2c2fcampps2fqvo553eax45sq42y4ooztq5krngm3cy", + "skill/valory/register_termination_abci/0.1.0": "bafybeibkbxujswnntz35bjk425zht4zewkktojffcrf5r352asr4wr2mxi", "skill/valory/test_abci/0.1.0": "bafybeift5eoabaxtmhy46gggp7oabl6kzxl75dx6n3oattygxjiad3byli", "skill/valory/register_reset_recovery_abci/0.1.0": "bafybeidnpe4db5z7z4esaqqadauad3pw4ut6pbtss5u55bovnbxnsundme", - "skill/valory/slashing_abci/0.1.0": "bafybeiapy6dtegp2yyq7qfn3ibljlsm3jslaqpqn627dxen664ihcx2ioy", + "skill/valory/slashing_abci/0.1.0": "bafybeic4hzqhklhyzu7xn2hv4sv66uz2qu5ekz5typ64xmsed6elnzxvmy", "skill/valory/offend_abci/0.1.0": "bafybeicml5wy5kn6jh4es5vsg3seiaov7t65ug7m6hrdijy2q62ubh2ckq", - "skill/valory/offend_slash_abci/0.1.0": "bafybeierp5ygofig5jvt5gs7zhl2yhmhpp33fki3eeuqtx77xiho35wpiq", - "skill/valory/squads_transaction_settlement_abci/0.1.0": "bafybeiemijara5dcr3egnoeqd4n77aqwtidc75hv2fion4yqvzmjibnsfi", - "skill/valory/test_solana_tx_abci/0.1.0": "bafybeigctthy5qrps2jafhnx3y5rdkznam2p24y6bas67m6p7s7cqr74ue", + "skill/valory/offend_slash_abci/0.1.0": "bafybeiheyxicvsg6rn66ziaq2hra2akvb47dbbuajy3dxpnmj4eja56pw4", + "skill/valory/squads_transaction_settlement_abci/0.1.0": "bafybeidtr4vmmsezfbb4a2gaui3txbowsb5qffu7btg5qnnt7q7dkjkgci", + "skill/valory/test_solana_tx_abci/0.1.0": "bafybeifdawtgd5k7mitf5wmq7vieudufpizjcmdkdij6aflukeftqzlgrq", "skill/valory/identify_service_owner_abci/0.1.0": "bafybeiai4w2lrzs7jauoldjmqdztmkx4gojwxqb32c7qahrhrcoaybcfw4", - "skill/valory/funds_forwarder_abci/0.1.0": "bafybeiaeuq3j44d3h4msbsc4zwqphpk4xt2z65u5rkicvdd2bdy75ipeze", + "skill/valory/funds_forwarder_abci/0.1.0": "bafybeifg7gjebqx5hdzivdyhq7diynk7ue7yf7p4tlwvyuuu6htgpk4f5m", "agent/valory/test_ipfs/0.1.0": "bafybeidqsxbmfan7pzo2t2mnfwelcfo6qjd2b5eyvkzawi3azbbkalxume", "agent/valory/abstract_abci/0.1.0": "bafybeicbdh2nlamij27qd4lyk2ip3omzmm5rahbsaldo3i6twk7r4qcs7a", "agent/valory/counter/0.1.0": "bafybeibd3sw7jtbpycpyqc3v73s6kqo2imhoy2lu3z6fupszp5swooaaoe", "agent/valory/counter_client/0.1.0": "bafybeie2l7742uqghasr4wauppu64rddgdfodrsrlaq55scgl7u4ua226i", "agent/valory/register_reset/0.1.0": "bafybeianjakot3icyfaaxvpecgbmdqz3oiggcry4isy5klpocoh7b7hhg4", - "agent/valory/register_termination/0.1.0": "bafybeiai7n5grk2rs7qgcnwry2eheamxivt6fm5kacyfpd4gtujogna22i", + "agent/valory/register_termination/0.1.0": "bafybeiev7m5va5yvad5vzatnbkkmmgljqda4ldlpat4or2es6hpljpgg6a", "agent/valory/registration_start_up/0.1.0": "bafybeidya3nzkdhf6quokp5kss3insu52jsgoeq6hapjdl2s6wh7reayom", "agent/valory/test_abci/0.1.0": "bafybeiexnoyfgd4envb4gh6zyxbpoflv3my23znxb3d6fcmc3yrjlyejla", "agent/valory/register_reset_recovery/0.1.0": "bafybeifblbbuhuwxyel6ja3tvl7nkjeqenh5eocitdex2wp3imw5tiw2gu", - "agent/valory/offend_slash/0.1.0": "bafybeidcoyyfmlej4dohoedv25azbfzvcn26edbrwv2zwhxxwhwbcjvx5e", - "agent/valory/solana_transfer_agent/0.1.0": "bafybeigogwpvkwyqtyskboubbs5nsbljzf5qyeacszvfxue7isny4dbt5e", + "agent/valory/offend_slash/0.1.0": "bafybeig4vmldb3csrwojc3hfkxvnivcv5aat7y24eyhrwygheqnxztf4fa", + "agent/valory/solana_transfer_agent/0.1.0": "bafybeicoeylm64w2imymvdxnndes4hd6xezuy4wzkypppnluo7tddxtls4", "service/valory/counter/0.1.0": "bafybeicpyssnq37ukjjwzsmbg4bu5rcn3jnbueybktjbqvb7zn3r4ue6z4", "service/valory/register_reset/0.1.0": "bafybeie6m233uqlea6qh5wp7oiwnw5yufn74ko2jy5b5r4enc4hr2vuxci" }, diff --git a/packages/valory/agents/offend_slash/aea-config.yaml b/packages/valory/agents/offend_slash/aea-config.yaml index 14529852a5..6bab969065 100644 --- a/packages/valory/agents/offend_slash/aea-config.yaml +++ b/packages/valory/agents/offend_slash/aea-config.yaml @@ -33,11 +33,11 @@ skills: - valory/abstract_abci:0.1.0:bafybeie5et43th2nta76cd3kpm3fmurd7oyzk3qxim76octvt56m6r2poi - valory/abstract_round_abci:0.1.0:bafybeifkxnvvgsldkb4rgejsoon2mvrmrnl7asy2nhenwss7hpwg3myflu - valory/offend_abci:0.1.0:bafybeicml5wy5kn6jh4es5vsg3seiaov7t65ug7m6hrdijy2q62ubh2ckq -- valory/offend_slash_abci:0.1.0:bafybeierp5ygofig5jvt5gs7zhl2yhmhpp33fki3eeuqtx77xiho35wpiq +- valory/offend_slash_abci:0.1.0:bafybeiheyxicvsg6rn66ziaq2hra2akvb47dbbuajy3dxpnmj4eja56pw4 - valory/registration_abci:0.1.0:bafybeif4n2esdjvquomdkwktv7eolepskpo5jlqrfda2abxjqzy2ljsxzi - valory/reset_pause_abci:0.1.0:bafybeifrnmlscfiki7wojs6zasppefupd2wkjyq6orhdllfppjud7isrxi -- valory/slashing_abci:0.1.0:bafybeiapy6dtegp2yyq7qfn3ibljlsm3jslaqpqn627dxen664ihcx2ioy -- valory/transaction_settlement_abci:0.1.0:bafybeihizaapype5sz7vlosms3nfo6jzfj4ujycuf5uthviq2otvmw6f6m +- valory/slashing_abci:0.1.0:bafybeic4hzqhklhyzu7xn2hv4sv66uz2qu5ekz5typ64xmsed6elnzxvmy +- valory/transaction_settlement_abci:0.1.0:bafybeidb2skdi7clqmqzrnatm7yv733mfwwsr26bz3a7kmsclqwgaalbya default_ledger: ethereum required_ledgers: - ethereum diff --git a/packages/valory/agents/register_termination/aea-config.yaml b/packages/valory/agents/register_termination/aea-config.yaml index cbea4d86ba..4697238242 100644 --- a/packages/valory/agents/register_termination/aea-config.yaml +++ b/packages/valory/agents/register_termination/aea-config.yaml @@ -34,11 +34,11 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeie5et43th2nta76cd3kpm3fmurd7oyzk3qxim76octvt56m6r2poi - valory/abstract_round_abci:0.1.0:bafybeifkxnvvgsldkb4rgejsoon2mvrmrnl7asy2nhenwss7hpwg3myflu -- valory/register_termination_abci:0.1.0:bafybeig7tr7x5ii2c2fcampps2fqvo553eax45sq42y4ooztq5krngm3cy +- valory/register_termination_abci:0.1.0:bafybeibkbxujswnntz35bjk425zht4zewkktojffcrf5r352asr4wr2mxi - valory/registration_abci:0.1.0:bafybeif4n2esdjvquomdkwktv7eolepskpo5jlqrfda2abxjqzy2ljsxzi - valory/reset_pause_abci:0.1.0:bafybeifrnmlscfiki7wojs6zasppefupd2wkjyq6orhdllfppjud7isrxi -- valory/termination_abci:0.1.0:bafybeih6sa2ttcvvjk7rcfn7ure2ws23kcfufssb4qmluzcfvednkfpvoi -- valory/transaction_settlement_abci:0.1.0:bafybeihizaapype5sz7vlosms3nfo6jzfj4ujycuf5uthviq2otvmw6f6m +- valory/termination_abci:0.1.0:bafybeibgjzo323qxqxv54boz4nzo6ka5kqebrxq3d62ahhypx2ei4ivsma +- valory/transaction_settlement_abci:0.1.0:bafybeidb2skdi7clqmqzrnatm7yv733mfwwsr26bz3a7kmsclqwgaalbya default_ledger: ethereum required_ledgers: - ethereum diff --git a/packages/valory/agents/solana_transfer_agent/aea-config.yaml b/packages/valory/agents/solana_transfer_agent/aea-config.yaml index 2c75d18e2b..716a29a5f4 100644 --- a/packages/valory/agents/solana_transfer_agent/aea-config.yaml +++ b/packages/valory/agents/solana_transfer_agent/aea-config.yaml @@ -19,7 +19,7 @@ connections: - valory/p2p_libp2p_client:0.1.0:bafybeielj3jso3wvrarp5n5rq7llpw4vgxybqiyensgjalb5ubfiawwhhu contracts: - valory/service_registry:0.1.0:bafybeicbfffywnaaehptzasxsdoyguuurpleirsnor5xf7rqk57isjkury -- valory/squads_multisig:0.1.0:bafybeidti5ocru2ov7rgxasv5tqyc3cz7vixelkagd3h3hjtr5mjzdrapa +- valory/squads_multisig:0.1.0:bafybeibaphiwqlvdfydbz52vog3w3d322wm4ujenn4lfegfyhcn2g6lw4m protocols: - open_aea/signing:1.0.0:bafybeifsjmldwyki3beqyvdt5lzenrg6wyrqaar5plc5rpnvtc4zlentye - valory/abci:0.1.0:bafybeiak4pwac3pwjtd7weskxdhkrcopckr32vtazfbuteu6yqjkwarpte @@ -34,8 +34,8 @@ skills: - valory/abstract_round_abci:0.1.0:bafybeifkxnvvgsldkb4rgejsoon2mvrmrnl7asy2nhenwss7hpwg3myflu - valory/registration_abci:0.1.0:bafybeif4n2esdjvquomdkwktv7eolepskpo5jlqrfda2abxjqzy2ljsxzi - valory/reset_pause_abci:0.1.0:bafybeifrnmlscfiki7wojs6zasppefupd2wkjyq6orhdllfppjud7isrxi -- valory/squads_transaction_settlement_abci:0.1.0:bafybeiemijara5dcr3egnoeqd4n77aqwtidc75hv2fion4yqvzmjibnsfi -- valory/test_solana_tx_abci:0.1.0:bafybeigctthy5qrps2jafhnx3y5rdkznam2p24y6bas67m6p7s7cqr74ue +- valory/squads_transaction_settlement_abci:0.1.0:bafybeidtr4vmmsezfbb4a2gaui3txbowsb5qffu7btg5qnnt7q7dkjkgci +- valory/test_solana_tx_abci:0.1.0:bafybeifdawtgd5k7mitf5wmq7vieudufpizjcmdkdij6aflukeftqzlgrq default_ledger: solana required_ledgers: - solana diff --git a/packages/valory/contracts/squads_multisig/contract.py b/packages/valory/contracts/squads_multisig/contract.py index d52020d51b..37d9de0249 100644 --- a/packages/valory/contracts/squads_multisig/contract.py +++ b/packages/valory/contracts/squads_multisig/contract.py @@ -28,9 +28,17 @@ from aea.configurations.base import PublicId from aea.contracts.base import Contract from aea.crypto.base import LedgerApi -from aea_ledger_solana import ( # type: ignore[import-not-found] # pylint: disable=import-error # noqa: E501 - SolanaApi, -) + +try: + from aea_ledger_solana import ( # type: ignore[import-not-found] # pylint: disable=import-error # noqa: E501 + SolanaApi, + ) +except ImportError as exc: # pragma: no cover + raise ImportError( + "The Solana ledger plugin is required by the `squads_multisig` " + "contract but is not installed. It ships as an optional extra: " + "`pip install open-autonomy[solana]`." + ) from exc Pubkey = Any # defined in solders.pubkey Keypair = Any # defined in solders.keypair diff --git a/packages/valory/contracts/squads_multisig/contract.yaml b/packages/valory/contracts/squads_multisig/contract.yaml index 13c39eda4f..21061ee5bc 100644 --- a/packages/valory/contracts/squads_multisig/contract.yaml +++ b/packages/valory/contracts/squads_multisig/contract.yaml @@ -9,7 +9,7 @@ fingerprint: README.md: bafybeie2g3yfcwtch366pmuowhe6d4glkc7vgqspebifjvhhkxerd7imru __init__.py: bafybeifuv5yh7fc2oy5wgfq2bdvetn7hxg3rhsdrxmlkppj4ns2y6il4e4 build/SquadsMultisig.json: bafybeiey7jbufdyfroy3vahjrfiifsvwf7zaq5yjjb56zokhbg5t76hjcm - contract.py: bafybeib5xh4ucvisgibv62jxh7y6rojmzrqc7cwa6nxzx2ekxfko24vk7a + contract.py: bafybeibfxm47cqil3eag2e4y5f5e2auf5hrsb3pnbrs2ypy4ehmoat3yru fingerprint_ignore_patterns: [] class_name: SquadsMultisig contract_interface_paths: diff --git a/packages/valory/skills/funds_forwarder_abci/skill.yaml b/packages/valory/skills/funds_forwarder_abci/skill.yaml index 71e9211e92..35b2a0e2d3 100644 --- a/packages/valory/skills/funds_forwarder_abci/skill.yaml +++ b/packages/valory/skills/funds_forwarder_abci/skill.yaml @@ -35,7 +35,7 @@ protocols: - valory/ledger_api:1.0.0:bafybeiecq56phjfws36rgrefw6niyo4ezesloodsfis647mpm5ygqo4ysi skills: - valory/abstract_round_abci:0.1.0:bafybeifkxnvvgsldkb4rgejsoon2mvrmrnl7asy2nhenwss7hpwg3myflu -- valory/transaction_settlement_abci:0.1.0:bafybeihizaapype5sz7vlosms3nfo6jzfj4ujycuf5uthviq2otvmw6f6m +- valory/transaction_settlement_abci:0.1.0:bafybeidb2skdi7clqmqzrnatm7yv733mfwwsr26bz3a7kmsclqwgaalbya behaviours: main: args: {} diff --git a/packages/valory/skills/offend_slash_abci/skill.yaml b/packages/valory/skills/offend_slash_abci/skill.yaml index b15328c253..0eae634e03 100644 --- a/packages/valory/skills/offend_slash_abci/skill.yaml +++ b/packages/valory/skills/offend_slash_abci/skill.yaml @@ -27,7 +27,7 @@ skills: - valory/offend_abci:0.1.0:bafybeicml5wy5kn6jh4es5vsg3seiaov7t65ug7m6hrdijy2q62ubh2ckq - valory/registration_abci:0.1.0:bafybeif4n2esdjvquomdkwktv7eolepskpo5jlqrfda2abxjqzy2ljsxzi - valory/reset_pause_abci:0.1.0:bafybeifrnmlscfiki7wojs6zasppefupd2wkjyq6orhdllfppjud7isrxi -- valory/slashing_abci:0.1.0:bafybeiapy6dtegp2yyq7qfn3ibljlsm3jslaqpqn627dxen664ihcx2ioy +- valory/slashing_abci:0.1.0:bafybeic4hzqhklhyzu7xn2hv4sv66uz2qu5ekz5typ64xmsed6elnzxvmy behaviours: main: args: {} diff --git a/packages/valory/skills/register_termination_abci/skill.yaml b/packages/valory/skills/register_termination_abci/skill.yaml index ac34dbc857..9f3300c78d 100644 --- a/packages/valory/skills/register_termination_abci/skill.yaml +++ b/packages/valory/skills/register_termination_abci/skill.yaml @@ -26,7 +26,7 @@ skills: - valory/abstract_round_abci:0.1.0:bafybeifkxnvvgsldkb4rgejsoon2mvrmrnl7asy2nhenwss7hpwg3myflu - valory/registration_abci:0.1.0:bafybeif4n2esdjvquomdkwktv7eolepskpo5jlqrfda2abxjqzy2ljsxzi - valory/reset_pause_abci:0.1.0:bafybeifrnmlscfiki7wojs6zasppefupd2wkjyq6orhdllfppjud7isrxi -- valory/termination_abci:0.1.0:bafybeih6sa2ttcvvjk7rcfn7ure2ws23kcfufssb4qmluzcfvednkfpvoi +- valory/termination_abci:0.1.0:bafybeibgjzo323qxqxv54boz4nzo6ka5kqebrxq3d62ahhypx2ei4ivsma behaviours: main: args: {} diff --git a/packages/valory/skills/slashing_abci/skill.yaml b/packages/valory/skills/slashing_abci/skill.yaml index 800981d7e4..745199e29d 100644 --- a/packages/valory/skills/slashing_abci/skill.yaml +++ b/packages/valory/skills/slashing_abci/skill.yaml @@ -30,7 +30,7 @@ protocols: - valory/contract_api:1.0.0:bafybeibld2xb5m7kyluiptkamp4nrt6oeomkohz7a3yppbv2oo7qw2e4la skills: - valory/abstract_round_abci:0.1.0:bafybeifkxnvvgsldkb4rgejsoon2mvrmrnl7asy2nhenwss7hpwg3myflu -- valory/transaction_settlement_abci:0.1.0:bafybeihizaapype5sz7vlosms3nfo6jzfj4ujycuf5uthviq2otvmw6f6m +- valory/transaction_settlement_abci:0.1.0:bafybeidb2skdi7clqmqzrnatm7yv733mfwwsr26bz3a7kmsclqwgaalbya behaviours: main: args: {} diff --git a/packages/valory/skills/squads_transaction_settlement_abci/skill.yaml b/packages/valory/skills/squads_transaction_settlement_abci/skill.yaml index 32d1447c00..59c1249864 100644 --- a/packages/valory/skills/squads_transaction_settlement_abci/skill.yaml +++ b/packages/valory/skills/squads_transaction_settlement_abci/skill.yaml @@ -17,7 +17,7 @@ fingerprint: fingerprint_ignore_patterns: [] connections: [] contracts: -- valory/squads_multisig:0.1.0:bafybeidti5ocru2ov7rgxasv5tqyc3cz7vixelkagd3h3hjtr5mjzdrapa +- valory/squads_multisig:0.1.0:bafybeibaphiwqlvdfydbz52vog3w3d322wm4ujenn4lfegfyhcn2g6lw4m protocols: - valory/contract_api:1.0.0:bafybeibld2xb5m7kyluiptkamp4nrt6oeomkohz7a3yppbv2oo7qw2e4la skills: diff --git a/packages/valory/skills/termination_abci/skill.yaml b/packages/valory/skills/termination_abci/skill.yaml index f8b5b6007f..30182b9b60 100644 --- a/packages/valory/skills/termination_abci/skill.yaml +++ b/packages/valory/skills/termination_abci/skill.yaml @@ -30,7 +30,7 @@ protocols: - valory/contract_api:1.0.0:bafybeibld2xb5m7kyluiptkamp4nrt6oeomkohz7a3yppbv2oo7qw2e4la skills: - valory/abstract_round_abci:0.1.0:bafybeifkxnvvgsldkb4rgejsoon2mvrmrnl7asy2nhenwss7hpwg3myflu -- valory/transaction_settlement_abci:0.1.0:bafybeihizaapype5sz7vlosms3nfo6jzfj4ujycuf5uthviq2otvmw6f6m +- valory/transaction_settlement_abci:0.1.0:bafybeidb2skdi7clqmqzrnatm7yv733mfwwsr26bz3a7kmsclqwgaalbya behaviours: main: args: {} diff --git a/packages/valory/skills/test_solana_tx_abci/skill.yaml b/packages/valory/skills/test_solana_tx_abci/skill.yaml index 15dbd22636..73d3aabf00 100644 --- a/packages/valory/skills/test_solana_tx_abci/skill.yaml +++ b/packages/valory/skills/test_solana_tx_abci/skill.yaml @@ -19,14 +19,14 @@ fingerprint: fingerprint_ignore_patterns: [] connections: [] contracts: -- valory/squads_multisig:0.1.0:bafybeidti5ocru2ov7rgxasv5tqyc3cz7vixelkagd3h3hjtr5mjzdrapa +- valory/squads_multisig:0.1.0:bafybeibaphiwqlvdfydbz52vog3w3d322wm4ujenn4lfegfyhcn2g6lw4m protocols: - valory/contract_api:1.0.0:bafybeibld2xb5m7kyluiptkamp4nrt6oeomkohz7a3yppbv2oo7qw2e4la skills: - valory/abstract_round_abci:0.1.0:bafybeifkxnvvgsldkb4rgejsoon2mvrmrnl7asy2nhenwss7hpwg3myflu - valory/registration_abci:0.1.0:bafybeif4n2esdjvquomdkwktv7eolepskpo5jlqrfda2abxjqzy2ljsxzi - valory/reset_pause_abci:0.1.0:bafybeifrnmlscfiki7wojs6zasppefupd2wkjyq6orhdllfppjud7isrxi -- valory/squads_transaction_settlement_abci:0.1.0:bafybeiemijara5dcr3egnoeqd4n77aqwtidc75hv2fion4yqvzmjibnsfi +- valory/squads_transaction_settlement_abci:0.1.0:bafybeidtr4vmmsezfbb4a2gaui3txbowsb5qffu7btg5qnnt7q7dkjkgci behaviours: main: args: {} diff --git a/packages/valory/skills/transaction_settlement_abci/skill.yaml b/packages/valory/skills/transaction_settlement_abci/skill.yaml index 41b67be50e..ced08c8a67 100644 --- a/packages/valory/skills/transaction_settlement_abci/skill.yaml +++ b/packages/valory/skills/transaction_settlement_abci/skill.yaml @@ -167,6 +167,6 @@ models: class_name: TendermintDialogues dependencies: open-aea-test-autonomy: - version: ==0.21.26 + version: ==0.21.27 is_abstract: true customs: [] diff --git a/plugins/aea-helpers/setup.py b/plugins/aea-helpers/setup.py index 68e494d13f..1ee2beb296 100644 --- a/plugins/aea-helpers/setup.py +++ b/plugins/aea-helpers/setup.py @@ -45,7 +45,7 @@ def _read_long_description() -> str: setup( name="open-aea-helpers", - version="0.21.26", + version="0.21.27", author="Valory AG", license="Apache-2.0", description="CLI helpers for CI and dependency management in AEA-based projects.", diff --git a/plugins/aea-test-autonomy/aea_test_autonomy/configurations.py b/plugins/aea-test-autonomy/aea_test_autonomy/configurations.py index 963c6e82db..075fc3f034 100644 --- a/plugins/aea-test-autonomy/aea_test_autonomy/configurations.py +++ b/plugins/aea-test-autonomy/aea_test_autonomy/configurations.py @@ -38,7 +38,7 @@ def get_key(key_path: Path) -> str: HTTP_LOCALHOST = f"http://{LOCALHOST}" DEFAULT_IMAGE_VERSION = "latest" -MATCHING_FRAMEWORK_VERSION = "0.21.26" +MATCHING_FRAMEWORK_VERSION = "0.21.27" TENDERMINT_IMAGE_VERSION = os.environ.get( "TENDERMINT_IMAGE_VERSION", MATCHING_FRAMEWORK_VERSION ) diff --git a/plugins/aea-test-autonomy/setup.py b/plugins/aea-test-autonomy/setup.py index 9f92c597d4..2b7176ddc8 100644 --- a/plugins/aea-test-autonomy/setup.py +++ b/plugins/aea-test-autonomy/setup.py @@ -43,7 +43,7 @@ def _read_long_description() -> str: setup( name="open-aea-test-autonomy", - version="0.21.26", + version="0.21.27", author="Valory AG", license="Apache-2.0", description="Plugin containing test tools for open-autonomy packages.", diff --git a/poetry.lock b/poetry.lock index cbf27ba855..454f44be84 100644 --- a/poetry.lock +++ b/poetry.lock @@ -175,9 +175,10 @@ typing-extensions = {version = ">=4.2", markers = "python_version < \"3.13\""} name = "anchorpy" version = "0.20.2" description = "The Python Anchor client." -optional = false +optional = true python-versions = "~=3.9" groups = ["main"] +markers = "extra == \"solana\"" files = [ {file = "anchorpy-0.20.2-py3-none-any.whl", hash = "sha256:052bfc69eb490de4cbd805f8c122b8270ca16ed086d745b3397836fc489490b9"}, {file = "anchorpy-0.20.2.tar.gz", hash = "sha256:92c89e6dba67a8dd6514173190cda9cb2c8ab10d7cd874003091c201771cb129"}, @@ -202,9 +203,10 @@ pytest = ["py (>=1.11.0,<2)", "pytest (>=7.2.0,<8)", "pytest-asyncio (>=0.21.0,< name = "anchorpy-core" version = "0.2.0" description = "Python bindings for Anchor Rust code" -optional = false +optional = true python-versions = ">=3.9" groups = ["main"] +markers = "extra == \"solana\"" files = [ {file = "anchorpy_core-0.2.0-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:f04928c0916e8a5cba5986a85db682df19e204bb424bdea49b8a46fc45f2fc66"}, {file = "anchorpy_core-0.2.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e37373336fa735f7f3f5eab8f3b090c8a39ef48f3f4f367ad703c7643260560"}, @@ -238,9 +240,10 @@ files = [ name = "anyio" version = "4.14.1" description = "High-level concurrency and networking framework on top of asyncio or Trio" -optional = false +optional = true python-versions = ">=3.10" groups = ["main"] +markers = "extra == \"solana\"" files = [ {file = "anyio-4.14.1-py3-none-any.whl", hash = "sha256:4e5533c5b8ff0a24f5d7a176cbe6877129cd183893f66b537f8f227d10527d72"}, {file = "anyio-4.14.1.tar.gz", hash = "sha256:8d648a3544c1a700e3ff78615cd679e4c5c3f149904287e73687b2596963629e"}, @@ -342,9 +345,10 @@ extras = ["regex"] name = "based58" version = "0.1.1" description = "A fast Python library for Base58 and Base58Check" -optional = false +optional = true python-versions = ">=3.7" groups = ["main"] +markers = "extra == \"solana\"" files = [ {file = "based58-0.1.1-cp37-abi3-macosx_10_7_x86_64.whl", hash = "sha256:745851792ce5fada615f05ec61d7f360d19c76950d1e86163b2293c63a5d43bc"}, {file = "based58-0.1.1-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:f8448a71678bd1edc0a464033695686461ab9d6d0bc3282cb29b94f883583572"}, @@ -582,9 +586,10 @@ files = [ name = "borsh-construct" version = "0.1.0" description = "Python implementation of Borsh serialization, built on the Construct library." -optional = false +optional = true python-versions = ">=3.8.3,<4.0.0" groups = ["main"] +markers = "extra == \"solana\"" files = [ {file = "borsh-construct-0.1.0.tar.gz", hash = "sha256:c916758ceba70085d8f456a1cc26991b88cb64233d347767766473b651b37263"}, {file = "borsh_construct-0.1.0-py3-none-any.whl", hash = "sha256:f584c791e2a03f8fc36e6c13011a27bcaf028c9c54ba89cd70f485a7d1c687ed"}, @@ -977,9 +982,10 @@ markers = {main = "platform_system == \"Windows\" or sys_platform == \"win32\""} name = "construct" version = "2.10.68" description = "A powerful declarative symmetric parser/builder for binary data" -optional = false +optional = true python-versions = ">=3.6" groups = ["main"] +markers = "extra == \"hwi\" or extra == \"solana\"" files = [ {file = "construct-2.10.68.tar.gz", hash = "sha256:7b2a3fd8e5f597a5aa1d614c3bd516fa065db01704c72a1efaaeec6ef23d8b45"}, ] @@ -991,9 +997,10 @@ extras = ["arrow", "cloudpickle", "enum34", "lz4", "numpy", "ruamel.yaml"] name = "construct-typing" version = "0.5.6" description = "Extension for the python package 'construct' that adds typing features" -optional = false +optional = true python-versions = ">=3.7" groups = ["main"] +markers = "extra == \"solana\"" files = [ {file = "construct-typing-0.5.6.tar.gz", hash = "sha256:0dc501351cd6b308f15ec54e5fe7c0fbc07cc1530a1b77b4303062a0a93c1297"}, {file = "construct_typing-0.5.6-py3-none-any.whl", hash = "sha256:39c948329e880564e33521cba497b21b07967c465b9c9037d6334e2cffa1ced9"}, @@ -1135,9 +1142,10 @@ toml = ["tomli ; python_full_version <= \"3.11.0a6\""] name = "cryptography" version = "49.0.0" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." -optional = false +optional = true python-versions = "!=3.9.0,!=3.9.1,>=3.9" groups = ["main"] +markers = "extra == \"hwi\" or extra == \"solana\"" files = [ {file = "cryptography-49.0.0-cp311-abi3-macosx_11_0_arm64.whl", hash = "sha256:966fe0e9c67490071f14c0d2b1cb2dfb3023c5ce39457343931415f08382f2db"}, {file = "cryptography-49.0.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:36d1709f992593689b45bda411498d62c6e365f2ca00b84657d4dadd24de16db"}, @@ -2086,9 +2094,10 @@ protobuf = ["grpcio-tools (>=1.78.0)"] name = "h11" version = "0.16.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" -optional = false +optional = true python-versions = ">=3.8" groups = ["main"] +markers = "extra == \"solana\"" files = [ {file = "h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86"}, {file = "h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1"}, @@ -2219,9 +2228,10 @@ files = [ name = "httpcore" version = "1.0.9" description = "A minimal low-level HTTP client." -optional = false +optional = true python-versions = ">=3.8" groups = ["main"] +markers = "extra == \"solana\"" files = [ {file = "httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55"}, {file = "httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8"}, @@ -2241,9 +2251,10 @@ trio = ["trio (>=0.22.0,<1.0)"] name = "httpx" version = "0.28.1" description = "The next generation HTTP client." -optional = false +optional = true python-versions = ">=3.8" groups = ["main"] +markers = "extra == \"solana\"" files = [ {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, @@ -2370,9 +2381,10 @@ i18n = ["Babel (>=2.7)"] name = "jsonalias" version = "0.1.1" description = "A microlibrary that defines a Json type alias for Python." -optional = false +optional = true python-versions = ">=3.7,<4.0" groups = ["main"] +markers = "extra == \"solana\"" files = [ {file = "jsonalias-0.1.1-py3-none-any.whl", hash = "sha256:a56d2888e6397812c606156504e861e8ec00e188005af149f003c787db3d3f18"}, {file = "jsonalias-0.1.1.tar.gz", hash = "sha256:64f04d935397d579fc94509e1fcb6212f2d081235d9d6395bd10baedf760a769"}, @@ -3031,7 +3043,7 @@ pyyaml = ">=6.0.1,<7" [[package]] name = "open-aea-helpers" -version = "0.21.26" +version = "0.21.27" description = "CLI helpers for CI and dependency management in AEA-based projects." optional = false python-versions = "*" @@ -3111,9 +3123,10 @@ open-aea-ledger-ethereum = ">=2.2.9,<2.3.0" name = "open-aea-ledger-solana" version = "2.2.9" description = "Python package wrapping the public and private key cryptography and ledger api of solana." -optional = false +optional = true python-versions = "<3.15,>=3.10" groups = ["main"] +markers = "extra == \"solana\"" files = [ {file = "open_aea_ledger_solana-2.2.9-py3-none-any.whl", hash = "sha256:40898cb42dc8d15b8d4e49c2ca04999fa47f4d91ec1b9f8ab2ba21d6cb1c8895"}, {file = "open_aea_ledger_solana-2.2.9.tar.gz", hash = "sha256:32d6f02c2051f8183921e92da51d8e034d2e1d4d2bc845319bb2bad220089ae6"}, @@ -3128,7 +3141,7 @@ solders = ">=0.21.0,<0.22.0" [[package]] name = "open-aea-test-autonomy" -version = "0.21.25" +version = "0.21.27" description = "Plugin containing test tools for open-autonomy packages." optional = false python-versions = "*" @@ -3794,9 +3807,10 @@ windows-terminal = ["colorama (>=0.4.6)"] name = "pyheck" version = "0.1.5" description = "Python bindings for heck, the Rust case conversion library" -optional = false +optional = true python-versions = ">=3.7" groups = ["main"] +markers = "extra == \"solana\"" files = [ {file = "pyheck-0.1.5-cp37-abi3-macosx_10_7_x86_64.whl", hash = "sha256:44caf2b7a49d71fdeb0469e9f35886987ad815a8638b3c5b5c83f351d6aed413"}, {file = "pyheck-0.1.5-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:316a842b94beff6e59a97dbcc590e9be92a932e59126b0faa9ac750384f27eaf"}, @@ -4537,9 +4551,10 @@ files = [ name = "solana" version = "0.33.0" description = "Solana Python API" -optional = false +optional = true python-versions = "<4.0,>=3.8" groups = ["main"] +markers = "extra == \"solana\"" files = [ {file = "solana-0.33.0-py3-none-any.whl", hash = "sha256:45e4bd8f9d8dbb431eca8f01ca6be766ceeed5f31e502af337c45e2d891bc8d0"}, {file = "solana-0.33.0.tar.gz", hash = "sha256:f2166e1d17dce3fc3064b3b2e08ee8e7efad7811082e0a5b2818211edb1a4d16"}, @@ -4556,9 +4571,10 @@ websockets = ">=9.0,<12.0" name = "solders" version = "0.21.0" description = "Python bindings for Solana Rust tools" -optional = false +optional = true python-versions = ">=3.7" groups = ["main"] +markers = "extra == \"solana\"" files = [ {file = "solders-0.21.0-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:7df88e59aea016644c0b2eac84f2f931d5aa570c654132770263b26f2928fdb7"}, {file = "solders-0.21.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a11dfc5933707c466880ef2116f1bffc74659bf677b79479f4280247d60543c9"}, @@ -4603,9 +4619,10 @@ files = [ name = "sumtypes" version = "0.1a6" description = "Algebraic types for Python (notably providing Sum Types, aka Tagged Unions)" -optional = false +optional = true python-versions = "*" groups = ["main"] +markers = "extra == \"solana\"" files = [ {file = "sumtypes-0.1a6-py2.py3-none-any.whl", hash = "sha256:3e9d71322dd927d25d935072f8be7daec655ea292fd392359a5bb2c1e53dfdc3"}, {file = "sumtypes-0.1a6.tar.gz", hash = "sha256:1a6ff095e06a1885f340ddab803e0f38e3f9bed81f9090164ca9682e04e96b43"}, @@ -4679,9 +4696,10 @@ files = [ name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" -optional = false +optional = true python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" groups = ["main"] +markers = "extra == \"solana\"" files = [ {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, @@ -4808,6 +4826,7 @@ description = "List processing tools and functional utilities" optional = false python-versions = ">=3.5" groups = ["main"] +markers = "implementation_name == \"pypy\" or implementation_name == \"cpython\" or extra == \"solana\"" files = [ {file = "toolz-0.11.2-py3-none-any.whl", hash = "sha256:a5700ce83414c64514d82d60bcda8aabfde092d1c1a8663f9200c07fdcc6da8f"}, {file = "toolz-0.11.2.tar.gz", hash = "sha256:6b312d5e15138552f1bda8a4e66c30e236c831b612b2bf0005f8a1df10a4bc33"}, @@ -5353,8 +5372,9 @@ chain = ["open-aea-ledger-ethereum"] cli = ["open-aea-cli-ipfs"] docker = ["docker"] hwi = ["open-aea-ledger-ethereum-hwi"] +solana = ["open-aea-ledger-solana"] [metadata] lock-version = "2.1" python-versions = ">=3.10,<3.15" -content-hash = "eb3879d7f2bb3245f7fdb360fbb14f9da3738ceb7386d05468a95f581344c72d" +content-hash = "531f66a75c93b88124b4764c4421845488b76fd9571239059d2fe9df4a9b6c46" diff --git a/pyproject.toml b/pyproject.toml index 2c0031b679..3025a89b7e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "open-autonomy" -version = "0.21.26" +version = "0.21.27" description = "Open Autonomy Framework" authors = ["developer-valory "] license = "Apache-2.0" @@ -18,12 +18,13 @@ include = [ ] [tool.poetry.dependencies] -# `[tool.poetry.dependencies]` models the dev environment Poetry sets -# up when `poetry install` is run on a checkout of this repo; `setup.py` -# is the authoritative (and intentionally narrower) manifest used for -# the published wheel. Adding a dep here will NOT make it ship to PyPI -# users — mirror it into `setup.py`'s `install_requires` if it's -# genuinely runtime. +# What ships to PyPI is rendered from THIS table: `make dist` runs +# `python -m build`, which resolves the `poetry.core.masonry.api` +# backend declared under `[build-system]` below, so poetry-core writes +# `requires_dist` from here. The root `setup.py` is not on that path — +# it is reached only by the legacy `make install` target, and its +# `install_requires` / `extras_require` never reach published +# metadata. Declare runtime deps here. python = ">=3.10,<3.15" # Core runtime open-aea = { version = "==2.2.9", extras = ["all"] } @@ -31,13 +32,20 @@ open-aea = { version = "==2.2.9", extras = ["all"] } # `open-aea[all]`; only the IPFS CLI plugin is autonomy-specific. open-aea-cli-ipfs = "==2.2.9" # Optional plugins — declared via extras below. -# [hwi] and [docker] are intentionally kept out of [all]: +# [hwi], [docker] and [solana] are intentionally kept out of [all]: # * HWI's transitive chain (ledgerwallet -> hidapi + Pillow) has # no armv7 wheels, breaking multi-platform Docker image builds. # * `docker` is only needed for docker-compose deployments; users # deploying to Kubernetes or localhost don't need it. +# * `open-aea-ledger-solana` caps `websockets<12` via `solana<0.34`, +# unresolvable against modern-websockets downstreams. Only +# `contracts/squads_multisig` imports it. Must stay out of [all]: +# `open-aea-test-autonomy` pins `open-autonomy[all,docker]`, which +# would otherwise reimpose the cap on every downstream test env. +# Revisit when the plugin accepts `solana>=0.36.2`. open-aea-ledger-ethereum = {version = "==2.2.9", optional = true} open-aea-ledger-ethereum-hwi = {version = "==2.2.9", optional = true} +open-aea-ledger-solana = {version = "==2.2.9", optional = true} docker = {version = "==7.1.0", optional = true} # --------------------------------------------------------------------------- @@ -57,7 +65,9 @@ docker = {version = "==7.1.0", optional = true} # corresponding package YAML. # --------------------------------------------------------------------------- open-aea-ledger-cosmos = "==2.2.9" -open-aea-ledger-solana = "==2.2.9" +# `open-aea-ledger-solana` is deliberately NOT in this group: it is +# kept optional above to avoid the `websockets<12` cap, and reaches +# users through the [solana] extra. Do not move it here. web3 = "*" requests = "*" grpcio = "==1.78.0" @@ -92,6 +102,10 @@ docker = [ hwi = [ "open-aea-ledger-ethereum-hwi", ] +# Excluded from [all] — see the dependency declaration above. +solana = [ + "open-aea-ledger-solana", +] all = [ "open-aea-cli-ipfs", "open-aea-ledger-ethereum", diff --git a/tests/test_autonomy/test_packaging.py b/tests/test_autonomy/test_packaging.py index 209180a86c..fa01602ada 100644 --- a/tests/test_autonomy/test_packaging.py +++ b/tests/test_autonomy/test_packaging.py @@ -40,6 +40,8 @@ r"^eject-contracts:\s*\n\s*@for contract in ([^;]+);", re.MULTILINE ) CONTRACTS_INCLUDE_PATH = "autonomy/data/contracts/**/*" +SOLANA_PLUGIN = "open-aea-ledger-solana" +SOLANA_EXTRA = "solana" def _parse_eject_contracts() -> List[str]: @@ -84,6 +86,45 @@ def test_pyproject_includes_ejected_contracts() -> None: ) +def test_solana_plugin_stays_an_opt_in_extra() -> None: + """``open-aea-ledger-solana`` must stay optional and out of ``[all]``. + + The plugin transitively caps ``websockets<12`` (via ``solana<0.34``), + which cannot co-resolve with any modern-websockets consumer. While it + sat in the main dependency table every downstream inherited that cap, + breaking installs for services that never touch Solana. + + Keeping it out of ``[all]`` is the load-bearing half: the + ``open-aea-test-autonomy`` plugin pins ``open-autonomy[all,docker]``, + so folding the plugin back into ``[all]`` would silently reimpose the + cap on every downstream test environment — with no failing test to + show for it. This is that failing test. + """ + pyproject = tomllib.loads((ROOT_DIR / "pyproject.toml").read_text()) + poetry = pyproject.get("tool", {}).get("poetry", {}) + spec = poetry.get("dependencies", {}).get(SOLANA_PLUGIN) + + assert isinstance(spec, dict) and spec.get("optional") is True, ( + f"`{SOLANA_PLUGIN}` must be declared with `optional = true` in " + "[tool.poetry.dependencies]; otherwise poetry-core emits it as an " + "unconditional requirement and every install inherits the " + "`websockets<12` cap." + ) + + extras = poetry.get("extras", {}) + assert SOLANA_PLUGIN in extras.get(SOLANA_EXTRA, []), ( + f"`{SOLANA_PLUGIN}` must be reachable through the " + f"[{SOLANA_EXTRA}] extra, or Solana services have no supported " + "way to install it." + ) + assert SOLANA_PLUGIN not in extras.get("all", []), ( + f"`{SOLANA_PLUGIN}` must stay out of the [all] extra. " + "`open-aea-test-autonomy` pins `open-autonomy[all,docker]`, so " + "including it here reimposes the `websockets<12` cap on every " + "downstream test environment." + ) + + def test_eject_contracts_sources_exist() -> None: """Every contract listed in ``make eject-contracts`` must be ejectable. diff --git a/tests/test_base.py b/tests/test_base.py index c2d51a6322..d9201f6daf 100644 --- a/tests/test_base.py +++ b/tests/test_base.py @@ -62,7 +62,7 @@ def get_test_files(package_type: PackageType) -> List[Path]: def test_version() -> None: """Test the version.""" - assert autonomy.__version__ == "0.21.26" + assert autonomy.__version__ == "0.21.27" @pytest.mark.parametrize(