Skip to content

Commit 6e7d494

Browse files
committed
refactor: rename fluxel to dataref
Package, import, CLI, fsspec scheme, layout dir (.dataref), class names, docs, CI, and env vars now use the dataref name. Distribution name on PyPI will be dataref; import stays dataref.
1 parent 2e01b0b commit 6e7d494

60 files changed

Lines changed: 640 additions & 640 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
File renamed without changes.

.github/workflows/ci.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
run: uv run pytest tests -m "not integration"
3535

3636
- name: Smoke-test CLI help
37-
run: uv run fluxel --help
37+
run: uv run dataref --help
3838

3939
- name: Build package
4040
run: uv build
@@ -98,14 +98,14 @@ jobs:
9898
WHEEL=$(ls dist/*.whl | head -1)
9999
python -m venv /tmp/smoke-venv
100100
/tmp/smoke-venv/bin/pip install "$WHEEL"
101-
echo "=== fluxel --help ==="
102-
/tmp/smoke-venv/bin/fluxel --help
103-
echo "=== fluxel --version ==="
104-
/tmp/smoke-venv/bin/fluxel --version 2>/dev/null || true
101+
echo "=== dataref --help ==="
102+
/tmp/smoke-venv/bin/dataref --help
103+
echo "=== dataref --version ==="
104+
/tmp/smoke-venv/bin/dataref --version 2>/dev/null || true
105105
echo "=== basic commit smoke ==="
106106
TMPDIR=$(mktemp -d)
107107
echo "smoke-test-content" > "$TMPDIR/smoke.txt"
108-
/tmp/smoke-venv/bin/fluxel commit --repo "$TMPDIR" -m "smoke" > /dev/null
108+
/tmp/smoke-venv/bin/dataref commit --repo "$TMPDIR" -m "smoke" > /dev/null
109109
echo "Isolated install smoke test passed."
110110
111111
release-gate:

CHANGELOG.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
All notable changes to this project will be documented in this file.
44

5-
The format is based on Keep a Changelog, and Fluxel currently tracks changes before its first public beta release.
5+
The format is based on Keep a Changelog, and Dataref currently tracks changes before its first public beta release.
66

77
## Unreleased
88

99
### Added
1010

11-
- **Footer-stats pruning engine (rev. 3, docs/architecture.md §4)**: `fluxel query
11+
- **Footer-stats pruning engine (rev. 3, docs/architecture.md §4)**: `dataref query
1212
prune <ref> <path> --where "col >= x"` selects the parquet row groups that may
1313
match an AND-composed predicate (`= != < <= > >= IS NULL IS NOT NULL`) using only
1414
the compact `footers/<hash>` stats objects — no data bytes are read. Exposed as
@@ -26,7 +26,7 @@ The format is based on Keep a Changelog, and Fluxel currently tracks changes bef
2626
under `footers/<hash>` and referenced from new `bp`/`mp` tree entries —
2727
enabling row-group pruning without reading object bytes. Unchanged files are
2828
backfilled on the next commit; `verify`-style re-scan can backfill later.
29-
- `fluxel cat <ref> <path>` prints a file's bytes from a ref; `list`, `cat`,
29+
- `dataref cat <ref> <path>` prints a file's bytes from a ref; `list`, `cat`,
3030
`diff`, `log`, and `query` work on virtual refs (S3 URIs) without a local
3131
worktree.
3232
- Streaming S3 import with metadata identity mode and repeatable path filters.
@@ -57,8 +57,8 @@ The format is based on Keep a Changelog, and Fluxel currently tracks changes bef
5757
changed side, drop double-removals), and creates a merge commit with two
5858
parents when histories diverge; conflicting paths raise
5959
`MergeConflictError` with the offending paths.
60-
- `fluxel reflog` (P3): every successful ref update is recorded per-branch in
61-
client state (old → new commit, operation, timestamp); `fluxel catalog`
60+
- `dataref reflog` (P3): every successful ref update is recorded per-branch in
61+
client state (old → new commit, operation, timestamp); `dataref catalog`
6262
lists branches with their heads and messages.
6363
- **Plan-then-batch sync (P2, §7)**: `push`/`pull`/`fetch` now compute the exact
6464
missing-object set (commits, trees, footers, blobs) as a transfer plan and
@@ -67,9 +67,9 @@ The format is based on Keep a Changelog, and Fluxel currently tracks changes bef
6767
footer stats objects now sync too.
6868
- **Adapter error translation (P2, §8)**: the S3 adapters raise domain errors
6969
(`ObjectMissingError`, `PreconditionFailedError`, `StorageUnavailableError`,
70-
all `FluxelError` subclasses) instead of raw botocore exceptions; the CLI no
70+
all `DatarefError` subclasses) instead of raw botocore exceptions; the CLI no
7171
longer special-cases `BotoCoreError`/`ClientError`.
72-
- `fluxel gc` (P2, §11): audit-only by default — computes the reachable set
72+
- `dataref gc` (P2, §11): audit-only by default — computes the reachable set
7373
from all refs (commit DAG → trees → blobs/footers) and reports orphans;
7474
`--prune` deletes them.
7575
- `filesystem.py` moved to the `core/vfs/` package; `index.py` moved to the
@@ -109,15 +109,15 @@ The format is based on Keep a Changelog, and Fluxel currently tracks changes bef
109109
- Commit creation no longer relies on `_last_manifest_index` instance state; the manifest index is threaded explicitly through manifest writing and commit creation.
110110
- S3 blob writes via streams (`push`/`pull`/`fetch`) now honor the configured blob transfer backend, so `s5cmd` accelerates sync transfers.
111111
- The in-process commit cache is now bounded (LRU-style) instead of growing without limit.
112-
- `FluxelRepository` is now a facade over four focused collaborator services (`RefManager`, `SnapshotWriter`, `StagingArea`, `EntryFactory` in `core/services/`); the god-object class was split from ~1650 to ~790 lines and `repository_ops.py` no longer reaches into repository internals.
112+
- `DatarefRepository` is now a facade over four focused collaborator services (`RefManager`, `SnapshotWriter`, `StagingArea`, `EntryFactory` in `core/services/`); the god-object class was split from ~1650 to ~790 lines and `repository_ops.py` no longer reaches into repository internals.
113113

114114
### Removed
115115

116-
- Removed the `fluxel import` command; S3 ingress is now staged via `fluxel add ... s3://... [--identity meta --as ...]` followed by `fluxel commit --staged`.
117-
- Removed `--identity` from `fluxel commit`; the commit identity mode is now configured with `fluxel config set identity meta`, or set per stage with `fluxel add --identity ...`.
118-
- Removed the direct-commit `-m/--message` flag from `fluxel rm` and `fluxel mv`; metadata-only mutations are staged and committed with `fluxel commit --staged`.
119-
- Removed `--ref` from `fluxel verify` and `fluxel index build`; both now target the current branch.
120-
- Removed `fluxel index query` and `fluxel index drop`; `fluxel index build` remains and the produced DuckDB database can be queried with the DuckDB CLI.
116+
- Removed the `dataref import` command; S3 ingress is now staged via `dataref add ... s3://... [--identity meta --as ...]` followed by `dataref commit --staged`.
117+
- Removed `--identity` from `dataref commit`; the commit identity mode is now configured with `dataref config set identity meta`, or set per stage with `dataref add --identity ...`.
118+
- Removed the direct-commit `-m/--message` flag from `dataref rm` and `dataref mv`; metadata-only mutations are staged and committed with `dataref commit --staged`.
119+
- Removed `--ref` from `dataref verify` and `dataref index build`; both now target the current branch.
120+
- Removed `dataref index query` and `dataref index drop`; `dataref index build` remains and the produced DuckDB database can be queried with the DuckDB CLI.
121121

122122
### Fixed
123123

CONTRIBUTING.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
## Development Setup
44

5-
Fluxel uses `uv` for dependency management and local commands.
5+
Dataref uses `uv` for dependency management and local commands.
66

77
```bash
88
uv sync --group dev
9-
uv run fluxel --help
9+
uv run dataref --help
1010
```
1111

1212
## Local Validation
@@ -20,25 +20,25 @@ uv run pytest tests
2020
Run only the real S3 integration tests against Ministack:
2121

2222
```bash
23-
export FLUXEL_MINISTACK_ENDPOINT=http://127.0.0.1:9000
24-
export FLUXEL_MINISTACK_ACCESS_KEY=ministack
25-
export FLUXEL_MINISTACK_SECRET_KEY=ministack123
26-
export FLUXEL_MINISTACK_REGION=us-east-1
23+
export DATAREF_MINISTACK_ENDPOINT=http://127.0.0.1:9000
24+
export DATAREF_MINISTACK_ACCESS_KEY=ministack
25+
export DATAREF_MINISTACK_SECRET_KEY=ministack123
26+
export DATAREF_MINISTACK_REGION=us-east-1
2727

2828
uv run pytest tests/test_s3_integration.py -m integration
2929
```
3030

31-
If `FLUXEL_MINISTACK_ENDPOINT` is unset or unreachable, the integration tests skip automatically.
31+
If `DATAREF_MINISTACK_ENDPOINT` is unset or unreachable, the integration tests skip automatically.
3232

3333
## Project Expectations
3434

35-
- Fluxel is licensed under AGPL-3.0-or-later; preserve the license and notice files in redistributions.
35+
- Dataref is licensed under AGPL-3.0-or-later; preserve the license and notice files in redistributions.
3636
- Prefer Python type hints by default.
37-
- Keep Fluxel client-first: no server, daemon, or central database.
37+
- Keep Dataref client-first: no server, daemon, or central database.
3838
- Keep canonical blob storage simple and immutable.
3939
- Metadata-only operations must not read blob payloads.
4040
- Prefer stream-safe, O(1)-memory patterns when working with manifests and large imports.
41-
- Use Blake3 for Fluxel content and identity hashing.
41+
- Use Blake3 for Dataref content and identity hashing.
4242

4343
## Pull Requests
4444

NOTICE

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
Fluxel
1+
Dataref
22
Copyright (C) 2026 Hampus Londögård
33

4-
Fluxel is distributed under the GNU Affero General Public License v3.0 or later.
4+
Dataref is distributed under the GNU Affero General Public License v3.0 or later.
55
Please preserve this notice, the LICENSE file, and the project copyright notices
6-
when redistributing Fluxel or modified versions of it.
6+
when redistributing Dataref or modified versions of it.
77

8-
Organizations that depend on Fluxel are encouraged to sponsor ongoing
8+
Organizations that depend on Dataref are encouraged to sponsor ongoing
99
maintenance and development:
1010
https://github.com/sponsors/londogard

0 commit comments

Comments
 (0)