Skip to content

Bottling M2

Mahrud Sayrafi edited this page Jul 17, 2024 · 3 revisions

Bottling an individual formula

You can build and bottle a package with the following commands:

brew uninstall --ignore-dependencies PROGRAM
brew install --build-bottle PROGRAM
brew bottle --no-rebuild PROGRAM

Also see: 142

Bottling all libraries

To make the bottle available for use by others, it needs to be uploaded in a repository and linked to inside the corresponding formula.

  1. Build all the necessary bottles
PROGRAMS="`brew deps M2 | grep macaulay2`"
for i in $PROGRAMS; do
    brew uninstall --ignore-dependencies $i
    brew install --build-bottle $i
    brew bottle --no-rebuild $i
done
  1. Open the list of releases
  2. Search for the program, e.g. normaliz, and click to edit the most recent release
  3. Upload the correpsonding bottled archive in the release
  4. Rename the filename to match the other bottles (i.e. remove extra - or .1 in the extension)
  5. Save the release
  6. Push the formulas
cd $(brew --repo macaulay2/tap)
git push

You may need to set up a fork and make a pull request to for the last step.

Testing the bottle

brew update
brew remove M2
brew remove --ignore-dependencies `brew deps M2 | grep macaulay2`
brew install M2

Building the macaulay2-common bottle

Get the location of a recent macaulay2 bottle:

$ curl --request GET -H'Authorization: Bearer QQ==' https://ghcr.io/v2/macaulay2/tap/macaulay2/blobs/sha256:291a38fff0ca8431a44b2f0a153d3c41b8b88d049b6e73e5206d28e4c435b458 --head

HTTP/2 307 
content-length: 0
content-type: application/vnd.oci.image.layer.v1.tar+gzip
docker-distribution-api-version: registry/2.0
location: https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:291a38fff0ca8431a44b2f0a153d3c41b8b88d049b6e73e5206d28e4c435b458?se=2024-07-17T23%3A35%3A00Z&sig=dJwipWJQsnSEG4rkFi9b87olzkkspJTlqVKUgKJ7InY%3D&sp=r&spr=https&sr=b&sv=2019-12-12
date: Wed, 17 Jul 2024 23:29:50 GMT
x-github-request-id: C2E4:375B22:156AECA:161286A:669853EE

Use this to update the content of macaulay2-common.rb.