Skip to content

🚀 Release 0.66.0 (ladybug)

Choose a tag to compare

@github-actions github-actions released this 04 Nov 15:45
· 95 commits to main since this release
ladybug-5.mp4

The video above was generated with Oxen.ai.

Ladybug: A small, round beetle with a glossy red shell dotted in black, a welcome visitor to any garden, where it feeds on aphids.

Breaking changes

  • oxen rm no longer deletes untracked files. It deletes only the files Oxen tracks, then the tracked directories that leaves empty, so a file under the directory that was never added, or one whose removal was already staged with oxen rm --staged, stays on disk. oxen rm -r . now deletes every tracked file, as git rm -r . does, and removing a path whose removal is already staged now fails instead of succeeding. #1114
  • oxen df --text2sql is removed, since nothing translated its query and it printed every row. oxen df --sql now fails outside a repository instead of ignoring the query, and refuses --revision, which it used to ignore. #1158

New features

  • A data frame that exists only in a workspace, such as a CSV uploaded there and not yet committed, can now be indexed, queried, and edited row by row before it is committed. #1121
  • A workspace can copy a committed file to a new path without the client downloading and uploading it again, through POST /api/repos/<namespace>/<repo>/workspaces/<id>/copy/<path>. This is available on self-hosted servers and not yet on Oxen.ai. #1121

Bug fixes

  • A SQL query on a committed data frame that failed, from a malformed statement or a column the frame lacks, returned every row of the file with no error, so a filter was silently dropped. It now returns the query's error as a 400. A query on a file type DuckDB can't index, such as .arrow, is refused with a 400 naming the extension rather than a 500. #1154
  • Uploading a file to a workspace with the content it already has committed staged it as modified, and left any earlier staged edit or removal of it in place, so committing the workspace recorded a change nobody made. Such an upload is now a no-op that drops the stale edit, as oxen add is, for multipart uploads, upload sessions, zip uploads, and URL imports alike. #1113 #1130 #1131 #1132
  • A push no longer fails when a connection drops partway through uploading small files. The interrupted batch is retried instead. #1125
  • A download refused for a missing or invalid API key now fails at once with an authentication error, rather than retrying for 55 seconds and then failing with an error that never mentioned the key. #1125
  • A video with a track the MP4 reader doesn't recognize, such as a timecode track, now gets its duration, width, and height recorded, and a video whose movie header has a timescale of 0 no longer causes a panic. #1135
  • A file committed with a modification time before 1970 no longer makes Oxen panic when it checks out a branch or checks the file for changes. #1121
  • oxen-server validates the paths of the files a new repository is seeded with, and accepts only commit history entries in a pushed commit archive, refusing anything else with a 400. The oxen CLI and the oxenai Python package send nothing these refuse. #1157 #1160

Performance

  • The S3 storage backend isn't supported in open source yet, so please hold off on using it for now. On S3, adding a file to a workspace no longer writes a copy of it to the data volume, and re-adding a file the store already has takes 0.35 s rather than 4.31 s for a 512 MiB file (92% less) and 0.16 s rather than 0.37 s for a 64 MiB file (57% less). #1128
  • Re-uploading a directory of mostly unchanged files to a workspace no longer stores or inspects the unchanged ones again, on local storage and S3. #1113 #1130 #1131

Internal improvements

Binaries are available for the following platforms:

  • Docker arm64
  • Docker x86_64
  • Linux arm64
  • Linux x86_64
  • MacOS arm64 (Apple Silicon)
  • MacOS x86_64 (Intel)
  • Windows x86_64

🐧 Linux Binaries
The Linux binaries require a minimum glibc version of 2.34.

These are the minimum versions of common distributions with glibc 2.34 or later.

Distribution First version with glibc 2.34+
Amazon Linux 2023
Arch 2021
CentOS Stream 9
Debian 12
Fedora 35
RHEL 9.0
Ubuntu 22.04

The -rhel8 tarballs and wheels are for RHEL 8 and its rebuilds, which have glibc
2.28. No distribution in the table above needs them.

🖥️ Windows Binaries
The Windows binaries require a minimum version of Visual C++ 2022.
You may need to install the latest Microsoft Visual C++ Redistributable.

🍏 MacOS Binaries
The MacOS arm64 (Apple Silicon) binaries require a minimum version of MacOS 11 Big Sur.
The MacOS x86_64 (Intel) binaries require a minimum version of MacOS 10.13 High Sierra.

🐍 Python Wheels
The Python wheels are abi3 wheels built against Python 3.11 and compatible with
Python 3.11+. They are available for the following platforms:

  • Linux arm64
  • Linux x86_64
  • MacOS arm64 [Apple Silicon]
  • MacOS x86_64 [Intel]
  • Windows x86_64