This page provides some tips on how to upgrade AI agent between different versions of the Open Autonomy framework. For full release notes check the Open-Autonomy repo.
Below, we describe the additional manual steps required to upgrade between different versions:
Open Autonomy
v0.21.2 to v0.21.3
No backwards incompatible changes.
v0.21.1 to v0.21.2
No backwards incompatible changes.
v0.21.0 to v0.21.1
No backwards incompatible changes.
v0.20.1 to v0.21.0
Breaking changes (open-autonomy)
- autonomy analyse logs will now throw ValueError if the agent's name is not valid for a SQL query.
- Action required: Agent's name must comply with the regex ^[a-zA-Z_][a-zA-Z0-9_-]*$.
- Web requests made by open-autonomy will now timeout in 30 seconds if no response is received.
- Action required: Handle the Timeout error if not already.
- get_origin and get_args are now removed.
- Action required: Import them directly from typing.
Notable dependency upgrades
- open-aea v1.65.0→v2.0.0
- Link: https://github.com/valory-xyz/open-aea/blob/main/docs/upgrading.md#v1650-to-v200
- Important changes: (Coming from click)
- get_metavar now requires a new parameter, ctx: Context.
- aea, autonomy, and their subcommands that expect some arguments (for example aea, aea ipfs, etc.), when used without any arguments will now finish with exit code 2 instead of 0, and print their usage help in stderr.
- web3 v6→v7
- Link: https://web3py.readthedocs.io/en/stable/migration.html#migrating-from-v6-to-v7
- Important changes:
- Contract instances will now have encode_abi function instead of encodeABI.
- fn_name parameter of encode_abi is changed to abi_element_identifier.
- Transaction related instances will now have attributes in snake_case instead of camelCase. For example, raw_transaction instead of rawTransaction. (Coming from eth-account also)
- HexBytes instances' .hex() method will not return a string with 0x prefix. Use .to_0x_hex() instead. (Coming from hexbytes)
v0.20.1 to v0.20.2
No backwards incompatible changes.
v0.20.0 to v0.20.1
No backwards incompatible changes.
v0.19.11 to v0.20.0
- The
ChainandChainTypenow have theOPTIMISMenum value. And theOPTIMISTICenum value has been removed.
v0.19.10 to v0.19.11
No backwards incompatible changes.
v0.19.9 to v0.19.10
No backwards incompatible changes.
v0.19.8 to v0.19.9
No backwards incompatible changes.
v0.19.7 to v0.19.8
No backwards incompatible changes.
v0.19.6 to v0.19.7
No backwards incompatible changes.
v0.19.5 to v0.19.6
No backwards incompatible changes.
v0.19.4 to v0.19.5
No backwards incompatible changes.
v0.19.3 to v0.19.4
No backwards incompatible changes.
v0.19.2 to v0.19.3
No backwards incompatible changes.
v0.19.1 to v0.19.2
No backwards incompatible changes.
v0.19.0 to v0.19.1
No backwards incompatible changes.
v0.18.4 to v0.19.0
- The ledger has introduced a new configuration, called
min_allowed_tip. The value is set to 1GWEI. However, this limit only applies for Gnosis. This is not expected to cause important differences in the calculated tip for the rest of the chains, because there is an outlier detection mechanism. However, the best practice would be to override this value to0for any chain other than Gnosis. This is planned to be changed in the nextopen-aeaversion to improve DevX and make this a non-breaking change. - The agent now performs an early failure check when attributes for rounds are missing.
This check is implemented in the metaclass using a specialized attribute named
extended_requirements. To customize the attributes being checked for a specific round, developers must modify theextended_requirementsattribute.
v0.18.3 to v0.18.4
No backwards incompatible changes.
v0.18.2 to v0.18.3
No backwards incompatible changes.
v0.18.1 to v0.18.2
No backwards incompatible changes.
v0.18.0 to v0.18.1
No backwards incompatible changes.
v0.17.0 to v0.18.0
- The agent and service configurations for dictionaries should now be in the following form:
${dict:{"some_key": "some_value"}. For more information, please take a look at an example upgrade in https://github.com/valory-xyz/trader/pull/311. - The generated builds do not include the environment variables of the agents inside the compose file anymore. Instead, they exist in a separate environment file per agent and are referenced in the compose file.
v0.16.1 to v0.17.0
- The structure of the build folder has been updated.
The folder is now named
abci_build_{uuid}, where{uuid}is a 4-character random hash, replacing the previous format ofabci_build. - The naming convention for service containers has been revised.
Previously, containers were named
{trimmed_service_name}_{abci|tm}_{index}. Now, the format has changed to{trimmed_service_name}{uuid}_{abci|tm}_{index}, where{uuid}is a unique identifier.
v0.16.0 to v0.16.1
No backwards incompatible changes.
v0.15.2 to v0.16.0
- The
priority_fee_estimation_triggerhas been removed from theeip1559configuration of the ledger connection. - The
default_priority_feeis now optional. If it is set toNone, dynamic pricing will be applied. Otherwise, the specified value will be used.
v0.15.1 to v0.15.2
No backwards incompatible changes.
v0.15.0 to v0.15.1
No backwards incompatible changes.
v0.14.14.post2 to v0.15.0
- After this release, developers do not need to make sure that cross-period persisted keys preexist in the database before the first period ends anymore. You may remove any additional logic you had in place to protect from that (#2131).
- The cross-period persisted keys are now initialized by the framework during startup.
The corresponding property is used to get the value.
If a property with the same name does not exist, then the pre-existing value in the db is used, otherwise
None. - You need to keep the above in mind when:
- Reading cross-period values from the db.
- Implementing properties for cross-period keys, as the returned value will end up being the one that will be writen to the db during startup.
v0.14.14 to v0.14.14.post2
No backwards incompatible changes.
v0.14.14.post1 to v0.14.14.post2
The breaking feature introduced in v0.14.14 and v0.14.14.post1 has been removed.
For more information please check the HISTORY.md file.
v0.14.14 to v0.14.14.post1
A breaking feature was introduced.
We suggest using the v0.14.14.post2 release instead.
For more information please check the HISTORY.md file.
v0.14.13 to v0.14.14
A breaking feature was introduced.
We suggest using the v0.14.14.post2 release instead.
For more information please check the HISTORY.md file.
v0.14.12 to v0.14.13
No backwards incompatible changes
v0.14.11.post1 to v0.14.12
- This release pins
click>=8.1.0,<9so update your environments to avoid dependency conflicts
v0.14.11 to v0.14.11.post1
No backwards incompatible changes
v0.14.10 to v0.14.11
No backwards incompatible changes
v0.14.9 to v0.14.10
No backwards incompatible changes
v0.14.8 to v0.14.9
No backwards incompatible changes
v0.14.7 to v0.14.8
No backwards incompatible changes
v0.14.6 to v0.14.7
No backwards incompatible changes
v0.14.5 to v0.14.6
No backwards incompatible changes
v0.14.4 to v0.14.5
No backwards incompatible changes
v0.14.3.post1 to v0.14.4
No backwards incompatible changes
v0.14.3 to v0.14.3.post1
No backwards incompatible changes
v0.14.2 to v0.14.3
No backwards incompatible changes
v0.14.1 to v0.14.2
No backwards incompatible changes
v0.14.0 to v0.14.1
No backwards incompatible changes
v0.13.10 to v0.14.0
- This release introduces automated dependency verification on the minting tools, this means when minting a package you will have to mint all of the dependencies beforehand. The minting tools uses a subgraph to verify dependencies so you might have to wait for a small amount of time before you can mint the package after you mint the dependencies.
- Since the dependency verification is automated the
--skip-hash-checkand--skip-dependencies-checkflags have been deprecated on theautonomy mint/servicecommand groups
v0.13.9.post1 to v0.13.10
No backwards incompatible changes
v0.13.9 to v0.13.9.post1
No backwards incompatible changes
v0.13.8 to v0.13.9
No backwards incompatible changes
v0.13.7 to v0.13.8
No backwards incompatible changes
v0.13.6 to v0.13.7
No backwards incompatible changes
v0.13.5 to v0.13.6
No backwards incompatible changes
v0.13.4 to v0.13.5
No backwards incompatible changes
v0.13.3 to v0.13.4
No backwards incompatible changes
v0.13.2 to v0.13.3
No backwards incompatible changes
v0.13.1 to v0.13.2
- The usage
--passwordof flag has been deprecated onautonomy deploycommand group. UseOPEN_AUTONOMY_PRIVATE_KEY_PASSWORDenvironment variable to export the private key password string when runningautonomy deploy build/runcommands.
v0.13.1 to v0.13.1.post1
No backwards incompatible changes
v0.13.0 to v0.13.1
- This release introduces support for defining service level dependencies, which means you can define python dependencies at the service level which will take priority over the agent or component level dependencies. The
dependenciesparameter is currently optional to make the upgrading easier. But this will be required in the next release, so please update your services accordingly.
v0.12.1.post4 to v0.13.0
open-aea-web3has been replaced withweb3pyprotobufhas been bumped toprotobuf>=4.21.6,<5.0.0, this means you will have to bump your protocol generator tov24.3and generate your protocol packages again.- The
valory/open-autonomyimage will use Python 3.11 as default interpreter for running agents
v0.12.1.post3 to v0.12.1.post4
No backwards incompatible changes
v0.12.1.post2 to v0.12.1.post3
No backwards incompatible changes
v0.12.1.post1 to v0.12.1.post2
No backwards incompatible changes
v0.12.1 to v0.12.1.post1
- Environment variable names have changed for custom contract address, refer to the
mint/serviceCLI tools documentation regarding the changes.
v0.12.0 to v0.12.1
No backwards incompatible changes
v0.11.1 to v0.12.0
- Renamed the
background_behaviour_clsinAbstractRoundBehaviourtotermination_behaviour_cls. Should be taken into consideration for all the apps that are utilizing the termination. - Renamed the
background_behaviourinAbstractRoundBehaviourtotermination_behaviour. - Renamed the
is_background_behaviour_setproperty inAbstractRoundBehaviourtois_termination_set. - Renamed the
background_round_clsargument of theadd_terminationmethod inAbciApptotermination_round_cls. Should be taken into consideration for all the apps that are utilizing the termination. - Renamed the
background_round_clsattribute of theAbciApptotermination_round_cls. - Renamed the
_background_roundattribute of theAbciAppto_termination_round. - Renamed the
background_roundproperty of theAbciApptotermination_round. - The
AbstractRoundclass now requires aSkillContextpositional argument. To accommodate this change, all round tests will need to be modified to include a mocked context in addition to the synchronized data.
1 && 4 should be taken into consideration for all the apps that are utilizing the termination.
v0.11.0 to v0.11.1
The autonomy deploy run command now handles the exists from deployment and to do this we're running the deployments in detached mode and waiting for the user to cancel what that means is from now on when running the deployments the logs won't be printed out by default. If you want to check out the logs for containers you can use docker logs command.
v0.10.11.post1 to v0.11.0
web3pyhas been replaced withopen-aea-web3and we forked this fromweb3py@v6.0.0, that means the method names will use thesnake_caseand thecamelCasenaming has been deprecated- Support for
Python 3.7has been deprecated
v0.10.11 to v0.10.11.post1
No backwards incompatible changes
v0.10.10.post1 to v0.10.11
No backwards incompatible changes
v0.10.10 to v0.10.10.post1
No backwards incompatible changes
v0.10.9 to v0.10.10
No backwards incompatible changes
v0.10.8 to v0.10.9
No backwards incompatible changes
v0.10.7 to v0.10.8
No backwards incompatible changes
v0.10.6 to v0.10.7
No backwards incompatible changes
v0.10.5.post2 to v0.10.6
No backwards incompatible changes
v0.10.5.post1 to v0.10.5.post2
No backwards incompatible changes
v0.10.4 to v0.10.5.post1
No backwards incompatible changes
v0.10.3 to v0.10.4
No backwards incompatible changes
v0.10.2 to v0.10.3
No backwards incompatible changes
v0.10.1 to v0.10.2
No backwards incompatible changes
v0.10.0.post2 to v0.10.1
This version fixes a bug on the build tools which will introduce a change on the expected output of the deployment builds. Before this bug fix the deployment tools did not index the agents on the manual builds, which lead to the behaviour where if you built the deployment using just one key or --n flag the agents were indexed from 0 instead. With this bug fix the deployment tools will use the all_participants list to index the agents before building the deployments.
v0.10.0.post1 to v0.10.0.post2
No backwards incompatible changes
v0.10.0 to v0.10.0.post1
No backwards incompatible changes
v0.9.1 to v0.10.0
Breaking changes
- The
AbciAppDB'screate()is responsible for setting the cross-period keys for the new period and converting the corresponding data to the correct format. The skills using thecreate()method now do not need to manually set the data for the next period as this is handled automatically via the cross-period keys. - The setup parameters should not be defined as lists anymore.
observation_intervalhas been renamed toreset_pause_duration.- The services which are currently using termination will need to set
use_termination: Truein their configuration in order to continue using it. Otherwise,use_termination: Falseshould be used. - Before this update the
autonomy mint/servicecommand groups used to have key file as a required argument, but it's been made optional since the usage of hardware wallet does not require a key file. - Autonomy deploy build does not support the usage of
--forceflag to remove the existing build directories. - The service components need to be updated. The service configurations needs to specify the new
deploymentparameter, which is used in order to expose agent ports when using the deployment commands. It can be empty (deployment: {}) if you do not intend to override the generated compose file for the deployments to expose agent ports. - The agent configurations will need to be updated with regard to the following overrides:
- In the ABCI skill override don't use
TENDERMINT_URLandTENDERMINT_COM_URLfor Tendermint parameters. - In the ABCI connection override don't use
ABCI_HOSTandABCI_PORTfor ABCI connection parameters. - Tendermint and ABCI connection parameters now use the same environment variables' pattern as all other configurations.
v0.9.0 to v0.9.1
No backwards incompatible changes
v0.8.0 to v0.9.0
Breaking changes
- On the skill configuration
- The
max_participantsparameter has been removed. If theconsensusconfiguration is empty after removingmax_participants, it should be removed as well. - The
consensus_thresholdshould now be specified in thesetupparameters. Ifnull, the recommended setting, then it is calculated automatically from the participants provided. - The synchronized database is now
serializableandhashable. This means that the data inserted into the database are now enforced to be primitive or non-primitive built-in types only, except forsetsandfrozensetssince an error is raised as they cannot beserialized/hashedand therefore cannot be inserted into the database. In essence, the data should bejson serializable. - The usage of local Tendermint Consensus Gadget is optional in the deployment setup, use
-ltm, --local-tm-setupwhen building a deployment usingautonomy deploy buildcommand to include a Tendermint Consensus Gadget setup. - The
cross_period_persisted_keysand database conditions needs to be defined as sets as part of theAbciAppclass, before this they were defined using a list - On the round class implementation
payload_attributeattribute has been removed- Usage of payloads with multiple attributes has been simplified since the user can now specify a tuple of keys in order to store all the data of a payload to the database.
- Round
selection_keyis now a tuple for multiple-attribute payloads.
v0.7.0 to v0.8.0
- Support for
--rpcand--scaflags has been deprecated onautonomy deploy from-tokencommand. Refer to the CLI documentation to understand how to use customRPC. - The transaction payload classes needs to be defined using the data classes and needs to be immutable
Transactionis a data class- IPFS connection and protocol need to be added to your
aea-config.yaml, if they utilizevalory/abstract_round_abciskill. - IPFS dialogues and handler need to be specified.
send_to_ipfsandget_from_ipfsare now moved toBaseBehaviourand are generators.- E2E tests now utilize a local deployment of the IPFS, as such you will need to import the
ipfs_daemonandipfs_domainfixtures fromaea_test_autonomy.fixture_helpers.
v0.6.0 to v0.7.0
Breaking changes
- The new
AbstractRoundandBaseBehaviourmeta classes enforce checks on the class attributes. For concrete classes inheriting fromAbstractRoundthe developer must setsynchronized_data_class,allowed_tx_typeandpayload_attribute. For concrete classes inheriting fromBaseBehaviourthe developer must setmatching_round. These assumptions were present before but not enforced at the class definition level by the framework. - The set of
all_participantsis now retrieved from the safe instance referenced bysafe_contract_addressand assumed to be present on the target chain. - The usage of
safe_deployment_abcihas been deprecated and support for the package has been dropped. From now on, use the development tools for running a local development image with pre-configured safe to test your applications.
v0.5.0.post2 to v0.6.0
Breaking changes
- Optional: The developer can update to use the auto-generated behaviour and round ids. In this case, the
behaviour_idandround_idneed no longer be set on the class. When accessing the auto generated ids on the class useauto_behaviour_id()andauto_round_id()class methods. On the instancebehaviour_idandround_idproperties resolve the auto id class methods, so no change is required. - Required: The pre- (
db_pre_conditions) and post- (db_post_conditions) conditions on the synchronized data need to be defined for each initial and final state in anAbciApp. Seetransaction_settlement_abcifor an example.
v0.5.0.post1 to v0.5.0.post2
No backwards incompatible changes
v0.5.0 to v0.5.0.post1
No backwards incompatible changes
v0.4.0 to v0.5.0
One backwards incompatible change
Service component
- This release introduces a new format for defining multiple overrides for an agent on a service configuration. Please follow this guide to update your service configurations accordingly.
v0.3.5 to v0.4.0
Multiple backwards incompatible changes
Autonomy CLI module
-
autonomy analyse abcicommand group has been deprecated -
autonomy analyse abci check-app-specsandautonomy analyse generate-app-specshas been merged intoautonomy analyse fsm-specs - The usage of
--infileflag has been deprecated and replaced with the usage of the--packageflag - Input format for
--app-classhas been changed frompackages.author.skills.skill_name.rounds.SomeAbciApptoSomeAbciApp -
Users will have to manually switch to the newer version, i.e., remove the path prefix in all their FSM specifications. For example an FSM specification with a
label: packages.author.skills.my_abci.rounds.MyAbciAppnow becomeslabel: MyAbciApp -
autonomy analyse abci check-handlershas been moved toautonomy analyse handlers --packages-drflag has been deprecated, use--registry-pathat top level instead-
Input format for common handlers and skip skills options has been updated
- Old format -
--common abci,http,contract_api,ledger_api,signing --skip abstract_abci,counter,counter_client,hello_world_abci - New format
-h abci -h http -h contract_api -h ledger_api -h signing -i abstract_abci -i counter -i counter_client -i hello_world_abci
- Old format -
-
autonomy analyse abci docstringshas been moved toautonomy analyse docstrings --checkflag has been deprecated and the command will perform the check by default-
--updateflag has been introduced to update the docstring if necessary -
autonomy analyse abci logshas been moved toautonomy analyse logs
Autonomy test plugin
tagproperty has been renamed toimageonaea_test_autonomy.docker.base.DockerImageclass
Core packages
_HarHatHelperIntegrationhas been renamed toHardHatHelperIntegrationinpackages/valory/skills/abstract_round_abci/test_tools/integration.pyResetPauseABCIApphas been renamed toResetPauseAbciAppinpackages/valory/skills/reset_pause_abci/rounds.pyApiSpecsnow usedataclassesin order to encapsulate data, which means thatresponse_key, andresponse_typecan be accessed via theresponse_infoinstance attribute. Moreover, this attribute now includes the newresponse_indexanderror_key,error_index,error_type,error_data. Theretries_infoinstance attribute gives access to theretries_attemptedandretrieswhich are now public and also includes the newbackoff_factor.
Test tools
- The
packages.valory.skills.abstract_round_abci.test_tools.apismodule which contained theDummyMessagehas been removed.MagicMockcan be used instead. For example,DummyMessage(my_test_body)can be converted toMagicMock(body=my_test_body).
v0.3.4 to v0.3.5
No backwards incompatible changes
Upgrade guide
This release introduces a new format for packages.json file, the older version is still supported but will be deprecated on v1.0.0 so make sure to update your projects to use the new format.
v0.3.3 to v0.3.4
No backwards incompatible changes
v0.3.2 to v0.3.3
No backwards incompatible changes
v0.3.1 to v0.3.2
No backwards incompatible changes
v0.3.0 to v0.3.1
No backwards incompatible changes
v0.2.2 to v0.3.0
No backwards incompatible changes except:
- Deprecated the usage of
hashes.csvand replaces it withpackages.json, which is maintained byautonomy packages lock --checkflag is deprecated fromautonomy hash all, from now package consistencies can be verified byautonomy packages lock --check- Various test fixtures have moved and been renamed.
v0.2.1.post1 to v0.2.2
No backwards incompatible changes except:
All imports from autonomy.test_tools.* are now found at aea_test_autonomy.*, after installing open-aea-test-autonomy.
v0.2.1 to v0.2.1.post1
No backwards incompatible changes
v0.2.0 to v0.2.1
build-imagescommand has been renamed tobuild-image- Build support for dependency has been removed from the
build-imagecommand autonomy deploy build deploymenthas been renamed toautonomy deploy build
Refer to quick start docs for more information on the updated deployment flow.
v0.1.6 to v0.2.0
Multiple backwards incompatible changes:
- The service config no longer accepts the
networkkey on the first YAML page. The network can now be defined via the package overrides. - Dependency specifications are now checked against imports for all packages, this means initially packages might need modifying to reference/unreference missing/irrelevant dependencies.
- The global configuration file for the
aea/autonomyCLI has a breaking change. Please remove~/.aea/cli_config.yamland rerunautonomy init --remote.
v0.1.5 to v0.1.6
No backwards incompatible changes
v0.1.4 to v0.1.5
No backwards incompatible changes
v0.1.3 to v0.1.4
This release changes the build process for docker images and service deployments. Refer to documentation for more information.
v0.1.2 to v0.1.3
This release introduces the usage of CID v1 hashes.
v0.1.1 to v0.1.2
No backwards incompatible changes
v0.1.0 to v0.1.1
No backwards incompatible changes