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 constraints annotation processor + build logic #1611

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from

Conversation

skovati
Copy link
Contributor

@skovati skovati commented Nov 22, 2024

Description

Luke to fill out

Verification

Documentation

Future work

@Mythicaeda
Copy link
Contributor

This PR is currently orphaned, pair programming hosted by @mattdailis prior to handoff.

This PR has compiled a constraint w/o arguments, so it's potentially close.

@JoelCourtney to add example constraints to this branch

Decision to be made: support non-records or updating docs? @JoelCourtney proposing to just update docs and allow non-records later.

Let's start with only records and double-back for non-record support.

@JoelCourtney JoelCourtney force-pushed the feature/procedural-constraints-processor branch from db9d10f to 4dc61a6 Compare February 11, 2025 23:52
@JoelCourtney
Copy link
Contributor

State of PR:

The annotation processor worked without any extra work. It was actually so good at combining the scheduling / constraints workflows that the gradle task can't tell them apart, and the original buildAllSchedulingProcedureJars task would build the constraints as well. So I've just removed the Scheduling, making it buildAllProcedureJars. I don't see why the user would need separate workflows for them anyway. The annotation processor does still generate different value mapper types for goals & constraints. Since this gives us a bit of type safety during procedure loading, I figured I'd leave it and not combine them. So:

  • two different annotations
  • one annotation processor
  • two value mappers
  • one gradle command

I haven't made the equivalent of the scheduler's Procedure.java for constraints. I'm not sure that's included in this task, but I can work on it because it seems like the logical next step.

Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
14.5% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

@JoelCourtney JoelCourtney marked this pull request as ready for review February 12, 2025 22:54
@JoelCourtney JoelCourtney requested a review from a team as a code owner February 12, 2025 22:54
@JoelCourtney JoelCourtney requested a review from jmdelfa February 12, 2025 22:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Annotation Processor updates for Procedural Constraints
3 participants