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

Procedural jar gradle plugin #1470

Open
skovati opened this issue Jun 11, 2024 · 1 comment · May be fixed by #1567
Open

Procedural jar gradle plugin #1470

skovati opened this issue Jun 11, 2024 · 1 comment · May be fixed by #1567
Assignees
Labels
build Changes that affect the build system or external dependencies scheduling Anything related to the scheduling domain

Comments

@skovati
Copy link
Contributor

skovati commented Jun 11, 2024

Currently, the procedural jar build process is somewhat hacky, since Gradle is purely declarative, and doesn't have a way to explicitly call tasks from other tasks. Instead, we have to generate tasks to build each procedure jar, and add them to the dependency tree that gradle builds.

This worked fine for a while, but now that we use codegen for procedure parameter schemas / arguments, there is a configuration time dependency on an execution time step running (See Gradle lifecycle), which Gradle doesn't support.

This results in the need to run gradle twice, once to run the annotation processor + generate procedure jar building tasks with :compileJava, and another time to actually build procedures with :buildAllSchedulingProcedureJars.

A gradle plugin might offer a way to inject our imperative build logic deeper into the Gradle build lifecycle, avoiding the need to build twice and keep track of this "state" in the developers head.

Additionally, a gradle plugin could easily be sourced in a new repo, instead of copying build logic form our template repo.

@skovati skovati added the build Changes that affect the build system or external dependencies label Jun 11, 2024
@skovati skovati self-assigned this Jun 11, 2024
@dandelany dandelany added the scheduling Anything related to the scheduling domain label Aug 15, 2024
@skovati skovati linked a pull request Sep 24, 2024 that will close this issue
@dandelany
Copy link
Collaborator

The build process will also need some updates to support building Procedural Constraints - see #1571 & #1572 for details.

Discussed with @skovati and decided to include those changes as a part of this issue/PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Changes that affect the build system or external dependencies scheduling Anything related to the scheduling domain
Projects
Status: In Review
Development

Successfully merging a pull request may close this issue.

2 participants