From 7048461f6b7cf79bd6c4c47ce0f7b9a5a0289e3e Mon Sep 17 00:00:00 2001 From: Myles Borins Date: Tue, 6 Mar 2018 13:18:10 -0800 Subject: [PATCH 01/18] doc: add MANIFESTO.md I wanted to take a shot at finding some core principles that our group can rally behind. Please feel free to push a commit to add your name to the signatories. Also please comment if anything doesn't work for you. --- MANIFESTO.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 MANIFESTO.md diff --git a/MANIFESTO.md b/MANIFESTO.md new file mode 100644 index 0000000..64d1551 --- /dev/null +++ b/MANIFESTO.md @@ -0,0 +1,33 @@ +## The Module Manifesto + +We the undersigned agree on the the following, + +* Getting modules "right" is one of the biggest existential threats to JavaScript +* This affects a large number of people on this planet (and future planets), with varying interests including but not limited to: + - web applications + - serverside applications and services + - command line interfaces + - libraries and frameworks + - transpilers + - robots + - art and music +* Getting modules "right" is hard because of these varying interests +* Creating a good developer experience is the number one priority +* The aim will be to not compromise the Node.js Developer Experience, but we recognize that may be necessary to improve the health of the JavaScript ecosystem +* While compromise is neccessary, it is important to recognize when Node.js needs to lead and attempt to influence change at an industry level +* The closer the Node.js and Web platform remain the better the developer experience will be + +* The Node.js implementation of ESModules must have the following features: + - Compliant to ecma262. It is important to follow the standard. If we need changes in the standard we should attempt to accomplish them at tc39. + - Interoperability. It is important to be able to utilize ESModule code from CommonJS and vice versa. + - Hooks. It is important to be able to have hooks into the lifecycle of a Module. + - Multiple Goals. e.g. wasm. It is important that our implementation scales to any number of future goals. +* Packages written with the Node.js implementation of ESModules must have the following features. + - Dual mode. It is important that a single package should be capable of being loaded as both ESM and CJS. This does not have to be the default. + - Web Compatible. It is important that a published package be capable of running on both the web and node.js platform without any source changes. This does not mean all APIs need to be compatible. + +Without working together there will be no chance of a successful module system. "Together" is larger than the undersigned. + +Signed, + +Myles Borins (@MylesBorins) From 8f692bcc9f10f60611e1916f8c4d477c8c397ff7 Mon Sep 17 00:00:00 2001 From: Gus Caplan Date: Tue, 6 Mar 2018 15:24:25 -0600 Subject: [PATCH 02/18] sign manifesto --- MANIFESTO.md | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFESTO.md b/MANIFESTO.md index 64d1551..d45db9b 100644 --- a/MANIFESTO.md +++ b/MANIFESTO.md @@ -31,3 +31,4 @@ Without working together there will be no chance of a successful module system. Signed, Myles Borins (@MylesBorins) +Gus Caplan (@devsnek) From 1e83a20f88b6efa352be1090a3d91e7d21196fbb Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 6 Mar 2018 15:11:35 -0800 Subject: [PATCH 03/18] Sign the manifesto --- MANIFESTO.md | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFESTO.md b/MANIFESTO.md index d45db9b..eeb1075 100644 --- a/MANIFESTO.md +++ b/MANIFESTO.md @@ -32,3 +32,4 @@ Signed, Myles Borins (@MylesBorins) Gus Caplan (@devsnek) +Jordan Harband (@ljharb) From 8b22d196ce59b75d34836c7035c3ebaefaa9f037 Mon Sep 17 00:00:00 2001 From: Matteo Collina Date: Wed, 7 Mar 2018 09:15:06 +0100 Subject: [PATCH 04/18] Signed --- MANIFESTO.md | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFESTO.md b/MANIFESTO.md index eeb1075..ed44e06 100644 --- a/MANIFESTO.md +++ b/MANIFESTO.md @@ -33,3 +33,4 @@ Signed, Myles Borins (@MylesBorins) Gus Caplan (@devsnek) Jordan Harband (@ljharb) +Matteo Collina (@mcollina) From 41624717a7362ff869d5ecb07f7b56b13e7dff1b Mon Sep 17 00:00:00 2001 From: Benjamin Gruenbaum Date: Wed, 7 Mar 2018 10:36:03 +0200 Subject: [PATCH 05/18] Sign manifesto --- MANIFESTO.md | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFESTO.md b/MANIFESTO.md index ed44e06..6e3772f 100644 --- a/MANIFESTO.md +++ b/MANIFESTO.md @@ -34,3 +34,4 @@ Myles Borins (@MylesBorins) Gus Caplan (@devsnek) Jordan Harband (@ljharb) Matteo Collina (@mcollina) +Benjamin Gruenbaum (@benjamingr) From 0469442c531e39f2a2ed77cd37710efd7f91d917 Mon Sep 17 00:00:00 2001 From: Hassan Sani Date: Wed, 7 Mar 2018 10:47:34 +0100 Subject: [PATCH 06/18] Signed --- MANIFESTO.md | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFESTO.md b/MANIFESTO.md index 6e3772f..9795eff 100644 --- a/MANIFESTO.md +++ b/MANIFESTO.md @@ -35,3 +35,4 @@ Gus Caplan (@devsnek) Jordan Harband (@ljharb) Matteo Collina (@mcollina) Benjamin Gruenbaum (@benjamingr) +Hassan Sani (@inidaname) From 61537b573f28ec7bed5c3e0d6f2cf57dfe4f6ea7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Wed, 7 Mar 2018 11:30:00 +0100 Subject: [PATCH 07/18] Sign manifesto --- MANIFESTO.md | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFESTO.md b/MANIFESTO.md index 9795eff..3b8aa1a 100644 --- a/MANIFESTO.md +++ b/MANIFESTO.md @@ -36,3 +36,4 @@ Jordan Harband (@ljharb) Matteo Collina (@mcollina) Benjamin Gruenbaum (@benjamingr) Hassan Sani (@inidaname) +Michaël Zasso (@targos) From f185345aff85bb87c07ac33fa864948cf4d0e652 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Wed, 7 Mar 2018 11:32:32 +0100 Subject: [PATCH 08/18] capitalize --- MANIFESTO.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MANIFESTO.md b/MANIFESTO.md index 3b8aa1a..248835a 100644 --- a/MANIFESTO.md +++ b/MANIFESTO.md @@ -18,7 +18,7 @@ We the undersigned agree on the the following, * The closer the Node.js and Web platform remain the better the developer experience will be * The Node.js implementation of ESModules must have the following features: - - Compliant to ecma262. It is important to follow the standard. If we need changes in the standard we should attempt to accomplish them at tc39. + - Compliant to ECMA-262. It is important to follow the standard. If we need changes in the standard we should attempt to accomplish them at TC39. - Interoperability. It is important to be able to utilize ESModule code from CommonJS and vice versa. - Hooks. It is important to be able to have hooks into the lifecycle of a Module. - Multiple Goals. e.g. wasm. It is important that our implementation scales to any number of future goals. From 52e0782ffa3c561ed08f2405477cef89b8d3a102 Mon Sep 17 00:00:00 2001 From: Ahmad Abdul-Aziz Date: Wed, 7 Mar 2018 19:16:38 +0100 Subject: [PATCH 09/18] Sign manifesto --- MANIFESTO.md | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFESTO.md b/MANIFESTO.md index 248835a..bf403f2 100644 --- a/MANIFESTO.md +++ b/MANIFESTO.md @@ -37,3 +37,4 @@ Matteo Collina (@mcollina) Benjamin Gruenbaum (@benjamingr) Hassan Sani (@inidaname) Michaël Zasso (@targos) +Ahmad Abdul-Aziz (@devamaz) From 5c658a812bdd8226fec5e0a894ffbe8f7f32f818 Mon Sep 17 00:00:00 2001 From: Jan Olaf Krems Date: Wed, 7 Mar 2018 10:20:50 -0800 Subject: [PATCH 10/18] Sign manifesto --- MANIFESTO.md | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFESTO.md b/MANIFESTO.md index bf403f2..9ebf4d9 100644 --- a/MANIFESTO.md +++ b/MANIFESTO.md @@ -38,3 +38,4 @@ Benjamin Gruenbaum (@benjamingr) Hassan Sani (@inidaname) Michaël Zasso (@targos) Ahmad Abdul-Aziz (@devamaz) +Jan Krems (@jkrems) From 93ebbe86eba6e0cb78e9d1e4e232d5bdc689fb44 Mon Sep 17 00:00:00 2001 From: Guy Bedford Date: Fri, 9 Mar 2018 18:30:04 +0200 Subject: [PATCH 11/18] sign manifesto --- MANIFESTO.md | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFESTO.md b/MANIFESTO.md index 9ebf4d9..8049ae2 100644 --- a/MANIFESTO.md +++ b/MANIFESTO.md @@ -39,3 +39,4 @@ Hassan Sani (@inidaname) Michaël Zasso (@targos) Ahmad Abdul-Aziz (@devamaz) Jan Krems (@jkrems) +Guy Bedford (@guybedford) From effecf066e84fed01d391b34496584dd37ca8fa8 Mon Sep 17 00:00:00 2001 From: Timothy Gu Date: Fri, 9 Mar 2018 08:31:45 -0800 Subject: [PATCH 12/18] Signed --- MANIFESTO.md | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFESTO.md b/MANIFESTO.md index 8049ae2..35a8d35 100644 --- a/MANIFESTO.md +++ b/MANIFESTO.md @@ -40,3 +40,4 @@ Michaël Zasso (@targos) Ahmad Abdul-Aziz (@devamaz) Jan Krems (@jkrems) Guy Bedford (@guybedford) +Timothy Gu (@TimothyGu) From f7400d15ae84415a50b1ad315472d03e91a701ff Mon Sep 17 00:00:00 2001 From: Gil Tayar Date: Sat, 10 Mar 2018 10:09:04 +0200 Subject: [PATCH 13/18] Sign manifesto --- MANIFESTO.md | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFESTO.md b/MANIFESTO.md index 35a8d35..caee4d2 100644 --- a/MANIFESTO.md +++ b/MANIFESTO.md @@ -41,3 +41,4 @@ Ahmad Abdul-Aziz (@devamaz) Jan Krems (@jkrems) Guy Bedford (@guybedford) Timothy Gu (@TimothyGu) +Gil Tayar (@giltayar) From 9c27db0043f55b04a4e5d556548b0e68bd14d9b0 Mon Sep 17 00:00:00 2001 From: Rob Palmer Date: Sat, 10 Mar 2018 09:33:27 +0000 Subject: [PATCH 14/18] Add signature --- MANIFESTO.md | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFESTO.md b/MANIFESTO.md index caee4d2..7c8b597 100644 --- a/MANIFESTO.md +++ b/MANIFESTO.md @@ -42,3 +42,4 @@ Jan Krems (@jkrems) Guy Bedford (@guybedford) Timothy Gu (@TimothyGu) Gil Tayar (@giltayar) +Rob Palmer (@robpalme) From f6d62a97196e56dff4f5ab7967dda23978c5c1b6 Mon Sep 17 00:00:00 2001 From: Gus Caplan Date: Sat, 10 Mar 2018 09:07:48 -0600 Subject: [PATCH 15/18] *space space* --- MANIFESTO.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/MANIFESTO.md b/MANIFESTO.md index 7c8b597..1a42cc1 100644 --- a/MANIFESTO.md +++ b/MANIFESTO.md @@ -30,16 +30,16 @@ Without working together there will be no chance of a successful module system. Signed, -Myles Borins (@MylesBorins) -Gus Caplan (@devsnek) -Jordan Harband (@ljharb) -Matteo Collina (@mcollina) -Benjamin Gruenbaum (@benjamingr) -Hassan Sani (@inidaname) -Michaël Zasso (@targos) -Ahmad Abdul-Aziz (@devamaz) -Jan Krems (@jkrems) -Guy Bedford (@guybedford) -Timothy Gu (@TimothyGu) -Gil Tayar (@giltayar) -Rob Palmer (@robpalme) +Myles Borins (@MylesBorins) +Gus Caplan (@devsnek) +Jordan Harband (@ljharb) +Matteo Collina (@mcollina) +Benjamin Gruenbaum (@benjamingr) +Hassan Sani (@inidaname) +Michaël Zasso (@targos) +Ahmad Abdul-Aziz (@devamaz) +Jan Krems (@jkrems) +Guy Bedford (@guybedford) +Timothy Gu (@TimothyGu) +Gil Tayar (@giltayar) +Rob Palmer (@robpalme) From 312f27f32c74fb0c007c684454f5605650a3f95d Mon Sep 17 00:00:00 2001 From: Myles Borins Date: Thu, 15 Mar 2018 02:34:12 -0400 Subject: [PATCH 16/18] remove interplanetary node and implementation details --- MANIFESTO.md | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/MANIFESTO.md b/MANIFESTO.md index 1a42cc1..334b207 100644 --- a/MANIFESTO.md +++ b/MANIFESTO.md @@ -3,7 +3,7 @@ We the undersigned agree on the the following, * Getting modules "right" is one of the biggest existential threats to JavaScript -* This affects a large number of people on this planet (and future planets), with varying interests including but not limited to: +* This affects a large number of people with varying interests including but not limited to: - web applications - serverside applications and services - command line interfaces @@ -17,15 +17,6 @@ We the undersigned agree on the the following, * While compromise is neccessary, it is important to recognize when Node.js needs to lead and attempt to influence change at an industry level * The closer the Node.js and Web platform remain the better the developer experience will be -* The Node.js implementation of ESModules must have the following features: - - Compliant to ECMA-262. It is important to follow the standard. If we need changes in the standard we should attempt to accomplish them at TC39. - - Interoperability. It is important to be able to utilize ESModule code from CommonJS and vice versa. - - Hooks. It is important to be able to have hooks into the lifecycle of a Module. - - Multiple Goals. e.g. wasm. It is important that our implementation scales to any number of future goals. -* Packages written with the Node.js implementation of ESModules must have the following features. - - Dual mode. It is important that a single package should be capable of being loaded as both ESM and CJS. This does not have to be the default. - - Web Compatible. It is important that a published package be capable of running on both the web and node.js platform without any source changes. This does not mean all APIs need to be compatible. - Without working together there will be no chance of a successful module system. "Together" is larger than the undersigned. Signed, From 0e7ec2355ceb0db2eb3302315e5931a13d8eb4a9 Mon Sep 17 00:00:00 2001 From: Wassim Chegham Date: Fri, 16 Mar 2018 14:11:09 +0100 Subject: [PATCH 17/18] Signed manifesto --- MANIFESTO.md | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFESTO.md b/MANIFESTO.md index 334b207..352a27a 100644 --- a/MANIFESTO.md +++ b/MANIFESTO.md @@ -34,3 +34,4 @@ Guy Bedford (@guybedford) Timothy Gu (@TimothyGu) Gil Tayar (@giltayar) Rob Palmer (@robpalme) +Wassim Chegham (@manekinekko) From cbf5f24d9ca06475e7bc5795ea45d4cc5041f392 Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Fri, 16 Mar 2018 16:24:23 -0400 Subject: [PATCH 18/18] Update MANIFESTO.md --- MANIFESTO.md | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFESTO.md b/MANIFESTO.md index 352a27a..d066d72 100644 --- a/MANIFESTO.md +++ b/MANIFESTO.md @@ -35,3 +35,4 @@ Timothy Gu (@TimothyGu) Gil Tayar (@giltayar) Rob Palmer (@robpalme) Wassim Chegham (@manekinekko) +Michael Dawson (@mhdawson)