myitcv / gobin

gobin is an experimental, module-aware command to install/run main packages.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Potential collaboration with bingo project.

bwplotka opened this issue Β· comments

Hi πŸ‘‹

I would love to start here a discussion on the possibility for bingo project & community to collaborate closer with @myitcv and gobin community.

While creating bingo I wrongly assumed direction that gobin wants to go and because that and recent gobin bit lower activity (AFAIK due to lack of time), we decided to solve Go tooling versioning problem as a PoC in a separate project. We ended up with quite a polished tool: https://github.com/bwplotka/bingo. I also created a blog post, available here.

However, as we talked offline @myitcv offline it looks like there are many common ideas and desires.

Both gobin and bingo projects focus on:

  • Heavily using Go Modules under the hood.
  • Pinning tools with nested modules: Default and the only way in bingo, optional or WIP in gobin (?)
  • Global install: Already available in bingo via bingo go get
  • Lack of requirement of the tool itself for installation (only for managing versions). This is somehow documented on bingo README but applies for gobin as well.
  • Friendly space for contributing!

Somethings that each tool does differently:

gobin focuses also:

  • on solving PATH-less invocation of the tool (e.g for go generate use case).
  • Large discussions involving many ppl, including golang-tooling mailing list etc before deciding on implementation. πŸ‘

on the other hand, bingo focuses on:

  • smooth usability experience with optional Makefile and shell integrations, see autogenerated Makefile variables
  • ability to reference tools with aliases; no need for full package path reference; allows to install multiple tools' versions from the same module and avoiding name clashes.
  • convenient installation multiple packages with different versions from the same module.
  • immutable binaries (version suffix)

I believe that give so many similarities we can figure out some way we can join forces and join single initiative, especially as this is very early stage for bingo.

Any thoughts, suggestions on that? If we are happy with that would could be next steps? Anything blocking in terms of e.g bingo features? I believe we can definitely solve the missing bits that might be between projects πŸ€—

cc @kakkoyun @metalmatze

Thank you for raising this, and apologies again for being slow at responding. As you are aware, other demands on my time right now.

There has been some significant discussion over the last week in golang/go#30515 which is very much related.

I will, however, reply more fully when I can.