Repository navigation
🚀 Release 0.66.0 (ladybug)
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 rmno 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 withoxen rm --staged, stays on disk.oxen rm -r .now deletes every tracked file, asgit rm -r .does, and removing a path whose removal is already staged now fails instead of succeeding. #1114oxen df --text2sqlis removed, since nothing translated its query and it printed every row.oxen df --sqlnow 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 addis, 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
oxenCLI and theoxenaiPython 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
- Bounded the memory used to sniff a CSV's dialect and to read a stored CSV's schema. #1128
- Committed data frames, local and on S3, are now read through the same scan that staging uses. #1116 #1129 #1148 #1152
- Test suite and documentation improvements. #1127 #1133 #1147 #1149 #1150 #1151 #1155 #1156 #1159
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