Skip to content

Commit

Permalink
Merge pull request #1207 from fetchai/develop
Browse files Browse the repository at this point in the history
Release v0.3.2
  • Loading branch information
DavidMinarsch authored May 7, 2020
2 parents d2675d4 + e26e066 commit 581be6f
Show file tree
Hide file tree
Showing 250 changed files with 8,058 additions and 3,288 deletions.
30 changes: 30 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto

# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
# <pattern> text

# Declare files that will always have CRLF line endings on checkout.
# <pattern> text eol=crlf

# Declare files that will always have LF line endings on checkout.
*.css text eol=lf
*.html text eol=lf
*.java text eol=lf
*.js text eol=lf
*.json text eol=lf
*.properties text eol=lf
*.txt text eol=lf
*.xml text eol=lf
*.py text eol=lf
*.yaml text eol=lf
*.md text eol=lf

# Denote all files that are truly binary and should not be modified.
*.class binary
*.jar binary
*.gif binary
*.jpg binary
*.png binary
*.ico binary
115 changes: 71 additions & 44 deletions .github/workflows/workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,55 +9,74 @@ on:

jobs:
common_checks:
runs-on: ubuntu-latest
runs-on: ubuntu-latest

timeout-minutes: 30
timeout-minutes: 30

steps:
- uses: actions/checkout@master
- uses: actions/setup-python@master
with:
python-version: 3.6
- name: Install dependencies (ubuntu-latest)
run: |
sudo apt-get update --fix-missing
sudo apt-get autoremove
sudo apt-get autoclean
pip install pipenv
pip install tox
# install IPFS
sudo apt-get install -y wget
wget -O ./go-ipfs.tar.gz https://dist.ipfs.io/go-ipfs/v0.4.23/go-ipfs_v0.4.23_linux-amd64.tar.gz
tar xvfz go-ipfs.tar.gz
sudo mv go-ipfs/ipfs /usr/local/bin/ipfs
ipfs init
- name: Security Check
run: tox -e bandit
- name: Safety Check
run: tox -e safety
- name: License Check
run: tox -e liccheck
- name: Copyright Check
run: tox -e copyright_check
- name: AEA Package Hashes Check
run: tox -e hash_check -- --timeout 20.0
- name: Code style check
run: |
tox -e black-check
tox -e flake8
- name: Static type check
run: tox -e mypy
- name: Check package versions in documentation
run: tox -e package_version_checks
- name: Generate Documentation
run: tox -e docs

steps:
- uses: actions/checkout@master
- uses: actions/setup-python@master
with:
python-version: 3.6
- name: Install dependencies (ubuntu-latest)
run: |
sudo apt-get update --fix-missing
sudo apt-get autoremove
sudo apt-get autoclean
pip install pipenv
pip install tox
# install IPFS
sudo apt-get install -y wget
wget -O ./go-ipfs.tar.gz https://dist.ipfs.io/go-ipfs/v0.4.23/go-ipfs_v0.4.23_linux-amd64.tar.gz
tar xvfz go-ipfs.tar.gz
sudo mv go-ipfs/ipfs /usr/local/bin/ipfs
ipfs init
- name: Security Check - Main
run: tox -e bandit-main
- name: Security Check - Tests
run: tox -e bandit-tests
- name: Safety Check
run: tox -e safety
- name: License Check
run: tox -e liccheck
- name: Copyright Check
run: tox -e copyright_check
- name: AEA Package Hashes Check
run: tox -e hash_check -- --timeout 20.0
- name: Code style check
run: |
tox -e black-check
tox -e flake8
- name: Static type check
run: tox -e mypy
- name: Generate Documentation
run: tox -e docs
integration_checks:
runs-on: ubuntu-latest

timeout-minutes: 30

steps:
- uses: actions/checkout@master
- uses: actions/setup-python@master
with:
python-version: 3.7
- name: Install dependencies (ubuntu-latest)
run: |
sudo apt-get update --fix-missing
sudo apt-get autoremove
sudo apt-get autoclean
pip install pipenv
pip install tox
- name: Integration tests
run: tox -e py3.7 -- -m 'integration and not unstable'

platform_checks:
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [ubuntu-latest, macos-latest]
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: [3.6, 3.7, 3.8]

timeout-minutes: 30
Expand All @@ -84,10 +103,18 @@ jobs:
pip install pipenv
pip install tox
brew install protobuf
- if: matrix.os == 'windows-latest'
name: Install dependencies (windows-latest)
run: |
pip install pipenv
pip install tox
echo "::add-path::C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64"
choco install protoc
python scripts/update_symlinks_cross_platform.py
- name: Unit tests and coverage
run: |
tox -e py${{ matrix.python-version }} -- --no-integration-tests --ci
# optionally, use flags beyond above command: -- --no-integration-tests --ci
tox -e py${{ matrix.python-version }} -- -m 'not integration and not unstable'
# optionally, for all tests, remove 'not unstable' to run unstable tests as well
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
with:
Expand Down
76 changes: 76 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at developer@fetch.ai. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq
19 changes: 19 additions & 0 deletions HISTORY.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
# Release History

