First, thanks for contributing to Pulumi and helping make it better. We appreciate the help! This repository is one of many across the Pulumi ecosystem and we welcome contributions to them all.
Please make sure to read and observe our Contributor Code of Conduct.
You are welcome to join the Pulumi Community Slack for questions and a community of like-minded folks. We discuss features and file bugs on GitHub via Issues as well as Discussions. You can read about our public roadmap on the Pulumi blog.
Feel free to pick up any existing issue that looks interesting to you or fix a bug you stumble across while using Pulumi. No matter the size, we welcome all improvements.
For larger features, we'd appreciate it if you open a new issue before investing a lot of time so we can discuss the feature together. Please also be sure to browse current issues to make sure your issue is unique, to lighten the triage burden on our maintainers. Finally, please limit your pull requests to contain only one feature at a time. Separating feature work into individual pull requests helps speed up code review and reduces the barrier to merge.
You'll want to install the following on your machine:
- Go (a supported version)
- Golangci-lint
- gofumpt: see installation for editor setup instructions
- Pulumictl
You can get all required dependencies with brew and npm
brew install go@1.21 golangci/tap/golangci-lint gofumpt pulumi/tap/pulumictl
We use make
as our build system, so you'll want to install that as well, if you don't have it already.
pulumi-converter-terraform
uses Go modules to manage
dependencies. If you want to develop pulumi-converter-terraform
itself, you'll need to have
Go installed in order to build. Once this prerequisite is installed, run the following
to build the pulumi-converter-terraform
binary and install it into $GOPATH/bin
:
$ make install
Go should automatically handle pulling the dependencies for you.
If $GOPATH/bin
is not on your path, you may want to move the pulumi-converter-terraform
binary from $GOPATH/bin
into a directory that is on your path.
For contributors we use the standard fork based workflow: Fork this repository, create a topic branch, and when ready, open a pull request from your fork.
Before you open a pull request, make sure all lint checks pass:
$ make lint
If you see formatting failures, fix them by running gofumpt on your code:
$ gofumpt -w path/to/file.go
# or
$ gofumpt -w path/to/dir
We're sure there are rough edges and we appreciate you helping out. If you want to talk with other folks in the Pulumi community (including members of the Pulumi team) come hang out in the #contribute
channel on the Pulumi Community Slack.