-
Notifications
You must be signed in to change notification settings - Fork 382
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
gno [-watch] dev PATH
#1174
Comments
I would like to proceed with moving What would be the best approach as of today:
|
Ultimate target (not a strong requirement before a few years):
Short/intermediary target:
In other words, you have two main options:
I recommend choosing option 2. Honestly, even I am unsure about how things will develop, and I lack confidence in my ability to draft something sufficiently generic and effective on the first attempt. |
I think moving |
I suggest we approach this as if the tm2 client never originally existed in tm2 but was developed in gno.land. Then, if someone wants to create guilhem.land and aims to reduce repetitive code, they could add helper functions to tm2. These additions would exclude gnovm-related elements, focusing tm2/pkg/client on simplifying client creation. In my opinion, directly extracting gno might be more challenging. A two-step process would be more effective, starting with removing the client from tm2 and then working towards maximizing shared code. Although some may have reservations about this plan, I believe now is the ideal time to implement it. Currently, we lack a secondary chain, making it an opportune moment to proceed. This action would enhance simplicity in the short term and provide a better context for designing improved shared helpers in the future, when they are truly needed. |
re: what to do for keys/client, we discussed with jae and decided on this approach. @gfanton should this issue be closed as gnodev has been added, or do you envision closing this after we add some other bits of functionality? |
Quick Summary: Utilizing
gno dev .
initiates an in-memory instance of gnoland and gnoweb. This action also preloads local contracts and their dependencies. When-watch
is appended, automatic reloading takes place with any local contract alterations.Thanks to @gfanton's contributions in #1117, the implementation of this task is poised to be more straightforward.
One of the more intricate facets I'm pondering isn't strictly technical but revolves around streamlining our codebase. The aim is to retain the minimalistic essence of
tm2/
andgnovm/
, ensuring they remain simplified CLI tools devoid of complex CLI shorthands. However, a comprehensive single binary namedgno
is envisioned. This won't just be limited to gnoland or the specific gno.land chain but will stand as a cornerstone for the "gno ecosystem." This holistic tool would encapsulate complexities, presenting a unified interface tailored for routine tasks, from executing local contracts off-chain to fostering interchain interactions.Therefore, I propose the following restructuring:
gno
fromgnovm/
, ensuringgnovm/
remains uncluttered. If there's a necessity, we can architect new binaries withingnovm/cmd/{gnovm,gnolang}
. This separation would support distinct functionalities for gnovm and gnolang. However, immediate action on this seems premature.gno
binary at the repository's root seems appropriate. Over time, a dedicated subdirectory, perhaps labeledgno/
orecosystem/
, could emerge, but currently, our existing directories should suffice.Another forward step involves leveraging the split in tm2 (#692). This would accommodate
go mod workspaces
, enabling bothtm2
andgnovm
to benefit from streamlined go.mod files. The overarching "gno ecosystem binary," with its developer-centric inclinations, would subsequently harness a more expansive dependency framework. This particular binary is unique; it's not designated for repetitive forking for newgnovm+tm2
based chains. Unliketm2
andgnovm
, which are generic, straightforward, and finalized, this binary will encapsulate more intricate workflows.For further insights, I'll soon offer an in-depth breakdown. Meanwhile, these references might be helpful:
We've also had several enlightening voice discussions, which you might find on YouTube for a deeper understanding.
The text was updated successfully, but these errors were encountered: