Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Setting up a new morphir-cli and coding libraries #284

Closed
wants to merge 93 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
9cc3e60
Delete build.zig since we are using moon to orchestrate builds
DamianReeves Jun 1, 2024
e2c545a
Introduce morphir-platform that uses WebAssembly component model for …
DamianReeves Jun 2, 2024
d5da4d7
Create a morphir-platform-wasm npm package
DamianReeves Jun 2, 2024
79b75c0
Moved around some items
DamianReeves Jun 3, 2024
7101957
Working on getting Wasm module working
DamianReeves Jun 3, 2024
6e76b2b
Working on getting the CLI working
DamianReeves Jun 3, 2024
41fa6e1
Only use bun for build
DamianReeves Jun 4, 2024
6a74f7e
Switch to npm
DamianReeves Jun 4, 2024
a6709e9
Use moon from npm
DamianReeves Jun 4, 2024
fdcd639
Get things mostly working minus tokio error
DamianReeves Jun 4, 2024
70565b4
Got something working for deno_core integration
DamianReeves Jun 4, 2024
14a9b99
Layout with 2 clis to try varrying approaches
DamianReeves Jun 5, 2024
d0bb777
Introducing an Actor System for the CLI
DamianReeves Jun 6, 2024
28a6d6f
Move tests-integration folder to top-level
DamianReeves Jun 6, 2024
b7e09b6
Allow to find workspace
DamianReeves Jun 6, 2024
da07234
Changing to use latest starbase features
DamianReeves Jun 7, 2024
0d347c0
Working through finding
DamianReeves Jun 11, 2024
a254bf2
Add specification
DamianReeves Jun 11, 2024
68aadf6
Refine use of the Specification pattern
DamianReeves Jun 11, 2024
b1609ef
Added MorphirManifest
DamianReeves Jun 11, 2024
661cdde
Begin setup for ProjectManifest
DamianReeves Jun 11, 2024
39a9517
Adding the ability to locate Morphir manifests
DamianReeves Jun 12, 2024
4ea8c74
Wasm work
DamianReeves Jun 12, 2024
0055fcb
Move morphir project to morphir-rs to get rid of name clash
DamianReeves Jun 12, 2024
913f43e
Remove package.json from Git ignore
DamianReeves Jun 12, 2024
9dbd5e1
Working through creating Wasm Component for morphir-elm-compiler
DamianReeves Jun 13, 2024
ef14822
Working through interop issues
DamianReeves Jun 13, 2024
dbf7e9f
Elm format
DamianReeves Jun 14, 2024
ebe8612
Remove duplicate items
DamianReeves Jun 15, 2024
b4769ba
Setting up build and working on .NET host
DamianReeves Jun 27, 2024
122ddbf
Rearranging
DamianReeves Jun 27, 2024
0f0b90a
Layout the project so we have dotnet-morphir and Morphir.Cli
DamianReeves Jun 27, 2024
01e5438
Add dotnet based apps
DamianReeves Jun 28, 2024
d0ac87b
Dotnet changes
DamianReeves Jul 3, 2024
bd8045c
Update changes
DamianReeves Jul 27, 2024
3fffa17
Setup Morphir.Cli to support Aot Trimmed publish
DamianReeves Jul 29, 2024
30fb09b
Rename projects
DamianReeves Jul 29, 2024
ef66094
Add tests and CanonicalName
DamianReeves Jul 29, 2024
56115aa
Add new naming types
DamianReeves Jul 30, 2024
ddfcd6e
Making preparations for a Graal Native Image based main CLI
DamianReeves Aug 24, 2024
f6fa576
Ignore custom user morphir files
DamianReeves Aug 24, 2024
e9d53ec
Adding GitHub action that supports linting
DamianReeves Aug 24, 2024
cc8d3bb
Rename workflow to CI - Check
DamianReeves Aug 24, 2024
d70333f
Switch to GraalVM
DamianReeves Aug 25, 2024
3ca8b5b
Fix issue with Graalvm distro
DamianReeves Aug 25, 2024
d95eaf8
Correct typo in lint job of the check workflow
DamianReeves Aug 25, 2024
fd1816a
Add a test job that handles both GraalVM and temurin
DamianReeves Aug 25, 2024
de52e30
Fix runs-on
DamianReeves Aug 25, 2024
1de05f9
Fix workflow setup
DamianReeves Aug 25, 2024
0de4d05
Test run of Maven deployment
DamianReeves Aug 25, 2024
0a882bd
Try publishing with mill 0.11.12
DamianReeves Aug 26, 2024
b98355f
Update to use the s01 uris and new ORG secrets
DamianReeves Aug 26, 2024
b235ed0
Fix bug in script
DamianReeves Aug 26, 2024
5a25c72
One more script fix
DamianReeves Aug 26, 2024
5439444
Ensure we only release from one JVM version (11)
DamianReeves Aug 26, 2024
95eb1b3
Add dedicated release workflow
DamianReeves Aug 26, 2024
e402993
No need to include native-image component since it comes baked in
DamianReeves Aug 26, 2024
e66094b
Setup make CLI command
DamianReeves Aug 26, 2024
4f10276
Deleting extra items from the repo (will come back to Rust and dotnet)
DamianReeves Aug 26, 2024
2694d1d
Starting work on naming
DamianReeves Aug 27, 2024
b3a87fc
Change path encoding and add QualifiedName and variants
DamianReeves Aug 27, 2024
0a16a7b
Enable compilation of Elm module
DamianReeves Aug 28, 2024
baf3a98
Working on additional build capabilities for Elm through mill
DamianReeves Aug 28, 2024
48ee19e
Format code
DamianReeves Aug 28, 2024
1375fd9
Add additional ElmFormatModule handling of ElmFormat
DamianReeves Aug 28, 2024
aea1fb8
Update node version that is used
DamianReeves Aug 29, 2024
f803c73
Change location to scalalang
DamianReeves Aug 29, 2024
5cc7357
Move file locations a bit and restructure build
DamianReeves Aug 29, 2024
edf6d54
Shuffling around a few more things
DamianReeves Aug 29, 2024
b5f591a
Reorganize the repo a bit and add a morphir-elm cli project
DamianReeves Aug 29, 2024
95dcf6f
Looking to incorporate paths
DamianReeves Aug 29, 2024
978e9dc
Started to define graph structure
DamianReeves Aug 30, 2024
26ad02d
Move some things around
DamianReeves Aug 30, 2024
d9fcf8b
USe kyo-test
DamianReeves Aug 30, 2024
8e0a7aa
Dependencies and other things
DamianReeves Aug 30, 2024
c3c5c00
Add constraint on ElmPackageName
DamianReeves Aug 30, 2024
99fd805
Defined the ElmProjectLoader and ElmPackageResolver services
DamianReeves Aug 30, 2024
c5cf214
ElmModule stuff
DamianReeves Aug 31, 2024
1deaf59
Formatting and additions
DamianReeves Aug 31, 2024
4e93302
Adding Attributes
DamianReeves Sep 1, 2024
80f1355
Working on attribute model
DamianReeves Sep 2, 2024
45b7f19
Rename
DamianReeves Sep 2, 2024
ff9800a
Update Scala versions for test to 3.5.0
DamianReeves Sep 2, 2024
50a177e
move location of elm projects
DamianReeves Sep 2, 2024
9724cdf
Working on cli
DamianReeves Sep 3, 2024
b8215fe
Format
DamianReeves Sep 3, 2024
d6c42d3
Reorganization
DamianReeves Sep 3, 2024
d4fe3dc
Fix testApps alias
DamianReeves Sep 3, 2024
fa0fc04
Differentiate this release train of Morphir from others with a differ…
DamianReeves Sep 3, 2024
035d6a2
Reorg code
DamianReeves Sep 3, 2024
98ef365
Add additional services
DamianReeves Sep 3, 2024
56fbb12
Added additional methods to the System service
DamianReeves Sep 3, 2024
eb5d16b
More work on services
DamianReeves Sep 3, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 12 additions & 0 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"version": 1,
"isRoot": true,
"tools": {
"fantomas": {
"version": "6.3.9",
"commands": [
"fantomas"
]
}
}
}
24 changes: 0 additions & 24 deletions .github/ISSUE_TEMPLATE/Bug_report.md

