Visitar URL original
fix(client): keep sqlx-postgres out of the client crate (#2884) by markovejnovic · Pull Request #3823 · atuinsh/atuin · GitHub
Skip to content

fix(client): keep sqlx-postgres out of the client crate (#2884) - #3823

Merged
markovejnovic merged 1 commit into
mainfrom
fix/2884-client-no-sqlx-postgres
Jul 31, 2026
Merged

markovejnovic merged 1 commit into
mainfrom
fix/2884-client-no-sqlx-postgres

Conversation

@markovejnovic

@markovejnovic markovejnovic commented Jul 31, 2026 •

Copy link
Copy Markdown
Member

Fixes #2884.

The `atuin` binary crate carried `atuin-server`, `atuin-server-database`
and `atuin-server-postgres` as dev-dependencies purely to run the
integration tests in `tests/`, which spin up a real server. Because
those tests live in the client crate, any test/`--all-targets`/rust-
analyzer build of `atuin` compiled `sqlx-postgres` (and the rest of the
server stack), even for a client-only feature set.

Move the integration tests to `atuin-server`, where the server and
postgres deps already exist, and make `atuin-client` a dev-dependency
there instead. This is the swap the existing TODO called for: the client
no longer references any server crate, so `-p atuin --all-targets` drops
sqlx-postgres/sqlx-mysql and the server crates entirely.

The tests are unchanged and still run in CI's `cargo nextest run
--test '*'` job against its postgres service.
@markovejnovic
markovejnovic marked this pull request as ready for review July 31, 2026 23:29
@markovejnovic
markovejnovic enabled auto-merge (squash) July 31, 2026 23:29
@greptile-apps

greptile-apps Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Moves server-backed integration tests and their dependencies into atuin-server, preventing PostgreSQL dependencies from entering the client crate.

  • Relocates the user integration tests without changing their contents.
  • Adds client/test-only dependencies to atuin-server.
  • Removes server/test-only dependencies from atuin.
  • Updates the lockfile dependency edges accordingly.

Confidence Score: 5/5

The PR appears safe to merge.

The integration tests retain their required dependencies in the server crate while the client crate no longer pulls in server or PostgreSQL dependencies.

Important Files Changed

Filename Overview
crates/atuin-server/Cargo.toml Adds the dependencies required by the relocated integration tests as dev-only dependencies.
crates/atuin-server/tests/common/mod.rs Relocates shared integration-test support without content changes.
crates/atuin-server/tests/users.rs Relocates server-backed user tests without content changes.
crates/atuin/Cargo.toml Removes server and PostgreSQL development dependencies from the client binary crate.
Cargo.lock Reflects the intended workspace dependency-edge changes without changing package versions.

Reviews (1): Last reviewed commit: "fix(client): keep sqlx-postgres out of t..." | Re-trigger Greptile

@markovejnovic
markovejnovic merged commit 1c4ae05 into main Jul 31, 2026
29 checks passed
@markovejnovic
markovejnovic deleted the fix/2884-client-no-sqlx-postgres branch July 31, 2026 23:33
ellie added a commit that referenced this pull request Aug 3, 2026
### Bug Fixes

- *(client)* Avoid panic decoding an empty encryption key
([#3803](#3803))
- *(client)* Keep sqlx-postgres out of the client crate
([#2884](#2884))
([#3823](#3823))
- *(config)* Preserve comments in `atuin config set`
([#3766](#3766))
- *(search)* Correct fuzzy result ranking
([#3603](#3603))
([#3624](#3624))
- Fix atuin-search-bench/benches/search.rs
([#3788](#3788))
- Close OSC133 C when launching Atuin AI to prevent content erasure
([#3794](#3794))
- Authenticate beta release push as atuin-bot
([#3809](#3809))
- Copy vendored axoasset into docker builder stage
([#3816](#3816))


### Documentation

- Clarify update check network, provide build command
([#3767](#3767))
- Remove old i18n docs
([#3787](#3787))
- Use shell-agnostic install command in quickstart pages
([#3820](#3820))
- Document named stats periods (today/week/month/year)
([#3821](#3821))
- State minimum supported Rust version in install guide
([#3822](#3822))
- Document iTerm2 tmux popup incompatibility
([#3826](#3826))
- Clarify key binding snippets belong in shell startup file
([#3837](#3837))
- Mention RustRover in IDE integration guidance
([#3834](#3834))


### Features

- *(client)* Show intent in inspector
([#3804](#3804))
- *(client)* Enable pty-proxy via config
([#3828](#3828))
- *(config)* Validate new settings in `atuin config set` before writing
them to disk ([#3769](#3769))
- *(lab)* Experimental `atuin lab share`
- *(search)* Remove the "skim" engine
([#3825](#3825))
- Remove word with ALT-Backspace ALT-D
([#2457](#2457))
- Add scheduled beta release workflow
([#3805](#3805))
- Migrate TLS backend from rustls to native-tls
([#3807](#3807))
- Make `update` a real subcommand
([#3813](#3813))
- Capability negotiation protocol (client + server)
([#3797](#3797))


### Miscellaneous Tasks

- *(ci)* Fix `package` step
([#3770](#3770))
- Remove Store trait
([#3779](#3779))
- Daemon search benchmark (divan + CodSpeed)
([#3763](#3763))
- Run CodSpeed benchmarks on macro runners in walltime mode
([#3786](#3786))
- Add `OrFilter` as a replacement for `Vec`s as filter lists
([#3768](#3768))
- Add `atuin-domain` crate for shared domain types
([#3790](#3790))
- Run CodSpeed walltime benchmarks on depot-macos-26
([#3791](#3791))
- Fix deny.toml and get it to run in CI
([#3808](#3808))
- Remove codspeed workflow
([#3812](#3812))
- Richer logging for atuin-server
([#2564](#2564))
- Hide --active sharing
([#3846](#3846))


### Refactor

- *(deps)* Bump thiserror from 2.0.18 to 2.0.19
([#3839](#3839))
- *(deps)* Bump strum_macros from 0.27.2 to 0.28.0
([#3841](#3841))
- *(deps)* Bump tonic-types from 0.14.5 to 0.14.6
([#3842](#3842))
- *(deps)* Bump pulldown-cmark from 0.13.3 to 0.13.4
([#3840](#3840))
- *(deps)* Bump itertools from 0.14.0 to 0.15.0
([#3838](#3838))
- Adopt enum_dispatch for enum trait delegation
([#3806](#3806))


### Testing

- Adopt rstest across the workspace test suite
([#3785](#3785))


### Daemon

- Replace nucleo with frizbee, rank by match quality with frecency
tiebreak ([#3782](#3782))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: sqlx-postgres is compiled even when only client is specified

1 participant