Skip to content

Commit 4303467

Browse files
committed
template: sync giter8 example pipelines and tooling
1 parent 762bdb0 commit 4303467

13 files changed

Lines changed: 248 additions & 248 deletions

File tree

flowforge.g8/README.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,6 @@ This template ships with a starter CI at `.github/workflows/ci.yml`.
4545
### 6. Switch to Deequ (optional)
4646
Set `-Dff.quality.mode=deequ` to use Deequ for DQ; otherwise native Spark checks are used.
4747

48-
### Notes
49-
- Template avoids `$` in source files to prevent giter8 escaping problems.
50-
5148
## What you just proved
5249

5350
🎯 **flowforge's Core USP**: "Data pipelines will not even build if source or target schema do not match or align!"
@@ -81,4 +78,4 @@ flowforge supports 5 schema evolution policies:
8178
- [GitHub Issues](https://github.com/flowforge/flowforge/issues)
8279

8380
---
84-
*Generated with flowforge Giter8 Template | 100% Compile-Time Contracts*
81+
*Generated with flowforge giter8 template | 100% compile-time contracts*

flowforge.g8/src/main/g8/.github/workflows/ci.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,18 @@ jobs:
2525
uses: actions/cache@v4
2626
with:
2727
path: ~/.ivy2/cache
28-
key: ${{ runner.os }}-ivy2-${{ hashFiles('**/build.sbt') }}
28+
key: \${{ runner.os }}-ivy2-\${{ hashFiles('**/build.sbt') }}
2929
restore-keys: |
30-
${{ runner.os }}-ivy2-
30+
\${{ runner.os }}-ivy2-
3131
3232
- name: sbt format check
3333
run: sbt -v scalafmtSbtCheck scalafmtCheckAll
3434

3535
build:
3636
runs-on: ubuntu-latest
37-
if: ${{ env.RUN_FULL == 'true' }}
37+
if: \${{ env.RUN_FULL == 'true' }}
3838
env:
39-
RUN_FULL: ${{ vars.RUN_FULL }}
39+
RUN_FULL: \${{ vars.RUN_FULL }}
4040
steps:
4141
- name: Checkout
4242
uses: actions/checkout@v4
@@ -50,9 +50,9 @@ jobs:
5050
uses: actions/cache@v4
5151
with:
5252
path: ~/.ivy2/cache
53-
key: ${{ runner.os }}-ivy2-${{ hashFiles('**/build.sbt') }}
53+
key: \${{ runner.os }}-ivy2-\${{ hashFiles('**/build.sbt') }}
5454
restore-keys: |
55-
${{ runner.os }}-ivy2-
55+
\${{ runner.os }}-ivy2-
5656
- name: Compile
5757
run: sbt -v compile
5858
- name: Test

flowforge.g8/src/main/g8/Makefile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
# Default target
77
help:
8-
@echo "FlowForge Pipeline"
8+
@echo "flowforge pipeline"
99
@echo "================================="
1010
@echo "Available commands:"
1111
@echo ""
@@ -25,7 +25,7 @@ build:
2525
@echo "🔨 Building FlowForge pipeline..."
2626
sbt compile
2727

28-
test:
28+
test:
2929
@echo "🧪 Running tests..."
3030
sbt test
3131

@@ -56,7 +56,7 @@ demo-contract-drift:
5656
@make build
5757
@echo ""
5858
@echo "2. Now edit Contract.scala and change 'id: Long' to 'id: String'"
59-
@echo "3. Run 'make build' again to see compile failure"
59+
@echo "3. Run 'make build' again to see compile failure"
6060
@echo "4. Revert the change to fix compilation"
6161
@echo ""
62-
@echo "This proves FlowForge's core USP: Pipelines won't build if contracts drift!"
62+
@echo "This proves flowforge's core USP: Pipelines won't build if contracts drift!"

flowforge.g8/src/main/g8/README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# $name$
22

3-
Generated with FlowForge.g8. Minimal template; only `name` and `organization` are substituted.
3+
Generated with flowforge.g8. Minimal template; only `name` and `organization` are substituted.
44

55
Build
66
```bash
@@ -13,6 +13,5 @@ sbt run
1313
```
1414

1515
Notes
16-
- Template avoids `$` in code to prevent escaping issues.
1716
- Customize package and code under `src/main/scala/com/flowforge/example`.
1817

flowforge.g8/src/main/g8/build.sbt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,5 @@ lazy val root = (project in file("."))
6262
),
6363
libraryDependencies ++= ffDeps ++ sparkDeps ++ loggingDeps ++ jdbcDeps ++ zioDeps ++ testDeps,
6464
)
65+
66+
// TODO: Not compiling, check & fix

