Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

require specifying which agoric-sdk to install #9615

Open
turadg opened this issue Jun 29, 2024 · 2 comments
Open

require specifying which agoric-sdk to install #9615

turadg opened this issue Jun 29, 2024 · 2 comments
Assignees
Labels
devex developer experience enhancement New feature or request

Comments

@turadg
Copy link
Member

turadg commented Jun 29, 2024

What is the Problem Being Solved?

agoric install has an optional sdk version argument. Without any arguments it creates symlinks to a local agoric-sdk. This has surprised a number of developers.

Description of the Design

Require some specifier of what SDK to install. For backwards compatibility we can maintain the existing behavior of when an NPM tag is specified. The breaking change would be to error if nothing is specified.

To opt into the linking behavior (that is currently the default) we'll need some indicator. E.g. --link (which would be mutually exclusive with the tag argument) or a virtual version tag like local-checkout that skips NPM and triggers the linking behavior.

Cleaning this up could help with #9209

While we're at it and qualifying the changes, we might want to roll in upgrading Commander to its next breaking release, 12+

Security Considerations

Scaling Considerations

Test Plan

Upgrade Considerations

@turadg turadg added enhancement New feature or request devex developer experience labels Jun 29, 2024
@mhofman
Copy link
Member

mhofman commented Jun 29, 2024

To be more precise, I believe the linking behavior of install without arguments only happens when you use a linked CLI. I am actually not sure of the behavior of install when using a CLI from NPM, but it is not in a position to know how to link anything.

Since we're recommending to use yarn install, or ultimately your own package manager to actually install packages, maybe the better option would be to rename the command to agoric upgrade and require an argument to only perform a replacement of dependency versions.

At the same time we do this, we should also consider how to handle dependencies of the project shared with agoric packages, especially ones entrained in bundles such as Endo. This is something agoric install handles poorly today.

@turadg
Copy link
Member Author

turadg commented Aug 22, 2024

This would help but maybe not worth the effort. What would be worthwhile imo is to sunset agoric install. E.g. print a notice with what a user should do instead then allow them to continue by re-running with a flag like --ignore-deprecation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
devex developer experience enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants