contributing/FAQ.md
When you submit an enhancement request, the maintainers looks at your issue first. Given the size of the code, adding a new feature is always a careful balancing act. The core team takes the following points into consideration:
Depending on the maintainers's review, a feature request can have the following outcomes:
help wanted label and waits for community volunteers to develop it.needs community input label. If you are interested in the feature and would like to use it, please add a reaction to the issue and add a description on specifically what problem it would solve for you in a comment.First of all, thank you for volunteering! Before you begin coding, please take a minute to answer the following questions:
#dev-general channel on the OpenTofu Slack so a maintainers member can clarify it.#dev-general on the OpenTofu Slack for a quick answer. (Please avoid DMs as the person you are DM'ing may not be available or know the answer.)pending-decision: there is no decision if this issue will be implemented yet. You can show your support for this issue by commenting on it and describing what implementing this issue would solve for you.pending-steering-committee-decision: the maintainers has referred this issue to the Technical Steering Committee for a decision.accepted: the issue is accepted for development by either the maintainers or a community contributor. Please check if it's assigned to someone and comment on the issue if you want to work on it.help wanted: this issue is open for community contributions. Please check if it's assigned to someone and comment on the issue if you want to work on it.good first issue: this issue is relatively simple. If you are looking for a first contribution, this may be for you. Please check if it's assigned to someone and comment on the issue if you want to work on it.bug: it's broken and needs to be fixed.enhancement: it's a short-form feature request. If the implementation path is unclear, an rfc may be needed in addition.documentation: something that needs a description on the OpenTofu website.rfc: a long-form discussion on building a feature or solving bug, see RFC.question: the maintainers needs more information on the issue to decide.needs-community-input: the maintainers needs to see how many people are affected by this issue. You can provide feedback by using reactions on the issue and adding your use case in the comments. (Please describe what problem it would solve for you specifically.)needs-rfc: this issue needs a detailed technical description on how it would be implemented in the form of an RFC.Please accept our apologies, sometimes issues and comments fall through the cracks. Please post in #dev-general on the OpenTofu Slack to alert the maintainers members to the lack of an answer.
tofu version, it contains a -dev suffix. How do I get rid of it?You can get rid of this suffix by changing the version.dev ldflag:
go build -ldflags "-w -s -X 'github.com/opentofu/opentofu/version.dev=no'" -o tofu ./cmd/tofu
You can build tofu with the experimental features enabled using the main.experimentsAllowed ldflag set to yes:
go build -ldflags "-w -s -X 'main.experimentsAllowed=yes'" -o tofu ./cmd/tofu
It depends. The OpenTofu language is based on the HCL language and the cty typing system. Since both are available under an open source license, and we prefer to keep compatibility as much as possible, we currently don't maintain a fork of these libraries. Language features may need to be partially or fully implemented in HCL or cty and if that is the case, we can't implement them in OpenTofu without changes to the respective libraries beforehand.
HCL is baked into every corner of the OpenTofu codebase, so is here to stay. However, you can use the JSON configuration syntax to write your code in JSON instead of HCL.
We currently only maintain a read-only mirror of these providers for the purposes of building binaries for the OpenTofu registry which would otherwise not be available. They are not true downstream versions that we can add patches to and OpenTofu users expect them to work the same as the upstream versions. In short: no, we cannot fix bugs or add features to these providers.
Currently, we are at capacity for development and do not have additional capacity to take on additional projects unless necessary for the continued work on OpenTofu. While the final determination lies with the Technical Steering Committee, the answer is likely no in almost all cases.