From 4258e26287f25f5dfc9d7df1ad98aba6346d55fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 26 Feb 2022 02:35:38 +0000 Subject: [PATCH 1/6] Bump prismjs from 1.26.0 to 1.27.0 in /website Bumps [prismjs](https://github.com/PrismJS/prism) from 1.26.0 to 1.27.0. - [Release notes](https://github.com/PrismJS/prism/releases) - [Changelog](https://github.com/PrismJS/prism/blob/master/CHANGELOG.md) - [Commits](https://github.com/PrismJS/prism/compare/v1.26.0...v1.27.0) --- updated-dependencies: - dependency-name: prismjs dependency-type: indirect ... Signed-off-by: dependabot[bot] --- website/package-lock.json | 6 +++--- website/yarn.lock | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 0f8c373e0..85cbea991 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -6883,9 +6883,9 @@ "integrity": "sha512-w23ch4f75V1Tnz8DajsYKvY5lF7H1+WvzvLUcF0paFxkTHSp42RS0H5CttdN2Q8RR3DRGZ9v5xD/h3n8C8kGmg==" }, "prismjs": { - "version": "1.26.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.26.0.tgz", - "integrity": "sha512-HUoH9C5Z3jKkl3UunCyiD5jwk0+Hz0fIgQ2nbwU2Oo/ceuTAQAg+pPVnfdt2TJWRVLcxKh9iuoYDUSc8clb5UQ==" + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", + "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==" }, "process-nextick-args": { "version": "2.0.1", diff --git a/website/yarn.lock b/website/yarn.lock index bdfe67902..4743558ce 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -5980,9 +5980,9 @@ prism-react-renderer@^1.2.1: integrity sha512-w23ch4f75V1Tnz8DajsYKvY5lF7H1+WvzvLUcF0paFxkTHSp42RS0H5CttdN2Q8RR3DRGZ9v5xD/h3n8C8kGmg== prismjs@^1.23.0: - version "1.26.0" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.26.0.tgz#16881b594828bb6b45296083a8cbab46b0accd47" - integrity sha512-HUoH9C5Z3jKkl3UunCyiD5jwk0+Hz0fIgQ2nbwU2Oo/ceuTAQAg+pPVnfdt2TJWRVLcxKh9iuoYDUSc8clb5UQ== + version "1.27.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.27.0.tgz#bb6ee3138a0b438a3653dd4d6ce0cc6510a45057" + integrity sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA== process-nextick-args@~2.0.0: version "2.0.1" From 7d0fb3753ea1daa46d0a4f26e899dbff8be2c227 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 26 Mar 2022 02:03:05 +0000 Subject: [PATCH 2/6] Bump node-forge from 1.2.1 to 1.3.0 in /website Bumps [node-forge](https://github.com/digitalbazaar/forge) from 1.2.1 to 1.3.0. - [Release notes](https://github.com/digitalbazaar/forge/releases) - [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md) - [Commits](https://github.com/digitalbazaar/forge/compare/v1.2.1...v1.3.0) --- updated-dependencies: - dependency-name: node-forge dependency-type: indirect ... Signed-off-by: dependabot[bot] --- website/package-lock.json | 6 +++--- website/yarn.lock | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 0f8c373e0..464531e56 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -6158,9 +6158,9 @@ } }, "node-forge": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz", - "integrity": "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.0.tgz", + "integrity": "sha512-08ARB91bUi6zNKzVmaj3QO7cr397uiDT2nJ63cHjyNtCTWIgvS47j3eT0WfzUwS9+6Z5YshRaoasFkXCKrIYbA==" }, "node-releases": { "version": "2.0.1", diff --git a/website/yarn.lock b/website/yarn.lock index bdfe67902..e427c7518 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -5307,9 +5307,9 @@ node-fetch@2.6.7: whatwg-url "^5.0.0" node-forge@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.2.1.tgz#82794919071ef2eb5c509293325cec8afd0fd53c" - integrity sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w== + version "1.3.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.0.tgz#37a874ea723855f37db091e6c186e5b67a01d4b2" + integrity sha512-08ARB91bUi6zNKzVmaj3QO7cr397uiDT2nJ63cHjyNtCTWIgvS47j3eT0WfzUwS9+6Z5YshRaoasFkXCKrIYbA== node-releases@^2.0.1: version "2.0.1" From f53cbb361a6c94babfa2d4c1df1bfca1f1d47006 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Apr 2022 19:01:40 +0000 Subject: [PATCH 3/6] Bump minimist from 1.2.5 to 1.2.6 in /website Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6. - [Release notes](https://github.com/substack/minimist/releases) - [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6) --- updated-dependencies: - dependency-name: minimist dependency-type: indirect ... Signed-off-by: dependabot[bot] --- website/package-lock.json | 6 +++--- website/yarn.lock | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 0f8c373e0..b73de737e 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -6081,9 +6081,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "mkdirp": { "version": "0.5.5", diff --git a/website/yarn.lock b/website/yarn.lock index bdfe67902..efd15ba84 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -5225,9 +5225,9 @@ minimatch@^3.0.4: brace-expansion "^1.1.7" minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== mkdirp@^0.5.5: version "0.5.5" From 8194a34388e8f368ef0bcd753796d71bea72dd41 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Apr 2022 17:12:48 +0000 Subject: [PATCH 4/6] Bump async from 2.6.3 to 2.6.4 in /website Bumps [async](https://github.com/caolan/async) from 2.6.3 to 2.6.4. - [Release notes](https://github.com/caolan/async/releases) - [Changelog](https://github.com/caolan/async/blob/v2.6.4/CHANGELOG.md) - [Commits](https://github.com/caolan/async/compare/v2.6.3...v2.6.4) --- updated-dependencies: - dependency-name: async dependency-type: indirect ... Signed-off-by: dependabot[bot] --- website/package-lock.json | 6 +++--- website/yarn.lock | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 0f8c373e0..0cfaa5213 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -2777,9 +2777,9 @@ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" }, "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "requires": { "lodash": "^4.17.14" } diff --git a/website/yarn.lock b/website/yarn.lock index bdfe67902..8d686401f 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -2411,9 +2411,9 @@ asap@~2.0.3: integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= async@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + version "2.6.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== dependencies: lodash "^4.17.14" From 71290aea6436cd369afb7c8daca24a81a2bbe5e0 Mon Sep 17 00:00:00 2001 From: AttilaMihaly Date: Fri, 6 May 2022 15:39:26 +0000 Subject: [PATCH 5/6] Initial version of Spark mapping document --- docs/spark-backend/design.md | 64 ++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 docs/spark-backend/design.md diff --git a/docs/spark-backend/design.md b/docs/spark-backend/design.md new file mode 100644 index 000000000..6783ec9c8 --- /dev/null +++ b/docs/spark-backend/design.md @@ -0,0 +1,64 @@ +# Morphir to Spark mapping + +To understand how the Morphir to Apache Spark mapping works let's begin with an example Morphir domain model and business logic that we might want to transpile to Spark. We present the Morphir logic using Elm syntax to make it easy to read: + +```elm +type alias RecordA = + { number1 : Int + , number2 : Int + } + +type alias RecordB = + { sum : Int + , product : Int + , ratio : Float + } + + +job : List RecordA -> List RecordB +job input = + input + |> List.filter (\a -> a.field2 < 100) + |> List.map + (\a -> + { sum = a.number1 + a.number2 + , product = a.number1 * a.number2 + , ratio = a.number1 / a.number2 + } + ) +``` + +The above is a representative example of the base functionality. There are a few constraints that we put on the Elm code to make it possible to translate to Spark initially (later on we might gradually lift those constraints by automatically transforming the logic behind the scenes). Here are the initial restrictions: + +- Functions need to get a list of records as input and return a list of records, so that we can directly map to Spark jobs taking a DataSet and returning a DataSet +- The record types in the input and output need to be completely flat and use only built-in SDK types or be enumerations (custom types with only no-argument constructors) +- The input value in the function can only be passed through the following collection operations: + - [List.filter](https://package.elm-lang.org/packages/elm/core/latest/List#filter) to filter the data set (corresponds to a WHERE clause in SQL) + - [List.map](https://package.elm-lang.org/packages/elm/core/latest/List#map) to trasform each input row to an output row (corresponds to the SELECT clause in SQL) +- Field expressions can: + - use any combination of operations from the [Morphir SDK](https://package.elm-lang.org/packages/elm/core/latest/) as long as every intermediary result within the expression is a simple type + - include `if-then-else` expressions + +## Supported Field Types + +- [Int](https://package.elm-lang.org/packages/elm/core/latest/Basics#Int) +- [Float](https://package.elm-lang.org/packages/elm/core/latest/Basics#Float) +- [Bool](https://package.elm-lang.org/packages/elm/core/latest/Basics#Bool) +- [String](https://package.elm-lang.org/packages/elm/core/latest/String#String) +- [Maybe](https://package.elm-lang.org/packages/elm/core/latest/Maybe#Maybe) + + +## Supported Field Operations + +- [Basics](https://package.elm-lang.org/packages/elm/core/latest/Basics): + - All number operations + - All comparison operations + - All boolean operations +- [String](https://package.elm-lang.org/packages/elm/core/latest/String) + - All operations + +## Supported DataSet Operations + +- [List.filter](https://package.elm-lang.org/packages/elm/core/latest/List#filter) +- [List.map](https://package.elm-lang.org/packages/elm/core/latest/List#map) + From 47461cf75e74edf28826ac6eee9facff7004f96f Mon Sep 17 00:00:00 2001 From: Attila Mihaly Date: Mon, 9 May 2022 17:15:51 +0200 Subject: [PATCH 6/6] Remove file that makes docusaurus fail. --- docs/presentations/UK_Meetup.md | 48 --------------------------------- 1 file changed, 48 deletions(-) delete mode 100644 docs/presentations/UK_Meetup.md diff --git a/docs/presentations/UK_Meetup.md b/docs/presentations/UK_Meetup.md deleted file mode 100644 index e99f5e7a5..000000000 --- a/docs/presentations/UK_Meetup.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -marp: true -theme: default ---- - -# An introduction to Morphir - ---- - -# What is Morphir? - -* **A unified language for business and technology** - - Business and technology speaking the same language -* We already have ***methodologies*** - - UML (Unified Modeling Language) - - DDD (Domain-driven Design) - - _for humans only_ -* Morphir is a ***technology*** - - _for humans and machines_ - ---- - -# What does Morphir do? - -* **Turns business logic into portable data** so that you can - * **Translate it** _- to move between technologies effortlessly as they evolve_ - * **Visualize it** _- to unhide it from your business users_ - * **Share it** _- across organziations for consistent interpretation_ - * **and do much more ...** - - like the Internet that simply _“connects computers”_ - - it enables innovation that has a profound impact on software development - - ---- - -# Present the business problem - ---- - -# Solve it - ---- - -# Other opportunities that opened up - ---- - -# Tech stuff \ No newline at end of file