Compare commits

...

8 Commits

Author SHA1 Message Date
d66071efc4 chore(deps): update build-emacs-for-macos to 0.6.57 2024-12-08 14:08:16 +00:00
5f2c9eef19 chore(deps): update build-emacs-for-macos to 0.6.55 2024-12-03 00:20:33 +00:00
b381cba4fa fix(workflow/_prepare): fix typo in default ref logic 2024-12-02 19:54:16 +00:00
d40d900d61 refactor(workflows): simplify default builder_ref setting
Allow the default builder_ref to be set in the a single location, the
_prepare shared workflow. Other workflows essentially have a override
option, and no longer need explicit default values set.
2024-12-02 19:51:29 +00:00
d81f9a1229 fix(nightly): remove supurflous inputs from nightly-master workflow
They're not needed for manual runs, and they were actively causing
things to break when triggered by the schedule.
2024-12-02 19:37:33 +00:00
93ad41d01a chore(deps): update build-emacs-for-macos to 0.6.54 2024-12-01 12:41:17 +00:00
c5db478e64 docs(readme): add update about new Apple Silicon nightly builds 2024-12-01 04:45:34 +00:00
c554cdeb31 chore(deps): update build-emacs-for-macos to 0.6.53 2024-12-01 03:54:14 +00:00
5 changed files with 49 additions and 59 deletions

View File

@@ -13,7 +13,7 @@ on:
type: string
builder_ref:
description: "Git ref to checkout of build-emacs-for-macos"
required: true
required: false
type: string
builder_args:
description: Custom arguments passed to build script

View File

@@ -5,30 +5,41 @@ on:
inputs:
builder_ref:
description: Git ref to checkout of build-emacs-for-macos
required: true
required: false
type: string
default: ""
outputs:
builder_ref:
description: Git ref of build-emacs-for-macos at builder_ref
value: ${{ jobs.builder-sha.outputs.ref }}
builder_sha:
description: Git SHA of build-emacs-for-macos at builder_ref
description: Git commit SHA of build-emacs-for-macos at builder_ref
value: ${{ jobs.builder-sha.outputs.sha }}
jobs:
builder-sha:
runs-on: "macos-13"
outputs:
sha: ${{ steps.builder_sha.outputs.sha }}
ref: ${{ steps.ref.outputs.ref }}
sha: ${{ steps.sha.outputs.sha }}
steps:
- name: Default git ref check
id: ref
run: |
DEFAULT_BUILDER_REF="v0.6.57"
BUILDER_REF="${{ inputs.builder_ref }}"
echo "ref=${BUILDER_REF:-$DEFAULT_BUILDER_REF}" >> "$GITHUB_OUTPUT"
- name: Checkout build-emacs-for-macos repo
uses: actions/checkout@v4
with:
repository: jimeh/build-emacs-for-macos
ref: ${{ inputs.builder_ref }}
ref: ${{ steps.ref.outputs.ref }}
- name: Store builder Git SHA
id: builder_sha
id: sha
run: |
BUILDER_SHA="$(git rev-parse HEAD)"
echo "$BUILDER_SHA" > build-emacs-for-macos-git-sha.txt
echo "sha=$BUILDER_SHA" >> $GITHUB_OUTPUT
echo "sha=$BUILDER_SHA" >> "$GITHUB_OUTPUT"
echo "Builder ref ${{ inputs.builder_ref }} resolved to" \
"commit SHA: $BUILDER_SHA"
- name: Upload builder git SHA artifact
@@ -58,7 +69,7 @@ jobs:
uses: actions/checkout@v4
with:
repository: jimeh/build-emacs-for-macos
ref: ${{ inputs.builder_ref }}
ref: ${{ needs.builder-sha.outputs.ref }}
fetch-depth: 0
- name: Setup Go
if: steps.cache.outputs.cache-hit != 'true'

View File

@@ -11,9 +11,9 @@ on:
description: Override Emacs git commit SHA to build
required: false
builder_ref:
description: "Git ref to checkout of build-emacs-for-macos"
required: true
default: "v0.6.52"
description: "Override git ref to checkout of build-emacs-for-macos"
required: false
default: ""
builder_args:
description: Custom arguments passed to build script
required: false

View File

