Skip to content

Releases: lsst-sqre/noteburst

0.7.0

22 May 21:51
df9844b
Compare
Choose a tag to compare
  • The JupyterHub service's URL path prefix is now configurable with the NOTEBURST_JUPYTERHUB_PATH_PREFIX environment variable. The default is /nb/, which is the existing value.
  • The Nublado JupyterLab Controller service's URL path prefix is configurable with the NOTEBURST_NUBLADO_CONTROLLER_PATH_PREFIX environment variable. The default is /nublado, which is the existing value.

What's Changed

  • DM-39336: Add configurations for the Nublado API paths by @jonathansick in #54

Full Changelog: 0.6.3...0.7.0

0.6.3

20 Apr 18:31
048c058
Compare
Choose a tag to compare
  • Fix how failed notebook executions are handled. Previously failed notebooks would prevent Noteburst from getting the results of the execution job. Now the job is shown as concluded but unsuccessful by the /v1/notebooks/{job_id} endpoint.
  • Structure uvicorn server logging.

What's Changed

  • DM-38735: Fix handling of getting results for failed notebook executions by @jonathansick in #53

Full Changelog: 0.6.2...0.6.3

0.6.2

12 Apr 18:58
7503bfb
Compare
Choose a tag to compare
  • Stop following redirects from the hub/login endpoint.
  • Explicitly shut down the lab pod on worker shutdown.
  • Update dependencies.

What's Changed

Full Changelog: 0.6.1...0.6.2

0.6.1

28 Mar 17:54
cb1bcc1
Compare
Choose a tag to compare

What's Changed

  • DM-38445: Update use of JupyterLab Controller images API by @jonathansick in #50

Full Changelog: 0.6.0...0.6.1

0.6.0

16 Feb 19:57
763e4c6
Compare
Choose a tag to compare
  • Migrated from the Cachemachine API to the new JupyterLab Controller API for obtaining the list of available Docker images for JupyterLab workers.
  • Migrated to Python 3.11
  • Adopted pyproject.toml for project metadata and dropped setup.cfg.

What's Changed

  • Bump python from 3.10.5-slim-bullseye to 3.10.6-slim-bullseye by @dependabot in #41
  • DM-37857: Update noteburst for Python 3.11 by @jonathansick in #46
  • Bump docker/build-push-action from 3 to 4 by @dependabot in #47
  • DM-37857: Migrate to JupyterLab Controller API from Cachemachine by @jonathansick in #49

Full Changelog: 0.5.0...0.6.0

0.5.0

04 Jul 21:08
6aff727
Compare
Choose a tag to compare
  • It's now possible to skip retries on notebook execution failures in the nbexec task by passing an enable_retry=False keyword argument. This is useful for applications that use Noteburst for continuous integration.
  • Updated dependencies.

What's Changed

  • DM-35328: Add enable_retry argument to nbexec worker function by @jonathansick in #40

Full Changelog: 0.4.0...0.5.0

0.4.0

15 Jun 20:30
0e88fbd
Compare
Choose a tag to compare
  • The worker identity configuration can now omit the uid field for environments where Gafaelfawr is able to assign a UID (e.g. through an LDAP backend).
  • New configurations for workers:
    • The new NOTEBURST_WORKER_TOKEN_LIFETIME environment variable enables you to configure the lifetime of the workers' authentication tokens. The default matches the existing behavior, 28 days.
    • NOTEBURST_WORKER_TOKEN_SCOPES environment variable enables you to set what token scopes the nublado2 bot users should have, as a comma-separated list.
    • NOTEBURST_WORKER_IMAGE_SELECTOR allows you to specify what stream of Nublado image to select. Can be recommended, weekly or reference. If the latter, you can specify the specific Docker Image with NOTEBURST_WORKER_IMAGE_REFERENCE.
    • The NOTEBURST_WORKER_KEEPALIVE configuration controls whether the worker keep alive function is run (to default the Nublado pod culler), and at what frequencey. Set to disabled to disable; fast to run every 30 seconds; or normal to run every 5 minutes.
  • Noteburst now uses the arq client and dependency from Safir 3.2, which was originally developed from Noteburst.

What's Changed

Full Changelog: 0.3.0...0.4.0

0.3.0

24 May 19:09
ff08698
Compare
Choose a tag to compare

Improved handling of the JupyterLab pod for noteburst workers:

  • If the JupyterLab pod goes away (such as if it is culled), the Noteburst workers shuts down so that Kubernetes creates a new worker with a new JupyterLab pod. A lost JupyterLab pod is detected by a 400-class response when submitting a notebook for execution.

  • If a worker starts up and a JupyterLab pod already exists for an unclaimed identity, the noteburst worker will continue to cycle through available worker identities until the JupyterLab start up is successful. This handles cases where a Noteburst worker restarts, but the JupyterLab pod did not shut down and thus is "orphaned."

  • Each JupyterLab worker runs a "keep alive" function that exercises the JupyterLab pod's Python kernel. This is meant to counter the "culler" that deletes dormant JupyterLab pods in the Rubin Science Platform. Currently the keep alive function runs every 30 seconds.

  • The default arq job execution timeout is now configurable with the NOTEBURST_WORKER_JOB_TIMEOUT environment variable. By default it is 300 seconds (5 minutes).

What's Changed

Full Changelog: 0.2.0...0.3.0

0.2.0

14 Mar 20:39
60871f3
Compare
Choose a tag to compare

This release includes the initial implementation of Noteburst's /v1/ API for starting notebook executions and getting results.

What's Changed

New Contributors

Full Changelog: 0.1.0...0.2.0

0.1.0

29 Sep 18:41
4f4c3e1
Compare
Choose a tag to compare

Initial development release of Noteburst.