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

Mac OS: Support brew installation for Harmony #69

Open
4 tasks
jacksteroo opened this issue Aug 20, 2021 · 16 comments
Open
4 tasks

Mac OS: Support brew installation for Harmony #69

jacksteroo opened this issue Aug 20, 2021 · 16 comments
Labels
dev tools New tools for developers
Projects

Comments

@jacksteroo
Copy link

jacksteroo commented Aug 20, 2021

Description

Package our binary, for brew. Or in brew terms, "Bottle Harmony One binaries into Brew Casks!". For example, brew install harmony-one should initiate installation of Harmony binaries alongside all the dependencies. Also allow the installation to be pinned to a certain version.

Context

This encourages ease of development and testing, and further helps with decentralizing the ecosystem. See Brew documentation for more info.

Acceptance Criteria

  • Submit the latest Harmony binaries into the brew repo
  • Ensure the setup and installation abides by Harmony and brew guidelines (e.g. permissions, install path, etc.)
  • Document the steps necessary to post the latest builds to the brew repo
  • Submit the changes with brew (and Harmony if needed) and review with the Harmony team

Reward

USD $500 (in ONEs)

@LeoHChen LeoHChen added this to Pending in Release via automation Aug 21, 2021
@LeoHChen LeoHChen added the dev tools New tools for developers label Aug 21, 2021
@cylim
Copy link

cylim commented Sep 13, 2021

What is suppose to pack into the bottle? The Harmony CLI?

@cylim
Copy link

cylim commented Sep 24, 2021

Due to the harmony-one/go-sdk doesn't met minimum requirements for publish to Homebrew, I am using harmony-one/harmony as the base.

According the Homebrew, Notable enough repo should have >30 forks, >30 watchers and >75 stars.

Besides that, when running hmy <command>, it is showing a warning message, which should be related to
harmony-one/go-sdk#256 (comment)

Warning: Using outdated version. Redownload to upgrade to v417-bc3f026

A new formula PR is created for homebrew/core: Homebrew/homebrew-core#85856.
Documents for updating the formula is not created yet, will wait for the PR approval.
This might work for Linux too, I can't be sure about it due to I didn't test it on any Linux distros.

@cylim
Copy link

cylim commented Sep 24, 2021

@LeoHChen
May I know what is the reasons why the latest harmony-one/go-sdk github actions removed the ARM64 build. harmony-one/go-sdk@v1.2.6...v1.2.7
I can't debugging the homebrew formula for arm64 due to I don't have the required device for testing, so I have set the arch to x86 only, but homebrew team is asking about it.

@cylim
Copy link

cylim commented Sep 24, 2021

PR for a bug related to Go 1.17 on MacOS: harmony-one/go-sdk#270

Need to figure out what is the issues with arm64, unfortunately, I don't have a M1 Macbook.

@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 3426.2931 ONE (502.66 USD @ $0.15/ONE) attached to it.

@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 265 years, 1 month from now.
Please review their action plans below:

1) cylim has started work.

  1. Create Homebrew Bottle
  2. Fix bugs for Linux Build (Yes, homebrew can be use in Linux now)
  3. Fix bugs in Go SDK for Go 1.17 and arm64 Mac
  4. Get PR approval from Homebrew
  5. Create Doc for Harmony about how to upgrade dependencies and main package
  • One thing, it will be using Harmony repo as main package and Go-SDK as dependecies due to Go-SDK repo doesn't met requirement for publishing on Homebrew.

We can discuss about it at #69

Learn more on the Gitcoin Issue Details page.

@cylim
Copy link

cylim commented Sep 29, 2021

@LeoHChen just in case if you didn't saw my comments ealier, I had summarize to three items.

Questions/Note

  1. Main Package is using Harmony not go-sdk - The go-sdk doesn't met minimum requirements (>30 forks, >30 watchers and >75 stars)
  2. Go 1.17 Support - Pending PR review (fix(mod): update fatih/color for go 1.17 macos go-sdk#270)
  3. ARM64 Support - Pending Feedback from Go-sdk (arm64 macos  go-sdk#271)

@LeoHChen
Copy link
Contributor

@cylim to package the harmony node program, not just the hmycli

@cylim
Copy link

cylim commented Oct 1, 2021

@LeoHChen which repo is for the node?
The formula has included harmony, bls, mcl and go-sdk to ensure it is working correctly.

@LeoHChen
Copy link
Contributor

LeoHChen commented Oct 1, 2021

@LeoHChen
Copy link
Contributor

LeoHChen commented Oct 1, 2021

for go-sdk, I am asking for our dev community support to have more star, and forks.

@cylim
Copy link

cylim commented Oct 1, 2021

@LeoHChen All good. The 4 dependencies are all included in one formula.
It is just whether we want to use harmony or go-sdk as the base, because the upgrading process is slightly different.
I would prefer to use go-sdk as the base, because the hmy cli command is exposed from go-sdk. which it required (>30 forks, >30 watchers and >75 stars) to become the base of a brew formula. 😄

@GraoMelo
Copy link

@jacksteroo

your project has many conflicting dependencies.

not compilede for mac os.. then nothing of brew.

` honnef.co/go/tools v0.0.1-2020.1.5 // indirect
)

replace github.com/ethereum/go-ethereum => github.com/ethereum/go-ethereum v1.9.9`

what?

or better:

https://github.com/harmony-one/mcl.git
compile only windows.

https://github.com/harmony-one/bls.git
compile only windows too.

so how to create a precompiled package for mac os if it doesnt compile?

@cylim
Copy link

cylim commented Oct 12, 2021

@GraoMelo The project had passed CI/CD and successfully installed in different MacOS and Linux.

The issues we are facing now is there is too many hardcoded path in the Makefile or script files, and Homebrew prefer to do it the Go Module way.

Homebrew/homebrew-core#87031

@klngrs
Copy link

klngrs commented Oct 20, 2021

@jacksteroo - Figured I'd get my feet wet looking at this.

In the spirit of eliminating manual processes on the part of the Harmony core team or manual processes with every release, what are your thoughts on:

Edit the harmony release github action to:

  1. Fork/Checkout homebrew core
  2. Create a branch w/ the name of the Harmony release number
  3. Edit the homebrew formula with the updated release info / shas
  4. Submit a PR to homebrew in an automated fashion

@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 3426.2931 ONE (1077.45 USD @ $0.34/ONE) has been submitted by:


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dev tools New tools for developers
Projects
Release
Pending
Development

No branches or pull requests

6 participants