You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Enhance dependency management in Move packages by introducing standardized practices for network-agnostic dependencies and flexible address configuration, along with compiler support for address overrides.
Motivation
Currently, Move package developers face significant challenges when managing dependencies across different networks (testnet, mainnet, etc.). These issues are particularly evident with widely-used packages like ThalaLabs' FixedPoint64 (https://github.com/ThalaLabs/fixed_point64).
Key pain points:
Network-Specific Package Revisions
Packages maintain different revisions/branches solely for network addresses (e.g., FixedPoint64 has "mainnet" and "dev-testnet" revs)
Forces developers to specify different revs of the same package just to get the correct network address
Creates artificial dependency conflicts when different dependency chains reference the same package but with different network-specific revs
Address Override Limitations
Cannot override concrete addresses specified in dependency Move.toml files
Results in errors like:
"Error": "Move compilation failed: Unable to resolve packages: Attempted to assign a different value '0x4dca...' to an already-assigned named address '0xf6ac...'"
Dependency Resolution Conflicts
When different dependency chains require the same package but specified different revs(i.e. branches) to use the [addresses] that were required at the time of a particular network deployment, compilation fails:
This would not be an issue if developers could consistently use the main rev/branch for the dependencies instead of having to toggle between branches for different networks.
Pitch
Describe the solution you'd like
Standardized Package Structure
Require dependencies to maintain network-agnostic main branch
Move.toml in main branch uses placeholder addresses:
🚀 Feature Request
Enhance dependency management in Move packages by introducing standardized practices for network-agnostic dependencies and flexible address configuration, along with compiler support for address overrides.
Motivation
Currently, Move package developers face significant challenges when managing dependencies across different networks (testnet, mainnet, etc.). These issues are particularly evident with widely-used packages like ThalaLabs' FixedPoint64 (https://github.com/ThalaLabs/fixed_point64).
Key pain points:
Network-Specific Package Revisions
rev
s)rev
sAddress Override Limitations
Move.toml
filesDependency Resolution Conflicts
[addresses]
that were required at the time of a particular network deployment, compilation fails:main
rev/branch for the dependencies instead of having to toggle between branches for different networks.Pitch
Describe the solution you'd like
Standardized Package Structure
main
branchMove.toml
inmain
branch uses placeholder addresses:networks.toml
:Enhanced Compiler Features
networks.toml
networks.toml
--named-addresses
Version Management
Describe alternatives you've considered
Branch-Based Network Configuration
Are you willing to open a pull request?
Not at the moment
Additional context
This proposal builds on and complements the network configuration feature request (#15938), adding specific improvements for dependency management.
This would significantly improve the developer experience by:
The text was updated successfully, but these errors were encountered: