3.1.0
New features
- The database worker pod now deletes the records for all jobs that have passed their destruction times once per hour.
- Restore support for execution duration and change the default execution duration back to 10 minutes. Use a very ugly hack to enforce a timeout in the backend worker that will hopefully not be too fragile.
- Add support for aborting jobs.
- Re-add the
CUTOUT_TIMEOUT
configuration option to change the default and maximum execution duration for cutout jobs. - Support pre-signed URLs returned by the backend worker. If the result URL is an
http
orhttps
URL, pass it to the client unchanged. - Abort jobs on deletion or expiration if they are pending, queued, or executing.
- Worker pods now wait for 30 seconds (UWS database workers) or 55 seconds (cutout workers) for jobs to finish on shutdown before cancelling them.
Bug fixes
- Allow time durations in the configuration to be given in number of seconds as a string, which was accidentally broken in 3.0.0.
- Restore support for automatically starting an async job by setting
phase=RUN
in the POST body. The equivalent query parameter was always supported, but POST body support was accidentally dropped in 3.0.0. - Add a colon after the error code and before the error message in error replies.
- Stop setting
isPost
when returning UWS parameters. This undocumented field is supposed to only be set if the parameter contains a raw POST value rather than a regular parameter, which is never the case here.
Other changes
- Stop upgrading the operating system packages in the worker image because the base image is so old that the package repositories no longer exist. This will hopefully be fixed in a future release of the Science Pipelines base image based on AlmaLinux.
- Some XML output from UWS handlers is now handled by vo-models instead of hand-written XML templates. More responses will hopefully be converted in the future.
What's Changed
- DM-45088: Revert "Bump science pipelines stack for new Butler" by @dhirving in #183
- DM-45132: Clean up change log entries, fix worker build by @rra in #184
- DM-45132: Add change log anchor for 3.0.0 release by @rra in #185
- DM-45138: Use shared Ruff configuration, update dependencies by @rra in #186
- DM-45138: Stop installling libpq-dev in Docker image by @rra in #187
- DM-45138: Separate API model from worker domain model by @rra in #188
- DM-45138: Add an arq cron job to delete expired jobs by @rra in #189
- DM-45138: Add a colon after the error code by @rra in #190
- DM-45138: Finish the worker and API model separation by @rra in #192
- DM-45138: Add deserialization support for astropy types by @rra in #193
- DM-45138: Fix the names of the UWS worker functions by @rra in #194
- DM-45138: Temporarily pin numpy to allow unpickling to work by @rra in #195
- DM-45138: Serialize worker parameters before dispatching by @rra in #196
- DM-45138: Add timeout support by @rra in #197
- DM-45138: Restore parsing of seconds as a string by @rra in #198
- DM-45138: Fix parsing of string number of seconds for timeout by @rra in #199
- DM-45138: Properly add colon after error code by @rra in #200
- DM-44509: Upgrade science pipelines stack for new Butler by @dhirving in #191
- DM-45138: Flesh out all for all modules by @rra in #201
- DM-45138: Remove dependency on ResultStore from JobService by @rra in #202
- DM-45138: Add support for aborting jobs by @rra in #203
- DM-45138: Switch to jinja2 PackageLoader by @rra in #204
- DM-45138: Make InvalidCutoutParametersError generic by @rra in #205
- DM-45138: Add summary and description for added routes by @rra in #206
- DM-45138: Update GitHub Actions configuration by @rra in #207
- DM-45138: Switch to vo-models where possible for UWS by @rra in #208
- DM-45138: Support pre-signed URLs returned by the backend by @rra in #209
- DM-45138: Move availability handler into UWS library by @rra in #210
- DM-45138: Refactor phase support for async jobs by @rra in #211
- DM-45138: Abort jobs on deletion or expiration by @rra in #212
- DM-45138: Wait for jobs to finish before cancelling them by @rra in #213
- DM-45138: Move UWS queue name constant to worker module by @rra in #214
- DM-45138: Move timedelta handling into Pydantic types by @rra in #215
- DM-45138: Move PostgreSQL URL manipulation into type by @rra in #216
- DM-45138: Move Redis DSN validation into a type by @rra in #217
- DM-45281: Convert to the Safir UWS library by @rra in #218
- DM-45281: Remove unnecessary dependencies by @rra in #219
- DM-45281: Collect change log for 3.1.0 release by @rra in #220
Full Changelog: 3.0.0...3.1.0