Releases: lsst-sqre/noteburst
0.7.0
- 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
- 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
- Stop following redirects from the hub/login endpoint.
- Explicitly shut down the lab pod on worker shutdown.
- Update dependencies.
What's Changed
- Bump python from 3.11.2-slim-bullseye to 3.11.3-slim-bullseye by @dependabot in #51
- DM-38629: Resolve worker auto-shutdown by @jonathansick in #52
Full Changelog: 0.6.1...0.6.2
0.6.1
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
- 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
- It's now possible to skip retries on notebook execution failures in the
nbexec
task by passing anenable_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
- 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 berecommended
,weekly
orreference
. If the latter, you can specify the specific Docker Image withNOTEBURST_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 todisabled
to disable;fast
to run every 30 seconds; ornormal
to run every 5 minutes.
- The new
- Noteburst now uses the arq client and dependency from Safir 3.2, which was originally developed from Noteburst.
What's Changed
- Bump pre-commit/action from 2.0.3 to 3.0.0 by @dependabot in #34
- Bump python from 3.10.4-slim-bullseye to 3.10.5-slim-bullseye by @dependabot in #36
- Bump actions/setup-python from 3 to 4 by @dependabot in #35
- DM-34473: Migrate to safir.arq by @jonathansick in #37
- DM-35205: Make uid configuration optional for worker identities by @jonathansick in #38
- DM-35203: Make the worker's image selection configurable by @jonathansick in #39
Full Changelog: 0.3.0...0.4.0
0.3.0
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
- [neophile] Update dependencies by @sqrbot in #23
- Bump python from 3.10.2-slim-bullseye to 3.10.3-slim-bullseye by @dependabot in #25
- Bump actions/cache from 2 to 3 by @dependabot in #24
- [neophile] Update dependencies by @sqrbot in #26
- Bump python from 3.10.3-slim-bullseye to 3.10.4-slim-bullseye by @dependabot in #27
- DM-34741: Refresh GitHub Actions and pre-commit by @jonathansick in #31
- DM-34864: Harden JupyterLab lifecycle handling by @jonathansick in #33
Full Changelog: 0.2.0...0.3.0
0.2.0
This release includes the initial implementation of Noteburst's /v1/
API for starting notebook executions and getting results.
What's Changed
- DM-31960: Port JupyterClient by @jonathansick in #2
- [neophile] Update dependencies by @sqrbot in #3
- [neophile] Update dependencies by @sqrbot in #4
- [neophile] Update dependencies by @sqrbot in #5
- [neophile] Update dependencies by @sqrbot in #7
- [neophile] Update dependencies by @sqrbot in #8
- [neophile] Update dependencies by @sqrbot in #9
- [neophile] Update dependencies by @sqrbot in #10
- [neophile] Update dependencies by @sqrbot in #11
- [neophile] Update dependencies by @sqrbot in #12
- DM-33025: Implement a queue architecture with identity claims by @jonathansick in #6
- [neophile] Update dependencies by @sqrbot in #14
- DM-33448: Integrate JupyterClient into the queue workers by @jonathansick in #13
- Bump python from 3.9.9-slim-bullseye to 3.10.2-slim-bullseye by @dependabot in #15
- [neophile] Update dependencies by @sqrbot in #17
- [neophile] Update dependencies by @sqrbot in #18
- Bump actions/setup-python from 2 to 3.0.0 by @dependabot in #20
- Bump actions/checkout from 2 to 3 by @dependabot in #22
- DM-33588: Create /v1/ API by @jonathansick in #16
New Contributors
- @sqrbot made their first contribution in #3
- @dependabot made their first contribution in #15
Full Changelog: 0.1.0...0.2.0
0.1.0
Initial development release of Noteburst.