## 0.3.2 (2020-05-07)

- Adds dialogue generation functionality to protocol generator
- Fixes add CLI commands to be atomic
- Adds Windows platform support
- Stability improvements to test pipeline
- Improves test coverage of CLI
- Implements missing doc tests
- Implements end-to-end tests for all skills
- Adds missing agent projects to registry
- Improves AEABuilder class for programmatic usage
- Exposes missing AEA configs on agent config file
- Extends Aries demo
- Adds method to check sdtout for test cases
- Adds code of conduct and security guidelines to repo
- Multiple docs updates
- Multiple additional unit tests
- Multiple additional minor fixes and changes

## 0.3.1 (2020-04-27)

- Adds p2p_stub connection
Expand Down
2 changes: 1 addition & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
include README.md LICENSE HISTORY.md AUTHORS.md Pipfile mkdocs.yml tox.ini pytest.ini strategy.ini
include README.md LICENSE HISTORY.md AUTHORS.md SECURITY.md CODE_OF_CONDUCT.md Pipfile mkdocs.yml tox.ini pytest.ini strategy.ini

recursive-include aea *.json *.yaml *.proto
recursive-include docs *
Expand Down
25 changes: 20 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,29 @@ lint:

.PHONY: security
security:
bandit -s B101 -r aea packages scripts
bandit -s B101 -r tests
bandit -s B101 -r benchmark
safety check
bandit -s B101 -r aea benchmark examples packages scripts tests
safety check -i 37524 -i 38038 -i 37776 -i 38039

.PHONY: static
static:
mypy aea benchmark packages tests scripts
mypy aea benchmark examples packages scripts tests

.PHONY: misc_checks
misc_checks:
# pip install '.[all]'
# python scripts/freeze_dependencies.py -o requirements.txt
# liccheck -s strategy.ini -r requirements.txt -l PARANOID
# rm -fr requirements.txt
python scripts/check_copyright_notice.py
python scripts/generate_ipfs_hashes.py --check
python scripts/check_package_versions_in_docs.py

.PHONY: docs
docs:
mkdocs build --clean

.PHONY: common_checks
common_checks: security misc_checks lint static docs

.PHONY: test
test:
Expand Down
3 changes: 2 additions & 1 deletion Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ flake8-docstrings = "==1.5.0"
flake8-import-order = "==0.18.1"
gym = "==0.15.6"
ipfshttpclient = "==0.4.12"
liccheck = "==0.4.0"
liccheck = "==0.4.3"
markdown = ">=3.2.1"
matplotlib = "==3.2.1"
memory-profiler = "==0.57.0"
Expand All @@ -34,6 +34,7 @@ numpy = "==1.18.1"
oef = "==0.8.1"
openapi-core = "==0.13.2"
openapi-spec-validator = "==0.2.8"
pexpect = "==4.8.0"
psutil = "==5.7.0"
pydocstyle = "==3.0.0"
pygments = "==2.5.2"
Expand Down
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,7 @@ The following steps are **only relevant if you intend to contribute** to the rep

- To run bandit security checks:

tox -e bandit-main
tox -e bandit-tests
tox -e bandit

- To start a live-reloading docs server on localhost

Expand Down
34 changes: 34 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Security Policy

This document outlines security procedures and general policies for the `aea` project.

## Supported Versions

The following table shows which versions of `aea` are currently being supported with security updates.

| Version | Supported |
| ------- | ------------------ |
| 0.3.x | :white_check_mark: |
| < 0.3.0 | :x: |

## Reporting a Vulnerability

The `aea` team and community take all security bugs in `aea` seriously. Thank you for improving the security of `aea`. We appreciate your efforts and responsible disclosure and will make every effort to acknowledge your contributions.

Report security bugs by emailing `developer@fetch.ai`.

The lead maintainer will acknowledge your email within 48 hours, and will send a more detailed response within 48 hours indicating the next steps in handling your report. After the initial reply to your report, the security team will endeavor to keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance.

Report security bugs in third-party modules to the person or team maintaining the module.

## Disclosure Policy

When the security team receives a security bug report, they will assign it to a primary handler. This person will coordinate the fix and release process, involving the following steps:

- Confirm the problem and determine the affected versions.
- Audit code to find any potential similar problems.
- Prepare fixes for all releases still under maintenance. These fixes will be released as fast as possible to PyPI.

## Comments on this Policy

If you have suggestions on how this process could be improved please submit a pull request.
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__ = "0.3.1"
__version__ = "0.3.2"
__author__ = "Fetch.AI Limited"
__license__ = "Apache-2.0"
__copyright__ = "2019 Fetch.AI Limited"
2 changes: 1 addition & 1 deletion aea/aea.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ def __init__(
resources: Resources,
loop: Optional[AbstractEventLoop] = None,
timeout: float = 0.05,
execution_timeout: float = 1,
execution_timeout: float = 0,
is_debug: bool = False,
max_reactions: int = 20,
**kwargs,
Expand Down
Loading

0 comments on commit 581be6f

Please sign in to comment.