flowforge.g8/src/main/g8/ops/marquez/Makefile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,14 @@ lineage-logs:
2727

2828
# Check status of lineage services
2929
lineage-status:
30-
@echo "FlowForge Lineage Stack Status:"
30+
@echo "flowforge lineage stack status:"
3131
@echo "================================"
3232
docker compose -f docker-compose.yml ps
3333
@echo ""
3434
@echo "Service Health Checks:"
35-
@echo "• PostgreSQL: $$(curl -s -o /dev/null -w '%{http_code}' http://localhost:5432 2>/dev/null || echo 'DOWN')"
36-
@echo "• Marquez API: $$(curl -s -o /dev/null -w '%{http_code}' http://localhost:5000/api/v1/namespaces 2>/dev/null || echo 'DOWN')"
37-
@echo "• Marquez Web: $$(curl -s -o /dev/null -w '%{http_code}' http://localhost:3000 2>/dev/null || echo 'DOWN')"
35+
@echo "• PostgreSQL: \$(curl -s -o /dev/null -w \'%{http_code}\' http://localhost:5432 2>/dev/null || echo \'DOWN\')"
36+
@echo "• Marquez API: \$(curl -s -o /dev/null -w \'%{http_code}\' http://localhost:5000/api/v1/namespaces 2>/dev/null || echo \'DOWN\')"
37+
@echo "• Marquez Web: \$(curl -s -o /dev/null -w \'%{http_code}\' http://localhost:3000 2>/dev/null || echo \'DOWN\')"
3838

3939
# Clean up all data (removes PostgreSQL volume)
4040
lineage-clean:
@@ -48,7 +48,7 @@ lineage-reset: lineage-clean lineage-up
4848
@echo "✓ Lineage stack reset complete"
4949

5050
help:
51-
@echo "FlowForge Lineage Management Commands:"
51+
@echo "flowforge lineage management commands:"
5252
@echo "====================================="
5353
@echo " make lineage-up - Start the lineage stack"
5454
@echo " make lineage-down - Stop the lineage stack"
@@ -57,5 +57,5 @@ help:
5757
@echo " make lineage-clean - Clean up all data"
5858
@echo " make lineage-reset - Reset (clean + restart)"
5959
@echo ""
60-
@echo "After starting, run your FlowForge pipelines and view lineage at:"
60+
@echo "After starting, run your flowforge pipelines and view lineage at:"
6161
@echo "http://localhost:3000"

flowforge.g8/src/main/g8/src/main/scala/com/flowforge/app/PipelineApp.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ object PipelineApp extends IOApp.Simple {
106106
QualityConstraint.NullRateBelow(RefinedTypes.FieldName.unsafeFrom("email"), 0.0),
107107
QualityConstraint.Pattern(
108108
RefinedTypes.FieldName.unsafeFrom("email"),
109-
"^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}",
109+
"^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+\\\\.[A-Za-z]{2,}",
110110
),
111111
QualityConstraint.Min(RefinedTypes.FieldName.unsafeFrom("age"), 0.0),
112112
QualityConstraint.Max(RefinedTypes.FieldName.unsafeFrom("age"), 120.0),

flowforge.g8/src/main/g8/src/main/scala/com/flowforge/example/Hello.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.flowforge.example
22

33
object Hello {
44
def main(args: Array[String]): Unit = {
5-
val msg = "Hello, FlowForge! " + "This project was generated by giter8."
5+
val msg = "Hello, flowforge! " + "This project was generated by giter8."
66
println(msg)
77
}
88
}

flowforge.g8/src/main/g8/src/main/scala/com/flowforge/sample/DemoPipeline.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ package com.flowforge.sample
66
*/
77
object DemoPipeline {
88
def main(args: Array[String]): Unit = {
9-
println("DemoPipeline: add FlowForge libs and your pipeline when ready.")
9+
println("DemoPipeline: add flowforge libs and your pipeline when ready.")
1010
}
1111
}

0 commit comments

Comments
 (0)