Skip to content

Commit

Permalink
Merge pull request #2657 from fetchai/develop
Browse files Browse the repository at this point in the history
Release v1.1.0
  • Loading branch information
DavidMinarsch committed Oct 15, 2021
2 parents e211d5c + 9af22de commit 5e5850a
Show file tree
Hide file tree
Showing 731 changed files with 30,693 additions and 13,150 deletions.
10 changes: 7 additions & 3 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
[run]
omit =
*/.tox/*
packages/fetchai/contracts/*
packages/fetchai/skills/gym/*
packages/fetchai/contracts/fet_erc20/*
packages/fetchai/contracts/oracle/*
packages/fetchai/contracts/oracle_client/*
packages/fetchai/contracts/staking_erc20/*
packages/fetchai/skills/fipa_dummy_buyer/*
plugins/aea-ledger-cosmos/aea_ledger_cosmos/cosmos.py
packages/fetchai/skills/error_test_skill/*
packages/fetchai/skills/task_test_skill/*
plugins/aea-ledger-cosmos/aea_ledger_cosmos/cosmos.py
4 changes: 2 additions & 2 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@ jobs:
uses: actions/checkout@master

- name: Setup GCloud - sandbox
uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
uses: google-github-actions/setup-gcloud@master
if: github.ref == 'refs/heads/develop'
with:
project_id: ${{ secrets.GCLOUD_FETCH_AI_SANDBOX_PROJECT }}
service_account_key: ${{ secrets.GCLOUD_FETCH_AI_SANDBOX_KEY }}

- name: Setup GCloud - production
uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
uses: google-github-actions/setup-gcloud@master
if: github.ref == 'refs/heads/main'
with:
project_id: ${{ secrets.GCLOUD_FETCH_AI_PROD_PROJECT }}
Expand Down
59 changes: 23 additions & 36 deletions .github/workflows/workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
sudo apt-get autoremove
sudo apt-get autoclean
pip install pipenv
- name: Pipenv lock
- name: Pipenv install requirements and check it can be locked
run: |
pipenv install --dev --skip-lock --clear
pipenv run pip install -e .[all]
Expand Down Expand Up @@ -284,6 +284,11 @@ jobs:
- uses: actions/setup-go@master
with:
go-version: '^1.14.0'
- name: Setup GCloud - production
uses: google-github-actions/setup-gcloud@master
with:
project_id: ${{ secrets.GCLOUD_FETCH_AI_PROD_PROJECT }}
service_account_key: ${{ secrets.GCLOUD_FETCH_AI_PROD_KEY }}
- name: Install dependencies (ubuntu-latest)
run: |
sudo apt-get update --fix-missing
Expand All @@ -294,6 +299,12 @@ jobs:
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.11.4/protoc-3.11.4-linux-x86_64.zip
unzip protoc-3.11.4-linux-x86_64.zip -d protoc
sudo mv protoc/bin/protoc /usr/local/bin/protoc
- name: Configure Docker
run: |
gcloud auth configure-docker
- name: Pull SOEF Image
run: |
docker pull gcr.io/fetch-ai-images/soef:9e78611 # change this to latest tag
- name: Sync AEA loop integration tests
run: |
tox -e py3.8 -- -m 'sync' # --aea-loop sync
Expand All @@ -316,45 +327,23 @@ jobs:
- uses: actions/setup-python@master
with:
python-version: 3.8
- name: Setup GCloud - production
uses: google-github-actions/setup-gcloud@master
with:
project_id: ${{ secrets.GCLOUD_FETCH_AI_PROD_PROJECT }}
service_account_key: ${{ secrets.GCLOUD_FETCH_AI_PROD_KEY }}
- name: Install dependencies (ubuntu-latest)
run: |
sudo apt-get update --fix-missing
sudo apt-get autoremove
sudo apt-get autoclean
pip install tox
- name: Install Rust
- name: Configure Docker
run: |
# Install rust
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf > install.sh
sudo chmod u+x install.sh
./install.sh -y
rustup default stable
cargo version
- name: Install fetchcli
gcloud auth configure-docker
- name: Pull SOEF Image
run: |
# Update the configuration for Rust
rustup target list --installed
rustup target add wasm32-unknown-unknown
# Install fetchd
git clone https://github.com/fetchai/fetchd.git
cd fetchd
git checkout release/v0.2.x
make install
echo "PATH=$PATH:${HOME}/go/bin" >> $GITHUB_ENV
- name: Check fetchcli installation
run: |
# Check if fetchcli is properly installed
which fetchcli
fetchcli version
- name: Configure fetchcli
run: |
fetchcli config chain-id agent-land
fetchcli config trust-node false
fetchcli config node https://rpc-agent-land.fetch.ai:443
fetchcli config output json
fetchcli config indent true
fetchcli config broadcast-mode block
docker pull gcr.io/fetch-ai-images/soef:9e78611 # change this to latest tag
- name: Integration tests
run: tox -e py3.8 -- -m 'integration and not unstable and ledger'

Expand All @@ -372,7 +361,7 @@ jobs:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python_version: [3.6, 3.7, 3.8, 3.9]
timeout-minutes: 60
timeout-minutes: 90
steps:
- uses: actions/checkout@master
- uses: actions/setup-python@master
Expand Down Expand Up @@ -508,7 +497,6 @@ jobs:
name: Golang unit tests (aealite)
working-directory: ./libs/go/aealite
run: go test -p 1 -timeout 0 -count 1 -v ./...

libp2p_coverage:
name: libp2p_coverage
runs-on: ubuntu-latest
Expand Down Expand Up @@ -538,7 +526,6 @@ jobs:
working-directory: ./libs/go/libp2p_node/
run: |
go tool cover -func=coverage.txt
coverage_checks:
continue-on-error: True
needs:
Expand Down Expand Up @@ -571,7 +558,7 @@ jobs:
# sudo apt-get install -y protobuf-compiler
- name: Run all tests
run: |
tox -e py3.7-cov -- --ignore=tests/test_docs --ignore=tests/test_examples --ignore=tests/test_packages/test_contracts --ignore=tests/test_packages/test_skills_integration -m 'not unstable'
tox -e py3.7-cov -- --ignore=tests/test_docs --ignore=tests/test_examples --ignore=tests/test_packages/test_skills_integration -m 'not unstable'
tox -e plugins-py3.7-cov -- --cov-append -m 'not unstable'
continue-on-error: true
- name: Show full coverage report
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -133,5 +133,10 @@ packages/fetchai/connections/p2p_libp2p/libp2p_node/libp2p_node

deploy-image/.env

libs/go/aealite/aealite
libs/go/libp2p_node/libp2p_node
libs/go/libp2p_node/coverage.txt
libs/go/libp2p_node/dht/dhtclient/agent_records_store*
libs/go/libp2p_node/dht/dhtpeer/agent_records_store*
!libs/go/aea_end2end/seller_agent
coverage.txt
4 changes: 2 additions & 2 deletions .pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ disable=C0103,C0201,C0301,C0302,W0105,W0707,W1202,W1203,R0801
# R0801: similar lines, # too granular

[IMPORTS]
ignored-modules=bech32,ecdsa,lru,eth_typing,eth_keys,eth_account,ipfshttpclient,werkzeug,openapi_spec_validator,aiohttp,multidict,yoti_python_sdk,defusedxml,gym,fetch,matplotlib,memory_profiler,numpy,oef,openapi_core,psutil,tensorflow,temper,skimage,web3,aioprometheus,pyaes,Crypto
ignored-modules=bech32,ecdsa,lru,eth_typing,eth_keys,eth_account,ipfshttpclient,werkzeug,openapi_spec_validator,aiohttp,multidict,yoti_python_sdk,defusedxml,gym,fetch,matplotlib,memory_profiler,numpy,oef,openapi_core,psutil,tensorflow,temper,skimage,web3,aioprometheus,pyaes,Crypto,asn1crypto,cosmpy,google

[DESIGN]
min-public-methods=1
Expand All @@ -43,4 +43,4 @@ max-nested-blocks=6
# spelling-dict=en_US

# List of comma separated words that should not be checked.
spelling-ignore-words=nocover,pragma,params,multiaddress,multihash,OEF,wrt,Protobuf,protobuf,backend,coroutine,noqa,ascii,asyncio,awaitable,kwargs,multihashing,interoperable,inlining,datamodel,str,sqlite,sql,async,json,boolean,config,pytest,counterparty,Unregister,unregister,behaviours,crypto,cryptos,args,url,tx,testnet,decrypt,validator,env,jsonschema,URI,uri,entrypoint,initialise,ethereum,traceback,fetchai,apis,api,TCPSocketProtocol,instantiation,ip,Haversine,instantiation,enum,nosec,Init,init,Behaviour,className,AEA,aea,schemas,vendorized,subcommand,filesystem,workdir,ctx,yaml,representer,multiprocess,Struct,struct,Serializers,ValueType,serializer,filepath,subprocesses,Teardown,namespace,LF,maddr,profiler,cpu,myfunction,prepend,mydecorator,CLI,subprocess,ComponentId,bool,satisfiable,unsatisfiable,dicts,utils,entrypoints,prepended,coroutines,functools,ctrl,posix,stdin,Posix,tcp,AbstractServer,StreamReaderProtocol,StreamReader,cli,reraise,SafeLoader,SafeDumper,pathlib,coro,runnable,Runnable,PublicId,stdout,netloc,dest,subgraph,subdict,behaviour,Popen,Interprocess,datetime,isort,runtime,toplevel,callables,Enqueue,Kahn's,myagent,fn,cwd,disjunction,cancelled,Pythonic,pythonic,prepends,subclasses,protolint,Protolint,performatives,programmatically,behaviour's,AsyncResult,sys,enqueued,multithread,teardown,satisfiability,dep,overridables,arg,stderr,multithreading,configs,getters,getter,classmethods,enqueue,interprocess,exc,pydocstyle,linter,programme,compositional,formatter,counterparty's,endstates,EndState,AgentContext,disambiguated,prepending,dir,tarfiles,docstyle,msg,func,ComponentType,PosixNamedPipeProtocol,ungrouped,reformats,protoc,DialogueLabel,Metaclass,responder,UtilityParams,ExchangeParams,GoodHoldings,CurrencyHoldings,rb,auth,dirs,symlink,BadParameter,metavar,readme,multithreads,upgrader,src,pid,mypy,outstream,CliRunner,semver,VersionInfo,reinstantiate,pre,ItemId,serializable,repo,upgraders,addr,endstate,performative's,proto,uncomment,Deserialize,fnctl,Sym,cd,ACN,os,ok,SDK,subtypes,JS,fifos,preprocess,dst,overridable,Mixin,unregistration,multithreaded,iterable,txt,ln,py,Util,ClickException,ai,ABI,approver,deployer,trustless,wei,AppRunner,TCPSite,webhook,Webhook,Webhooks,hostname,http,ClientResponse,TLS,soef,xml,unregisters,FET,eth,nft,AbstractEventLoop,aiohttp,uris,StreamWriter,msgs,oef,watchdogging,webhooks,RequestValidator,ACA,alice,faber,RegisterDialogue,fipa,prometheus,TAC,fet,tac,CFP,GymDialogue,RL,LedgerApiDialogue,faber's,AWx,parametrized,FipaDialogue,MlTradeDialogue,carpark,blockchain,counterparties,dec,mins,Calc,vyper,SigningDialogue,modelling,ContractApiDialogue,alice's,quickfix,StateUpdateDialogue,hacky,aea's,dataset,MessageId,cfp,rl,TacDialogue,BaseFipaDialogue,von,maths,Deque,unregistering,yoti,copyable,deepcopy,multiaddresses,logfile,Vous,ipaddress,clargs,IPCChannel,MultiAddr,Rendez,gcc,aioprometheus,getattr,noop,Noop,multiagent,ttfb,rtt,mem,xaxis,superclass,docstring,execreport,benchmarked,ReportPrinter,plt,kb,num,initialised,bytecode,wasm,denom,mainnet,fp,uid,cosmwasm,Conftest,decrypted,initialisation,hmac,plaintext,aes,ipfs,unlinked,ipfshttpclient,gasstation,Ganache,hexbytes,txs,LRU
spelling-ignore-words=nocover,pragma,params,multiaddress,multihash,OEF,wrt,Protobuf,protobuf,backend,coroutine,noqa,ascii,asyncio,awaitable,kwargs,multihashing,interoperable,inlining,datamodel,str,sqlite,sql,async,json,boolean,config,pytest,counterparty,Unregister,unregister,behaviours,crypto,cryptos,args,url,tx,testnet,decrypt,validator,env,jsonschema,URI,uri,entrypoint,initialise,ethereum,traceback,fetchai,apis,api,TCPSocketProtocol,instantiation,ip,Haversine,instantiation,enum,nosec,Init,init,Behaviour,className,AEA,aea,schemas,vendorized,subcommand,filesystem,workdir,ctx,yaml,representer,multiprocess,Struct,struct,Serializers,ValueType,serializer,filepath,subprocesses,Teardown,namespace,LF,maddr,profiler,cpu,myfunction,prepend,mydecorator,CLI,subprocess,ComponentId,bool,satisfiable,unsatisfiable,dicts,utils,entrypoints,prepended,coroutines,functools,ctrl,posix,stdin,Posix,tcp,AbstractServer,StreamReaderProtocol,StreamReader,cli,reraise,SafeLoader,SafeDumper,pathlib,coro,runnable,Runnable,PublicId,stdout,netloc,dest,subgraph,subdict,behaviour,Popen,Interprocess,datetime,isort,runtime,toplevel,callables,Enqueue,Kahn's,myagent,fn,cwd,disjunction,cancelled,Pythonic,pythonic,prepends,subclasses,protolint,Protolint,performatives,programmatically,behaviour's,AsyncResult,sys,enqueued,multithread,teardown,satisfiability,dep,overridables,arg,stderr,multithreading,configs,getters,getter,classmethods,enqueue,interprocess,exc,pydocstyle,linter,programme,compositional,formatter,counterparty's,endstates,EndState,AgentContext,disambiguated,prepending,dir,tarfiles,docstyle,msg,func,ComponentType,PosixNamedPipeProtocol,ungrouped,reformats,protoc,DialogueLabel,Metaclass,responder,UtilityParams,ExchangeParams,GoodHoldings,CurrencyHoldings,rb,auth,dirs,symlink,BadParameter,metavar,readme,multithreads,upgrader,src,pid,mypy,outstream,CliRunner,semver,VersionInfo,reinstantiate,pre,ItemId,serializable,repo,upgraders,addr,endstate,performative's,proto,uncomment,Deserialize,fnctl,Sym,cd,ACN,os,ok,SDK,subtypes,JS,fifos,preprocess,dst,overridable,Mixin,unregistration,multithreaded,iterable,txt,ln,py,Util,ClickException,ai,ABI,approver,deployer,trustless,wei,AppRunner,TCPSite,webhook,Webhook,Webhooks,hostname,http,ClientResponse,TLS,soef,xml,unregisters,FET,eth,nft,AbstractEventLoop,aiohttp,uris,StreamWriter,msgs,oef,watchdogging,webhooks,RequestValidator,ACA,alice,faber,RegisterDialogue,fipa,prometheus,TAC,fet,tac,CFP,GymDialogue,RL,LedgerApiDialogue,faber's,AWx,parametrized,FipaDialogue,MlTradeDialogue,carpark,blockchain,counterparties,dec,mins,Calc,vyper,SigningDialogue,modelling,ContractApiDialogue,alice's,quickfix,StateUpdateDialogue,hacky,aea's,dataset,MessageId,cfp,rl,TacDialogue,BaseFipaDialogue,von,maths,Deque,unregistering,yoti,copyable,deepcopy,multiaddresses,logfile,Vous,ipaddress,clargs,IPCChannel,MultiAddr,Rendez,gcc,aioprometheus,getattr,noop,Noop,multiagent,ttfb,rtt,mem,xaxis,superclass,docstring,execreport,benchmarked,ReportPrinter,plt,kb,num,initialised,bytecode,wasm,denom,mainnet,fp,uid,cosmwasm,Conftest,decrypted,initialisation,hmac,plaintext,aes,ipfs,unlinked,ipfshttpclient,gasstation,Ganache,hexbytes,txs,LRU
35 changes: 35 additions & 0 deletions .spelling
Original file line number Diff line number Diff line change
Expand Up @@ -189,8 +189,43 @@ CVE-2021-27291
AgentLand
GCloud
p2p
LookupRequest
LookupResponse
AeaEnvelope
_envelope_bytes_
AgentRecord
AgentApi
DHTPeer
sequenceDiagram
listenLoop
OutputQueue
outputLoop
SendQueue
sendLoop
DhtNode
alt
ack-timeout
conn-error
generic_error
DESERIALIZATION_ERROR
RouteEnvelope
PoR
choco
utc-0
docstring
utils
kademlia
StargateWorld
stargateworld-3
v0.8.x
fetch.ai
RaiseError
serializer's
pywin32
CosmPy
dockerised
Mermaid-JS
darglint
- docs/language-agnostic-definition.md
fetchai
protocol_id
Expand Down
64 changes: 64 additions & 0 deletions HISTORY.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,69 @@
# Release History

## 1.1.0 (2021-10-13)

AEA:
- Adds public keys to agent identity and skill context
- Adds contract test tool
- Adds multiprocess support for task manager
- Adds multiprocess backed support to `MultiAgentManager`
- Adds support for excluding connection on `aea run`
- Adds support for adding a key that is being generated (`—add-key` option for `generate-key` command)
- Adds check for dependencies to be present in registry on a package push
- Makes more efficient installing of project dependencies on `aea install`
- Adds dependency conflict detection on `aea install`
- Improves pip install error details on `aea install`
- Adds validation of `aea_version` when loading configuration
- Adds a check for consistency of package versions in `MultiAgent Manager`
- Adds better error reporting for aea registry requests
- Fixes IPFS hash calculation for large files
- Fixes protobuf dictionary serializer's uncovered cases and makes it deterministic
- Fixes scaffolding of error and decision maker handlers
- Fixes pywin32 problem when checking dependency
- Improves existing testing tools

Benchmarks:
- Adds agents construction and decision maker benchmark cases

Plugins:
- Upgrades fetchai plugin to use CosmPy instead of CLI calls
- Upgrades cosmos plugin to use CosmPy instead of CLI calls
- Upgrades fetchai plugin to use StargateWorld
- Upgrades cosmos plugin to Stargate
- Sets the correct maximum Gas for fetch.ai plugin

Packages:
- Adds support for Tac to be run against fetchai StargateWorld test-net
- Adds more informative error messages to CosmWasm ERC1155 contract
- Adds support for atomic swap to CosmWasm ERC1155 contract
- Adds an ACN protocol that formalises ACN communication using the framework's protocol language
- Adds `cosm_trade` protocol for preparing atomic swap transactions for cosmos-based networks
- Adds https support for server connection
- Adds parametrising of http(s) in soef connection
- Fixes http server content length response problem
- Updates Oracle contract to 0.14
- Implements the full ACN spec throughout the ACN packages
- Implements correct error code usage in ACN packages
- Refactors ACN packages to unify reused logic
- Adds tests for gym skills
- Adds dockerised SOEF
- Adds libp2p mailbox connection
- Multiple fixes and stability improvements for `p2p_libp2p` connections

Docs:
- Adds ACN internals documentation
- Fixes tutorial for HTTP connection and skill
- Multiple additional docs updates
- Adds more context to private keys docs

Chores:
- Various development features bumped
- Bumped Mermaid-JS, for UML diagrams to major version 8
- Applies darglint to the code

Examples:
- Adds a unified script for running various versions/modes of Tac

## 1.0.2 (2021-06-03)

AEA:
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ lint:
isort aea benchmark examples packages plugins scripts tests
flake8 aea benchmark examples packages plugins scripts tests
vulture aea scripts/whitelist.py --exclude "*_pb2.py"
darglint aea
darglint aea benchmark examples libs packages/fetchai/connections packages/fetchai/contracts packages/fetchai/skills plugins scripts

.PHONY: pylint
pylint:
Expand Down
8 changes: 5 additions & 3 deletions Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ name = "test-pypi"
[dev-packages]
# we fix exact versions as it's sufficient to have at least one set of compatible dependencies for development
aiohttp = "==3.7.4"
asn1crypto = "==1.4.0"
aioprometheus = "==20.0.1"
bandit = "==1.7.0"
bech32 = "==1.2.0"
Expand All @@ -24,15 +25,15 @@ ecdsa = ">=0.15"
eth-account = "==0.5.2"
flake8 = "==3.7.9"
flake8-bugbear = "==20.1.4"
flake8-docstrings = "==1.5.0"
flake8-docstrings = "==1.6.0"
flake8-eradicate = "==0.4.0"
flake8-isort = "==4.0.0"
gitpython = ">=3.1.14"
gym = "==0.15.6"
ipfshttpclient = "==0.6.1"
liccheck = "==0.4.3"
liccheck = "==0.6.0"
markdown = "==3.2.1"
matplotlib = "==3.2.1"
matplotlib = ">=3.3.0,<3.4"
memory-profiler = "==0.57.0"
mistune = "==2.0.0a4"
mkdocs = "==1.1"
Expand Down Expand Up @@ -69,6 +70,7 @@ vulture = "==2.3"
isort = "==5.7.0"
web3 = "==5.12.0"
yoti = "==2.14.0"
cosmpy = ">=0.1.4"

[packages]
# we don't specify dependencies for the library here for intallation as per: https://pipenv-fork.readthedocs.io/en/latest/advanced.html#pipfile-vs-setuppy
Expand Down
4 changes: 2 additions & 2 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ The following table shows which versions of `aea` are currently being supported

| Version | Supported |
| --------- | ------------------ |
| `1.0.x` | :white_check_mark: |
| `< 1.0.0` | :x: |
| `1.1.x` | :white_check_mark: |
| `< 1.1.0` | :x: |

## Reporting a Vulnerability

Expand Down
2 changes: 1 addition & 1 deletion aea/__version__.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
__title__ = "aea"
__description__ = "Autonomous Economic Agent framework"
__url__ = "https://github.com/fetchai/agents-aea.git"
__version__ = "1.0.2"
__version__ = "1.1.0"
__author__ = "Fetch.AI Limited"
__license__ = "Apache-2.0"
__copyright__ = "2019 Fetch.AI Limited"
1 change: 0 additions & 1 deletion aea/aea.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,6 @@ def __init__(
)

self._resources = resources

super().__init__(
identity=identity,
connections=[],
Expand Down
Loading

0 comments on commit 5e5850a

Please sign in to comment.