Skip to content

Releases: lablup/backend.ai

22.03.11

18 Aug 03:20
22.03.11
Compare
Choose a tag to compare

Features

  • Accept the explicit "s" (seconds) unit suffix as well in common.validators.TimeDuration (#570)
  • Support wsproxy v2 when the coordinator's user-accessible URL is different from the manager-accessible URL (usually when the user is separated from the Backend.AI service by NAT) (#582)
  • Add common.logging.LocalLogger to improve logging outputs in test cases, which does not use the relay handler to send log records to another (parent) process but just the standard Python logging subsystem (#630)
  • Use the full terminal width when formatting CLI help texts for better readability (#662)

Fixes

  • Ignore if a scanned BUILD or build target is a directory when scanning them to discover plugin entrypoints (#550)
  • web: Force the keypair-based auth mode regardless to env-vars (#564)
  • Fixed a Regex/shell escaping issue when updating var-base-path by changing parsing. (#567)
  • install-dev: Add compatibility checks for -f option of the docker compose (v2) commands in the user home directory and system-wide directory (#602)
  • Pin hiredis version to 1.1.0 (the version auto-inferred from redis-py is 2.0) to avoid a potential memory corruption error, such as "free(): invalid pointer" upon termination (#636)
  • Improve null-checks when querying allowed vfolder hosts to prevent internal server errors when there are no allowed vfolder hosts (#638)
  • Fix a spurious insufficient privilege error when running backend.ai run command as a normal user due to a mishandling of the default value of --assign-agent CLI option (#639)
  • Fix FileLock not acquiring lock forever when lock file is created without write permission to manager processes' owner (#642)
  • Change client.cli to use ai.backend.cli.main:main as its root CommandGroup. (#650)

Miscellaneous

  • Upgrade Pants to 2.12.0 to 2.13.0rc0 to take advantage of the latest bug fixes and improvements (#589)
  • Revamp and refactor BUILD files to make Pants to handle fine-grained target selection better via per-directory BUILD files and utilize automatic internal-dependency inferences whenever possible, with unification of the source target names to :src (previously, :lib and :service) (#627)

Full Changelog

Check out the full changelog until this release (22.03.11).

22.09.0b3

18 Aug 07:35
22.09.0b3
Compare
Choose a tag to compare
22.09.0b3 Pre-release
Pre-release
  • A follow-up hotfix for #664

Full Changelog

Check out the full changelog until this release (22.09.0b3).

22.09.0b2

18 Aug 06:17
22.09.0b2
Compare
Choose a tag to compare
22.09.0b2 Pre-release
Pre-release

Features

  • Reduce the initial startup latency of service daemons and CLI (./backend.ai) by more than 50% in the development setups using Pants (#663)

Fixes

  • Add missing lazy-imported cli modules in the package (#664)

Full Changelog

Check out the full changelog until this release (22.09.0b2).

22.09.0b1

18 Aug 03:19
22.09.0b1
Compare
Choose a tag to compare
22.09.0b1 Pre-release
Pre-release

Features

  • Add owner (replacing the shared_by field) and type fields ("project" or "user") to the list_shared_vfolders API to accurately distinguish the owner and the folder type (#521)
  • Add keypair_resource.max_session_lifetime option field to client following the latest schema. (#543)
  • client: Read .env files if present to configure the API session using python-dotenv (#566)
  • Accept the explicit "s" (seconds) unit suffix as well in common.validators.TimeDuration (#570)
  • Add a paginated query for the virtual folder permission list for superadmin. (#571)
  • Add manager REST APIs, agent RPC APIs and backend implementations to commit a running session container as a tar.gz file and check the status of long-running commit tasks (for the docker agent only) (#601)
  • Add common.logging.LocalLogger to improve logging outputs in test cases, which does not use the relay handler to send log records to another (parent) process but just the standard Python logging subsystem (#630)
  • Add a new API router (/func/saml) and a config service.single_sign_on_vendors to integrate SSO login, especially SAML 2.0 in this case. Also, the redirect responses (30X) are now transparently delivered to the downstream without raising BackendAPIError. (#652)
  • Add status_history to the query field of get_container_stats_for_period to know when the status of the session within a given period has changed. (#653)
  • Define interface generate_mounts and get_docker_networks on compute plugin (#654)
  • webserver: Include the feature flag service.enable_container_commit in /config.toml which allows users to commit their running session containers and save as images inside the configured path in the corresponding agent host (#660)
  • Use the full terminal width when formatting CLI help texts for better readability (#662)

Fixes

  • web: Force the keypair-based auth mode regardless to env-vars (#564)
  • Correct misspelled word in ImageNotFound exception message. (#615)
  • Pin hiredis version to 1.1.0 (the version auto-inferred from redis-py is 2.0) to avoid a potential memory corruption error, such as "free(): invalid pointer" upon termination (#636)
  • Improve null-checks when querying allowed vfolder hosts to prevent internal server errors when there are no allowed vfolder hosts (#638)
  • Fix a spurious insufficient privilege error when running backend.ai run command as a normal user due to a mishandling of the default value of --assign-agent CLI option (#639)
  • Fix FileLock not acquiring lock forever when lock file is created without write permission to manager processes' owner (#642)
  • Change client.cli to use ai.backend.cli.main:main as its root CommandGroup. (#650)
  • Fix kernel stats not being updated to database (#661)

Miscellaneous

  • Introduce ExitCode enum to give concrete semantics to numeric CLI exit codes (#559)
  • Upgrade Pants to 2.12.0 to 2.13.0rc0 to take advantage of the latest bug fixes and improvements (#589)
  • Revamp and refactor BUILD files to make Pants to handle fine-grained target selection better via per-directory BUILD files and utilize automatic internal-dependency inferences whenever possible, with unification of the source target names to :src (previously, :lib and :service) (#627)

Full Changelog

Check out the full changelog until this release (22.09.0b1).

22.06.0b4

28 Jul 06:36
22.06.0b4
Compare
Choose a tag to compare
22.06.0b4 Pre-release
Pre-release

Fixes

  • web: Include missing templates directory in the package (#611)

Full Changelog

Check out the full changelog until this release (22.06.0b4).

22.06.0b3

27 Jul 18:21
22.06.0b3
Compare
Choose a tag to compare
22.06.0b3 Pre-release
Pre-release

Features

  • Migrate accelerator-cuda and accelerator-cuda-mock to monorepo setup (#511)
  • Move validator which check scaling group by session type from predicate to enqueue_session. (#565)
  • Support wsproxy v2 when the coordinator's user-accessible URL is different from the manager-accessible URL (usually when the user is separated from the Backend.AI service by NAT) (#582)
  • Add the static_path option to webserver.conf for site-specific customization and refactor internal configuration handling and request handlers of the webserver (#599)

Fixes

  • Update deprecated manager APIs, such as etcd alias and etcd rescan-images. (#509)
  • Use aioredis.client.Redis.ping() to ping redis server rather than aioredis.client.Redis.time(). (#512)
  • Revert and simplify changes on sql_json_merge() with additional test cases to support empty keys. (#558)
  • Fixed a Regex/shell escaping issue when updating var-base-path by changing parsing. (#567)
  • install-dev.sh: Fix "AND" operator when checking --enable-cuda & --enable-cuda-mock and modify the default-installed cuda-mock.toml file (#578)
  • install-dev: Add compatibility checks for -f option of the docker compose (v2) commands in the user home directory and system-wide directory (#602)

Full Changelog

Check out the full changelog until this release (22.06.0b3).

22.03.10

18 Jul 09:26
22.03.10
Compare
Choose a tag to compare

Features

  • install-dev: Support editable installation of the web UI (src/ai/backend/webui) for ease of new frontend developers (#501)
  • Allow general users to force termination of their own sessions. (#525)
  • agent: Add var-base-path to config.toml to persistently store the last registry file, with automatic relocation of existing file upon agent startup (#529)

Fixes

  • Fix agent crashing with AttributeError: 'DockerKernel' object has no attribute 'runner' error. (#534)
  • logging: Fix accessing the missing level attribute of LogRecord objects (#538)
  • Re-add null-check of the 'level' key of the log record removed in #538 (#540)
  • Fix typo & check file on install-dev.sh (#551)
  • Upgrade external dependencies which provide new binary wheels for Python 3.10 and latest bug fixes (#560)

Miscellaneous

  • Introduce https://dist.backend.ai/pypi/simple to serve custom prebuilt wheels and workaround upstream issues in a timely manner (#545)
  • Remove manual grpcio wheel building section from scripts/install-dev.sh (#547)
  • Upgrade pex to 2.1.99 to resolve intermittent failures in CI and venv generation in development setups (#552)

Full Changelog

Check out the full changelog until this release (22.03.10).

22.06.0b2

18 Jul 09:27
22.06.0b2
Compare
Choose a tag to compare
22.06.0b2 Pre-release
Pre-release

Features

  • Add backend.ai session watch command to display the event stream of target session. (#440)
  • Add support for Weka.IO storage backend. (#443)
  • Add support for auto-removal of kernels reported for abusing or abnormal activities by separate detectors (#449)
  • Add a watchdog task to FileLock to unlock implicitly after given timeout. (#467)
  • Replace redis library from aioredis to redis-py. (#468)
  • Add kernels.status_history JSONB column for tracking time record on status transition of compute session. (#480)
  • client,cli: Add session status-history command and its corresponding functional API to query the status transition history of compute sessions, with addition of the status_history GraphQL field in the manager (#483)
  • Support for openSUSE release versions (both Leap and Tumbleweed) installation (#485)
  • install-dev: Support editable installation of the web UI (src/ai/backend/webui) for ease of new frontend developers (#501)
  • Add web handler to sending up-requests to pipeline server (#503)
  • install-dev: Ensure that the user is on the build root directory (the repository's topmost directory). (#524)
  • Allow general users to force termination of their own sessions. (#525)
  • agent: Add var-base-path to config.toml to persistently store the last registry file, with automatic relocation of existing file upon agent startup (#529)
  • client: Bump the compatible manager API version range to v6.20220615 (#533)

Fixes

  • Use uname -m instead of uname -p for better compatibility with many Linux variants and macOS when configuring the image registry and pulling the base Python image (#505)
  • Fix prepare() not running when start_session() call hangs without raising Exception (#514)
  • Update the sample docker-compose configuration so that the healthcheck for Redis container takes care of "loading" status of the Redis server (#527)
  • Fix background tasks exiting without notice due to inappropriate exception handling inside task (#530)
  • Fix agent crashing with AttributeError: 'DockerKernel' object has no attribute 'runner' error. (#534)
  • logging: Fix accessing the missing level attribute of LogRecord objects (#538)
  • Re-add null-check of the 'level' key of the log record removed in #538 (#540)
  • Set the minimum redis-py version to 4.3.4 due to an incompatible change of the XAUTOCLAIM API (#541)
  • Ignore if a scanned BUILD or build target is a directory when scanning them to discover plugin entrypoints (#550)
  • Fix typo & check file on install-dev.sh (#551)
  • Upgrade external dependencies which provide new binary wheels for Python 3.10 and latest bug fixes (#560)

Documentation Changes

  • Add a daily development workflow guide for editable install of a package subset in this mon-repo to other projects (#513)

Miscellaneous

  • Upgrade the CPython version requirement to 3.10.5 (#481)
  • Introduce isort as our linter and formatter to ensure consistency of the code style of import statements (#495)
  • Let git ignore /scratches directory that kernels use. (#497)
  • Manually upgrade pex version to 2.1.93 to avoid alternating platform tags in lockfiles depending on at which architecture the lockfiles are generated (#498)
  • Upgrade pex to 2.1.94 which addresses a fresh ./pants expor regression in #498's manual upgrade to 2.1.93 (#506)
  • Upgrade Pants to 2.12.0rc3 to 2.12.0 (#508)
  • Let scripts/install-dev.sh configure the standard git pre-push hook that runs fmt for all files and lint/check against the changed files (#518)
  • Improve the latency of git pre push hook with better defaults and auto-detection of release branches (#519)
  • Add git pre-commit hook to run a quick lint check and improve install-dev.sh script to properly create-or-update the git hook scripts (#520)
  • Introduce https://dist.backend.ai/pypi/simple to serve custom prebuilt wheels and workaround upstream issues in a timely manner (#545)
  • Remove manual grpcio wheel building section from scripts/install-dev.sh (#547)
  • Upgrade pex to 2.1.99 to resolve intermittent failures in CI and venv generation in development setups (#552)

Full Changelog

Check out the full changelog until this release (22.06.0b2).

22.03.9

10 Jul 18:29
22.03.9
Compare
Choose a tag to compare

Features

  • install-dev: Ensure that the user is on the build root directory (the repository's topmost directory). (#524)
  • client: Bump the compatible manager API version range to v6.20220615 (#533)

Fixes

  • Use uname -m instead of uname -p for better compatibility with many Linux variants and macOS when configuring the image registry and pulling the base Python image (#505)
  • Fix prepare() not running when start_session() call hangs without raising Exception (#514)
  • Update the sample docker-compose configuration so that the healthcheck for Redis container takes care of "loading" status of the Redis server (#527)
  • Fix background tasks exiting without notice due to inappropriate exception handling inside task (#530)

Miscellaneous

  • Upgrade the CPython version requirement to 3.10.5 (#481)
  • Introduce isort as our linter and formatter to ensure consistency of the code style of import statements (#495)
  • Let git ignore /scratches directory that kernels use. (#497)
  • Manually upgrade pex version to 2.1.93 to avoid alternating platform tags in lockfiles depending on at which architecture the lockfiles are generated (#498)
  • Upgrade pex to 2.1.94 which addresses a fresh ./pants expor regression in #498's manual upgrade to 2.1.93 (#506)
  • Upgrade Pants to 2.12.0rc3 to 2.12.0 (#508)
  • Let scripts/install-dev.sh configure the standard git pre-push hook that runs fmt for all files and lint/check against the changed files (#518)
  • Improve the latency of git pre push hook with better defaults and auto-detection of release branches (#519)
  • Add git pre-commit hook to run a quick lint check and improve install-dev.sh script to properly create-or-update the git hook scripts (#520)

Full Changelog

Check out the full changelog until this release (22.03.9).

22.03.8

26 Jun 15:19
22.03.8
Compare
Choose a tag to compare

Breaking Changes

  • The manager API version is updated to v6.20220615. (#484)

Features

  • Add optional handling of encrypted request payloads to webserver for environments without SSL termination for clients (#484)

Fixes

  • Skip measuring the stat for an agent registry item if it has not yet assigned container ID to prevent the occasional unhandled UnboundLocalError. (#478)
  • Fix missing str to UUID conversion for vfid parameters in get_quota and set_quota manager-facing APIs in the storage proxy (#487)
  • Add default value for is_dir parameter at rename_file function described in storage-proxy API (#488)
  • Do not delete a virtual folder if there are other folders with the same name (in other folder hosts) and handle by new relevant exception, TooManyVFoldersFound, rather than blindly and dangerously deleting the first-queried one. (#492)

Full Changelog

Check out the full changelog until this release (22.03.8).