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

Update homebrew formulae and bottles from release.py #47

Closed
osrf-migration opened this issue Aug 3, 2015 · 13 comments
Closed

Update homebrew formulae and bottles from release.py #47

osrf-migration opened this issue Aug 3, 2015 · 13 comments
Labels
bug Something isn't working major

Comments

@osrf-migration
Copy link

Original report (archived issue) by Steve Peters (Bitbucket: Steven Peters).


It would be nice to update the homebrew formulae as part of the release process with release.py. Here's an example of a formula update: an updated tarball link and an updated checksum.

We would need to figure out which repositories have homebrew formulae. Perhaps we can put a file in the -release repo with the name of the homebrew formula?

The result should be a pull request to https://github.com/osrf/homebrew-simulation

@osrf-migration
Copy link
Author

Original comment by Jose Luis Rivero (Bitbucket: Jose Luis Rivero).


We should be able to know if there is a brew formula by going into the homebrew-simulation github repo (using github API) and use the PACKAGE_NAME passed to release.py when running the script (sdformat2, gazebo6, ignition-math2), right? If there is no a better way, hosting the brew metadata in the release repo is perfectly fine, but if can do it automatically, sounds better to me.

@osrf-migration
Copy link
Author

Original comment by Steve Peters (Bitbucket: Steven Peters).


Yeah, we should be able to do it automatically

@osrf-migration
Copy link
Author

Original comment by Steve Peters (Bitbucket: Steven Peters).


We should also build and upload homebrew bottles (binaries)

@osrf-migration
Copy link
Author

Original comment by Steve Peters (Bitbucket: Steven Peters).


Bottles requested in this issue:

@osrf-migration
Copy link
Author

Original comment by Steve Peters (Bitbucket: Steven Peters).


To build a formula (ogre for example):

$ brew install --build-from-source ogre
...
$ brew bottle $FORMULA
==> Determining osrf/simulation/ogre bottle revision...
==> Bottling ogre-1.7.4.yosemite.bottle.tar.gz...
==> Detecting if ogre-1.7.4.yosemite.bottle.tar.gz is relocatable...
./ogre-1.7.4.yosemite.bottle.tar.gz
  bottle do
    sha256 "193c5c5eb56ed471fd5d9c73ed0dc2c6c41c17b75df2ae7174c7d66ff1cfba38" => :yosemite
  end

This spits out a tarball in the current working directory and some text that needs to be added to the formula (the sha256 line). The tarball should be uploaded with s3cmd. I've done this for ogre. It would be nice to create a homebrew "debbuild" job to automate this.

@osrf-migration
Copy link
Author

Original comment by Steve Peters (Bitbucket: Steven Peters).


The following job should test the use of the ogre bottle when it actually runs:

@osrf-migration
Copy link
Author

Original comment by Steve Peters (Bitbucket: Steven Peters).


I've been peeking into the brew test bot, which builds bottles and uploads them to a repository, then pushes the bottle signatures to a fork with tags. Look at all the tags:

Apparently brew pull is the magic command to merge formula pull requests. If the release.py script could create a pull request on our homebrew tap, then we could try to run their brew test bot and brew pull commands.

@osrf-migration
Copy link
Author

Original comment by Steve Peters (Bitbucket: Steven Peters).


pull request #125 is a start

@osrf-migration
Copy link
Author

Original comment by Steve Peters (Bitbucket: Steven Peters).


  • changed title from "Update homebrew formulae from release.py" to "Update homebrew formulae and bottles from release.py"

@osrf-migration
Copy link
Author

Original comment by Steve Peters (Bitbucket: Steven Peters).


So the following currently works:

  • release.py creates a homebrew pull request
  • which triggers a bottle build
  • which triggers repository uploader

the bottle build also triggers a bottle pr hash updater job, but that isn't yet working

I'm looking at it right now.

@osrf-migration
Copy link
Author

Original comment by Steve Peters (Bitbucket: Steven Peters).


Note that the brew test block must be passable

@osrf-migration
Copy link
Author

Original comment by Steve Peters (Bitbucket: Steven Peters).


release.py will now create a homebrew pull request, build a bottle for yosemite, and update the pull request with a checksum

more work is needed to support bottles for multiple versions of osx

@osrf-migration
Copy link
Author

Original comment by Steve Peters (Bitbucket: Steven Peters).


  • changed state from "new" to "resolved"

@osrf-migration osrf-migration added major bug Something isn't working labels Apr 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working major
Projects
None yet
Development

No branches or pull requests

1 participant