fix: nix devShell fixups #1397

Open
kraem wants to merge 2 commits from kraem/continuwuity:fix/nix_env_fixups into main
Contributor

This pull request fixes some issues found with the nix devShell:

  • use the nightly cargo fmt from the rust toolchain specified (i still haven't fixed prefligit running with cargo +nightly fmt where +fmt is rustup specific)
  • provide missing libraries in LD_LIBRARY_PATH to successfully run cargo test

I'm guessing @aviac wants to review these changes? :)

Pull request checklist:

  • This pull request targets the main branch, and the branch is named something other than
    main.
  • I have written an appropriate pull request title and my description is clear.
  • I understand I am responsible for the contents of this pull request.
  • I have followed the contributing guidelines:
<!-- In order to help reviewers know what your pull request does at a glance, you should ensure that 1. Your PR title is a short, single sentence describing what you changed 2. You have described in more detail what you have changed, why you have changed it, what the intended effect is, and why you think this will be beneficial to the project. If you have made any potentially strange/questionable design choices, but didn't feel they'd benefit from code comments, please don't mention them here - after opening your pull request, go to "files changed", and click on the "+" symbol in the line number gutter, and attach comments to the lines that you think would benefit from some clarification. --> This pull request fixes some issues found with the nix devShell: - use the nightly cargo fmt from the rust toolchain specified (i still haven't fixed prefligit running with `cargo +nightly fmt `where +fmt is rustup specific) - provide missing libraries in LD_LIBRARY_PATH to successfully run `cargo test` I'm guessing @aviac wants to review these changes? :) <!-- Example: This pull request allows us to warp through time and space ten times faster than before by double-inverting the warp drive with hyperheated jump fluid, both making the drive faster and more efficient. This resolves the common issue where we have to wait more than 10 milliseconds to engage, use, and disengage the warp drive when travelling between galaxies. --> <!-- Closes: #... --> <!-- Fixes: #... --> <!-- Uncomment the above line(s) if your pull request fixes an issue or closes another pull request by superseding it. Replace `#...` with the issue/pr number, such as `#123`. --> **Pull request checklist:** <!-- You need to complete these before your PR can be considered. If you aren't sure about some, feel free to ask for clarification in #dev:continuwuity.org. --> - [x] This pull request targets the `main` branch, and the branch is named something other than `main`. - [x] I have written an appropriate pull request title and my description is clear. - [x] I understand I am responsible for the contents of this pull request. - I have followed the [contributing guidelines][c1]: - [x] My contribution follows the [code style][c2], if applicable. - [x] I ran [pre-commit checks][c1pc] before opening/drafting this pull request. - [x] I have [tested my contribution][c1t] (or proof-read it for documentation-only changes) myself, if applicable. This includes ensuring code compiles. - [x] My commit messages follow the [commit message format][c1cm] and are descriptive. - [-] I have written a [news fragment][n1] for this PR, if applicable<!--(can be done after hitting open!)-->. <!-- Notes on these requirements: - While not required, we encourage you to sign your commits with GPG or SSH to attest the authenticity of your changes. - While we allow LLM-assisted contributions, we do not appreciate contributions that are low quality, which is typical of machine-generated contributions that have not had a lot of love and care from a human. Please do not open a PR if all you have done is asked ChatGPT to tidy up the codebase with a +-100,000 diff. - In the case of code style violations, reviewers may leave review comments/change requests indicating what the ideal change would look like. For example, a reviewer may suggest you lower a log level, or use `match` instead of `if/else` etc. - In the case of code style violations, pre-commit check failures, minor things like typos/spelling errors, and in some cases commit format violations, reviewers may modify your branch directly, typically by making changes and adding a commit. Particularly in the latter case, a reviewer may rebase your commits to squash "spammy" ones (like "fix", "fix", "actually fix"), and reword commit messages that don't satisfy the format. - Pull requests MUST pass the `Checks` CI workflows to be capable of being merged. This can only be bypassed in exceptional circumstances. If your CI flakes, let us know in matrix:r/dev:continuwuity.org. - Pull requests have to be based on the latest `main` commit before being merged. If the main branch changes while you're making your changes, you should make sure you rebase on main before opening a PR. Your branch will be rebased on main before it is merged if it has fallen behind. - We typically only do fast-forward merges, so your entire commit log will be included. Once in main, it's difficult to get out cleanly, so put on your best dress, smile for the cameras! --> [c1]: https://forgejo.ellis.link/continuwuation/continuwuity/src/branch/main/CONTRIBUTING.md [c2]: https://forgejo.ellis.link/continuwuation/continuwuity/src/branch/main/docs/development/code_style.mdx [c1pc]: https://forgejo.ellis.link/continuwuation/continuwuity/src/branch/main/CONTRIBUTING.md#pre-commit-checks [c1t]: https://forgejo.ellis.link/continuwuation/continuwuity/src/branch/main/CONTRIBUTING.md#running-tests-locally [c1cm]: https://forgejo.ellis.link/continuwuation/continuwuity/src/branch/main/CONTRIBUTING.md#commit-messages [n1]: https://towncrier.readthedocs.io/en/stable/tutorial.html#creating-news-fragments
Contributor

