Skip to content

3.1.0

Compare
Choose a tag to compare
@rra rra released this 02 Aug 19:45
· 22 commits to main since this release
3.1.0
de15e24

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 or https 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