Skip to content
 
 

Repository files navigation

mobilityid monorepo

CI Java CI Scala CI Go CI PHP CI TypeScript codecov

This repository contains multiple implementations of the same mobility ID domain:

  • scala/: original Scala implementation (sbt + specs2)
  • java/: Java 21 port (mobilityid4j, Gradle)
  • go/: Go port (mobilityid.juherr.dev/go)
  • php/: PHP port (juherr/mobility-id, PHP 8.4+)
  • ts/: TypeScript port (@juherr/mobilityid, Bun + Vite+)

Quick start

Scala workspace

cd scala
sbt test

Run a single Scala suite:

cd scala
sbt "core/testOnly com.thenewmotion.mobilityid.ContractIdSpec"

Java workspace

cd java
./gradlew test

Run a single Java suite:

cd java
./gradlew test --tests "*ContractIdTest"

TypeScript workspace

cd ts
vp install
vp check

Run a single TypeScript test pattern:

cd ts
vp test ContractId

Documentation

  • Scala docs and original usage examples: scala/README.md
  • Java-specific docs and design choices: java/README.md
  • Go-specific docs and design choices: go/README.md
  • PHP-specific docs and design choices: php/README.md
  • TypeScript-specific docs and design choices: ts/README.md

Dependency updates

  • Renovate manages GitHub Actions, Gradle, npm, sbt/Scala, and mise.toml tool versions (.github/renovate.json).
  • mise.toml uses simplified version formats: major.minor for sbt/gradle (e.g., 1.12, 9.7), major only for Java/Node (e.g., 21, 24). See AGENTS.md for configuration details.
  • CI validates Gradle Wrapper integrity on every run (gradle/actions/wrapper-validation).
  • Gradle distribution integrity is pinned with distributionSha256Sum in java/gradle/wrapper/gradle-wrapper.properties.
  • .github/workflows/dependency-submission.yml submits the resolved Gradle dependency graph (transitive dependencies and build plugins included) to GitHub on main and on same-repository pull requests; GitHub parses the npm, Composer, Go and Actions manifests itself.
  • Pull requests run a dependency review gate (actions/dependency-review-action, high+ in any scope) in the same workflow, after the Java submission; Dependabot alerts cover main continuously.
  • OWASP Dependency-Check scans the full Java dependency set weekly on main (and on demand) in .github/workflows/security.yml; it is not a pull request gate.

Java release checks

Run from java/:

./gradlew check
./gradlew javadocJar sourcesJar
./gradlew publishToMavenLocal

mobilityid4j is published to the Maven Central Portal through the nmcp Gradle plugin; details in java/README.md.

Releases

  • Java, TypeScript and PHP are released together by the manually dispatched Release workflow (.github/workflows/release.yml): it validates CHANGELOG.md and .github/release-notes/X.Y.Z.md, publishes mobilityid4j to Maven Central, @juherr/mobilityid to npm and the php/ split to the juherr/mobility-id-php mirror that Packagist follows, then creates the signed vX.Y.Z tag and the GitHub Release.
  • Go is released from go/vX.Y.Z tags (.github/workflows/release-go.yml).
  • Procedure and required secrets: CONTRIBUTING.md.

License

  • Repository-level license: LICENSE
  • Original Scala license file preserved at: scala/LICENSE

Acknowledgements

Many thanks to the original Mobility ID Utils authors and contributors at The New Motion (now Shell Recharge Solutions EU) for creating and open-sourcing the Scala implementation that this repository builds upon.

About

No description, website, or topics provided.

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages