{"id":28585963,"url":"https://github.com/phusion/passenger_homebrew_automation","last_synced_at":"2026-02-22T12:04:20.016Z","repository":{"id":66081286,"uuid":"153168427","full_name":"phusion/passenger_homebrew_automation","owner":"phusion","description":"Phusion Passenger Homebrew formula release automation","archived":false,"fork":false,"pushed_at":"2025-03-27T22:21:09.000Z","size":114,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-11T06:12:54.747Z","etag":null,"topics":["homebrew","macos"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phusion.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-15T19:15:12.000Z","updated_at":"2025-03-27T22:21:13.000Z","dependencies_parsed_at":"2023-11-23T03:21:59.969Z","dependency_job_id":"a54991b6-59ba-466f-8650-dce9d39531a1","html_url":"https://github.com/phusion/passenger_homebrew_automation","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/phusion/passenger_homebrew_automation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phusion%2Fpassenger_homebrew_automation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phusion%2Fpassenger_homebrew_automation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phusion%2Fpassenger_homebrew_automation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phusion%2Fpassenger_homebrew_automation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phusion","download_url":"https://codeload.github.com/phusion/passenger_homebrew_automation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phusion%2Fpassenger_homebrew_automation/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261791887,"owners_count":23210221,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["homebrew","macos"],"created_at":"2025-06-11T06:12:36.733Z","updated_at":"2026-02-22T12:04:18.736Z","avatar_url":"https://github.com/phusion.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Phusion Passenger Homebrew packaging automation\n\nWe want to continuously test our Homebrew formulas in a CI environment. We want to know, for each Passenger commit:\n\n - **(Goal 1)** Whether the Homebrew formula still works.\n - **(Goal 2)** Which Homebrew formula was tested against that commit.\n\nThere is also another goal:\n\n - **(Goal 3)** On every Passenger release, we want to automatically submit modify the open source Homebrew formula and submit a pull request to [homebrew-core](https://github.com/Homebrew/homebrew-core).\n\nThis repository contains tools for achieving the above goals. These tools are used in Passenger's CI infrastructure.\n\n\u003e **Are you at the right place?**\n\u003e\n\u003e * Looking to contribute modifications to our open source Homebrew formula? Then `brew edit passenger` and submit a pull request to [homebrew-core](https://github.com/Homebrew/homebrew-core).\n\u003e * Looking to contribute modifications to our Passenger Enterprise Homebrew formula? Then contribtue to [our Passenger Enterprise tap](https://github.com/phusion/homebrew-passenger).\n\u003e * If you're looking to modify Phusion's Homebrew formula testing infrastructure, then this is the right place.\n\n**Table of contents**\n\n\u003c!-- TOC depthFrom:2 --\u003e\n\n- [How it works](#how-it-works)\n    - [Git submodule](#git-submodule)\n    - [Repo contains a copy of the formula](#repo-contains-a-copy-of-the-formula)\n    - [Passenger Enterprise](#passenger-enterprise)\n    - [Simplified CI flow overview](#simplified-ci-flow-overview)\n\n\u003c!-- /TOC --\u003e\n\n## How it works\n\n### Git submodule\n\nThis repo is a Git submodule of the Passenger repo, under `packaging/homebrew`.\n\n### Repo contains a copy of the formula\n\nThis repo contains a copy of the open source formula. On each commit to Passenger open source this formula is tested (by the `test-formula` script). This script `brew install`s the formula and runs a test suite afterwards.\n\nThere are two reasons why we have a copy:\n\n 1. To satisfy goal 2. The copy here, plus the use of Git submodules, allows us to effectively lock down each Passenger commit to a specific version of the formula.\n 2. To have a place to store formula changes that are only applicable to unreleased versions of Passenger. These formula changes should not yet be submitted to homebrew-core.\n\nHowever, OSS formula also lives in [homebrew-core](https://github.com/Homebrew/homebrew-core), which anyone can contribute to. At the same time, the pull request that we generate during release time, is based on our local copy. So the copy in this repo must be kept up-to-date with the one in homebrew-core.\n\nThis is why, on every Passenger commit and during release, the `verify-oss-formula-uptodate` script checks whether the copy in homebrew-core is newer. If so, the script raises an error and a maintainer will have to manually update the local copy with the one in homebrew-core.\n\n### Passenger Enterprise\n\nThis repo contains no copy of the Enterprise formula. That one is stored in [our Passenger Enterprise tap](https://github.com/phusion/homebrew-passenger). That tap is *also* imported as a Git submodule into the Passenger Enterprise repo, under `packaging/homebrew-enterprise`.\n\nThe scripts in the current repo (e.g. `test-formula`) automatically detect whether they're being invoked for Passenger open source or Passenger Enterprise. When Passenger Enterprise is detected, they will use `packaging/homebrew-enterprise/Formula/passenger-enterprise.rb` instead of `packaging/homebrew/Formula/passenger.rb`.\n\n### Simplified CI flow overview\n\nOn every commit, the Passenger repo's Jenkinsfile is invoked. The 'Homebrew packaging unit tests' test in the Jenkinsfile runs two commands:\n\n    ./dev/ci/setup-host homebrew-packaging\n       |\n       +-- eventually calls ./dev/ci/tests/homebrew-packaging/setup\n\n    ./dev/ci/run-tests-natively homebrew-packaging\n       |\n       +-- eventually calls ./dev/ci/tests/homebrew-packaging/run\n             |\n             +-- Create source tarball\n             |\n             +-- (If OSS) Check whether OSS formula is up-to-date\n             |     |\n             |     +-- ./packaging/homebrew/verify-oss-formula-uptodate\n             |\n             +-- Create a temporary copy of the formula with the SHA and filename adjusted to the source tarball\n             |     |\n             |     +-- ./packaging/homebrew/modify-formula\n             |\n             +-- Test temporary copy of the formula\n                   |\n                   +-- ./packaging/homebrew/test-formula\n                         |\n                         +-- Reset Homebrew taps\n                         |\n                         +-- Uninstall existing formulas\n                         |\n                         +-- `brew install` Passenger formula\n                         |\n                         +-- `brew install` Nginx formula\n                         |\n                         +-- rake test:integration:native_packaging\n                             See test/integration_tests/native_packaging_spec.rb\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphusion%2Fpassenger_homebrew_automation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphusion%2Fpassenger_homebrew_automation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphusion%2Fpassenger_homebrew_automation/lists"}