-
Notifications
You must be signed in to change notification settings - Fork 379
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
Repo structure and binaries' improvements #1201
Comments
Based on today's discussion, I have officially relocated the main binary, Additionally, I have introduced a new binary called To clarify, while I personally prefer using only the Edit: bonus, what do you think about keeping the structure mentioned above, but also.... create a top-level main.go file to install the |
I like this! The OP also looks good to me. A few further proposals/q's:
|
GNO:
GNOLAND:
GNOKEY:
And I would suggest renaming GNOSDK to GNOLANDTOOLS, for any chain based on the GNO VM. |
|
|
I'm not sure if I remember everything we discussed during the call, but here are the key points:
Edit: If it's not |
See #1256 |
So:
Is this roughly our current position? @moul I think we should have only one of |
Yeah, that’s the idea. For the Git method, let's hold off and have users specifically use "gnodev" rather than "gno dev." We might consider enabling "gno$command" execution later on.
I favor flagging 'contribs/gno*/' directories for binaries, similar to '/usr/local/bin', and using 'misc' for everything else, possibly with subdirectories, akin to '/opt' — assuming I've got the Unix standard folders right. |
Added to the Rouen Retreat board. I think a greater discussion on the strategy and writing out a document on what we want for binary/repo structure might be good :) |
Please note that the comments should be read. The body of this issue is not yet updated with the latest decisions.
This issue seeks to clarify concepts and suggest future updates, related to #1105, where I proposed a
gnosdk
space.The
gno.land/cmd/gno
andgnosdk
should focus on user experience, while the rest ofgno.land
,gnosdk
, andtm2
should showcase standalone binaries and minimalist libraries.The main binary,
gno.land/cmd/gno
, should be the developers' go-to binary in the ecosystem, catering to both developers and non-developers. Consideringgno.land
's significant role with github-style realms, IBC, and ICS features, it's fitting to house the ecosystem binary,gno.land/cmd/gno
, here, even if it extends beyondgno.land
.gnoland
, designed for production runtime management and daemon operation, should remain minimalist, focusing on node initiation and network joining, leaving extensive configuration and management tools tognosdk
orgno
under anode
/genesis
subcommand.The
fooland
binary, aligning with other cosmos chains, serves as a central hub, combining standalone libraries/binaries into one. Once established, the secondary binary, "gno," becomes necessary, allowing "fooland" to focus on unique features and enabling gnolang developers to use standard ecosystem tools.I support including basic account management and client functionality in the
gno
binary, reducing the need forgnokey
, except for demonstrating a minimal client for a new chain.Proposal for structural target:
In bold, the things that are not existing yet.
gno.land
pkg
gnoland
: a node app for gno.landcmd
gnokey
: a standalone minimal client for gno.landquery
,maketx
, etc. (client functionality)list
,create
, etc. (account management)gnoland
: a standalone minimal production node for gno.landstart
reset
(WIP)gnoweb
: a standalone minimal production gnoweb for gno.landgno
: the main binary for the gno ecosystem (moved fromgnovm/cmd/
)test
,build
,doc
, etc.: Go-like commands for gno; I suggest we switch fromgno.Machine
tognovm.Keeper
genesis
: tools for manipulating the genesis of gno.landnode {backup,restore}
: new place for gnotxportnode stats
,...: other helpers related to node managementdev
: an opinionated shortcut to run a single gnoland node + gnoweb in memory/diskgnovm
pkg
gnolang
: currentgnolang/gno.Machine
commands
: composable CLI commands, equivalent oftm2/keys/client
cmd
gnolang
: new binary with blockchain-lessgno.Machine
commands (most of today'sgno
binary)gnosdk
pkg
genesis
: a library for manipulating the genesiscodegen
: helpers for code generation in the gno ecosystemcmd
fooland
: a unified library with gnokey, gnoland, gnotxport, etc. to run a foo.land node or interact with itquery
,maketx
: gnokey's client functionalitylist
,create
: gnokey's account managementnode
start
: start gnolandtxport
: backup and restore functionality from gnotxport to gno nodegenesis-flows-such-as-POS-coordination
web
: gnowebfaucet
: gnofaucettm2
pkg
The text was updated successfully, but these errors were encountered: