Maintainer Specific: Merging Pull Requests#
Note: All pull requests must be reviewed and approved before they are merged.
Commit Type#
All pull requests must be merged using the "Squash and merge" option. This ensures a clean commit history and simplifies either reverting changes or cherry-picking commits in the future.
Commit Message Format#
When merging a PR, the commit message should clearly describe the change being introduced. If the PR is correctly named (as described in this guide), then the title can be used as-is. Otherwise, update the title to reflect the purpose of the PR in a way that will be meaningful in the Git history and use that as the message.
Adding a changelog entry#
When a PR is opened, it may require a changelog entry. While most PRs deserve a changelog entry, not every change should be included in the changelog as some have no user-facing impact. Some examples of PRs that should not be included are:
- Unit and acceptance test fixes
- Refactoring
- Documentation changes
- Deprecations (these must have an entry in the
{major}.0-upgrade-guide.html.markdownfile instead)
Otherwise, every PR that affects users should include a changelog entry file. This file should be located in the .changelog directory, and the file's name must be <PR number>.hcl.
To ensure consistency, and to group entries in the appropriate section, this repository uses a CLI tool to validate and add entries. To view the types of changes, run make changelog-types.
When adding a changelog entry, the following rules should be followed:
- Run
make changelog-typesto print a list of change types, use the most specific one. Each type provides an example format, this is validated using regex. - Run
make changelog TYPE=<type> BODY='<body>' [PR=<num>]to add a new entry, commit the resulting file to the PR. IfPRis omitted, e.g. when adding an entry before opening a PR, a placeholder filename of0.hclwill be used. This will need to be renamed once the PR has been opened. - Be consistent! Follow the formatting and language of the surrounding entries.
- Entries should start with a lower case, not end in a period, and always use the serial (oxford) comma.
- Each resource affected should be listed in full, i.e. do not use something like
azurerm_cosmosdb_*. - Entries should read as complete sentences such as
add support for the `new_feature` propertyorimprove validation of the `existing_feature` property, notsupport `new_feature`.
Here is a list of common changelog entries and how they should be formatted:
# X.YY.0 (Unreleased)
FEATURES:
* **New Action**: `azurerm_action` [GH-12345]
* **New Data Source**: `azurerm_data_source` [GH-12345]
* **New List Resource**: `azurerm_resource` [GH-12345]
* **New Resource**: `azurerm_resource` [GH-12345]
ENHANCEMENTS:
* dependencies: `go-azure-sdk` - update to `v0.20250101.1123456` [GH-12345]
* dependencies: `service` - update API version to `2021-12-01` [GH-12345]
* Data Source: `azurerm_data_source` - export the `value` attribute [GH-12345]
* `azurerm_resource` - the `sku` property can now be updated to `Basic` or `Standard` without recreating the resource [GH-12345]
* `azurerm_resource` - add support for the `thing1` property [GH-12345]
* Action: `azurerm_action` - add support for the `thing1` property [GH-12345]
* List Resource: `azurerm_resource` - add support for the `thing1` property [GH-12345]
* `azurerm_resource` - add support for the `block1` block [GH-12345]
* `azurerm_resource` - add support for the `thing2`, `thing3`, and `thing4` properties [GH-12345]
* `azurerm_resource` - add support for the `block2`, `block3`, and `block4` blocks [GH-12345]
* `azurerm_resource` - improve validation for the `termination_notification.timeout` property [GH-12345]
BUG FIXES:
* provider: `provider_feature` now correctly reads the default value from an environment variable [GH-12345]
* Data Source: `azurerm_data_source` - prevent a possible crash by setting `queue_name` correctly [GH-12345]
* Data Source: `azurerm_data_source` - correctly populate the `kind` and `os_type` attributes [GH-12345]
* `azurerm_data_factory_dataset_delimited_text` - set defaults properly for `column_delimiter`, `quote_character`, `escape_character`, `first_row_as_header`, and `null_value` [GH-12345]
* `azurerm_linux_function_app` - correctly deduplicate user `app_settings` [GH-12345]
* `azurerm_windows_function_app_slot` - correctly deduplicate user `app_settings` [GH-12345]