Contributor guide
Architect is an open source project and you can totally help out! Contributing doesn't just mean landing code. It can be reporting bugs, helping us triage bugs, suggesting new features, writing docs, sharing examples and plain kicking it in our community chat. These are all helpful contributions!
Agreement to the Architect Code of Conduct
By participating in and contributing to the Architect community — including, but not limited to its open source projects, any related online venues such as GitHub, Slack, and in-person events, etc. — you agree to the Architect Code of Conduct.
Lack of familiarity with this Code of Conduct is not an excuse for not adhering to it.
Project Code Structure
The Architect project distribution code is bundled in architect/architect
which also serves as the primary project issue tracker.
The Architect project is composed of multiple core code repositories on GitHub:
architect/parser
- parser/lexer for arcfile formats (.arc
,app.arc
,arc.json
,arc.yaml
,arc.yml
andarc.toml
)architect/package
- a pure function that consumesarchitect/parser
output and returns a CloudFormation documentarchitect/deploy
- a wrapper for the AWS CLIpackage
anddeploy
commandsarchitect/sandbox
- the local sandbox (mocks API Gateway, SNS, SQS, DynamoDB, and Lambda)architect/env
- read/write arcfile project environment variables with SSMarchitect/hydrate
- ensures function deps are synced (including src/shared and src/views)architect/logs
- read/write function CloudWatch logsarchitect/create
- code generation
Projects built with Architect are encouraged to use the following runtime helper libraries:
architect/functions
- runtime helpers for NodeJSarchitect/functions-python
- runtime helpers for Pythonarchitect/functions-ruby
- runtime helpers for Ruby
Note: runtime helpers are not required to use Architect; they do make dealing with AWS nicer however
Architect project documentation is in the following repos:
- architect/arc.codes.next - new docs site in progress (version 6+)
- architect/arc.codes - the primary documentation website (version 6)
- architect/v5.arc.codes - version 5 docs site
Helping out
We are always happy to accept a pull request to any of the repositories above. If you have a larger problem to solve or idea for a new feature please file an issue for community discussion. If you're having a time sensitive problem and need to talk things through you can almost always find someone in our community chat. It's also a great place to socialize new ideas and to solicit help on how to model specific serverless patterns.
Please help us by making it easy for us to help you! If you are experiencing a bug, please, have a reduced test case and steps to reproduce prepared. In our process, the first step to resolution is to create a failing test case so we can be sure there are no future regressions. By having a reduced case, even just an example project, and steps to reproduce you will save us all time getting to the fix!