From 41560673fb1b540ff0cd13dda03a75575cc75a62 Mon Sep 17 00:00:00 2001 From: Damian Stasik <920747+damianstasik@users.noreply.github.com> Date: Thu, 7 Sep 2023 15:43:26 +0200 Subject: [PATCH] Add FAQ page (#33) --- docusaurus.config.js | 2 +- faq.mdx | 54 +++++++++++++++++++++++++++++++ src/components/Accordion/Item.tsx | 34 ++++++------------- src/components/FAQ/index.tsx | 50 ++++++++++++---------------- src/pages/faq.tsx | 42 ++++++++++++++++++++++++ 5 files changed, 128 insertions(+), 54 deletions(-) create mode 100644 faq.mdx create mode 100644 src/pages/faq.tsx diff --git a/docusaurus.config.js b/docusaurus.config.js index 959fed63..29031af9 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -92,7 +92,7 @@ const config = { }, { label: "FAQs", - href: "#", + href: "/faq", }, { label: "Blog", diff --git a/faq.mdx b/faq.mdx new file mode 100644 index 00000000..aef3c89d --- /dev/null +++ b/faq.mdx @@ -0,0 +1,54 @@ + + +We strongly prefer joining an existing reputable foundation over creating a +new one. Stay tuned for additional details in the coming week. + + + + + +Under a well-known and widely-accepted license that companies can trus, that +won’t suddenly change in the future, and isn’t subhect to the whims of a singe +vendor. Under a well-known and widely-accepted license that companies can +trus, that won’t suddenly change in the future, and isn’t subhect to the whims +of a singe vendor. + + + + + +How do you know you're not competing with HashiCorp? + +That's not meant to be a redundant or snarky question. The key issue with the BUSL is that the wording is intentionally vague. What does "competing" mean? What does "hosting or embedding" mean? Who decides? + +The answer to all these questions is that, in order to really know if you're a competitor, you have to reach out to HashiCorp. So whether your usage is valid is not controlled by the terms of the license, but is instead entirely at the whim of HashiCorp. They get to decide on a case-by-case basis who is and who isn't a competitor—and they can change their mind at any time. + +That is a very shaky footing on which to build anything. + +At every company you ever work at in the future, before starting to use Terraform, the CTO will have to think about whether HashiCorp could possibly consider you a competitor, now or at any time in the future. The legal team at that company will have to wonder if they want to take the risk of allowing a BUSL license or if they should ban it due to all the uncertainty. Every developer at that company will have to wonder if they want to contribute back to Terraform, given there's no certainty they'll be able to use their own work at a future job. + +In short, the BUSL is a poison pill for the entire Terraform community. + + + + + +Terraform was under the MPL license for ~9 years. This created an understanding—an implicit contract—that Terraform is open-source and you can use it for just about anything you want. Based on that understanding, tens of thousands of developers adopted the tool and contributed back to it. HashiCorp even had all contributors sign a CLA which explicitly said ([link to the CLA in the Internet Archive as HashiCorp](https://web.archive.org/web/20230610041432/https://www.hashicorp.com/cla) has of course removed this wording): + +> HashiCorp is committed to having a true Free and Open Source Software (“FOSS”) license for our non-commercial software. A CLA enables HashiCorp to safely commercialize our products while keeping a standard FOSS license with all the rights that the license grants to users: the ability to use the project in their own projects or businesses, to republish modified source, or to fork the project completely. + +The move to BUSL—which is _not_ a free and open source license—broke the implicit contract. That was the brash action! + +Terraform would've never gotten the adoption it did, or all the contributions from the community had it not been open-source. Most of us would've never agreed to the CLA to contribute to the project if it was BUSL licensed. Taking all those contributions and all that community trust, and then changing to the BUSL license is a bait and switch. + +The OpenTF manifesto is about _undoing_ those changes! It's about going back to the way Terraform was for the first ~9 years: as a truly open-source tool that we can all trust, contribute to, and use as we wish. + + + + + +When any company releases their tool as open source, the contract with the community is always the same: Anyone can use this code, but we the creators hold a privileged position of being at the epicenter of the ecosystem. Vendors then compete to offer the best solution, and the creators enjoy a unique competitive advantage. + +We believe that HashiCorp should earn a return by leveraging its unique position in the Terraform ecosystem to build a better product, not by outright preventing others from competing in the first place. + + diff --git a/src/components/Accordion/Item.tsx b/src/components/Accordion/Item.tsx index 4edfac31..d900e711 100644 --- a/src/components/Accordion/Item.tsx +++ b/src/components/Accordion/Item.tsx @@ -4,6 +4,7 @@ type AccordionItemProps = { children: React.ReactNode; summary: string; open?: boolean; + highlight?: boolean; }; const AccordionItem = ({ summary, open, children }: AccordionItemProps) => { @@ -25,43 +26,28 @@ const AccordionItem = ({ summary, open, children }: AccordionItemProps) => { > {summary} - - -

+

{children} -

+
); }; diff --git a/src/components/FAQ/index.tsx b/src/components/FAQ/index.tsx index 5b339bc5..4d13df05 100644 --- a/src/components/FAQ/index.tsx +++ b/src/components/FAQ/index.tsx @@ -2,6 +2,9 @@ import React from "react"; import Accordion from "../Accordion"; import AccordionItem from "../Accordion/Item"; import Button from "../Button"; +import Faq from "../../../faq.mdx"; +import { MDXProvider } from "@mdx-js/react"; +import Link from "@docusaurus/Link"; export default function FAQ() { return ( @@ -12,38 +15,27 @@ export default function FAQ() { - - Under a well-known and widely-accepted license that companies can - trus, that won’t suddenly change in the future, and isn’t subhect to - the whims of a singe vendor. Under a well-known and widely-accepted - license that companies can trust, that won’t suddenly change in the - future, and isn’t subhect to the whims of a singe vendor. - - - Under a well-known and widely-accepted license that companies can - trus, that won’t suddenly change in the future, and isn’t subhect to - the whims of a singe vendor. Under a well-known and widely-accepted - license that companies can trust, that won’t suddenly change in the - future, and isn’t subhect to the whims of a singe vendor. - - - Under a well-known and widely-accepted license that companies can - trus, that won’t suddenly change in the future, and isn’t subhect to - the whims of a singe vendor. Under a well-known and widely-accepted - license that companies can trust, that won’t suddenly change in the - future, and isn’t subhect to the whims of a singe vendor. - - - Under a well-known and widely-accepted license that companies can - trus, that won’t suddenly change in the future, and isn’t subhect to - the whims of a singe vendor. Under a well-known and widely-accepted - license that companies can trust, that won’t suddenly change in the - future, and isn’t subhect to the whims of a singe vendor. - + + props.highlight ? : null, + a: (props) => ( + + ), + blockquote: (props) => ( +
+ ), + }} + > + +
-
diff --git a/src/pages/faq.tsx b/src/pages/faq.tsx new file mode 100644 index 00000000..539fd876 --- /dev/null +++ b/src/pages/faq.tsx @@ -0,0 +1,42 @@ +import React from "react"; +import Layout from "@theme/Layout"; +import Jumbotron from "../components/Jumbotron"; +import Accordion from "../components/Accordion"; +import AccordionItem from "../components/Accordion/Item"; +import Faq from "../../faq.mdx"; +import { MDXProvider } from "@mdx-js/react"; +import Link from "@docusaurus/Link"; + +export default function Manifesto() { + return ( + + +

+ Frequently Asked Questions +

+
+
+
+ + ( + + ), + blockquote: (props) => ( +
+ ), + }} + > + + + +
+
+
+ ); +}