@@ -8,20 +8,6 @@ on:
git_sha:
description: Override Emacs git commit SHA to build
required: false
builder_ref:
description: "Git ref to checkout of build-emacs-for-macos"
required: true
default: "v0.6.52"
x86_64:
description: "Build x86_64 version of Emacs"
required: false
default: true
type: boolean
arm64:
description: "Build arm64 version of Emacs"
required: false
default: true
type: boolean
jobs:
build:
@@ -30,7 +16,4 @@ jobs:
with:
git_ref: "master"
git_sha: ${{ inputs.git_sha }}
builder_ref: ${{ inputs.builder_ref }}
x86_64: ${{ inputs.x86_64 }}
arm64: ${{ inputs.arm64 }}
secrets: inherit

View File

@@ -26,12 +26,12 @@
## Features
- Self-contained Emacs.app application bundle, with no external dependencies.
- Native compilation ([gccemacs][]), only in Emacs 28.x and later builds.
- Native JSON parsing via libjansson.
- Native compilation ([gccemacs][]).
- Native JSON parsing.
- SVG rendering via librsvg.
- Various image formats are supported via macOS native image APIs.
- Xwidget-webkit support is enabled, allowing access to a embedded WebKit-based
browser with `M-x xwidget-webkit-browse-url`.
- Xwidget-webkit support, allowing access to a embedded WebKit-based browser
with `M-x xwidget-webkit-browse-url`.
- Native XML parsing via libxml2.
- Dynamic module loading.
- Includes the [fix-window-role][], [system-appearance][], and
@@ -56,11 +56,13 @@
## System Requirements
- macOS 13 Ventura or later for Apple Silicon builds.
- macOS 12 Monterey or later for Intel builds, which can run on Apple Silicon
via Rosetta2.
- Builds produced after 2024-11-30:
- macOS 11 or later.
- Builds produced before 2024-11-30:
- macOS 13 Ventura or later for Apple Silicon builds.
- macOS 12 Monterey or later for Intel builds.
- Xcode Command Line Tools to use native compilation in Emacs, available since
28.x.
Emacs 28.x builds.
## Installation
@@ -114,25 +116,8 @@ for at least a day or two without any obvious issues.
## Apple Silicon
Native builds for Apple Silicon is supported, but currently GitHub's M1-based
Actions Runners are prohibitively expensive for nightly builds. Intel builds
though do work on Apple Silicon machines via Rosetta2, with a minor performance
impact.
Due to the costs, Apple Silicon builds are for now only scheduled for the 1st of
each month. The `emacs-app-monthly` Homebrew Cask will always be pointing at a
release that includes Intel and Apple Silicon builds.
Builds for stable releases of Emacs will also include both Intel and Apple
Silicon builds.
### Costs
At time of writing (2023-11-21), an average Apple Silicon build uses around 17
minutes of billable time, at a cost of $0.16 USD per minute, that comes out to
around $2.72 per build. I am considering enabling sponsorship on this repository
in an effort to cover the costs for more frequent Apple Silicon builds, and will
update here if/when I have any news.
As of 2024-11-30, all builds include both Apple Silicon (arm64) and Intel
(x86_64) artifacts.
## Use Emacs.app as `emacs` CLI Tool
@@ -173,13 +158,11 @@ use the alias from the above example.
## Build Process
Building Emacs is done using the [jimeh/build-emacs-for-macos][] build script,
executed within a GitHub Actions [workflow][]. This is why macOS 11.x (Big Sur)
or later is required, as it's the oldest version of macOS available in GitHub
Actions.
executed within a GitHub Actions [workflow][].
[jimeh/build-emacs-for-macos]: https://github.com/jimeh/build-emacs-for-macos
[workflow]:
https://github.com/jimeh/emacs-builds/blob/main/.github/workflows/build.yml
https://github.com/jimeh/emacs-builds/blob/main/.github/workflows/nightly-master.yml
Full history for all builds is available on GitHub Actions [here][actions].
Build logs are only retained by GitHub for 90 days though.
@@ -219,6 +202,19 @@ Please see [Issues][] for details of things to come, or to report issues.
## News / Recent Changes
### 2024-12-01 — Apple Silicon builds all the time, more stability via Nix
GitHub's standard runner for macOS 14 and later runs on Apple Silicon, and are
free to use for public repositories. As such we now use `runs-on: macos-13` for
Intel builds, and `runs-on: macos-14` for Apple Silicon builds. And we do so on
all builds, nightlies, pretests, and stable.
Additionally, macOS 11 Big Sur is now the minimum required version again, for
both Intel and Apple Silicon builds. This is due to switching from Homebrew to
Nix for managing build-time dependencies. And it supports easily switching
between different macOS SDK versions, meaning we can target an SDK that is older
than the OS we are creating the builds on.
### 2023-11-22 — Apple Silicon builds, drop macOS 11 support
Apple Silicon builds are now available, but limited to stable releases, and