dfinity / vessel

The original package manager for Motoko
Apache License 2.0
113 stars 19 forks source link

Please kindly improve setup #66

Closed tiagoicp closed 1 year ago

tiagoicp commented 1 year ago

Hi,

My name is Tiago and am on the Motoko Bootcamp. I really like everything I have seen about Dfinity and ICP.

But this package manager is really raw :( And it makes it super hard to reuse code from other community members.

The end result is the bad practice that have seen a lot, that is to literally copy paste code from github to internal projects. But that is not maintainable nor scalable. The more time passes, the bigger is the tech debt of all of us. Please kindly consider making vessel a priority again 🙏

I tried to install vessel and Mac (rightly so) does not allow for a source file to be imported from the internet and be executed without proper verification:

Screenshot 2023-01-20 at 18 39 23

Hope this can be eventually sorted out.

Thank you, Tiago L.

rvanasa commented 1 year ago

100% agreed. I am currently taking over maintenance of vessel, and we are looking into doing a complete redesign to address the UX and scalability of the package manager. Please bear with me during this process (since there's a lot that needs to change here), and I'll personally do my best to make this a much smoother setup experience in the near future.

rvanasa commented 1 year ago

For anyone who comes across this during Motoko Bootcamp, I highly encourage checking out MOPS, a community-built package manager which is officially supported in the Motoko VS Code extension.

Here is a starter project template which shows how to set up MOPS for dapp development: https://github.com/rvanasa/vite-react-motoko

tiagoicp commented 1 year ago

Hi Ryan,

Thanks so much for this reply. I had the time to look into MOPS and uau, that looked really good! The way we setup and the way we interact is what I was looking for. 🤩

I noticed it doesn't support "importing" from Github yet right? And even if it does, it will need config file in their repo (.toml and not .dhall), right?

I was looking to access and import Zhenya HashMap (stable) and the Env packages (and probably others as I code).

Again, thanks so much for putting the energy and work here. Really looking forward for it's development. 👍

I will soon close this issue 🙏

rvanasa commented 1 year ago

Happy to help!

MOPS recently added support for GitHub repositories without any config file. For example, I was able to import Zhenya's HashMap package with the following code (after running mops install):

mops.toml:

[dependencies]
base = "0.7.5"
hashmap = "https://github.com/ZhenyaUsenko/motoko-hash-map"

Motoko file:

import Map "mo:hashmap/Map";

Cheers!

tiagoicp commented 1 year ago

Uau, that actually looks pretty good and very close to the experience of NPM or Bundle (Ruby), thanks, will definitely consider using the Mops for my project (while we wait for vessel revamp 👍 ).

Will close this issue now. Much appreciate your time and feedback here Ryan 🙏