This file was deleted.

17 changes: 0 additions & 17 deletions .github/ISSUE_TEMPLATE/Feature_request.md

This file was deleted.

24 changes: 0 additions & 24 deletions .github/ISSUE_TEMPLATE/bug_report.md

This file was deleted.

17 changes: 0 additions & 17 deletions .github/ISSUE_TEMPLATE/feature_request.md

This file was deleted.

93 changes: 93 additions & 0 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: CI - Check
on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
lint:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout current branch
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Java
uses: graalvm/setup-graalvm@v1
with:
distribution: 'graalvm'
java-version: 22
version: "latest"
github-token: ${{ secrets.GITHUB_TOKEN }}
components: "native-image"
- name: Cache scala dependencies
uses: coursier/cache-action@v6

- name: Lint code
run: ./mill -i Alias/run lint

test:
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
matrix:
java-distribution: ["temurin"]
java-version: ["22", "11"]
include:
- java-distribution: "graalvm"
java-version: "22"
is-graal: true
release-libraries: false
release-apps: true
- java-distribution: "temurin"
java-version: "11"
release-libraries: true
release-apps: false
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup GraalVM
if: ${{matrix.is-graal}}
uses: graalvm/setup-graalvm@v1
with:
java-version: ${{ matrix.java-version }}
distribution: ${{ matrix.java-distribution}}
version: "latest"
github-token: ${{ secrets.GITHUB_TOKEN }}

- name: Setup Java
if: ${{matrix.is-graal != true}}
uses: actions/setup-java@v4
with:
distribution: ${{ matrix.java-distribution }}
java-version: ${{ matrix.java-version}}

- name: Cache scala dependencies
uses: coursier/cache-action@v6

- name: Test Libraries
run: ./mill -i Alias/run testModules

- name: Test Apps
if: ${{matrix.is-graal}}
run: ./mill -i Alias/run testApps

- name: Ensure Can Publish - Libraries
run: ./mill -i __.publishLibraryArtifacts
if: ${{matrix.release-libraries}}
env:
MORPHIR_RELEASE_LIBRARIES: ${{matrix.release-libraries}}
MORPHIR_RELEASE_APPS: ${{matrix.release-apps}}

- name: Ensure Can Publish - Apps
run: ./mill -i __.publishApplicationArtifacts
if: ${{matrix.release-apps}}
env:
MORPHIR_RELEASE_LIBRARIES: ${{matrix.release-libraries}}
MORPHIR_RELEASE_APPS: ${{matrix.release-apps}}

101 changes: 101 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: Release
on:
release:
types:
- published
workflow_dispatch:

jobs:
lint:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout current branch
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Java
uses: graalvm/setup-graalvm@v1
with:
distribution: 'graalvm'
java-version: 22
version: "latest"
github-token: ${{ secrets.GITHUB_TOKEN }}

- name: Cache scala dependencies
uses: coursier/cache-action@v6

- name: Lint code
run: ./mill -i Alias/run lint

test:
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
matrix:
java-distribution: ["temurin"]
java-version: ["22", "11"]
include:
- java-distribution: "graalvm"
java-version: "22"
is-graal: true
release-libraries: false
release-apps: true
- java-distribution: "temurin"
java-version: "11"
release-libraries: true
release-apps: false
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup GraalVM
if: ${{matrix.is-graal}}
uses: graalvm/setup-graalvm@v1
with:
java-version: ${{ matrix.java-version }}
distribution: ${{ matrix.java-distribution}}
version: "latest"
github-token: ${{ secrets.GITHUB_TOKEN }}
components: "native-image"

