This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
We welcome all types of contributions. Bug fixes and documentation updates are great ways to get started contributing. If you're looking to make a more substantial contribution to the provider, consider one of the following options (in order of difficulty).
Contributing examples of using the Power Platform Terraform Provider is a great way to get started. While most of the strongly-typed resources have complete examples, the examples for loosely-typed resources like powerplatform_data_record
only cover a fraction of the possible configuration options. See the /examples/resources/powerplatform_data_record
folder for examples and feel free to suggest and contribute more.
Examples of real-world use cases are encouraged. Please contribute those types of examples to the Power Platform Terraform QuickStarts repo.
Creating a new data source can allow terraform to read reference data about Power Platform services and infrastrucutre. Implementing a data source will help you learn some of the concepts that will be useful in eventually developing a resource, but data sources are much simpler since you only have to handle reading data. The issue backlog contains a list of proposed data sources that may need a contributor.
Creating a new resource can allow terraform to manage new Power Platform infrastructure not currently provided by the provider. Resources are the most complex since you need to implement the full resource lifecycle. Feel free to add a comment to the issue if you'd like to start a conversation on making a contribution for that resource request. The issue backlog contains a list of proposed resources that may need a contributor.
PRs for new resources or data sources are expected to meeting the following criteria:
- Add a production quality implementation of the resource or datasource in /internal
- Add unit tests and acceptance tests for your contribution in /internal.
- Tests should pass and provide >80% coverage of your contribution
- Add examples for your contribution in /examples (see Terraform Documentaion on examples)
- Add schema descriptions for your resource or data source in /internal
- and/or /templates
- Update auto-generated documentation in /docs. (Don't manually edit /docs or your updates will be overwritten)
- Ensure the PR description clearly describes the feature you're adding and any known limitations (We recommend using GitHub Copilot for PR descriptions)
Below are some points which emphasize why inclusivity in code reviews is important:
- Code reviews are an important part of our job as software professionals.
- We work with cross cultural teams from across the globe.
- How we communicate affects team morale.
- Inclusive code reviews welcome new developers and make them comfortable with the team.
- Rude or personal attacks doing code reviews alienate - people can unknowingly make rude comments when reviewing pull requests (PRs). We consider it important to be inclusive when reviewing PRs. If you want to see how to apply this practice and find some examples, you can check the following link: Inclusion in Code Review
Ready to contribute? Check out our Developer Guide for detailed instructions on setting up your development environment, building the provider, and running tests. We look forward to your contributions!