GitHub - flyteorg/flytekit-java: Java/Scala library for easily authoring Flyte tasks and workflows
This repository is archived.
The owners of this repository have archived this repository, and do not intend to make further updates. They now use a copy of this repository internally, but intend to move off of flytekit-java entirely, and not support flytekit-java with flyte V2.
Java/Scala library for easily authoring Flyte tasks and workflows.
Current development status:
- MVP features are developed
- Missing user documentation
- Project being tested, and collecting feedback
- No guarantees of API stability
To learn more about Flyte refer to:
Build from source
It requires Java 11 and Docker
mvn clean verify # Inspect dependency tree mvn dependency:tree # Inspect tooling dependency tree mvn dependency:resolve-plugins
How to run examples
You can build und run examples yourself.
Create .env.local with:
FLYTE_PLATFORM_URL=localhost:30081 FLYTE_AWS_ENDPOINT=http://localhost:30084 FLYTE_AWS_ACCESS_KEY_ID=minio FLYTE_AWS_SECRET_ACCESS_KEY=miniostorage FLYTE_STAGING_LOCATION=s3://my-s3-bucket FLYTE_PLATFORM_INSECURE=True
Note: If you're registering against the local Demo Flyte Cluster, you'll need to adjust the ports to align with it.
Package and register:
$ mvn package
$ scripts/jflyte register workflows \
-d=development \
-p=flytesnacks \
-v=$(git describe --always) \
-cp=flytekit-examples/target/libNote: scripts/jflyte requires jq to run, in addition to docker
Usage
Maven
<dependency>
<groupId>org.flyte</groupId>
<artifactId>flytekit-java</artifactId>
<version>0.4.58</version>
</dependency>
SBT
Scala 2.12 and Scala 2.13 are supported.
libraryDependencies ++= Seq( "org.flyte" % "flytekit-java" % "0.4.58", "org.flyte" %% "flytekit-scala" % "0.4.58" )
Contributing
Run mvn spotless:apply before committing.
Also use git commit --signoff "Commit message" to comply with DCO.
Releasing
- Go to Actions: Create flytekit-java release and click "Run workflow"
- Wait until the workflow finishes; in the meanwhile prepare a release note
- Making sure the new release is visible in Maven central
- Publish the release note associating with the latest tag created by the release workflow