Closed Kalmalyzer closed 4 years ago
micro's formula is a good example of a simple formula that builds an application from source, installs, and runs a minimal test. It also has prebuilt casks (binaries) for a few macos variants.
Let's wait with source snapshots. The formula will fetch directly from phx' server (i.e. VASM_URL) for the time being.
The tap (either official or custom) should contain the formula. The tap should not contain anything but the formula. Any other inputs - source snapshots, diffs, makefiles etc - should be stored elsewhere.
An automated release mechanism should update to the latest version of the tap, create a feature branch, update the formula in a single commit, and submit a PR. The tap repo (either official or custom) should then accept the PR, either via maintainer validation, or via automation.
MacOS build is more-or-less functional. Need to take care of some further issues (#78 for example) before it is ready for action. Closing this for now.
Homebrew looks like the prime option.
It is possible to register repositories that act as "taps". A tap is a collection of formulas. A formula is an installation script. We could have one tap for all of prebuilt-amiga-dev-tools, similarly to the apt repository.
Homebrew always builds from source first, and optionally supports distributing pre-built binaries. We should first focus on building from source.
Here is a viable structure:
build-macos
job. For MacOS, it fetches vasm sources, and runs a formula. The formula builds vasmm68k and installs it. The same job will also run tests to verify that the build installs correctly.release
job. For MacOS this will push an updated source snapshot + updated formula to thehomebrew-tap
. [Q: should the vasmm68k repo commit changes directly to the other repo, or should this be done via a repository-dispatch trigger + reverse fetch of files? Probably the latter]homebrew-tap
is a static repo with vasmm68k.rb + sources, only containing the latest release. [Q: does homebrew typically contain older versions as well in taps?]