- name: Setup Java
if: ${{matrix.is-graal != true}}
uses: actions/setup-java@v4
with:
distribution: ${{ matrix.java-distribution }}
java-version: ${{ matrix.java-version}}

- name: Cache scala dependencies
uses: coursier/cache-action@v6

- name: Test Libraries
run: ./mill -i Alias/run testModules

- name: Test Apps
if: ${{matrix.is-graal}}
run: ./mill -i Alias/run testApps

- name: Release Libraries
run: ci/release-maven-libraries.sh
if: matrix.release-libraries && (github.repository == 'finos/morphir' && ( (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/release/**' ) || (github.ref != 'refs/heads/main' && github.ref != 'refs/heads/release/**' && startsWith( github.ref, 'refs/tags/') ) ))
env:
MORPHIR_RELEASE_LIBRARIES: ${{matrix.release-libraries}}
MORPHIR_RELEASE_APPS: ${{matrix.release-apps}}
SONATYPE_PGP_PASSWORD: ${{ secrets.PGP_PASSPHRASE }}
SONATYPE_PGP_SECRET: ${{ secrets.PGP_SECRET_BASE64 }}
SONATYPE_PASSWORD: ${{ secrets.ORG_MORPHIR_MAVEN_DEPLOY_PASSWORD }}
SONATYPE_USERNAME: ${{ secrets.ORG_MORPHIR_MAVEN_DEPLOY_USERNAME }}

- name: Release Applications
run: ci/release-applications.sh
if: matrix.release-apps && (github.repository == 'finos/morphir' && ( (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/release/**' ) || (github.ref != 'refs/heads/main' && github.ref != 'refs/heads/release/**' && startsWith( github.ref, 'refs/tags/') ) ))
env:
MORPHIR_RELEASE_LIBRARIES: ${{matrix.release-libraries}}
MORPHIR_RELEASE_APPS: ${{matrix.release-apps}}
SONATYPE_PGP_PASSWORD: ${{ secrets.PGP_PASSPHRASE }}
SONATYPE_PGP_SECRET: ${{ secrets.PGP_SECRET_BASE64 }}
SONATYPE_PASSWORD: ${{ secrets.ORG_MORPHIR_MAVEN_DEPLOY_PASSWORD }}
SONATYPE_USERNAME: ${{ secrets.ORG_MORPHIR_MAVEN_DEPLOY_USERNAME }}
36 changes: 35 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Node, Bun, and Deno Related
package-lock.json
#package-lock.json
node_modules/

# IDE Related
Expand Down Expand Up @@ -30,3 +30,37 @@ target/
# moon
.moon/cache
.moon/docker

build/bin/
build/obj/
*/dotnet/**/bin/
*/dotnet/**/obj/
*.semanticdb

# .NET
# User-specific files
*.suo
*.user
*.sln.docstates
**.idea
*.iml

# Roslyn cache directories
*.ide/

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user

# SQL Server files
*.mdf
*.ldf

# .NET Core
project.lock.json
project.fragment.lock.json
**/Properties/launchSettings.json

# Morphir
morphir.user.*
4 changes: 0 additions & 4 deletions .idea/.gitignore

This file was deleted.

1 change: 1 addition & 0 deletions .mill-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0.11.12
12 changes: 11 additions & 1 deletion .moon/tasks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ tasks:
optional: true
- target: "~:cargo-build"
optional: true
- target: "~:build-artifacts"
optional: true
fmt:
inputs: []
deps:
Expand Down Expand Up @@ -48,4 +50,12 @@ tasks:
optional: true
- target: "~:lint"
optional: true

clean:
inputs: []
rebuild:
inputs: []
deps:
- target: "~:clean"
- target: "~:build"
options:
runDepsInParallel: false
Loading
Loading