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

Continuous integration and nightly builds #621

Closed
raulk opened this issue May 3, 2019 · 3 comments
Closed

Continuous integration and nightly builds #621

raulk opened this issue May 3, 2019 · 3 comments

Comments

@raulk
Copy link
Member

raulk commented May 3, 2019

TL;DR: Let's build on the libp2p workspace to provide continuous integration and nightly builds for binaries (right now the daemon, because libp2p is really a library).

Problems:

  • right now we abuse patch releases to integrate module changes upstream; this creates noise, unpredictability, and a hoard of insignificant releases for tiny tweaks in some cases (e.g. just a change of default value in a variable).
  • we don't notice breakage across modules until we've made a release and integrated it upstream, which sucks because it's already too late to fix it, and we're left with a bad release, forever etched in the annals of history.
  • we have no means to run integration tests across master builds.

Proposal:

  • implement a Travis build in workspace-go-libp2p that pulls in all masters across modules, cross-references them via replace gomod directives, and runs all tests.
    • The workspace script already has commands for much of this, we need to cook up a travis config file for this.
  • have the above build produce nightly binaries for the daemon, and any other main programs we have.
@jacobheun
Copy link
Contributor

have the above build produce nightly binaries for the daemon, and any other main programs we have.

If this could also upload to ipfs that would be a nice bonus. libp2p/interop currently uses ipfs distribution to pull in the go daemon binary via an npm package, https://github.com/libp2p/npm-go-libp2p-dep. We could potentially upgrade that to do some smarter version checking and do nightly interop builds of the latest releases.

@Stebalien
Copy link
Member

IMO, we should still cut releases of individual modules so downstream projects can update these modules to get new features. We just shouldn't cut releases of go-libp2p for every tiny change.

@marten-seemann
Copy link
Contributor

This is not a problem any more, since go-libp2p is essentially a mono-repo now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants