Skip to content

Nixify the MPC project #1737

Closed
6 of 6 issues completed
Closed

Description

@DSharifi

Background

As a developer on the MPC project, I need to install several tools and system programs to be able to compile the project and do CI checks.

For example the clang version in the project needs to be < 20, otherwise the contract includes op codes not supported by the near runtime.

To make it easier to set up a working developer environment to work on the MPC project we should add support for nix shells which will create reproducible environments.

Furthremore, we also want to have reproducible CI checks locally, so these checks are great targets to nixify.

User Story

No response

Acceptance Criteria

We have a full nix setup for our MPC project.

Resources & Additional Notes

No response

Activity

  1. self-assigned this
    on Jan 11, 2026
  2. gilcu3 commented on Jan 12, 2026

    @gilcu3
    Contributor

    I have been suffering the clang issue since I started, so I can share the solution I ended up using. I found a tool https://direnv.net/ which together with the file .envrc at the repo root:

    export PATH=/usr/lib/llvm19/bin/:$PATH
    export CXXFLAGS="$CXXFLAGS -include cstdint"
    

    fixed my issues. Much easier than using nix, although it does not solve the issue of the CI checks tooling version missmatches. For those I simply install the correct version using cargo-binstall, which can be done in a special folder for the MPC project as well.

    Anyway I am not against using nix here, but would probably not use it myself as it would add a lot of complexity.

  3. DSharifi commented on Jan 12, 2026

    @DSharifi
    ContributorAuthor

    Anyway I am not against using nix here, but would probably not use it myself as it would add a lot of complexity.

    Yes, I'm not intending to make it enforced. Just a way for those who want to use it to set up a dev env that's reproducible.

  4. netrome commented on Jan 12, 2026

    @netrome
    Collaborator

    Nice! This might also help new developers get up to speed fast.

  5. changed the title [-]add nix shell support[/-] [+]Nixify the MPC project[/+] on Jan 15, 2026
  6. added
    refineNeeds further clarification before being actionable
    CIAn issue related to the continuous integration: linters, formatters, tests, etc.
    on Jan 15, 2026
  7. netrome commented on Mar 23, 2026

    @netrome
    Collaborator

    Still relevant.

  8. netrome commented on Mar 23, 2026

    @netrome
    Collaborator

    Edit. The nix setup already works great, and the last issues are questionable. Closing this tracking issue and we'll keep the CI migration open for a while to consider it but there's a high probability we won't use nix in our CI.

  9. removed
    refineNeeds further clarification before being actionable
    on Mar 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

CIAn issue related to the continuous integration: linters, formatters, tests, etc.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions