Skip to content

Commit daeec0c

Browse files
build: release version 1.12.0 (#508)
1 parent b205696 commit daeec0c

File tree

154 files changed

+2715
-864
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

154 files changed

+2715
-864
lines changed

.github/workflows/pull_request_gradle.yml

+6-10
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,16 @@ on:
44
push:
55
branches: [stable, development, '*.x']
66
paths:
7-
- '**/*.gradle'
8-
- '**/*.java'
9-
- '**/*.kt'
10-
- '**/*.versions.toml'
11-
- '**/versions.properties'
7+
- 'settings.gradle'
8+
- 'java/**/*'
9+
- 'kotlin/**/*'
1210
- '.github/**/*.yml'
1311
pull_request:
1412
branches: [stable, development, '*.x']
1513
paths:
16-
- '**/*.gradle'
17-
- '**/*.java'
18-
- '**/*.kt'
19-
- '**/*.versions.toml'
20-
- '**/versions.properties'
14+
- 'settings.gradle'
15+
- 'java/**/*'
16+
- 'kotlin/**/*'
2117
- '.github/**/*.yml'
2218

2319
jobs:

.github/workflows/pull_request.yml renamed to .github/workflows/pull_request_maven.yml

+10-12
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,18 @@ name: Maven
33
on:
44
push:
55
branches: [stable, development, '*.x']
6-
paths-ignore:
7-
- 'LICENSE*'
8-
- '.gitignore'
9-
- '**.md'
10-
- '**.adoc'
11-
- '*.txt'
6+
paths:
7+
- 'pom.xml'
8+
- 'java/**/*'
9+
- 'kotlin/**/*'
10+
- '.github/**/*.yml'
1211
pull_request:
1312
branches: [stable, development, '*.x']
14-
paths-ignore:
15-
- 'LICENSE*'
16-
- '.gitignore'
17-
- '**.md'
18-
- '**.adoc'
19-
- '*.txt'
13+
paths:
14+
- 'pom.xml'
15+
- 'java/**/*'
16+
- 'kotlin/**/*'
17+
- '.github/**/*.yml'
2018

2119
jobs:
2220
build:

.github/workflows/pull_request_long_running.yml renamed to .github/workflows/pull_request_maven_long_running.yml

+101-8
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
1-
name: Long-Running
1+
name: Maven Long-Running
22

33
on:
4-
pull_request:
4+
# Enables the workflow to run on PRs from forks;
5+
# token sharing is safe here, because enterprise is a private repo and therefore fully under our control.
6+
pull_request_target:
57
branches: [stable, development, '*.x']
6-
paths-ignore:
7-
- 'LICENSE*'
8-
- '.gitignore'
9-
- '**.md'
10-
- '**.adoc'
11-
- '*.txt'
8+
types:
9+
- opened
10+
- reopened
11+
- synchronize
12+
paths:
13+
- 'pom.xml'
14+
- 'java/**/*'
15+
- 'kotlin/**/*'
16+
- '.github/**/*.yml'
1217

1318
jobs:
1419
build-quarkus:
@@ -83,6 +88,94 @@ jobs:
8388
- name: Test timefold-quickstarts (native tests)
8489
working-directory: ./timefold-quickstarts/${{matrix.module}}
8590
run: mvn -B -Dnative -Pnative verify
91+
92+
build-enterprise-quarkus:
93+
concurrency:
94+
group: pull_request_enterprise_long_running-${{ github.event_name }}-${{ github.head_ref }}-${{ matrix.module }}-${{ matrix.java-version }}
95+
cancel-in-progress: true
96+
runs-on: ubuntu-latest
97+
strategy:
98+
matrix:
99+
module: [ "java/bed-allocation", "java/vehicle-routing"]
100+
java-version: [ 17 ] # Only the first supported LTS; already too many jobs here.
101+
timeout-minutes: 120
102+
steps:
103+
# Clone timefold-solver
104+
# Need to check for stale repo, since Github is not aware of the build chain and therefore doesn't automate it.
105+
- name: Checkout timefold-solver (PR) # Checkout the PR branch first, if it exists
106+
id: checkout-solver
107+
uses: actions/checkout@v4
108+
continue-on-error: true
109+
with:
110+
repository: ${{ github.actor }}/timefold-solver
111+
ref: ${{ github.head_ref }}
112+
path: ./timefold-solver
113+
fetch-depth: 0 # Otherwise merge will fail on account of not having history.
114+
- name: Checkout timefold-solver (main) # Checkout the main branch if the PR branch does not exist
115+
if: steps.checkout-solver.outcome != 'success'
116+
uses: actions/checkout@v4
117+
with:
118+
repository: TimefoldAI/timefold-solver
119+
ref: main
120+
path: ./timefold-solver
121+
fetch-depth: 0 # Otherwise merge will fail on account of not having history.
122+
- name: Prevent stale fork of timefold-solver
123+
if: steps.checkout-solver.outcome == 'success'
124+
env:
125+
BLESSED_REPO: "timefold-solver"
126+
BLESSED_BRANCH: ${{ endsWith(github.head_ref, '.x') && github.head_ref || 'main' }}
127+
shell: bash
128+
working-directory: ./timefold-solver
129+
run: .github/scripts/prevent_stale_fork.sh
130+
# Clone timefold-solver-enterprise
131+
# Need to check for stale repo, since Github is not aware of the build chain and therefore doesn't automate it.
132+
- name: Checkout timefold-solver-enterprise (PR) # Checkout the PR branch first, if it exists
133+
id: checkout-solver-enterprise
134+
uses: actions/checkout@v4
135+
continue-on-error: true
136+
with:
137+
repository: TimefoldAI/timefold-solver-enterprise
138+
ref: ${{ github.head_ref }}
139+
token: ${{ secrets.JRELEASER_GITHUB_TOKEN }} # Safe; only used to clone the repo and not stored in the fork.
140+
path: ./timefold-solver-enterprise
141+
fetch-depth: 0 # Otherwise merge will fail on account of not having history.
142+
- name: Checkout timefold-solver-enterprise (main) # Checkout the main branch if the PR branch does not exist
143+
if: steps.checkout-solver-enterprise.outcome != 'success'
144+
uses: actions/checkout@v4
145+
with:
146+
repository: TimefoldAI/timefold-solver-enterprise
147+
ref: main
148+
token: ${{ secrets.JRELEASER_GITHUB_TOKEN }} # Safe; only used to clone the repo and not stored in the fork.
149+
path: ./timefold-solver-enterprise
150+
fetch-depth: 0 # Otherwise merge will fail on account of not having history.
151+
152+
# Clone timefold-quickstarts
153+
# No need to check for stale repo, as Github merges the main repo into the fork automatically.
154+
- name: Checkout timefold-quickstarts
155+
uses: actions/checkout@v4
156+
with:
157+
path: './timefold-quickstarts'
158+
159+
# Build and test
160+
- name: "Setup GraalVM native image"
161+
uses: graalvm/setup-graalvm@v1
162+
with:
163+
java-version: ${{matrix.java-version}}
164+
distribution: 'graalvm-community'
165+
components: 'native-image'
166+
github-token: ${{ secrets.GITHUB_TOKEN }}
167+
cache: 'maven'
168+
169+
- name: Quickly build timefold-solver
170+
working-directory: ./timefold-solver
171+
run: mvn -B -Dquickly -DskipTests clean install
172+
- name: Quickly build timefold-solver-enterprise
173+
working-directory: ./timefold-solver-enterprise
174+
run: mvn -B -Dquickly -DskipTests clean install
175+
- name: Test timefold-enterprise-quickstarts (enterprise native tests)
176+
working-directory: ./timefold-quickstarts/${{matrix.module}}
177+
run: mvn -B -Dnative -Denterprise -Pnative verify
178+
86179
build-spring-boot:
87180
concurrency:
88181
group: pull_request_long_running-${{ github.event_name }}-${{ github.head_ref }}-${{ matrix.module }}-${{ matrix.java-version }}

.github/workflows/pull_request_python.yml

+3-5
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,12 @@ on:
44
push:
55
branches: [stable, development, '*.x']
66
paths:
7-
- '**/*.py'
8-
- '**/pyproject.toml'
7+
- 'python/**/*'
98
- '.github/**/*.yml'
109
pull_request:
1110
branches: [stable, development, '*.x']
1211
paths:
13-
- '**/*.py'
14-
- '**/pyproject.toml'
12+
- 'python/**/*'
1513
- '.github/**/*.yml'
1614

1715
jobs:
@@ -102,7 +100,7 @@ jobs:
102100
cache: 'maven'
103101

104102
- name: Python Setup
105-
uses: actions/setup-python@v4
103+
uses: actions/setup-python@v5
106104
with:
107105
python-version: ${{matrix.python-version}}
108106
cache: 'pip'

.github/workflows/release.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,9 @@ jobs:
6969
git merge -s ours --no-edit ${{ github.event.inputs.stableBranch }}
7070
git checkout ${{ github.event.inputs.releaseBranch }}-bump
7171
git merge --squash ${{ github.event.inputs.releaseBranch }}
72-
git commit -m "build: release version ${{ github.event.inputs.version }}"
72+
git commit -m "build: release version ${{ github.event.inputs.java-version }}"
7373
git push origin ${{ github.event.inputs.releaseBranch }}-bump
74-
gh pr create --reviewer triceo --base ${{ github.event.inputs.stableBranch }} --head ${{ github.event.inputs.releaseBranch }}-bump --title "build: release version ${{ github.event.inputs.version }}" --body-file .github/workflows/release-pr-body.md
74+
gh pr create --reviewer triceo --base ${{ github.event.inputs.stableBranch }} --head ${{ github.event.inputs.releaseBranch }}-bump --title "build: release version ${{ github.event.inputs.java-version }}" --body-file .github/workflows/release-pr-body.md
7575
env:
7676
GITHUB_TOKEN: ${{ secrets.JRELEASER_GITHUB_TOKEN }}
7777

@@ -84,4 +84,4 @@ jobs:
8484
export NEW_PYTHON_VERSION="999-dev0"
8585
.github/scripts/change_versions.sh
8686
git commit -am "build: move back to version $NEW_VERSION"
87-
git push origin ${{ github.event.inputs.releaseBranch }}
87+
git push origin ${{ github.event.inputs.releaseBranch }}

README.adoc

+15-15
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ a|* link:java/hello-world/README.adoc[Java (Hello World)] (Java, Maven or Gradle
3737

3838
Find the most efficient routes for vehicles to reach visits, taking into account vehicle capacity and time windows when visits are available. Sometimes also called "CVRPTW".
3939

40-
image::java/vehicle-routing/quarkus-vehicle-routing-screenshot.png[]
40+
image::java/vehicle-routing/vehicle-routing-screenshot.png[]
4141

4242
* link:java/vehicle-routing/README.adoc[Run quarkus-vehicle-routing] (Java, Maven, Quarkus)
4343

@@ -48,15 +48,15 @@ image::java/vehicle-routing/quarkus-vehicle-routing-screenshot.png[]
4848

4949
Schedule maintenance jobs to crews over time to reduce both premature and overdue maintenance.
5050

51-
image::java/maintenance-scheduling/quarkus-maintenance-scheduling-screenshot.png[]
51+
image::java/maintenance-scheduling/maintenance-scheduling-screenshot.png[]
5252

5353
* link:java/maintenance-scheduling/README.adoc[Run quarkus-maintenance-scheduling] (Java, Maven, Quarkus)
5454

5555
=== Employee Scheduling
5656

5757
Schedule shifts to employees, accounting for employee availability and shift skill requirements.
5858

59-
image::java/employee-scheduling/quarkus-employee-scheduling-screenshot.png[]
59+
image::java/employee-scheduling/employee-scheduling-screenshot.png[]
6060

6161
* link:java/employee-scheduling/README.adoc[Run quarkus-employee-scheduling] (Java, Maven, Quarkus)
6262

@@ -66,23 +66,23 @@ image::java/employee-scheduling/quarkus-employee-scheduling-screenshot.png[]
6666

6767
Schedule food packaging orders to manufacturing lines, to minimize downtime and fulfill all orders in time.
6868

69-
image::java/food-packaging/quarkus-food-packaging-screenshot.png[]
69+
image::java/food-packaging/food-packaging-screenshot.png[]
7070

7171
* link:java/food-packaging/README.adoc[Run quarkus-food-packaging] (Java, Maven, Quarkus)
7272

7373
=== Order Picking
7474

7575
Generate an optimal picking plan for completing a set of orders.
7676

77-
image::java/order-picking/quarkus-order-picking-screenshot.png[]
77+
image::java/order-picking/order-picking-screenshot.png[]
7878

7979
* link:java/order-picking/README.adoc[Run quarkus-order-picking] (Java, Maven, Quarkus)
8080

8181
=== School timetabling
8282

8383
Assign lessons to timeslots and rooms to produce a better schedule for teachers and students.
8484

85-
image::java/school-timetabling/quarkus-school-timetabling-screenshot.png[]
85+
image::java/school-timetabling/school-timetabling-screenshot.png[]
8686

8787
* link:java/school-timetabling/README.adoc[Run quarkus-school-timetabling] (Java, Maven or Gradle, Quarkus)
8888
* link:java/spring-boot-integration/README.adoc[Run spring-boot-school-timetabling] (Java, Maven or Gradle, Spring Boot)
@@ -97,71 +97,71 @@ Without a UI:
9797

9898
Pick the best geographical locations for new stores, distribution centers, covid test centers or telco masts.
9999

100-
image::java/facility-location/quarkus-facility-location-screenshot.png[]
100+
image::java/facility-location/facility-location-screenshot.png[]
101101

102102
* link:java/facility-location/README.adoc[Run quarkus-facility-location] (Java, Maven, Quarkus)
103103

104104
=== Conference Scheduling
105105

106106
Assign conference talks to timeslots and rooms to produce a better schedule for speakers.
107107

108-
image::java/conference-scheduling/quarkus-conference-scheduling-screenshot.png[]
108+
image::java/conference-scheduling/conference-scheduling-screenshot.png[]
109109

110110
* link:java/conference-scheduling/README.adoc[Run quarkus-conference-scheduling] (Java, Maven, Quarkus)
111111

112112
=== Bed Allocation Scheduling
113113

114114
Assign beds to patient stays to produce a better schedule for hospitals.
115115

116-
image::java/bed-allocation/quarkus-bed-scheduling-screenshot.png[]
116+
image::java/bed-allocation/bed-scheduling-screenshot.png[]
117117

118118
* link:java/bed-allocation/README.adoc[Run quarkus-bed-allocation-scheduling] (Java, Maven, Quarkus)
119119

120120
=== Flight Crew Scheduling
121121

122122
Assign crew to flights to produce a better schedule for flight assignments.
123123

124-
image::java/flight-crew-scheduling/quarkus-flight-crew-scheduling-screenshot.png[]
124+
image::java/flight-crew-scheduling/flight-crew-scheduling-screenshot.png[]
125125

126126
* link:java/flight-crew-scheduling/README.adoc[Run quarkus-flight-crew-scheduling] (Java, Maven, Quarkus)
127127

128128
=== Meeting Scheduling
129129

130130
Assign timeslots and rooms for meetings to produce a better schedule.
131131

132-
image::java/meeting-scheduling/quarkus-meeting-scheduling-screenshot.png[]
132+
image::java/meeting-scheduling/meeting-scheduling-screenshot.png[]
133133

134134
* link:java/meeting-scheduling/README.adoc[Run quarkus-flight-crew-scheduling] (Java, Maven, Quarkus)
135135

136136
=== Sports League Scheduling
137137

138138
Assign rounds to matches to produce a better schedule for league matches.
139139

140-
image::java/sports-league-scheduling/quarkus-sports-league-scheduling-screenshot.png[]
140+
image::java/sports-league-scheduling/sports-league-scheduling-screenshot.png[]
141141

142142
* link:java/sports-league-scheduling/README.adoc[Run quarkus-sports-league-scheduling] (Java, Maven, Quarkus)
143143

144144
=== Task Assigning
145145

146146
Assign employees to tasks to produce a better plan for task assignments.
147147

148-
image::java/task-assigning/quarkus-task-assigning-screenshot.png[]
148+
image::java/task-assigning/task-assigning-screenshot.png[]
149149

150150
* link:java/task-assigning/README.adoc[Run quarkus-task-assigning] (Java, Maven, Quarkus)
151151

152152
=== Project Job Scheduling
153153

154154
Assign jobs for execution to produce a better schedule for project job allocations.
155155

156-
image::java/project-job-scheduling/quarkus-project-job-scheduling-screenshot.png[]
156+
image::java/project-job-scheduling/project-job-scheduling-screenshot.png[]
157157

158158
* link:java/project-job-scheduling/README.adoc[Run quarkus-project-job-scheduling] (Java, Maven, Quarkus)
159159

160160
=== Tournament Scheduling
161161

162162
Tournament Scheduling service assigning teams to tournament matches.
163163

164-
image::java/tournament-scheduling/quarkus-tournament-scheduling-screenshot.png[]
164+
image::java/tournament-scheduling/tournament-scheduling-screenshot.png[]
165165

166166
* link:java/tournament-scheduling/README.adoc[Run quarkus-tournament-scheduling] (Java, Maven, Quarkus)
167167

0 commit comments

Comments
 (0)