Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: brew test-bot

on:
push:
branches:
- master
pull_request:

jobs:
test:
strategy:
matrix:
os: [macos-13, macos-15]
Copy link

Copilot AI Feb 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The CI workflow tests on both macos-13 (Intel) and macos-15 (Apple Silicon), but the formula only provides an x86_64-darwin binary without the architecture constraint that was previously in place. This will likely cause test failures on macos-15 since ARM Macs cannot run the Intel-only binary without Rosetta configuration. Consider either adding the arch constraint back to the formula, providing ARM binaries, or adjusting the CI matrix to only test on Intel runners for now.

Suggested change
os: [macos-13, macos-15]
os: [macos-13]

Copilot uses AI. Check for mistakes.
runs-on: ${{ matrix.os }}
steps:
- name: Set up Homebrew
id: set-up-homebrew
uses: Homebrew/actions/setup-homebrew@master

Copy link

Copilot AI Feb 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow is missing a checkout step to retrieve the repository code. The brew test-bot commands need access to the formula files in this repository, but there's no actions/checkout step before running the tests. Add a checkout step after the Homebrew setup to ensure the formulae are available for testing.

Suggested change
- name: Check out repository
uses: actions/checkout@v4

Copilot uses AI. Check for mistakes.
- name: Cache Homebrew Bundler RubyGems
uses: actions/cache@v4
with:
path: ${{ steps.set-up-homebrew.outputs.gems-path }}
key: ${{ matrix.os }}-rubygems-${{ steps.set-up-homebrew.outputs.gems-hash }}
restore-keys: ${{ matrix.os }}-rubygems-

- run: brew test-bot --only-cleanup-before

- run: brew test-bot --only-setup

- run: brew test-bot --only-tap-syntax

- name: Build bottles (PRs only)
if: github.event_name == 'pull_request'
run: brew test-bot --only-formulae --junit --only-json-tab --skip-online-checks --skip-dependents

- name: Upload bottles as artifact
if: always() && github.event_name == 'pull_request'
uses: actions/upload-artifact@v4
with:
name: bottles_${{ matrix.os }}
path: "*.bottle.*"
16 changes: 6 additions & 10 deletions opendylan.rb
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
# typed: strict
# frozen_string_literal: true

# Open Dylan formula
class Opendylan < Formula
desc "Open Dylan implementation of the Dylan programming language"
desc "Implementation of the Dylan programming language (Open Dylan)"
homepage "https://opendylan.org/"
url "https://github.com/dylan-lang/opendylan/releases/download/v2026.1.0/opendylan-2026.1-x86_64-darwin.tar.bz2"
sha256 "305bcba52914713508fa1a97b5b6d7e042fba1b0d1415eab90c35417b2da15cd"

Copy link

Copilot AI Feb 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The arch: :intel constraint was removed, but the stable release URL still points to an x86_64-darwin binary at line 8. This creates an inconsistency - the formula will now allow installation on Apple Silicon (ARM) Macs, but the binary is Intel-only. Either the arch constraint should be kept, or ARM binaries should be added using a conditional URL based on Hardware::CPU architecture.

Suggested change
depends_on arch: :intel

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Collaborator Author

@FranklinChen FranklinChen Feb 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot code review[agent] Don't other formulas do this and warn the user Rosetta is needed?

stable do
url "https://github.com/dylan-lang/opendylan/releases/download/v2026.1.0/opendylan-2026.1-x86_64-darwin.tar.bz2"
sha256 "305bcba52914713508fa1a97b5b6d7e042fba1b0d1415eab90c35417b2da15cd"

depends_on "bdw-gc"
end
depends_on "bdw-gc"

head do
url "https://github.com/dylan-lang/opendylan.git"
Expand All @@ -20,13 +18,11 @@ class Opendylan < Formula
depends_on "bdw-gc" => :build
end

depends_on arch: :intel

def install
ENV.deparallelize

if build.head?
ohai "Compilation takes a long time; use `brew install -v opendylan` to see progress" unless ARGV.verbose?
ohai "Compilation takes a long time; use `brew install -v opendylan` to see progress" unless verbose?
system "./autogen.sh"
system "./configure", "--prefix=#{prefix}"
system "make", "3-stage-bootstrap"
Expand Down