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

Package up client libs without the entire monorepo #1237

Open
ire-and-curses opened this issue May 2, 2019 · 5 comments
Open

Package up client libs without the entire monorepo #1237

ire-and-curses opened this issue May 2, 2019 · 5 comments
Labels
horizonclient tag for new horizon client located in clients/horizonclient modules Issues relating to introduction of Go modules. txnbuild 2nd-generation transaction build library for Go SDK

Comments

@ire-and-curses
Copy link
Member

It would be great if users didn't have to download the whole monorepo just so they could use horizonclient and txnbuild. Also would be great if these libraries could be installed with standard go get.

Look into ways to achieve this given our source control architecture.

@ire-and-curses ire-and-curses added txnbuild 2nd-generation transaction build library for Go SDK horizonclient tag for new horizon client located in clients/horizonclient labels May 2, 2019
@theaeolianmachine
Copy link
Contributor

not enough 👍 in the world for this

@poliha
Copy link
Contributor

poliha commented Jun 18, 2019

It doesn't seem that there is way to achieve this while txnbuild and horizonclient are part of the monorepo.

@leighmcculloch
Copy link
Member

@ire-and-curses Could you elaborate on what you mean by:

would be great if these libraries could be installed with standard go get.

Could you share what command you're running and what error/issue you're running into with go get and the repo?

@leighmcculloch leighmcculloch self-assigned this Aug 19, 2019
@ire-and-curses
Copy link
Member Author

@leighmcculloch Thanks for taking this on! Basically: as a Go developer, I would like to be able to download and install the Go SDK libraries (horizonclient and txnbuild) using a standard tool like go get. I actually haven't tested this, but I assume that right now I can do

go get github.com/stellar/go

This gets me the entire monorepo, when really all I wanted was those two libraries.

In a language like Python, you upload your library to a distribution server (e.g. Pypi). It gives you a way to clearly separate your released artifacts (and describe your dependencies expliclty) separately from your raw source tree. I'm not super-familiar with Go's packaging options, so this issue was a placeholder to look into what options might be possible to achieve something similar.

leighmcculloch added a commit that referenced this issue Sep 13, 2019
Remove the `bifrost` service and any code and dependencies that existed only for it.

Clean up unsupported code to make the transition to multiple modules for #1237 easier.

Also closes #1524
@leighmcculloch leighmcculloch added the modules Issues relating to introduction of Go modules. label Sep 25, 2019
@leighmcculloch leighmcculloch removed their assignment Oct 22, 2020
@leighmcculloch
Copy link
Member

leighmcculloch commented Oct 22, 2020

This issue hasn't been very well updated which is on me. In 2019 I started work in #1767 to break up this repo into separate Go Modules, while retaining a single monorepo that holds the modules. That PR included scripts that would help us run all tests, linters, etc for all modules, since the standard Go commands unfortunately do not operate across multiple modules.

The work in that PR was closed because of shifting priorities but I hope we can still pursue it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
horizonclient tag for new horizon client located in clients/horizonclient modules Issues relating to introduction of Go modules. txnbuild 2nd-generation transaction build library for Go SDK
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants