-
Notifications
You must be signed in to change notification settings - Fork 43
Add a Library principle for supporting smooth OpenTofu adoption. #2729
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
base: main
Are you sure you want to change the base?
Conversation
The latest updates on your projects. Learn more about Vercel for GitHub.
|
WalkthroughAdds a new documentation page describing Gruntwork’s OpenTofu adoption principles and updates the docs sidebar to link to it under Library Concepts → Principles. Changes are content and navigation only; no runtime code or API behavior modified. Changes
Sequence Diagram(s)Not applicable — changes are documentation and sidebar navigation only. Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Pre-merge checks (2 passed, 1 inconclusive)❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
Poem
Tip 👮 Agentic pre-merge checks are now available in preview!Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.
Example: reviews:
pre_merge_checks:
custom_checks:
- name: "Undocumented Breaking Changes"
mode: "warning"
instructions: |
Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal). Please share your feedback with us on this Discord post. 📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
🧹 Nitpick comments (3)
sidebars/docs.js (1)
660-664
: Fix nav label spacing to match the doc title.Use "Support Smooth OpenTofu Adoption" (with a space) for consistency with the page H1 and title case used elsewhere.
- { - label: "Support SmoothOpenTofu Adoption", - type: "doc", - id: "2.0/docs/library/concepts/principles/opentofu-adoption", - }, + { + label: "Support Smooth OpenTofu Adoption", + type: "doc", + id: "2.0/docs/library/concepts/principles/opentofu-adoption", + },docs/2.0/docs/library/concepts/principles/opentofu-adoption.md (2)
3-3
: Verify “co-founder” claim and tighten wording.Please confirm whether “co-founder” is accurate. If not, consider “founding contributor.” Also minor style fixes (hyphenate “open-source,” add “the”).
-Gruntwork is a co-founder and active maintainer of [OpenTofu](https://opentofu.org/), the open source successor to HashiCorp Terraform. We proudly support OpenTofu because we believe that core infrastructure is too critical to run on anything but proven open source technology. In line with this philosophy, Gruntwork IaC Library aims to provide first-class OpenTofu support. +Gruntwork is a founding contributor and active maintainer of [OpenTofu](https://opentofu.org/), the open-source successor to HashiCorp Terraform. We proudly support OpenTofu because we believe core infrastructure is too critical to run on anything but proven open-source technology. In line with this philosophy, the Gruntwork IaC Library aims to provide first-class OpenTofu support.
36-42
: Optional: add a cross-reference to the compatibility doc.Link to “OpenTofu & Terraform Compatibility” for deeper details.
### Cross-variable validation @@ - It addresses direct customer feedback about configuration errors + +See also: [OpenTofu & Terraform Compatibility](/2.0/docs/library/architecture/opentofu-terraform-compatibility).
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (2)
docs/2.0/docs/library/concepts/principles/opentofu-adoption.md
(1 hunks)sidebars/docs.js
(1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/2.0/docs/library/concepts/principles/opentofu-adoption.md
[grammar] ~3-~3: There might be a mistake here.
Context: ...technology. In line with this philosophy, Gruntwork IaC Library aims to provide f...
(QB_NEW_EN)
[grammar] ~5-~5: Ensure spelling is correct
Context: ...neering.stackexchange.com/a/388236) and competiting priorities. This means we must balance ...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~30-~30: There might be a mistake here.
Context: ...ion](#cross-variable-validation) below.) 2. **OpenTofu-specific Features (Discouraged)...
(QB_NEW_EN)
[grammar] ~31-~31: Ensure spelling is correct
Context: ....tf
files. But doing this means extra mintenance, so we will use this approach sparingly...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~31-~31: There might be a mistake here.
Context: ... use this approach sparingly, if at all. 3. Terraform-specific Features: We do not...
(QB_NEW_EN)
[grammar] ~38-~38: There might be a mistake here.
Context: ...n variable
validation blocks) because: - It significantly improves module usabili...
(QB_NEW_EN)
[grammar] ~45-~45: There might be a mistake here.
Context: ...nd OpenTofu ecosystems develop. We will: - Regularly review compatibility requireme...
(QB_NEW_EN)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: Validate generated content
- GitHub Check: validate_build
🔇 Additional comments (2)
docs/2.0/docs/library/concepts/principles/opentofu-adoption.md (2)
21-23
: Reconcile Terraform version policy with feature claims.You state “we do not explicitly test or support Terraform versions beyond 1.5.7,” but later claim cross-variable validation works in “Terraform 1.9+.” Please align these statements (either adjust the policy or the feature claim).
Suggested edits:
-- **OpenTofu**: We support OpenTofu 1.9 for new features that provide significant customer value. +- **OpenTofu**: We support OpenTofu 1.9+ for new features that provide significant customer value. - **Terraform**: We maintain compatibility with Terraform versions that support the same language features we use, but do not explicitly test or support Terraform versions beyond 1.5.7 + . @@ -- It works identically in both OpenTofu 1.9+ and Terraform 1.9+ +- It works identically in OpenTofu 1.9+ and in Terraform versions that implement the same feature.If you do intend to support Terraform ≥ 1.9, update the policy bullet accordingly.
Also applies to: 40-41
24-24
: Use the correct version-constraint block for OpenTofu.OpenTofu may require specifying versions in the “tofu” block (Terraform uses “terraform”). Recommend neutral wording or explicitly mentioning both.
-When we upgrade a module to require a newer version of OpenTofu, we explicitly require that version in the `terraform` block of the module, publish a major module version release in the related git repo, and include clear migration guidance, if applicable. +When we upgrade a module to require a newer version of OpenTofu, we explicitly require that version using the appropriate version-constraint block (e.g., `tofu` for OpenTofu, `terraform` for Terraform), publish a major module version release in the related git repo, and include clear migration guidance, if applicable.
But in the real world, platform engineers face endless module and tooling upgrades, [yak shaves](https://softwareengineering.stackexchange.com/a/388236) and competiting priorities. This means we must balance our desire to embrace the latest OpenTofu functionality with our separate principle of [being judicious with new features](be-judicious-with-new-features.md). | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix typos and link; remove stray leading space.
“competiting” → “competing”; add comma after the link; make the relative link explicit with “./”.
- But in the real world, platform engineers face endless module and tooling upgrades, [yak shaves](https://softwareengineering.stackexchange.com/a/388236) and competiting priorities. This means we must balance our desire to embrace the latest OpenTofu functionality with our separate principle of [being judicious with new features](be-judicious-with-new-features.md).
+But in the real world, platform engineers face endless module and tooling upgrades, [yak shaves](https://softwareengineering.stackexchange.com/a/388236), and competing priorities. This means we must balance our desire to embrace the latest OpenTofu functionality with our separate principle of [being judicious with new features](./be-judicious-with-new-features.md).
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
But in the real world, platform engineers face endless module and tooling upgrades, [yak shaves](https://softwareengineering.stackexchange.com/a/388236) and competiting priorities. This means we must balance our desire to embrace the latest OpenTofu functionality with our separate principle of [being judicious with new features](be-judicious-with-new-features.md). | |
But in the real world, platform engineers face endless module and tooling upgrades, [yak shaves](https://softwareengineering.stackexchange.com/a/388236), and competing priorities. This means we must balance our desire to embrace the latest OpenTofu functionality with our separate principle of [being judicious with new features](./be-judicious-with-new-features.md). |
🧰 Tools
🪛 LanguageTool
[grammar] ~5-~5: Ensure spelling is correct
Context: ...neering.stackexchange.com/a/388236) and competiting priorities. This means we must balance ...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🤖 Prompt for AI Agents
In docs/2.0/docs/library/concepts/principles/opentofu-adoption.md around lines
5-6, fix typos and punctuation: change “competiting” to “competing”, add a comma
after the external link, make the relative link explicit by prefixing it with
"./be-judicious-with-new-features.md", and remove the stray leading space at the
start of the paragraph; update the sentence accordingly so it reads cleanly with
the corrected spelling, comma, and relative link.
What can I say, the AI had good feedback!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
♻️ Duplicate comments (1)
docs/2.0/docs/library/concepts/principles/opentofu-adoption.md (1)
5-6
: Remove stray leading space; add comma after link; make relative link explicit.Also aligns with an earlier review on this paragraph.
- But in the real world, platform engineers face endless module and tooling upgrades, [yak shaves](https://softwareengineering.stackexchange.com/a/388236) and competing priorities. This means we must balance our desire to embrace the latest OpenTofu functionality with our separate principle of [being judicious with new features](be-judicious-with-new-features.md). +But in the real world, platform engineers face endless module and tooling upgrades, [yak shaves](https://softwareengineering.stackexchange.com/a/388236), and competing priorities. This means we must balance our desire to embrace the latest OpenTofu functionality with our separate principle of [being judicious with new features](./be-judicious-with-new-features.md).
🧹 Nitpick comments (5)
docs/2.0/docs/library/concepts/principles/opentofu-adoption.md (5)
3-3
: Add missing article for readability.“Gruntwork IaC Library” reads a bit abrupt; add “the.”
-Gruntwork IaC Library aims to provide first-class OpenTofu support. +The Gruntwork IaC Library aims to provide first-class OpenTofu support.
15-17
: Standardize ordered-list numbering style.Use “1.” for all items to auto-number consistently across sections.
-2. **OpenTofu-specific Features (Discouraged)**: Features that only work in OpenTofu should be placed in `.tofu` files and used sparingly. Terraform ignores `.tofu` files, while OpenTofu reads both `.tf` and `.tofu`. Avoid duplicating the same blocks across both extensions; prefer additive enhancements in `.tofu`. This approach increases maintenance cost, so we will use it only when the user benefit is clear. -3. **Terraform-specific Features**: We do not support Terraform-specific features. +1. **OpenTofu-specific Features (Discouraged)**: Features that only work in OpenTofu should be placed in `.tofu` files and used sparingly. Terraform ignores `.tofu` files, while OpenTofu reads both `.tf` and `.tofu`. Avoid duplicating the same blocks across both extensions; prefer additive enhancements in `.tofu`. This approach increases maintenance cost, so we will use it only when the user benefit is clear. +1. **Terraform-specific Features**: We do not support Terraform-specific features.Also applies to: 30-32
24-24
: Minor wording nit: “git repo” → “repository.”Slightly more formal and tool-agnostic.
-... publish a major module version release in the related git repo, and include clear migration guidance, if applicable. +... publish a major module version release in the related repository, and include clear migration guidance, if applicable.
30-30
: Punctuation: add comma after “e.g.” and tighten phrasing.-1. **Dual-compatible features (Preferred)**: Features that work identically in both OpenTofu and Terraform should be placed in `.tf` files. (e.g. see [cross-variable validation](#cross-variable-validation) below.) +1. **Dual-compatible features (Preferred)**: Features that work identically in both OpenTofu and Terraform should be placed in `.tf` files (e.g., [cross-variable validation](#cross-variable-validation) below).
31-31
: Normalize capitalization: “Features” → “features.”Matches “Dual-compatible features” style.
-2. **OpenTofu-specific Features (Discouraged)**: +2. **OpenTofu-specific features (Discouraged)**:
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
docs/2.0/docs/library/concepts/principles/opentofu-adoption.md
(1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/2.0/docs/library/concepts/principles/opentofu-adoption.md
[grammar] ~3-~3: There might be a mistake here.
Context: ...technology. In line with this philosophy, Gruntwork IaC Library aims to provide f...
(QB_NEW_EN)
[grammar] ~30-~30: There might be a mistake here.
Context: ...ion](#cross-variable-validation) below.) 2. **OpenTofu-specific Features (Discouraged)...
(QB_NEW_EN)
[grammar] ~38-~38: There might be a mistake here.
Context: ...n variable
validation blocks) because: - It significantly improves module usabili...
(QB_NEW_EN)
[grammar] ~45-~45: There might be a mistake here.
Context: ...nd OpenTofu ecosystems develop. We will: -- Regularly review compatibility and ou...
(QB_NEW_EN)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: Validate generated content
- GitHub Check: Pull Request has non-contributor approval
- GitHub Check: validate_build
Summary by CodeRabbit