diff --git a/docs/rfc/003-imports-stabilization.md b/docs/rfc/003-imports-stabilization.md index 87bb8f0da7..cf3ce7c006 100644 --- a/docs/rfc/003-imports-stabilization.md +++ b/docs/rfc/003-imports-stabilization.md @@ -17,11 +17,11 @@ DRAFT # Summary -This proposal aims to improve import management system in Leo programs to +This proposal aims to improve the import management system in Leo programs to make program environment more reproducible and predictable. To achieve that we suggest few changes to Leo CLI and Manifest: -- add "dependencies" section to Leo Manifest and add command to pull those dependencies; +- add a "dependencies" section to Leo Manifest and add a command to pull those dependencies; - allow custom names for imports to manually resolve name conflicts; - store imports as they are called in Leo Manifest; @@ -33,9 +33,9 @@ imported packages based on both their contents and version. What problems does it solve? What is the background? Current state: -- imports are published with program to Aleo PM; -- we treat program as files with no verification of imports (they can be changed locally and published in that state); -- name collisions cannot be resolved; new import overwrites existing; +- imports are published with a program to Aleo PM; +- we treat programs as files with no verification of imports (they can be changed locally and published in that state); +- name collisions cannot be resolved; a new import overwrites existing; TBD @@ -73,7 +73,7 @@ same name but different authors. To resolve name conflict we suggest storing imports as they are named in Leo Manifest file (Leo.toml). - # Drawbacks -This change might require update of already published programs on Aleo PM due to +This change might require the update of already published programs on Aleo PM due to Leo Manifest change. However it is possible to implement it in a backward-compatible way. # Effect on Ecosystem Proposed improvement provides safety inside Leo programs and should not affect -ecosystem except for tools which use Leo directly (such as Aleo Studio). +ecosystem except for the tools which use Leo directly (such as Aleo Studio). -It is possible that some of the proposed features open new features on Aleo PM. +It is possible that some of the proposed features will open new features on Aleo PM. # Alternatives -Another approach to stated cases is to keep everything as we have now but change +Another approach to the stated cases is to keep everything as we have now but change the way programs are imported and stored and make names unique. Also, current implementation provides some guarantees on import stablitity and consistency.