github.com/franciscocpg/up@v0.1.10/CONTRIBUTING.md (about) 1 # Contributing 2 3 Before contributing to Up you'll need a few things: 4 5 - Install [Golang 1.9](https://golang.org/dl/) for that Go thing if you don't have it 6 - Install [GIT LFS](https://git-lfs.github.com/) for large file management 7 - Install [golang/dep](https://github.com/golang/dep) for dependency management 8 9 The following are optional: 10 11 - Install [pointlander/peg](https://github.com/pointlander/peg) if you're working on the log grammar 12 - Install [jteeuwen/go-bindata](https://github.com/jteeuwen/go-bindata) if you need to bake `up-proxy` into `up` 13 - Or run `make install.deps` to grab these tools 14 15 ## Setup 16 17 Grab Up: 18 19 ``` 20 $ go get github.com/apex/up 21 ``` 22 23 Change into the project: 24 25 ``` 26 $ cd $GOPATH/src/github.com/apex/up 27 ``` 28 29 Grab the dependencies: 30 31 ``` 32 $ dep ensure 33 ``` 34 35 ## Testing 36 37 ``` 38 $ make test 39 ``` 40 41 ## Layout 42 43 Although Up is not provided as a library it is structured as if it was, for organizational purposes. The project layout is loosely: 44 45 - *.go – Primary API 46 - [reporter](reporter) – Event based CLI reporting 47 - [platform](platform) – Platform specifics (AWS Lambda, Azure, Google, etc) 48 - [internal](internal) – Internal utilities and lower level tooling 49 - [http](http) – HTTP middleware for up-proxy 50 - [handler](handler) – HTTP middleware aggregate, effectively the entire proxy 51 - [docs](docs) – Documentation used to generate the static site 52 - [config](config) – Configuration structures and validation for `up.json` 53 - [cmd](cmd) – Commands, where `up` is the CLI and `up-proxy` is serving requests in production 54 55 Note that this is just a first past, and the code / layout will be refactored. View [Godoc](http://godoc.org/github.com/apex/up) for more details of the internals. 56 57 ## Proxy 58 59 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. 60 61 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. 62 63 Reverse proxy features such as URL rewriting, gzip compression, script injection, error pages and others are also provided in `up-proxy`. 64 65 66 ## Financial contributions 67 68 We also welcome financial contributions in full transparency on our [open collective](https://opencollective.com/apex-up). 69 Anyone can file an expense. If the expense makes sense for the development of the community, it will be "merged" in the ledger of our open collective by the core contributors and the person who filed the expense will be reimbursed. 70 71 72 ## Credits 73 74 75 ### Contributors 76 77 Thank you to all the people who have already contributed to apex-up! 78 <a href="graphs/contributors"><img src="https://opencollective.com/apex-up/contributors.svg?width=890" /></a> 79 80 81 ### Backers 82 83 Thank you to all our backers! [[Become a backer](https://opencollective.com/apex-up#backer)] 84 85 <a href="https://opencollective.com/apex-up#backers" target="_blank"><img src="https://opencollective.com/apex-up/backers.svg?width=890"></a> 86 87 88 ### Sponsors 89 90 Thank you to all our sponsors! (please ask your company to also support this open source project by [becoming a sponsor](https://opencollective.com/apex-up#sponsor)) 91 92 <a href="https://opencollective.com/apex-up/sponsor/0/website" target="_blank"><img src="https://opencollective.com/apex-up/sponsor/0/avatar.svg"></a> 93 <a href="https://opencollective.com/apex-up/sponsor/1/website" target="_blank"><img src="https://opencollective.com/apex-up/sponsor/1/avatar.svg"></a> 94 <a href="https://opencollective.com/apex-up/sponsor/2/website" target="_blank"><img src="https://opencollective.com/apex-up/sponsor/2/avatar.svg"></a> 95 <a href="https://opencollective.com/apex-up/sponsor/3/website" target="_blank"><img src="https://opencollective.com/apex-up/sponsor/3/avatar.svg"></a> 96 <a href="https://opencollective.com/apex-up/sponsor/4/website" target="_blank"><img src="https://opencollective.com/apex-up/sponsor/4/avatar.svg"></a> 97 <a href="https://opencollective.com/apex-up/sponsor/5/website" target="_blank"><img src="https://opencollective.com/apex-up/sponsor/5/avatar.svg"></a> 98 <a href="https://opencollective.com/apex-up/sponsor/6/website" target="_blank"><img src="https://opencollective.com/apex-up/sponsor/6/avatar.svg"></a> 99 <a href="https://opencollective.com/apex-up/sponsor/7/website" target="_blank"><img src="https://opencollective.com/apex-up/sponsor/7/avatar.svg"></a> 100 <a href="https://opencollective.com/apex-up/sponsor/8/website" target="_blank"><img src="https://opencollective.com/apex-up/sponsor/8/avatar.svg"></a> 101 <a href="https://opencollective.com/apex-up/sponsor/9/website" target="_blank"><img src="https://opencollective.com/apex-up/sponsor/9/avatar.svg"></a>