Skip to content

5.1.0

Compare
Choose a tag to compare
@rra rra released this 15 May 18:57
· 316 commits to main since this release
5.1.0
7149976

New features

  • mobu now uses httpx instead of aiohttp for all HTTP requests (including websockets for WebSocket connections and httpx-sse for EventStream connections) and makes use of the Safir framework for parsing and reporting HTTP client exceptions. Alerts for failing web requests will be somewhat different and hopefully clearer.
  • mobu now sends keep-alive pings on the WebSocket connection to the lab, hopefully allowing successful execution of cells that take more than five minutes to run.
  • Nublado-based businesses can now set debug to true in the image specification to request that debugging be enabled in the spawned Jupyter lab.
  • mobu now catches timeouts attempting to open a WebSocket to the lab and reports them to Slack with more details.
  • Slack alerts from monkeys now include the flock and monkey name as a field in the alert.
  • Unexpected business exceptions now include an "Exception type" heading and use "Failed at" instead of "Date" to match the display of expected exceptions.
  • The prefix for mobu routes (/mobu by default) can now be configured with SAFIR_PATH_PREFIX.
  • Uncaught exceptions from mobu's route handlers are now also reported to Slack.

Bug fixes

  • The code to determine the Docker reference and description of the running Nublado image is now more robust against unexpected output.
  • Node and cell information in Slack error reports for Nublado errors are now formatted as full blocks rather than fields, since they are often too wide to fit nicely in the limited width of a Slack Block Kit field.

Other changes

  • The default error_idle_time for Nublado-based business is back to 60 seconds instead of 10 minutes. The problem the longer timeout was working around should be fixed in the new Nublado lab controller.
  • Nublado-based notebooks now request the JUPYTER_IMAGE_SPEC environment variable instead of JUPYTER_IMAGE to get the running image for error reporting purposes. This is now the preferred environment variable and JUPYTER_IMAGE is deprecated.
  • mobu now uses the Ruff linter instead of flake8, isort, and pydocstyle.

What's Changed

  • DM-38425: Be more robust when getting the running image by @rra in #228
  • [neophile] Update dependencies by @sqrbot in #229
  • [neophile] Update dependencies by @sqrbot in #230
  • [neophile] Update dependencies by @sqrbot in #231
  • Bump python from 3.11.2-slim-bullseye to 3.11.3-slim-bullseye by @dependabot in #232
  • [neophile] Update dependencies by @sqrbot in #233
  • [neophile] Update dependencies by @sqrbot in #234
  • [neophile] Update dependencies by @sqrbot in #236
  • DM-38425: Switch to scriv for change log management by @rra in #237
  • DM-38425: Revert error_idle_time change from 5.0.0 by @rra in #238
  • DM-38425: Use JUPYTER_IMAGE_SPEC, not JUPYTER_IMAGE by @rra in #239
  • DM-38425: Log image reference and description in monkey by @rra in #240
  • DM-38425: Format node and cell as blocks by @rra in #241
  • [neophile] Update dependencies by @sqrbot in #242
  • DM-38425: Convert to httpx by @rra in #243
  • DM-38425: Improve logged image description by @rra in #244
  • DM-38425: Adopt current Safir conventions by @rra in #245
  • DM-38425: Split out Gafaelfawr storage layer and use models by @rra in #246
  • DM-38425: Change how we force a refresh of JupyterHub auth by @rra in #247
  • DM-38425: Switch to websockets by @rra in #248
  • DM-38425: Allow enabling of lab debugging by @rra in #249
  • DM-38425: Remove WebSocket message size limit by @rra in #250
  • DM-38425: Stream monkey logs instead of using FileResponse by @rra in #251
  • DM-38425: Remove old testing machinery by @rra in #252
  • DM-38425: Increase the WebSocket open timeout by @rra in #253
  • DM-38425: Set maximum WebSocket message size to 4MB by @rra in #254
  • DM-38425: Configure Ruff and fix things it found by @rra in #255
  • DM-38425: Switch to Ruff for linting by @rra in #256
  • DM-38425: Catch and report timeouts opening WebSocket by @rra in #257
  • DM-38425: Include the monkey and flock in Slack exceptions by @rra in #258
  • DM-38425: Prepare 5.1.0 release by @rra in #259

Full Changelog: 5.0.0...5.1.0