hashicorp / hcl2

Former temporary home for experimental new version of HCL
https://github.com/hashicorp/hcl
Mozilla Public License 2.0
373 stars 66 forks source link

Clarification on the future of HCL? #14

Closed eschwartz closed 6 years ago

eschwartz commented 6 years ago

I'm wondering if the Terraform team could provide some clarification on the future of HCL and HCL2. I haven't seen any official mention of HCL2, and only found out about it via vague references in terraform github issues. These usually sound something like:

We're not going to address this critical Terraform bug/deficiency/feature, because we're focusing all of our efforts on a new version of the HCL language. Hopefully, your bug/deficiency/feature will be addressed in HCL2.

On the one hand, I'm very excited about a new version of HCL. As much as I love Terraform, it quickly become clear that the current iteration of HCL is a little rough around the edges. I'd love to put all my hopes and dreams into a promised shiny new version of HCL.

On the other hand, the prospect of a backwards-incompatible language change kind of freaks me out. Should developers hold off on using Terraform in production until HCL v2 is released? Do we need to budget time a for full rewrite of all existing modules? Will the Terraform team provide some kind of tooling to make the transition smoother?

I hope I'm not coming across as too snarky. I really love Terraform, and despite all of its rough-edges, it is still the best thing out there for what it does. It would just be nice to see some official communication from the Terraform team on this matter, so users can plan accordingly.

Thank you!

apparentlymart commented 6 years ago

Hi @eschwartz,

This is more of a Terraform question than it is an HCL question, but I'll answer it here since there seem to be others monitoring this issue.

More details will come once we've had more time to test with existing configurations (happening right now) but broadly-speaking this is the situation:

We've already been doing some "shallow" testing of the parser/loader and have generally found only minor deviations at the syntax level that have been easy to fix. More in-depth testing will follow as the rest of Terraform is updated.

There will be more details about this once we get close to the aforementioned preview release. I'd ask that we have any further discussion about this in the Terraform repository rather than this repository, since this relates primarily to Terraform's transition and not to the HCL language itself, and almost all of the remaining work will actually be in the Terraform repository rather than this one.

eschwartz commented 6 years ago

Thank you for responding! This helps ease some of my concerns

vfab commented 6 years ago

Are you closing in on a release date for HCL2? I haven't found any recent updates on HCL2.

apparentlymart commented 6 years ago

This repository will be "released" (i.e. no longer marked as experimental) as part of preparing the first Terraform release that uses it. Since Terraform development is currently driving HCL development (Terraform being one of the most complex applications that's likely to use HCL in the near future) there may be changes here in response to issues found during Terraform development or during its prerelease phase.