From 9f91fb47a781c7e02f68a4d1aa3b3a9ef17c0fab Mon Sep 17 00:00:00 2001 From: jpoole Date: Wed, 14 Dec 2022 18:50:23 +0000 Subject: [PATCH 1/3] Add Please --- libs/website/ui-home/src/lib/introduction.tsx | 9 ++ .../ui-home/src/lib/monorepo-features.tsx | 132 ++++++++++++++++ .../ui-home/src/lib/monorepo-tools-logos.tsx | 27 +++- libs/website/ui-home/src/lib/resources.tsx | 7 + libs/website/ui-home/src/lib/tools-review.tsx | 145 +++++++++++------- 5 files changed, 266 insertions(+), 54 deletions(-) diff --git a/libs/website/ui-home/src/lib/introduction.tsx b/libs/website/ui-home/src/lib/introduction.tsx index 746bcc5..630a2e9 100644 --- a/libs/website/ui-home/src/lib/introduction.tsx +++ b/libs/website/ui-home/src/lib/introduction.tsx @@ -123,6 +123,15 @@ export function Introduction() { Pants (by the Pants Build community) ,  + + Please (by Thought Machine) + + ,  +
+
+

+ Please +

+
+
+ Please supports it. +
+
@@ -333,6 +343,16 @@ export function MonorepoFeatures() { Turborepo supports it. +
+
+

+ Please +

+
+
+ Please supports it. +
+
@@ -458,6 +478,16 @@ export function MonorepoFeatures() { Turborepo supports it. +
+
+

+ Please +

+
+
+ Please supports it. +
+
@@ -586,6 +616,17 @@ export function MonorepoFeatures() { Turborepo doesn't support it. +
+
+

+ Please +

+
+
+ Please supports it through the same remote execution API as Bazel, however there are some compatibility + issues with many of the remote execution API providers. +
+
@@ -698,6 +739,17 @@ export function MonorepoFeatures() { Turborepo doesn't support it. +
+
+

+ Please +

+
+
+ Please supports it similarly to Bazel and Pants, however, there are some compatibility issues with + many of the third party providers. +
+
@@ -834,6 +886,16 @@ export function MonorepoFeatures() { Turborepo supports it. +
+
+

+ Please +

+
+
+ Please supports querying changed packages based on the git diff. +
+
@@ -970,6 +1032,17 @@ export function MonorepoFeatures() { Turborepo analyses package.json files. +
+
+

+ Please +

+
+
+ The query sub-command can be used to query the build graph in a multitude of ways. The build graph + is computed statically, so the entire build can be analysed in this way. +
+
@@ -1106,6 +1179,17 @@ export function MonorepoFeatures() { of the execution plan. The implementation is not interactive. +
+
+

+ Please +

+
+
+ The build graph can be outputted as json, which could then be visualized by another tool. You can also + print a dependency tree for a given target in the terminal. +
+
@@ -1251,6 +1335,19 @@ export function MonorepoFeatures() { Turborepo supports it. Only npm packages can be shared. +
+
+

+ + Please +

+
+
+ Please supports building and packaging through the standard idioms of the language. It also supports + exporting targets from the codebase, including all dependencies and build configuration. Additionally, + other Please projects added to the project seamlessly through subrepos. +
+
@@ -1401,6 +1498,18 @@ export function MonorepoFeatures() { be installed. +
+
+

+ + Please +

+
+
+ This is a key feature of Please. Not only can it be extended with other build targets, but the CLI can + be extended with new verbs, or even entire tools. +
+
@@ -1541,6 +1650,18 @@ export function MonorepoFeatures() { External generators can be used. +
+
+

+ + Please +

+
+
+ Please supports code generation for protobuf for go, Python, Java, Javascript, and C/C++. Otherwise, + Please can be extended to support other tools. +
+
@@ -1687,6 +1808,17 @@ export function MonorepoFeatures() { be used to ensure that some constraints hold. +
+
+

+ + Please +

+
+
+ Please support the same visibility rules as Bazel. +
+
diff --git a/libs/website/ui-home/src/lib/monorepo-tools-logos.tsx b/libs/website/ui-home/src/lib/monorepo-tools-logos.tsx index 746c962..1e9eed4 100644 --- a/libs/website/ui-home/src/lib/monorepo-tools-logos.tsx +++ b/libs/website/ui-home/src/lib/monorepo-tools-logos.tsx @@ -27,10 +27,19 @@ const tools2: { name: string; link: string }[] = [ name: 'Pants', link: 'https://github.com/pantsbuild/pants?utm_source=monorepo.tools', }, + { + name: 'Please', + link: 'https://github.com/thought-machine/please?utm_source=monorepo.tools', + }, { name: 'Rush', link: 'https://github.com/microsoft/rushstack?utm_source=monorepo.tools', }, + +]; + +const tools3: { name: string; link: string }[] = [ + // Alphabetical order { name: 'Turborepo', link: 'https://github.com/vercel/turborepo?utm_source=monorepo.tools', @@ -40,7 +49,7 @@ const tools2: { name: string; link: string }[] = [ export function MonorepoToolsLogos() { return ( <> -
+
{tools1.map((tool) => ( ))}
-
+
{tools2.map((tool) => ( ))}
+
+ {tools3.map((tool) => ( + + {tool.name} + + ))} +
); } diff --git a/libs/website/ui-home/src/lib/resources.tsx b/libs/website/ui-home/src/lib/resources.tsx index d0d5e77..b4413ca 100644 --- a/libs/website/ui-home/src/lib/resources.tsx +++ b/libs/website/ui-home/src/lib/resources.tsx @@ -57,6 +57,13 @@ const people: { twitterLink: 'https://twitter.com/benjyw', githubLink: 'https://github.com/pantsbuild/pants?utm_source=monorepo.tools', }, + { + name: 'Jon Poole', + tool: 'Please', + imageUrl: 'https://avatars.githubusercontent.com/u/2906700?s=150', + twitterLink: 'https://twitter.com/jonfpoole', + githubLink: 'https://github.com/thought-machine/please?utm_source=monorepo.tools', + }, ]; const videosPodcasts: { name: string; link: string }[] = [ { diff --git a/libs/website/ui-home/src/lib/tools-review.tsx b/libs/website/ui-home/src/lib/tools-review.tsx index 6d1dad3..b97c231 100644 --- a/libs/website/ui-home/src/lib/tools-review.tsx +++ b/libs/website/ui-home/src/lib/tools-review.tsx @@ -73,6 +73,13 @@ const tools = [ description: 'The high-performance build system for JavaScript & TypeScript codebases.', }, + { + title: 'Please', + organization: 'Please Build', + organizationUrl: 'https://please.build/?utm_source=monorepo.tools', + description: + 'A cross-language build system with an emphasis on high performance, extensibility and correctness\n' + }, ]; const fast: Item[] = [ { @@ -89,6 +96,7 @@ const fast: Item[] = [ { title: 'Pants', value: 'supported' }, { title: 'Rush', value: 'supported' }, { title: 'Turborepo', value: 'supported' }, + { title: 'Please', value: 'supported' }, ], }, { @@ -104,6 +112,7 @@ const fast: Item[] = [ { title: 'Pants', value: 'supported' }, { title: 'Rush', value: 'supported' }, { title: 'Turborepo', value: 'supported' }, + { title: 'Please', value: 'supported' }, ], }, { @@ -120,6 +129,7 @@ const fast: Item[] = [ { title: 'Pants', value: 'supported' }, { title: 'Rush', value: 'supported' }, { title: 'Turborepo', value: 'supported' }, + { title: 'Please', value: 'supported' }, ], }, { @@ -135,6 +145,7 @@ const fast: Item[] = [ { title: 'Pants', value: 'supported' }, { title: 'Rush', value: 'manualImplementation' }, { title: 'Turborepo', value: 'notSupported' }, + { title: 'Please', value: 'supported' }, ], }, { @@ -151,6 +162,7 @@ const fast: Item[] = [ { title: 'Pants', value: 'supported' }, { title: 'Rush', value: 'notSupported' }, { title: 'Turborepo', value: 'notSupported' }, + { title: 'Please', value: 'supported' }, ], }, { @@ -167,6 +179,8 @@ const fast: Item[] = [ { title: 'Pants', value: 'supported' }, { title: 'Rush', value: 'supported' }, { title: 'Turborepo', value: 'supported' }, + { title: 'Please', value: 'supported' }, + ], }, ]; @@ -185,6 +199,8 @@ const understandable: Item[] = [ { title: 'Pants', value: 'supported' }, { title: 'Rush', value: 'supported' }, { title: 'Turborepo', value: 'supported' }, + { title: 'Please', value: 'supported' }, + ], }, { @@ -201,6 +217,8 @@ const understandable: Item[] = [ { title: 'Pants', value: 'manualImplementation' }, { title: 'Rush', value: 'manualImplementation' }, { title: 'Turborepo', value: 'supported' }, + { title: 'Please', value: 'manualImplementation' }, + ], }, ]; @@ -218,6 +236,7 @@ const manageable: Item[] = [ { title: 'Pants', value: 'supported' }, { title: 'Rush', value: 'supported' }, { title: 'Turborepo', value: 'supported' }, + { title: 'Please', value: 'supported' }, ], }, { @@ -234,6 +253,7 @@ const manageable: Item[] = [ { title: 'Pants', value: 'supported' }, { title: 'Rush', value: 'notSupported' }, { title: 'Turborepo', value: 'notSupported' }, + { title: 'Please', value: 'supported' }, ], }, { @@ -249,6 +269,8 @@ const manageable: Item[] = [ { title: 'Pants', value: 'supported' }, { title: 'Rush', value: 'manualImplementation' }, { title: 'Turborepo', value: 'manualImplementation' }, + { title: 'Please', value: 'manualImplementation' }, + ], }, { @@ -265,6 +287,7 @@ const manageable: Item[] = [ { title: 'Pants', value: 'manualImplementation' }, { title: 'Rush', value: 'supported' }, { title: 'Turborepo', value: 'manualImplementation' }, + { title: 'Please', value: 'supported' }, ], }, ]; @@ -515,7 +538,7 @@ export function ToolsReview() { aria-hidden="true" className={classNames( toolIndex === tools.length - 1 ? 'pl-2' : 'px-2', - '-mt-px w-[10.75%]' + '-mt-px w-[9.5%]' )} >
@@ -549,28 +572,31 @@ export function ToolsReview() { aria-hidden="true" >
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
@@ -611,7 +637,7 @@ export function ToolsReview() { tierIdx === feature.features.length - 1 ? 'pl-2' : 'px-2', - 'relative w-[10.75%] py-0 text-center' + 'relative w-[9.5%] py-0 text-center' )} > @@ -630,28 +656,31 @@ export function ToolsReview() { aria-hidden="true" >
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
@@ -667,28 +696,31 @@ export function ToolsReview() { aria-hidden="true" >
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
@@ -739,7 +771,7 @@ export function ToolsReview() { tierIdx === feature.features.length - 1 ? 'pl-2' : 'px-2', - 'relative w-[10.75%] py-0 text-center' + 'relative w-[9.5%] py-0 text-center' )} > {valuesDictionary[tier.value]()} @@ -756,28 +788,31 @@ export function ToolsReview() { aria-hidden="true" >
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
-
+
-
+
@@ -793,28 +828,31 @@ export function ToolsReview() { aria-hidden="true" >
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
@@ -855,7 +893,7 @@ export function ToolsReview() { tierIdx === feature.features.length - 1 ? 'pl-2' : 'px-2', - 'relative w-[10.75%] py-0 text-center' + 'relative w-[9.5%] py-0 text-center' )} > {valuesDictionary[tier.value]()} @@ -872,28 +910,31 @@ export function ToolsReview() { aria-hidden="true" >
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
From b7e741115e15d79834638e2b514b06a25a099a46 Mon Sep 17 00:00:00 2001 From: jpoole Date: Thu, 15 Dec 2022 10:45:01 +0000 Subject: [PATCH 2/3] Format --- .../ui-home/src/lib/monorepo-features.tsx | 38 +++++++++++-------- .../ui-home/src/lib/monorepo-tools-logos.tsx | 1 - libs/website/ui-home/src/lib/resources.tsx | 3 +- libs/website/ui-home/src/lib/tools-review.tsx | 6 +-- 4 files changed, 26 insertions(+), 22 deletions(-) diff --git a/libs/website/ui-home/src/lib/monorepo-features.tsx b/libs/website/ui-home/src/lib/monorepo-features.tsx index 0b13831..8466472 100644 --- a/libs/website/ui-home/src/lib/monorepo-features.tsx +++ b/libs/website/ui-home/src/lib/monorepo-features.tsx @@ -623,8 +623,9 @@ export function MonorepoFeatures() {

- Please supports it through the same remote execution API as Bazel, however there are some compatibility - issues with many of the remote execution API providers. + Please supports it through the same remote execution API as + Bazel, however there are some compatibility issues with many of + the remote execution API providers.
@@ -746,8 +747,9 @@ export function MonorepoFeatures() {

- Please supports it similarly to Bazel and Pants, however, there are some compatibility issues with - many of the third party providers. + Please supports it similarly to Bazel and Pants, however, there + are some compatibility issues with many of the third party + providers.
@@ -1039,8 +1041,9 @@ export function MonorepoFeatures() {

- The query sub-command can be used to query the build graph in a multitude of ways. The build graph - is computed statically, so the entire build can be analysed in this way. + The query sub-command can be used to query the build graph in a + multitude of ways. The build graph is computed statically, so + the entire build can be analysed in this way.
@@ -1186,8 +1189,9 @@ export function MonorepoFeatures() {

- The build graph can be outputted as json, which could then be visualized by another tool. You can also - print a dependency tree for a given target in the terminal. + The build graph can be outputted as json, which could then be + visualized by another tool. You can also print a dependency tree + for a given target in the terminal.
@@ -1343,9 +1347,11 @@ export function MonorepoFeatures() {

- Please supports building and packaging through the standard idioms of the language. It also supports - exporting targets from the codebase, including all dependencies and build configuration. Additionally, - other Please projects added to the project seamlessly through subrepos. + Please supports building and packaging through the standard + idioms of the language. It also supports exporting targets from + the codebase, including all dependencies and build + configuration. Additionally, other Please projects added to the + project seamlessly through subrepos.
@@ -1506,8 +1512,9 @@ export function MonorepoFeatures() {

- This is a key feature of Please. Not only can it be extended with other build targets, but the CLI can - be extended with new verbs, or even entire tools. + This is a key feature of Please. Not only can it be extended + with other build targets, but the CLI can be extended with new + verbs, or even entire tools.
@@ -1658,8 +1665,9 @@ export function MonorepoFeatures() {

- Please supports code generation for protobuf for go, Python, Java, Javascript, and C/C++. Otherwise, - Please can be extended to support other tools. + Please supports code generation for protobuf for go, Python, + Java, Javascript, and C/C++. Otherwise, Please can be extended + to support other tools.
diff --git a/libs/website/ui-home/src/lib/monorepo-tools-logos.tsx b/libs/website/ui-home/src/lib/monorepo-tools-logos.tsx index 1e9eed4..1824a3d 100644 --- a/libs/website/ui-home/src/lib/monorepo-tools-logos.tsx +++ b/libs/website/ui-home/src/lib/monorepo-tools-logos.tsx @@ -35,7 +35,6 @@ const tools2: { name: string; link: string }[] = [ name: 'Rush', link: 'https://github.com/microsoft/rushstack?utm_source=monorepo.tools', }, - ]; const tools3: { name: string; link: string }[] = [ diff --git a/libs/website/ui-home/src/lib/resources.tsx b/libs/website/ui-home/src/lib/resources.tsx index b4413ca..91b32a5 100644 --- a/libs/website/ui-home/src/lib/resources.tsx +++ b/libs/website/ui-home/src/lib/resources.tsx @@ -62,7 +62,8 @@ const people: { tool: 'Please', imageUrl: 'https://avatars.githubusercontent.com/u/2906700?s=150', twitterLink: 'https://twitter.com/jonfpoole', - githubLink: 'https://github.com/thought-machine/please?utm_source=monorepo.tools', + githubLink: + 'https://github.com/thought-machine/please?utm_source=monorepo.tools', }, ]; const videosPodcasts: { name: string; link: string }[] = [ diff --git a/libs/website/ui-home/src/lib/tools-review.tsx b/libs/website/ui-home/src/lib/tools-review.tsx index b97c231..634c0d8 100644 --- a/libs/website/ui-home/src/lib/tools-review.tsx +++ b/libs/website/ui-home/src/lib/tools-review.tsx @@ -78,7 +78,7 @@ const tools = [ organization: 'Please Build', organizationUrl: 'https://please.build/?utm_source=monorepo.tools', description: - 'A cross-language build system with an emphasis on high performance, extensibility and correctness\n' + 'A cross-language build system with an emphasis on high performance, extensibility and correctness\n', }, ]; const fast: Item[] = [ @@ -180,7 +180,6 @@ const fast: Item[] = [ { title: 'Rush', value: 'supported' }, { title: 'Turborepo', value: 'supported' }, { title: 'Please', value: 'supported' }, - ], }, ]; @@ -200,7 +199,6 @@ const understandable: Item[] = [ { title: 'Rush', value: 'supported' }, { title: 'Turborepo', value: 'supported' }, { title: 'Please', value: 'supported' }, - ], }, { @@ -218,7 +216,6 @@ const understandable: Item[] = [ { title: 'Rush', value: 'manualImplementation' }, { title: 'Turborepo', value: 'supported' }, { title: 'Please', value: 'manualImplementation' }, - ], }, ]; @@ -270,7 +267,6 @@ const manageable: Item[] = [ { title: 'Rush', value: 'manualImplementation' }, { title: 'Turborepo', value: 'manualImplementation' }, { title: 'Please', value: 'manualImplementation' }, - ], }, { From 87a35e706c5eed2f2249f3d5bf3ce39ef65b1892 Mon Sep 17 00:00:00 2001 From: jpoole Date: Thu, 15 Dec 2022 10:56:32 +0000 Subject: [PATCH 3/3] Internal review comments --- .../ui-home/src/lib/monorepo-features.tsx | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/libs/website/ui-home/src/lib/monorepo-features.tsx b/libs/website/ui-home/src/lib/monorepo-features.tsx index 8466472..2951eb3 100644 --- a/libs/website/ui-home/src/lib/monorepo-features.tsx +++ b/libs/website/ui-home/src/lib/monorepo-features.tsx @@ -623,9 +623,9 @@ export function MonorepoFeatures() {

- Please supports it through the same remote execution API as - Bazel, however there are some compatibility issues with many of - the remote execution API providers. + Please supports it, through the same remote execution API as + Bazel, although some server implementations may not support all + the needed features
@@ -747,9 +747,9 @@ export function MonorepoFeatures() {

- Please supports it similarly to Bazel and Pants, however, there - are some compatibility issues with many of the third party - providers. + Please supports it, through the same remote execution API as + Bazel, although some server implementations may not support all + the needed features
@@ -895,7 +895,8 @@ export function MonorepoFeatures() {

- Please supports querying changed packages based on the git diff. + Please supports querying changed build targets based on the scm + diff.
@@ -1043,7 +1044,8 @@ export function MonorepoFeatures() {
The query sub-command can be used to query the build graph in a multitude of ways. The build graph is computed statically, so - the entire build can be analysed in this way. + the entire build can be analysed in this way. The graph can also + be exported as json for extra validation.
@@ -1824,7 +1826,9 @@ export function MonorepoFeatures() {

- Please support the same visibility rules as Bazel. + Please supports visibility rules, allowing you to mark code as + private or public, or make it visible to only certain paths in + the repo.