github.com/motyar/up@v0.2.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  Grab the dev dependencies:
    36  
    37  ```
    38  make install.deps
    39  ```
    40  
    41  ## Testing
    42  
    43  ```
    44  $ make test
    45  ```
    46  
    47  ## Layout
    48  
    49  Although Up is not provided as a library it is structured as if it was, for organizational purposes. The project layout is loosely:
    50  
    51  - *.go – Primary API
    52  - [reporter](reporter) – Event based CLI reporting
    53  - [platform](platform) – Platform specifics (AWS Lambda, Azure, Google, etc)
    54  - [internal](internal) – Internal utilities and lower level tooling
    55  - [http](http) – HTTP middleware for up-proxy
    56  - [handler](handler) – HTTP middleware aggregate, effectively the entire proxy
    57  - [docs](docs) – Documentation used to generate the static site
    58  - [config](config) – Configuration structures and validation for `up.json`
    59  - [cmd](cmd) – Commands, where `up` is the CLI and `up-proxy` is serving requests in production
    60  
    61  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.
    62  
    63  ## Proxy
    64  
    65  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.
    66  
    67  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.
    68  
    69  Reverse proxy features such as URL rewriting, gzip compression, script injection, error pages and others are also provided in `up-proxy`.
    70  
    71  ## Roadmap
    72  
    73  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.
    74  
    75  ## Financial contributions
    76  
    77  We also welcome financial contributions in full transparency on our [open collective](https://opencollective.com/apex-up).
    78  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.
    79  
    80  
    81  ## Credits
    82  
    83  ### Contributors
    84  
    85  Thank you to all the people who have already contributed to apex-up!
    86  <a href="graphs/contributors"><img src="https://opencollective.com/apex-up/contributors.svg?width=890" /></a>
    87  
    88  
    89  ### Backers
    90  
    91  Thank you to all our backers! [[Become a backer](https://opencollective.com/apex-up#backer)]
    92  
    93  <a href="https://opencollective.com/apex-up#backers" target="_blank"><img src="https://opencollective.com/apex-up/backers.svg?width=890"></a>
    94  
    95  
    96  ### Sponsors
    97  
    98  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))
    99  
   100  <a href="https://opencollective.com/apex-up/sponsor/0/website" target="_blank"><img src="https://opencollective.com/apex-up/sponsor/0/avatar.svg"></a>
   101  <a href="https://opencollective.com/apex-up/sponsor/1/website" target="_blank"><img src="https://opencollective.com/apex-up/sponsor/1/avatar.svg"></a>
   102  <a href="https://opencollective.com/apex-up/sponsor/2/website" target="_blank"><img src="https://opencollective.com/apex-up/sponsor/2/avatar.svg"></a>
   103  <a href="https://opencollective.com/apex-up/sponsor/3/website" target="_blank"><img src="https://opencollective.com/apex-up/sponsor/3/avatar.svg"></a>
   104  <a href="https://opencollective.com/apex-up/sponsor/4/website" target="_blank"><img src="https://opencollective.com/apex-up/sponsor/4/avatar.svg"></a>
   105  <a href="https://opencollective.com/apex-up/sponsor/5/website" target="_blank"><img src="https://opencollective.com/apex-up/sponsor/5/avatar.svg"></a>
   106  <a href="https://opencollective.com/apex-up/sponsor/6/website" target="_blank"><img src="https://opencollective.com/apex-up/sponsor/6/avatar.svg"></a>
   107  <a href="https://opencollective.com/apex-up/sponsor/7/website" target="_blank"><img src="https://opencollective.com/apex-up/sponsor/7/avatar.svg"></a>
   108  <a href="https://opencollective.com/apex-up/sponsor/8/website" target="_blank"><img src="https://opencollective.com/apex-up/sponsor/8/avatar.svg"></a>
   109  <a href="https://opencollective.com/apex-up/sponsor/9/website" target="_blank"><img src="https://opencollective.com/apex-up/sponsor/9/avatar.svg"></a>
   110  
   111  ## Releases
   112  
   113  Notes for myself:
   114  
   115  - Run `make build` if necessary to re-build the proxy
   116  - Run `git changelog`
   117  - Run `git release`
   118  - Run `make release`
   119  - Re-build documentation