github.com/apex/up@v1.7.1/CONTRIBUTING.md (about) 1 # Contributing 2 3 Before contributing to Up you'll need a few things: 4 5 - Install [Golang 1.11](https://golang.org/dl/) for that Go thing if you don't have it 6 7 The following are optional: 8 9 - Install [pointlander/peg](https://github.com/pointlander/peg) if you're working on the log grammar 10 - Install [shuLhan/go-bindata](https://github.com/shuLhan/go-bindata) if you need to bake `up-proxy` into `up` 11 12 ## Setup 13 14 Grab Up: 15 16 ``` 17 $ go get github.com/apex/up 18 ``` 19 20 Change into the project: 21 22 ``` 23 $ cd $GOPATH/src/github.com/apex/up 24 ``` 25 26 ## Testing 27 28 ``` 29 $ make test 30 ``` 31 32 ## Layout 33 34 Although Up is not provided as a library it is structured as if it was, for organizational purposes. The project layout is loosely: 35 36 - *.go – Primary API 37 - [reporter](reporter) – Event based CLI reporting 38 - [platform](platform) – Platform specifics (AWS Lambda, Azure, Google, etc) 39 - [internal](internal) – Internal utilities and lower level tooling 40 - [http](http) – HTTP middleware for up-proxy 41 - [handler](handler) – HTTP middleware aggregate, effectively the entire proxy 42 - [docs](docs) – Documentation used to generate the static site 43 - [config](config) – Configuration structures and validation for `up.json` 44 - [cmd](cmd) – Commands, where `up` is the CLI and `up-proxy` is serving requests in production 45 46 Note that this is just a first pass, and the code / layout will be refactored. View [Godoc](http://godoc.org/github.com/apex/up) for more details of the internals. 47 48 ## Proxy 49 50 One oddity is that the `up-proxy` is baked into `up`. Yes there's a binary within the binary :) – this is so `up` can inject the proxy before deploying your function to Lambda. 51 52 The proxy accepts AWS Lambda events from API Gateway, translates them to HTTP, and sends a request to your application, then translates it back to an event that API Gateway understands. 53 54 Reverse proxy features such as URL rewriting, gzip compression, script injection, error pages and others are also provided in `up-proxy`. 55 56 ## Roadmap 57 58 Up uses GitHub issue tracking and milestones for its loose roadmap. I highly recommend installing Zenhub (https://www.zenhub.com/) as well, however I primarily organize by milestones and labels for now. 59 60 ## Releases 61 62 Notes for myself: 63 64 - Run `make clean build` if necessary to re-build the proxy 65 - Run `git changelog` 66 - Run `git release` 67 - Run `make release` 68 - Re-build documentation 69 - Notes about any backwards compat issues, migration, IAM policy changes 70 - Adjust schemastore JSON schema if necessary