Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/flyteorg/flytekit-java

Java/Scala library for easily authoring Flyte tasks and workflows
https://github.com/flyteorg/flytekit-java

flyte java scala

Last synced: 3 days ago
JSON representation

Java/Scala library for easily authoring Flyte tasks and workflows

Awesome Lists containing this project

README

        

# flytekit-java

[![Lifecycle](https://img.shields.io/badge/lifecycle-alpha-a0c3d2.svg)](https://img.shields.io/badge/lifecycle-alpha-a0c3d2.svg)

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:

- [Flyte homepage](https://flyte.org)
- [Flyte master repository](https://github.com/lyft/flyte)

## Build from source

It requires **Java 11 and Docker**

```bash
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:

```bash
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](https://docs.flyte.org/en/latest/user_guide/environment_setup.html#create-a-local-demo-flyte-cluster), you'll need to adjust the ports to align with it.

Package and register:

```bash
$ mvn package
$ scripts/jflyte register workflows \
-d=development \
-p=flytesnacks \
-v=$(git describe --always) \
-cp=flytekit-examples/target/lib
```

**Note**: `scripts/jflyte` requires `jq` to run, in addition to `docker`

## Usage

### Maven

```

org.flyte
flytekit-java
0.4.58

```

### SBT

Scala 2.12 and Scala 2.13 are supported.

```scala
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](https://github.com/flyteorg/flytekit-java/actions/workflows/release.yaml) 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](https://repo1.maven.org/maven2/org/flyte/flytekit-java/)
- Publish the release note associating with the latest tag created by the release workflow