Skip to content

Move/rename repo #146

Open
Open

Description

@Stebalien

Given that this is shaping up to be a core shared library, it should live in the filecoin-project org:

  • Either as a sub-crate in the builtin actors.
  • Or as a new package? Maybe something like librfc?....
  • Or something in the ref-fvm repo?

Right now, there's an awkward dependency detour where:

  • The builtin actors depend on this repo.
  • This repo depends on the FVM.

Most changes to the FVM's API will require a change change in this repo before that change can be propagated to the builtin actors. This will be a non-issue once M2.2 (general programmability) ships as the FVM interfaces will have stabilized by then (or we'll have proper FVM "container" versioning, at the very least). But the current situation won't work for M2.1 and M2.2 because we're actively changing said interfaces.

Activity

  1. anorth commented on Oct 31, 2022

    @anorth
    Member

    I gather there is a third leg to the dependency detour here, where

    • FVM, or at least some of your development processes, depend on built-in actors.

    Otherwise, this would be a straightforward propagation and I don't see why FVM team would care.

    What does that dependency look like, and is there any way to break it? Otherwise this is going to be quite awkward anyway, even if you have control of all three legs.

    Another option is forking this repo into filecoin-project. At least for next branch work this would give you the control you need – e.g. you could depend on git hashes rather than published crates. Then changes you make in the fork can be propagated back to a mainline that lives here.

    Another option is wholesale copying the code (with attribution) into the builtin-actors repo, for its use there, and dropping dependency on published crates. But still expect all user-programmed actors to use this repo and its artefacts.

    In both cases, a decision about whether or not the builtin actors switch back to published crates later can be deferred a bit.

    I spent some time trying to determine the right place for this code before we started. General agreement was that code built primarily by community teams should live in their orgs. It wasn't obvious to me that the time that the built-in actors would depend on it directly, and I could see good arguments why we should minimise external dependencies there. However think we should try to avoid setting a precedent for:

    • hosting all FRC-related code in filecoin-project
    • preferencing some FRC-related impls over others in filecoin-project
  2. Stebalien commented on Mar 26, 2025

    @Stebalien
    MemberAuthor

    I've at least partially fixed this dependency detour by removing the cargo dependency on the built-in actors. Instead, we download the pre-built bundle from github and use that. This means there is no circular dependency between this crate and the built-in actors.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions