15 Commits

Author SHA1 Message Date
xzfc
a8024b8c4b shell.nix: update pinned dependencies (#8623)
Problems:
- The pinned `uv` version sometimes pulls broken python interpreter.
- The pinned `just` is too old to read `lib/edge/Justfile`.

Solution: update everything.

    nix-shell --run 'cd tools/nix && npins update' # for default.nix
    nix-shell --run 'cd tools/nix && npins upgrade' # for sources.json

Also, in this nixpkgs version, renames `nixfmt-rfc-style` into `nixfmt`.
2026-05-08 13:46:36 +02:00
xzfc
6d16442357 Test edge examples on CI (#8318)
* lib/edge/publish/cargo: improve target directory discovery

Don't hardcode workspace root, ask cargo instead.

* Fix warning in qdrant-edge amalgamation

`cargo check` in `lib/edge/publish` produces the following warning:

    warning: type `PointerUpdates` is more private than the item `gridstore::tracker::Tracker::<S>::write_pending`

* lib/edge/publish/examples: fix compiler warnings

* refactor: lib/edge/publish/examples: put DATA_DIRECTORY into lib.rs

To match python examples that have the same constant in `common.py`.

* Use `lib/edge/data` dir for both Python and Rust examples

Before this commit, `lib/edge/publish/data` and `lib/edge/python/data`
were used. I'd like Python and Rust to use the same prepared resources
in the future.

* Add lib/edge/Justfile with recipes to build/run examples

I constantly keep forgetting how to compile and run edge stuff.
Also, this would be used in CI in subsequent commits.

* doc: lib/edge/README.md: Combine Rust and Python Edge readmes

Also now we can rename `creates-io-readme.md` to `README.md` like
reasonable people.

* doc: Add qdrant-edge-py README.md

Since the previous commit removed qdrant-edge-py README.md, we need to
add something in its place instead.
The new README is adapted from Rust edge README.
And the previous README wasn't good anyway, see [1], it mentions maturin
which is irrelevant for users.

[1]: https://pypi.org/project/qdrant-edge-py/0.5.0/

* GHA: Add "Setup Qdrant" composite action

We need running Qdrant instance to test edge examples on CI. We can't
use docker for this because we want to run tests on Windows and macOS.
OTOH, this action downloads binaries for all platforms provided in
https://github.com/qdrant/qdrant/releases/tag/v1.17.0

* GHA: Use single worflow for python and rust edge examples

Merge workflows to reuse build cache. Also, modernize it by using `uv`,
and recently introduced `setup-qdrant` and Justfile. Also, make it run
on three platforms (only on merges).

* GHA: edge-{py,rust}-release: also run examples before publishing

Use similar approach as in the previous commit. But note that this time
we build/test also on ARM Linux and Windows.
2026-03-26 17:51:49 +01:00
xzfc
3fa476865b Single edge crate (#8173)
* Fixups of amalgamator

Fix issues that break `qdrant-edge` build process:
- `use … as segment;` - this causes `ast-grep` rules to replace wrong
  paths. So, rename to avoid collisions.
- `#[macro_use]` and `extern crate` required be in the top-level
  `lib.rs`.
- `format!("…", crate::something::…)` - `ast-grep` can't fix paths
  inside macros. Fixed by moving `crate::something::…` out of the macro.

* Add lib/edge/publish workspace and amalgamation script

* Move `lib/edge/examples` into `lib/edge/publish/` workspace

And fix them to use the generated `qdrant-edge` crate.

* Add github workflow

* Cleanup `qdrant-edge` public API

Removes empty modules. Checked by `cargo doc`.
2026-03-26 17:02:24 +01:00
Luis Cossío
efd2c4f0c9 add unzip to shell.nix (#8200)
* add `unzip` to deps

* sort
2026-03-26 16:56:43 +01:00
Tim Visée
b234b55a4c Migrate Python to uv (#7790)
* Move pyproject.toml to root

* Migrate pyproject.toml from Poetry to uv

* Update GH workflows

* Update test script, doc and nix to use uv

* Use latest uv

* Fix uv.lock

* Cleanup shell.nix

* Cleanup

- Explicit `uv sync` is not required, `uv run` will install deps
  automatically.
- We don't provide a python package, so the `[build-system]` section
  is not needed.

* Fix UV_VERSION inconsistency

---------

Co-authored-by: tellet-q <elena.dubrovina@qdrant.com>
Co-authored-by: xzfc <xzfcpw@gmail.com>
2025-12-18 17:28:50 +01:00
xzfc
86a36984c9 Fix shell.nix for tikv-jemallocator 0.6.1 (#7697) 2025-12-18 17:27:18 +01:00
xzfc
828f6bc275 Misc edge dev env fixes (#7456) 2025-11-14 12:30:12 +01:00
xzfc
27a45246b9 shell.nix: switch to rustup (#7049)
* shell.nix: npins upgrade

* shell.nix: bump to rust 1.89

* shell.nix: use rustup instead of fenix
2025-08-14 14:30:26 +02:00
xzfc
bf4363d786 shell.nix: bump to rust 1.87 (#6547)
* shell.nix: bump to rust 1.87

* shell.nix: workaround for jemalloc
2025-05-22 23:18:21 +02:00
xzfc
4b9a2f824c nix-shell: add more GPU tools/libraries (#6028) 2025-03-21 11:37:16 +01:00
xzfc
c982b7d8de shell.nix: add vulkan-loader to LD_LIBRARY_PATH (#5851) 2025-01-27 18:25:44 +01:00
xzfc
0834981efd shell.nix: bump to rust 1.83 (#5578)
* shell.nix: bump to rust 1.83

* shell.nix: add cmake (required by gpu deps)
2024-12-09 11:17:56 +01:00
xzfc
ab988c1694 shell.nix: bump to rust 1.81, misc changes (#5185)
* shell.nix: add a comment

* tools/nix/update.py: let it run outside of the nix-shell

* shell.nix: bump to rust 1.81
2024-10-08 13:29:56 +02:00
Serhii Tatarintsev
6ea50e8eb2 shell.nix: Allow to build on x86 darwin (#4895)
* shell.nix: Allow to build on x86 darwin

I've tried to check out qdrant source code and build it on x86 mac
laptop, however, i found out a couple of issues with current
`shell.nix`.

- Couple of dependencies were missing.
- Default `CXXFLAGS` are not compatible with rocks-db (needs higher
  deployment target).
- Mold setup did not work with clang out of the box.

This PR fixes all of the issues and allows to build `qdrant` from
within nix shell on Intel macOS. I don't have access to ARM Mac at the moment,
so I can not say for sure if this configuration will work there.

* Add comment to iconv

* Touch up

---------

Co-authored-by: xzfc <xzfcpw@gmail.com>
2024-09-23 16:04:14 +02:00
xzfc
f6493e786b Add shell.nix (#4821) 2024-08-09 18:19:55 +02:00