FWIW, i also have some devshell fixes in my PR
#1326/files

FWIW, i also have some devshell fixes in my PR https://forgejo.ellis.link/continuwuation/continuwuity/pulls/1326/files#diff-917482f5520ddb3e4c6a82c53ddc9874c40ae054
Author
Contributor

@benbot wrote in #1397 (comment):

FWIW, i also have some devshell fixes in my PR #1326/files

i see. i'll comment on your new pr.

@benbot wrote in https://forgejo.ellis.link/continuwuation/continuwuity/pulls/1397#issuecomment-24352: > FWIW, i also have some devshell fixes in my PR #1326/files i see. i'll comment on your new pr.
Contributor

Hey @kraem (going to continue convo here since it seems like we're going to close my other PR in favor of this one), so i know we needed some of those packages in the LD_LIBRARY_PATH. IIRC it was when I tried running cargo test

When i get off work later I'll double check which ones I needed.

Hey @kraem (going to continue convo here since it seems like we're going to close my other PR in favor of this one), so i know we needed _some_ of those packages in the `LD_LIBRARY_PATH`. IIRC it was when I tried running `cargo test` When i get off work later I'll double check which ones I needed.
Contributor

oh!

i found a thing about crane!
https://crane.dev/local_development.html

we should be able to just grab the exact packages we use to build and put them in the devShell!

oh! i found a thing about crane! https://crane.dev/local_development.html we should be able to just grab the exact packages we use to build and put them in the devShell!
Author
Contributor

@benbot wrote in #1397 (comment):

oh!

i found a thing about crane! https://crane.dev/local_development.html

we should be able to just grab the exact packages we use to build and put them in the devShell!

good catch.

maybe we could just combine the dev-toolchain (to get cargo fmt nightly) we're creating with fenix and deps we're creating with crane.

honestly i feel like the nix exprs to create the packages and dev env is unnecessarily complex and split up in to a bit too many places.

edit:

i just took a stab at this and i can't get conduwuit-all-features-deps to build, which we'd need to get everything we'd need using cranes inputsFrom and clean out the locally (for the devShell) defined rocksdbAllFeatures

@benbot wrote in https://forgejo.ellis.link/continuwuation/continuwuity/pulls/1397#issuecomment-24502: > oh! > > i found a thing about crane! https://crane.dev/local_development.html > > we should be able to just grab the exact packages we use to build and put them in the devShell! good catch. maybe we could just combine the `dev-toolchain` (to get cargo fmt nightly) we're creating with fenix and `deps` we're creating with crane. honestly i feel like the nix exprs to create the packages and dev env is unnecessarily complex and split up in to a bit too many places. edit: i just took a stab at this and i can't get conduwuit-all-features-deps to build, which we'd need to get everything we'd need using cranes `inputsFrom` and clean out the locally (for the devShell) defined `rocksdbAllFeatures`
Owner

all-features fould be using the feature full rather than literally all features because some features are mutually incompatible and some require weird flags like http3

all-features fould be using the feature full rather than literally all features because some features are mutually incompatible and some require weird flags like http3
Contributor

@kraem wrote in #1397 (comment):

@benbot wrote in #1397 (comment):

oh!
i found a thing about crane! https://crane.dev/local_development.html
we should be able to just grab the exact packages we use to build and put them in the devShell!

good catch.

maybe we could just combine the dev-toolchain (to get cargo fmt nightly) we're creating with fenix and deps we're creating with crane.

honestly i feel like the nix exprs to create the packages and dev env is unnecessarily complex and split up in to a bit too many places.

edit:

i just took a stab at this and i can't get conduwuit-all-features-deps to build, which we'd need to get everything we'd need using cranes inputsFrom and clean out the locally (for the devShell) defined rocksdbAllFeatures

Why doesn't it build? What's the error?
For me, i still needed to set the library paths and include jemalloc

@kraem wrote in https://forgejo.ellis.link/continuwuation/continuwuity/pulls/1397#issuecomment-24599: > @benbot wrote in #1397 (comment): > > > oh! > > i found a thing about crane! https://crane.dev/local_development.html > > we should be able to just grab the exact packages we use to build and put them in the devShell! > > good catch. > > maybe we could just combine the `dev-toolchain` (to get cargo fmt nightly) we're creating with fenix and `deps` we're creating with crane. > > honestly i feel like the nix exprs to create the packages and dev env is unnecessarily complex and split up in to a bit too many places. > > edit: > > i just took a stab at this and i can't get conduwuit-all-features-deps to build, which we'd need to get everything we'd need using cranes `inputsFrom` and clean out the locally (for the devShell) defined `rocksdbAllFeatures` Why doesn't it build? What's the error? For me, i still needed to set the library paths and include jemalloc
Jade force-pushed fix/nix_env_fixups from cfe555c47c
All checks were successful
Documentation / Build and Deploy Documentation (pull_request) Has been skipped
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 2m49s
Update flake hashes / update-flake-hashes (pull_request) Successful in 1m57s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 12m35s
to f19c1fdc2f
All checks were successful
Documentation / Build and Deploy Documentation (pull_request) Has been skipped
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 2m24s
Update flake hashes / update-flake-hashes (pull_request) Successful in 1m40s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 25m22s
2026-02-23 15:31:43 +00:00
Compare
Owner

Is this OK to merge?

Is this OK to merge?
Author
Contributor

@Jade wrote in #1397 (comment):

Is this OK to merge?

i can try my previous attempt again using inputsFrom now that #1422 is merged when i'm not afk

@Jade wrote in https://forgejo.ellis.link/continuwuation/continuwuity/pulls/1397#issuecomment-24896: > Is this OK to merge? i can try my previous attempt again using `inputsFrom` now that https://forgejo.ellis.link/continuwuation/continuwuity/pulls/1422 is merged when i'm not afk
Owner

@kraem wrote in #1397 (comment):

@Jade wrote in #1397 (comment):

Is this OK to merge?

i can try my previous attempt again using inputsFrom now that #1422 is merged when i'm not afk

perfect -- ping us here or in the development matrix room when ready :)

@kraem wrote in https://forgejo.ellis.link/continuwuation/continuwuity/pulls/1397#issuecomment-24937: > @Jade wrote in #1397 (comment): > > > Is this OK to merge? > > i can try my previous attempt again using `inputsFrom` now that #1422 is merged when i'm not afk perfect -- ping us here or in the development matrix room when ready :)
All checks were successful
Documentation / Build and Deploy Documentation (pull_request) Has been skipped
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 2m24s
Required
Details
Update flake hashes / update-flake-hashes (pull_request) Successful in 1m40s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 25m22s
Required
Details
This pull request is blocked because it's outdated.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u fix/nix_env_fixups:kraem-fix/nix_env_fixups
git switch kraem-fix/nix_env_fixups
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
4 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
continuwuation/continuwuity!1397
No description provided.