Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce locked versions for top-level resources #634

Merged
merged 2 commits into from
Mar 5, 2021

Conversation

mikhailshilkov
Copy link
Member

A very simple approach to fix #512

Basically, the suggested default mode of operation:

  • When a new API version comes out, we'll update our top-level resources to it automatically (that already works)
  • We manually review every update for code-level breaking changes (I already do, see e.g. Breaking changes in API #127)
  • If the review identifies that a new version brought a breaking change, we add an entry to the lockedTypeVersions map below and re-run the generation
  • We assume that the new API version doesn't bring service-level breaking changes that we would want to avoid. We don't really have a way to test for this, so our options are a) take all new versions and rely on MS not breaking the behavior b) don't take any new versions at all. I feel like (b) would be too detrimental to the user experience.
  • Since the review is a manual process, I'm choosing to hard-code the map in code. There's no way to generate it anyway.

We may want to invest in a tool that compares two schemas and detects breaking changes. I'll open an issue once we land this PR.

We'll start applying this policy now and will still have time to learn and iterate if needed before the GA.

@mikhailshilkov mikhailshilkov added the impact/no-changelog-required This issue doesn't require a CHANGELOG update label Mar 5, 2021
@@ -74,6 +74,13 @@ var deprecatedProviderVersions = map[string][]string{
"Sql": {"v20140401", "v20150501"},
}

// A manually-maintained list of versions where we want to use for the top-level resource. The primary goal is to
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// A manually-maintained list of versions where we want to use for the top-level resource. The primary goal is to
// A manually-maintained list of versions that we want to use for the top-level resource. The primary goal is to

@mikhailshilkov mikhailshilkov merged commit 15a6f83 into master Mar 5, 2021
@pulumi-bot pulumi-bot deleted the mikhailshilkov/lock-versions branch March 5, 2021 21:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
impact/no-changelog-required This issue doesn't require a CHANGELOG update
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Keep the top-level resource stable within a major version
3 participants