github.com/aws-cloudformation/cloudformation-cli-go-plugin@v1.2.0/README.md (about)

     1  ## AWS CloudFormation Resource Provider Go Plugin
     2  
     3  The CloudFormation CLI (cfn) allows you to author your own resource providers that can be used by CloudFormation.
     4  
     5  This plugin library helps to provide Go runtime bindings for the execution of your providers by CloudFormation.
     6  
     7  Usage
     8  -----
     9  
    10  If you are using this package to build resource providers for CloudFormation, install the [CloudFormation CLI Go Plugin](https://github.com/aws-cloudformation/cloudformation-cli-go-plugin) - this will automatically install the the [CloudFormation CLI](https://github.com/aws-cloudformation/cloudformation-cli)! A Python virtual environment is recommended.
    11  
    12  ```bash
    13  pip3 install cloudformation-cli-go-plugin
    14  ```
    15  
    16  Refer to the documentation for the [CloudFormation CLI](https://github.com/aws-cloudformation/cloudformation-cli) for usage instructions.
    17  
    18  Development
    19  -----------
    20  
    21  For changes to the plugin, a Python virtual environment is recommended. Check out and install the plugin in editable mode:
    22  
    23  ```bash
    24  python3 -m venv env
    25  source env/bin/activate
    26  pip3 install -e /path/to/cloudformation-cli-go-plugin
    27  ```
    28  
    29  You may also want to check out the [CloudFormation CLI](https://github.com/aws-cloudformation/cloudformation-cli) if you wish to make edits to that. In this case, installing them in one operation works well:
    30  
    31  ```bash
    32  pip3 install \
    33    -e /path/to/cloudformation-cli \
    34    -e /path/to/cloudformation-cli-go-plugin
    35  ```
    36  
    37  That ensures neither is accidentally installed from PyPI.
    38  
    39  Linting and running unit tests is done via [pre-commit](https://pre-commit.com/), and so is performed automatically on commit. The continuous integration also runs these checks. Manual options are available so you don't have to commit:
    40  
    41  ```bash
    42  # run all hooks on all files, mirrors what the CI runs
    43  pre-commit run --all-files
    44  # run unit tests only. can also be used for other hooks, e.g. black, isort, pytest-local
    45  pre-commit run pytest-local
    46  ```
    47  
    48  Use `./generate-examples.sh` to run install `cloudformation-cli-go-plugin` locally and run `cfn generate` in each example.
    49  
    50  Getting started
    51  ---------------
    52  
    53  This plugin create a sample Go project and requires golang 1.8 or above and [godep](https://golang.github.io/dep/docs/introduction.html). For more information on installing and setting up your Go environment, please visit the official [Golang site](https://golang.org/).
    54  
    55  Community
    56  ---------------
    57  
    58  Join us on Discord! Connect & interact with CloudFormation developers &
    59  experts, find channels to discuss and get help for cfn-lint, CloudFormation registry, StackSets,
    60  Guard and more:
    61  
    62  [![Join our Discord](https://discordapp.com/api/guilds/981586120448020580/widget.png?style=banner3)](https://discord.gg/9zpd7TTRwq)
    63  
    64  License
    65  -------
    66  
    67  This library is licensed under the Apache 2.0 License.