Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add introduction --> core-concepts/framework-architecture #2836

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @5A11 @jrriehl
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE/release.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ _Put an `x` in the boxes that apply._
- [ ] I have added an item in `HISTORY.md` for this release.
- [ ] I bumped the version number in the `aea/__version__.py` file.
- [ ] I bumped the version number in every Docker image of the repo and published it. Also, I built and published them with tag `latest`
(check the READMEs of [`aea-develop`](https://github.com/fetchai/agents-aea/blob/master/develop-image/README.md#publish)
(check the READMEs of [`aea-develop`](https://github.com/fetchai/agents-aea/blob/master/develop-image/README.md#publish)
and [`aea-user`](https://github.com/fetchai/agents-aea/blob/master/develop-image/user-image/README.md#publish))
- [ ] I have pushed the latest packages to the registry.
- [ ] I have uploaded the latest `aea` to PyPI.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ jobs:
sudo apt-get autoclean
- name: Install tox
run: |
pip install tox
pip install tox==3.28.0
- name: Check plugin aea-ledger-cosmos
run: |
tox -r -e plugins_env -- sh -c "pip install ./plugins/aea-ledger-cosmos && aea generate-key cosmos && echo aea-ledger-cosmos checked!"
Expand Down
25 changes: 13 additions & 12 deletions AUTHORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@

This is the official list of the AEA Framework authors:

* Ali Hosseini <[email protected]> [5A11](https://github.com/5A11)
* Yuri Turchenkov <[email protected]> [solarw](https://github.com/solarw)
* James Riehl <[email protected]> [jrriehl](https://github.com/jrriehl)
* Marco Favorito <[email protected]> [MarcoFavorito](https://github.com/MarcoFavorito)
* David Minarsch <[email protected]> [DavidMinarsch](https://github.com/DavidMinarsch)
* Aristotelis Triantafyllidis <[email protected]> [Totoual](https://github.com/Totoual)
* Diarmid Campbell <[email protected]> [dishmop](https://github.com/dishmop)
* Oleg Panasevych <[email protected]> [Panasevychol](https://github.com/panasevychol)
* Kevin Chen <[email protected]> [Kevin-Chen0](https://github.com/Kevin-Chen0)
* Lokman Rahmani <[email protected]> [lrahmani](https://github.com/lrahmani)
* Jiří Vestfál <[email protected]> [MissingNO57](https://github.com/MissingNO57)
* Ed Fitzgerald <[email protected]> [ejfitzgerald](https://github.com/ejfitzgerald)
### Lead

- Ali Hosseini <[email protected]> [5A11](https://github.com/5A11)

### Primary Current and Past Contributors

- James Riehl [jrriehl](https://github.com/jrriehl)
- David Minarsch [DavidMinarsch](https://github.com/DavidMinarsch)
- Marco Favorito [MarcoFavorito](https://github.com/MarcoFavorito)
- Yuri Turchenkov [solarw](https://github.com/solarw)
- Oleg Panasevych [Panasevychol](https://github.com/panasevychol)
- Lokman Rahmani [lrahmani](https://github.com/lrahmani)
- Jiří Vestfál [MissingNO57](https://github.com/MissingNO57)
29 changes: 29 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
cff-version: 1.2.0
message: "If you use the AEA framework in your research, please cite it as below:"
title: Autonomous Economic Agent (AEA) Framework
authors:
- family-names: Hosseini
given-names: Seyed Ali
- family-names: Minarsch
given-names: David
- family-names: Favorito
given-names: Marco
- family-names: Riehl
given-names: James
- family-names: Turchenkov
given-names: Yuri
- family-names: Panasevych
given-names: Oleg
- family-names: Rahmani
given-names: Lokman
- family-names: Vestfál
given-names: Jiří
- family-names: Triantafyllidis
given-names: Aristotelis
- family-names: Campbell
given-names: Diarmid
- family-names: Chen
given-names: Kevin
date-released: "2019-08-21"
url: "https://github.com/fetchai/agents-aea/"
license: "Apache-2.0"
28 changes: 14 additions & 14 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Contributor Covenant Code of Conduct
# Code of Conduct

## Our Pledge

Expand All @@ -10,19 +10,19 @@ We pledge to act and interact in ways that contribute to an open, welcoming, div

Examples of behavior that contributes to a positive environment for our community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall community
- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
- Focusing on what is best not just for us as individuals, but for the overall community

Examples of unacceptable behavior include:

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

## Enforcement Responsibilities

Expand Down Expand Up @@ -70,9 +70,9 @@ Community leaders will follow these Community Impact Guidelines in determining t

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][https://www.contributor-covenant.org], version 2.1,
available at [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html](https://www.contributor-covenant.org/version/2/1/code_of_conduct.html).
This Code of Conduct is adapted from the <https://www.contributor-covenant.org>, version 2.1,
available at <https://www.contributor-covenant.org/version/2/1/code_of_conduct.html>.

Community Impact Guidelines were inspired by [Mozilla’s code of conduct enforcement ladder](https://github.com/mozilla/diversity).

For answers to common questions about this code of conduct, see the FAQ at [https://www.contributor-covenant.org/faq](https://www.contributor-covenant.org/faq). Translations are available at [https://www.contributor-covenant.org/translations](https://www.contributor-covenant.org/translations).
For answers to common questions about this code of conduct, see the FAQ at <https://www.contributor-covenant.org/faq>. Translations are available at <https://www.contributor-covenant.org/translations>.
124 changes: 34 additions & 90 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
# Contributing
# Contribution Guidelines

Contributions to the framework, plugins, related tools and packages are welcome! Every little helps and credit will always be given.

As a contributor, here are the guidelines we would like you to follow:
Contributions to the framework, plugins, packages and related tools are welcome. As a contributor, here are the guidelines we would like you to follow:

- [Code of Conduct](#coc)
- [Question or Problem?](#question)
Expand All @@ -11,32 +9,30 @@ As a contributor, here are the guidelines we would like you to follow:
- [Submission Guidelines](#submit)
- [Coding Rules](#rules)
- [Commit Message Guidelines](#commit)
- [Development Guidelines](#dev)

## <a name="coc"></a> Code of Conduct

Please read and follow our [Code of Conduct][coc].

## <a name="question"></a> Question or Problem?

Use [Github Discussions][ghdiscussion] to ask support-related questions. This is because:
Please use [GitHub Discussions][ghdiscussion] for support related questions and general discussions. Do NOT open issues as they are for bug reports and feature requests. This is because:

- Questions and answers stay available for public viewing so your question/answer might help someone else.
- Github Discussions voting system ensures the best answers are prominently visible.

Do not open issues for general support questions; they are used for bug reports and feature requests.
- GitHub Discussions voting system ensures the best answers are prominently visible.

## <a name="issue"></a> Found a Bug?

If you find a bug in the source code, [submit a bug report issue](#submit-issue) to our [GitHub repository][github].
If you find a bug in the source code [submit a bug report issue](#submit-issue).
Even better, you can [submit a Pull Request](#submit-pr) with a fix.

## <a name="feature"></a> Missing a Feature?
You can *request* a new feature by [submitting a feature request issue](#submit-issue) to our [GitHub repository][github].

You can *request* a new feature by [submitting a feature request issue](#submit-issue).
If you would like to *implement* a new feature:

* For a **Major Feature**, first open an issue and outline your proposal so that it can be discussed.
* **Small Features** can be crafted and directly [submitted as a Pull Request](#submit-pr).
- For a **Major Feature**, first [open an issue](#submit-issue) and outline your proposal so that it can be discussed.
- **Small Features** can be crafted and directly [submitted as a Pull Request](#submit-pr).

## <a name="submit"></a> Submission Guidelines

Expand All @@ -46,28 +42,28 @@ Before you submit an issue, please search the [issue tracker][issues]. An issue

For bug reports, it is important that we can reproduce and confirm it. For this, we need you to provide a minimal reproduction instruction (this is part of the bug report issue template).

You can file new issues by selecting from our [new issue templates](https://github.com/fetchai/agents-aea/issues/new/choose) and filling out the issue template.
You can file new issues by selecting from our [new issue templates][new-issue] and filling out the issue template.

### <a name="submit-pr"></a> Submitting a Pull Request (PR)

Before you submit your Pull Request (PR) consider the following guidelines:

1. All Pull Requests should be based off of and opened against the `develop` branch. Do **not** open a Pull Request against `main`!

2. Search [Existing PRs](https://github.com/fetchai/agents-aea/pulls) for an open or closed PR that relates to your submission.
2. Search [Existing PRs][prs] for an open or closed PR that relates to your submission.
You don't want to duplicate existing efforts.

3. Be sure that an issue describes the problem you're fixing, or the design for the feature you'd like to add.
3. Be sure that an issue exists describing the problem you're fixing, or the design for the feature you'd like to add.

4. [Fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) the fetchai/agents-aea repo.
4. [Fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) the [repository][github].

5. In your forked repository, make your changes in a new git branch created from the `develop` branch.

6. Make your changes, **including appropriate test cases**.
6. Make your changes, **including test cases** and updating documentation where appropriate.

7. Follow our [coding rules](#rules).

8. Run all tests and checks locally, as described in the [development guide](#dev), and ensure they pass. This saves CI hours and ensures you only commit clean code.
8. Run all tests and checks locally, as described in the [development guide][developing], and ensure they pass. This saves CI hours and ensures you only commit clean code.

9. Commit your changes using a descriptive commit message that follows our [commit message conventions](#commit).

Expand All @@ -79,7 +75,7 @@ Before you submit your Pull Request (PR) consider the following guidelines:

#### Reviewing a Pull Request

The AEA team reserves the right not to accept pull requests from community members who haven't been good citizens of the community. Such behavior includes not following our [code of conduct][coc] and applies within or outside of the managed channels.
The AEA team reserves the right not to accept pull requests from community members who haven't been good citizens of the community. Such behavior includes not following our [code of conduct][coc] and applies within or outside the managed channels.

When you contribute a new feature, the maintenance burden is transferred to the core team. This means that the benefit of the contribution must be compared against the cost of maintaining the feature.

Expand All @@ -98,84 +94,32 @@ If we ask for changes via code reviews then:
After your pull request is merged, you can safely delete your branch and pull the changes from the (upstream) repository.

## <a name="rules"></a> Coding Rules
To ensure consistency throughout the source code, keep these rules in mind as you are working:

* All code must pass our code quality checks (linters, formatters, etc). See the [development guide](#dev) section for more detail.
* All features or bug fixes **must be tested** via unit-tests and if applicable integration-tests. These help to, a) prove that your code works correctly, and b) guard against future breaking changes and lower the maintenance cost.
* All public features **must be documented**.
* All files must include a license header.

## <a name="commit"></a> Commit Message Format

Please follow the [Conventional Commits v1.0.0][convcommit].

##### Types

The commit types (see [Conventional Commits v1.0.0][convcommit]) must be one of the following:

* **build**: Changes that affect the build system or external dependencies
* **ci**: Changes to our CI configuration files and scripts
* **docs**: Documentation only changes
* **feat**: A new feature
* **fix**: A bug fix
* **perf**: A code change that improves performance
* **refactor**: A code change that neither fixes a bug nor adds a feature
* **test**: Adding missing tests or correcting existing tests

## <a name="dev"></a> Development Guide

### To set up

First, set up your environment by either using the `develop-image` or by following these steps:

- Install Python (version `3.8`, `3.9` or `3.10`) and `poetry`. Then run:

make new-env
poetry shell

- The project uses [Google Protocol Buffers](https://developers.google.com/protocol-buffers/) compiler for message serialization. A guide on how to install it is found [here](https://fetchai.github.io/oef-sdk-python/user/install.html#protobuf-compiler).

### During development

We have various commands which are helpful during development.

- For linting and static analysis use:

make lint
make mypy
make pylint
make security

- For checking packages integrity:

make package-checks

- To run tests: `make test`.

- For testing `aea.{SUBMODULE}` with `tests/test_{TESTMODULE}` use:

make dir={SUBMODULE} tdir={TESTMODULE} test-sub

e.g.

make dir=cli tdir=cli test-sub

- When making changes to one of the `packages`, then use `python scripts/generate_ipfs_hashes.py` to generate the latest hashes.

#### Go Development
To ensure consistency throughout the source code, keep these rules in mind as you are working:

- The `fetchai/p2p_libp2p` package is partially developed in Go.
- All code must pass our code quality checks (linters, formatters, etc). See the [development guide][developing] section for more detail.
- All features or bug fixes **must be tested** via unit-tests and if applicable integration-tests. These help to, a. prove that your code works correctly, and b. guard against future breaking changes and lower the maintenance cost.
- All public features **must be documented**.
- All files must include a license header.

- To install Go visit the [Golang site](https://golang.org/doc/install).
## <a name="commit"></a> Commit Message Convention

- We use [`golines`](https://github.com/segmentio/golines) and [`golangci-lint`](https://golangci-lint.run) for linting.
Please follow the [Conventional Commits v1.0.0][convcommit]. The commit types must be one of the following:

- To run tests, use `go test -p 1 -timeout 0 -count 1 -v ./...` from the root directory of the package. If you experience installation or build issues run `go clean -modcache`.
- **build**: Changes that affect the build system or external dependencies
- **ci**: Changes to our CI configuration files and scripts
- **docs**: Documentation only changes
- **feat**: A new feature
- **fix**: A bug fix
- **nfunc**: Code that improves some non-functional characteristic, such as performance, security, ...
- **refactor**: A code change that neither fixes a bug nor adds a feature
- **test**: Adding missing tests or correcting existing tests

[coc]: https://github.com/fetchai/agents-aea/blob/main/CODE_OF_CONDUCT.md
[developing]: https://github.com/fetchai/agents-aea/blob/main/DEVELOPING.md
[ghdiscussion]: https://github.com/fetchai/agents-aea/discussions
[issues]: https://github.com/fetchai/agents-aea/issues
[new-issue]: https://github.com/fetchai/agents-aea/issues/new/choose
[prs]: https://github.com/fetchai/agents-aea/pulls
[convcommit]: https://www.conventionalcommits.org/en/v1.0.0/
[dev-doc]: https://github.com/angular/angular/blob/main/docs/DEVELOPER.md
[github]: https://github.com/fetchai/agents-aea
[discord]: https://bit.ly/3ra5uMI
Loading