Skip to content

Build breakage with 0.18 in SolverConstraintsSet #592

Description

@kvark

Building with Rust-1.73:

error[E0446]: crate-private type `SolverConstraintsSet<contact_constraints_set::ContactConstraintTypes>` in public interface
  --> /home/kvark/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/contact_constraint/contact_constraints_set.rs:87:1
   |
87 | pub type ContactConstraintsSet = SolverConstraintsSet<ContactConstraintTypes>;
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
   |
  ::: /home/kvark/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rapier3d-0.18.0/src/dynamics/solver/solver_constraints_set.rs:39:1
   |
39 | pub(crate) struct SolverConstraintsSet<Constraints: ConstraintTypes> {
   | -------------------------------------------------------------------- `SolverConstraintsSet<contact_constraints_set::ContactConstraintTypes>` declared as crate-private

My Cargo lock entry:

[[package]]
name = "rapier3d"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92d07a833e0aa3bc57010caaa50bf75fa78afc03a74207607db740da4e4579a1"
...

Activity

  1. yutannihilation commented on Feb 18, 2024

    @yutannihilation
    Contributor

    I see similar errors (e.g. #586) are reported recently not only in this repo.

    I found this error was relaxed only since Rust 1.74.0. This change:

    Replace private_in_public lint with private_interfaces and private_bounds per RFC 2145. Read more in RFC 2145.

    Since rapier doesn't have a policy about MSRV (right?), technically, this might not be what is considered as a semver breakage. But, I personally feel Rust 1.74 is a bit too strict requirement for a non-experimental library.

  2. sebcrozet commented on Feb 18, 2024

    @sebcrozet
    Member

    @kvark I’m not sure I understand what semver breakage means here. Rapier got bumped from 0.17 to 0.18 here, isn’t hat what semvers dictates in case of breaking change (apparently including, in this case, a MSRV change)?

  3. kvark commented on Feb 19, 2024

    @kvark
    ContributorAuthor

    Sorry about the confusion! I was reporting other similar issues to other repos, and they were actually semver-related.
    For Rapier3d, it's not about semver at all. Let me edit the title accordingly.

  4. changed the title [-]SemVer breakage in `SolverConstraintsSet`[/-] [+]Build breakage with 0.18 in `SolverConstraintsSet`[/+] on Feb 19, 2024
  5. kvark commented on Feb 19, 2024

    @kvark
    ContributorAuthor

    I strongly recommend exposing MSRV and having your CI build/run with it specifically instead of the latest stable version.

  6. sebcrozet commented on Aug 8, 2026

    @sebcrozet
    Member

    chore: closing this. We now define rust-version in the Cargo.toml.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions