{
  "markdown": "# Morphir \n\n<a href=\"https://finosfoundation.atlassian.net/wiki/display/FINOS/Active\">\n    <img src=\"https://cdn.jsdelivr.net/gh/finos/contrib-toolbox@master/images/badge-active.svg\" />\n</a>\n<a href=\"https://github.com/finos/morphir-scala/actions\">\n    <img src=\"https://github.com/finos/morphir-scala/workflows/CI/badge.svg\" />\n</a>\n\n<a href=\"https://finos-lf.slack.com/messages/morphir/\">\n    <img src=\"https://img.shields.io/badge/slack-@finos/morphir-green.svg?logo=slack\" />\n</a>\n<a href=\"https://gitpod.io/#https://github.com/finos/morphir-scala\">\n    <img src=\"https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod\" />\n</a>\n\n[![Scaladoc](https://img.shields.io/badge/Scaladoc-latest-blue)](https://javadoc.io/doc/org.finos.morphir/morphir-runtime_3/latest/index.html) [![Scaladex](https://img.shields.io/maven-central/v/org.finos.morphir/morphir-runtime_3?style=flat-square&label=Scaladex)](\"https://index.scala-lang.org/finos/morphir-scala\") [![Sonatype Releases](https://img.shields.io/nexus/r/https/oss.sonatype.org/org.finos.morphir/morphir_3.svg?label=Sonatype%20Release)](https://oss.sonatype.org/content/repositories/releases/org/finos/morphir/morphir_3/) [![Sonatype Snapshots](https://img.shields.io/nexus/s/https/oss.sonatype.org/org.finos.morphir/morphir_3.svg?label=Sonatype%20Snapshot)](https://oss.sonatype.org/content/repositories/snapshots/org/finos/morphir/morphir_3/)\n\n\nMorphir is a library of tools that works to capture business logic as data.\n\nFor the first time, business logic can be shared, stored, translated and visualised, all with the reliability of standardisation ensured in the Morphir framework.\n\n## morphir-scala\n\nProvides Scala language bindings and JVM based tooling for Morphir.\n\n## Desktop and web UI\n\nThe Morphir desktop and web UI now lives at [finos/morphir-ui](https://github.com/finos/morphir-ui).\n`morphir-scala` continues as the Scala implementation and capability provider behind it — for\nexample the Markdown tooling (`morphir/langkit/markdown`) and the GitHub connector\n(`morphir/connector/github`) — and as the shared `morphir-ui` library (`morphir/ui`) behind the\nlocal web host started by `morphir server`.\n\n## Installation\n\nYou can install the `morphir-cli` in the following ways:\n\n**Using Coursier**\n\n```\ncs install --channel https://raw.githubusercontent.com/finos/morphir-scala/main/coursier-channel.json morphir-cli\n```\n\nThen run the CLI:\n\n```\nmorphir-cli setup\n```\n\nWe also offer an insiders channel that grants access to snapshot releases of the CLI.\n\n```\ncs install --channel https://raw.githubusercontent.com/finos/morphir-scala/main/coursier-channel.json morphir-insiders-cli\n```\n\nThen run the CLI:\n\n```\nmorphir-cli setup\n```\n\nNOTE: The main channel above (non-insiders), also offers insiders builds under the name `morphir-insiders-cli`:\n\n```\ncs install --channel https://raw.githubusercontent.com/finos/morphir-scala/main/coursier-channel.json morphir-insiders-cli\n```\n\nThen run the CLI:\n\n```\nmorphir-insiders-cli setup\n```\n\n---\n## Development\n\n### Gitpod\n\nClick the button below to start a new development environment and start contributing right away:\n\n\n[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/finos/morphir-scala)\n\n### How to build and test\n\nMorphir-jvm use [mill](https://com-lihaoyi.github.io/mill) as its build tool.\n\n#### IntelliJ Setup for Linux\n\nIf you are using IntelliJ IDEA to edit morphir-jvm's Scala code, you can create the\nIntelliJ project files via:\n\n````bash\n./mill mill.idea.GenIdea/idea\n````\n\n#### BSP Setup\n\nIf you are using Visual Studio Code, IntelliJ, or any of the Editors which support BSP you can also generate BSP config files via:\n\n```\n./mill mill.bsp.BSP/install\n```\n\nYou can also try the following to use the `mill-contrib-bloop` plugin to install and use the Bloop based BSP setup.\n\n> NOTE: The recommended BSP based setup for mill is to run: `./mill mill.bsp.BSP/install` as mentioned above.\n\n\n\n\n\n#### Run Tests\n\n```bash\n./mill __.test\n```\n\nor in watch mode:\n\n```bash\n./mill -w __.test\n```\n\n> NOTE: When running tests you will want to ensure you have generated the MorphirIR for elm sources if you are running tests for the runtime. A simple way to do this is to use the `build.sh` helper script an invoke the `elm-build` option. `./build.sh elm-build`\n\nFor your convience, you can run the morphir-runtime tests using the following command:\n\n\n```bash\n./build.sh test-runtime-jvm\n```\n\n#### Test Coverage\n\nBefore checking test coverage, ensure that all tests have been run using the following command:\n\n```bash\n./mill __.test\n```\n\n##### HTML Coverage Report\n\nTo generate a human-readable coverage report, run the following command:\n\n```bash\n./mill scoverage.htmlReportAll\n```\n\nTo view the resulting coverage report, open `out/scoverage/htmlReportAll.dest/index.html`\n\n##### XML Coverage Report\n\nTo generate an XML coverage report, run the following command:\n\n```bash\n./mill scoverage.xmlReportAll\n```\n\nThe report will be generated at this location `out/scoverage/xmlReportAll.dest/scoverage.xml`\n\n#### Formatting Scala Code\n\nCode needs to be formatted according to `scalafmt` rules. Mill owns the entrypoint:\n\n```bash\n./mill format --kind scala\n```\n\nFor a few known files (preferred during iteration):\n\n```bash\n./mill format --paths path/to/File.scala\n```\n\nor git-touched paths:\n\n```bash\n./mill format --changed\n```\n\nSee [CONTRIBUTING.md — Formatting](./CONTRIBUTING.md#formatting) for the full command table (`--sources`, `--check`, etc.).\n\n#### Formatting Elm Code\n\nElm sources under `examples/morphir-elm-projects` and `morphir-elm` are formatted with the repo-pinned elm-format binary via Mill (no global `npm install -g elm-format`):\n\n```bash\n./mill format --kind elm\n```\n\nor a single project / path:\n\n```bash\n./mill format --kind elm --paths examples/morphir-elm-projects/evaluator-tests/src\n```\n\nMore detail for the evaluator-tests Elm tree:\n[examples/morphir-elm-projects/evaluator-tests/ReadMe.md](./examples/morphir-elm-projects/evaluator-tests/ReadMe.md)\n\n#### IntelliJ Setup for Windows\n\nWindows on ARM64 needs a native build JVM for Scala.js linking. Mill's managed JDK may resolve to an x64 build and\nrun under emulation, which makes the Closure phase of `fullLinkJS` much slower. Select the native Microsoft OpenJDK\nand add the ignored local Mill override:\n\n```powershell\nscoop install microsoft-lts-jdk # only when it is not already installed\nscoop reset microsoft-lts-jdk\nSet-Content .mill-jvm-version system\n.\\mill.bat --no-server --version\n```\n\nThe last command must report `os.arch: aarch64`. See the\n[Windows ARM64 contributor setup](./CONTRIBUTING.md#windows-arm64) for the explanation and server command.\n\nIf you are using IntelliJ IDEA to edit morphir-scala's Scala code, you can create the\nIntelliJ project files via or use the **BSP Setup** option (BSP is the recommended approach):\n\n```\n.\\mill -i mill.scalalib.GenIdea/idea\n```\n\n#### BSP Setup\n\nIf you are using Visual Studio Code, IntelliJ, or any of the Editors which support BSP you can also generate BSP config files via:\n\n```\n.\\mill mill.bsp.BSP/install\n```\n\nYou can also try the following to use the `mill-contrib-bloop` plugin to install and use the Bloop based BSP setup.\n\n> NOTE: The recommended BSP based setup for mill is to run: `.\\mill mill.bsp.BSP/install` as mentioned above.\n\n```\n.\\mill -i --import ivy:com.lihaoyi::mill-contrib-bloop:  mill.contrib.bloop.Bloop/install\n```\n\n#### Run Tests\n\n```\n.\\mill -i __.test\n```\n\nor in watch mode:\n\n```\n.\\mill -i -w __.test\n```\n\n#### Elm Tests\n\nDocumentation for the elm tests are located at [examples/morphir-elm-projects/evaluator-tests/ReadMe.md](https://github.com/finos/morphir-scala/blob/main/examples/morphir-elm-projects/evaluator-tests/ReadMe.md)\n\n#### Formatting Code\n\nCode needs to be formatted according to `scalafmt` / elm-format rules. Prefer the Mill entrypoint:\n\n```\n.\\mill -i format\n```\n\nNarrow selection during iteration:\n\n```\n.\\mill -i format --changed\n.\\mill -i format --paths path\\to\\File.scala\n```\n\nSee [CONTRIBUTING.md — Formatting](./CONTRIBUTING.md#formatting).\n\n### Roadmap\n\nWatch for updates.\n\n### Contributing\n\n1. Fork it (<https://github.com/finos/morphir-scala/fork>)\n2. Create your feature branch (`git checkout -b feature/fooBar`)\n3. Read our [contribution guidelines](CONTRIBUTING.md) and [Community Code of Conduct](https://www.finos.org/code-of-conduct)\n4. Commit your changes (`git commit -am 'Add some fooBar'`)\n5. Push to the branch (`git push origin feature/fooBar`)\n6. Create a new Pull Request\n\n_NOTE:_ Commits and pull requests to FINOS repositories will only be accepted from those contributors with an active, executed Individual Contributor License Agreement (ICLA) with FINOS OR who are covered under an existing and active Corporate Contribution License Agreement (CCLA) executed with FINOS. Commits from individuals not covered under an ICLA or CCLA will be flagged and blocked by the FINOS Clabot tool (or [EasyCLA](https://github.com/finos/community/blob/master/governance/Software-Projects/EasyCLA.md)). Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.\n\n*Need an ICLA? Unsure if you are covered under an existing CCLA? Email [help@finos.org](mailto:help@finos.org)*\n\n### License\n\nCopyright 2022 FINOS\n\nDistributed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).\n\nSPDX-License-Identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0)\n\n[Link-Slack]: https://finos-lf.slack.com/messages/morphir/\n[Link-SonatypeReleases]: https://oss.sonatype.org/content/repositories/releases/org/finos/morphir/morphir-runtime_3/ \"Sonatype Releases\"\n[Link-SonatypeSnapshots]: https://oss.sonatype.org/content/repositories/snapshots/org/finos/morphir/morphir-runtime_3/ \"Sonatype Snapshots\"\n\n[Badge-CI]: https://github.com/finos/morphir-scala/workflows/CI/badge.svg\n[Badge-Slack]: https://img.shields.io/badge/slack-@finos/morphir-green.svg?logo=slack\n[Badge-SonatypeReleases]: https://img.shields.io/nexus/r/https/oss.sonatype.org/org.finos.morphir/morphir-runtime_3.svg \"Sonatype Releases\"\n[Badge-SonatypeSnapshots]: https://img.shields.io/nexus/s/https/oss.sonatype.org/org.finos.morphir/morphir-runtime_3.svg \"Sonatype Snapshots\"\n[Badge-Stage]: https://cdn.jsdelivr.net/gh/finos/contrib-toolbox@master/images/badge-incubating.svg\n[Badge-Stage-Page]: https://finosfoundation.atlassian.net/wiki/display/FINOS/Incubating\n",
  "bytes": 10449,
  "sha": "b045022cf49adf2dd75255e180c3d92626317376a00c80fba4224c8056d775bf",
  "repo_slug": "finos/morphir-scala",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/okf_finos_morphir_scala_kb_bundles_programmi_7a54d39e/readme"
}