Skip to content
Merged
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
14 changes: 12 additions & 2 deletions .github/workflows/stdout_renderer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,30 @@ jobs:
# run: Renderer/Stdout/run-example.sh

stdout_renderer_macos:
name: Run stdout renderer on macOS
name: Run stdout renderer on macOS (${{ matrix.backend }})
strategy:
fail-fast: false
matrix:
os: [macos-15]
xcode-version: ["26.3"]
release: [2024]
backend: [AttributeGraph, Compute]
include:

@augmentcode augmentcode Bot Jun 15, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

With os/xcode-version/release already forming a base matrix, these include entries only add extra keys and may be merged onto the same combination (potentially leaving only the last backend values), so CI might not actually run once per backend. Consider structuring the matrix so the backend dimension produces distinct job combinations.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

- backend: AttributeGraph
attributegraph: "1"
compute: "0"
- backend: Compute
attributegraph: "0"
compute: "1"
runs-on:
- self-hosted
- ${{ matrix.os }}
env:
OPENSWIFTUI_WERROR: 0
OPENSWIFTUI_TARGET_RELEASE: ${{ matrix.release }}
OPENSWIFTUI_USE_LOCAL_DEPS: 1
OPENSWIFTUI_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH: ${{ matrix.attributegraph }}
OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE: ${{ matrix.compute }}
OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY: 0
GH_TOKEN: ${{ github.token }}
steps:
- uses: actions/checkout@v4
Expand Down
24 changes: 21 additions & 3 deletions Example/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,14 @@ Since OpenAttributeGraph is not yet completed, you need to configure an AG backe

This example defaults to Apple's private AttributeGraph framework through `mise.toml`.

Or use the Compute module:
To use Compute instead, run setup with the Compute mise environment:

```shell
export OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE=1
export OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_USE_BINARY=1
./setup.sh --compute
```

The Compute environment is defined in `mise.compute.toml`. It disables the private AttributeGraph framework and uses `OpenSwiftUIProject/Compute` from source on the `main` branch.

## Generate Project

The recommended setup path is the local setup script:
Expand All @@ -34,6 +35,14 @@ The recommended setup path is the local setup script:

The script trusts and installs the tools declared by `Example/mise.toml`, then runs Tuist through `mise exec` so the pinned Tuist version is used.

To generate the project with Compute:

```shell
./setup.sh --compute
```

This uses `mise --env compute`, which loads `Example/mise.compute.toml` for `mise install`, `tuist install`, and `tuist generate`.

To run the steps manually:

```shell
Expand All @@ -43,6 +52,15 @@ mise exec -- tuist install
mise exec -- tuist generate --no-open
```

Or with Compute:

```shell
mise trust mise.compute.toml
mise --env compute install
mise --env compute exec -- tuist install
mise --env compute exec -- tuist generate --no-open
```

By default, the generated Debug Example targets include LookInsideServer. You can switch the debug inspector server before running `tuist install` and `tuist generate`:

```shell
Expand Down
6 changes: 6 additions & 0 deletions Example/mise.compute.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[tools]
tuist = "4.193.0"

[env]
OPENSWIFTUI_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH = "0"
OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE = "1"
35 changes: 32 additions & 3 deletions Example/setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,38 @@
set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
MISE_ARGS=()

usage() {
printf '%s\n' \
"Usage: $(basename "$0") [--compute]" \
"" \
"Options:" \
" --compute Use mise.compute.toml while installing tools and generating the project."
}

while [[ $# -gt 0 ]]; do
case "$1" in
--compute)
MISE_ARGS=(--env compute)
;;
-h|--help)
usage
exit 0
;;
*)
usage >&2
exit 2
;;
esac
shift
done

cd "$SCRIPT_DIR"
mise trust "$SCRIPT_DIR/mise.toml"
mise install
mise exec -- tuist install
mise exec -- tuist generate --no-open
if [[ ${#MISE_ARGS[@]} -gt 0 ]]; then
mise trust "$SCRIPT_DIR/mise.compute.toml"
fi
mise "${MISE_ARGS[@]}" install
mise "${MISE_ARGS[@]}" exec -- tuist install
mise "${MISE_ARGS[@]}" exec -- tuist generate --no-open
2 changes: 1 addition & 1 deletion Package.resolved

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions Renderer/Stdout/run-example.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ cd "$(dirname "${BASH_SOURCE[0]}")"

case "$(uname -s)" in
Darwin)
export OPENSWIFTUI_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH=1
export OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE=0
export OPENSWIFTUI_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH="${OPENSWIFTUI_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH:-1}"
export OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE="${OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE:-0}"
;;
*)
export OPENSWIFTUI_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH=0
export OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE=1
export OPENSWIFTUI_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH="${OPENSWIFTUI_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH:-0}"
export OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE="${OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE:-1}"
export OPENSWIFTUI_LIB_SWIFT_PATH="$(swiftly use --print-location)/usr/lib/swift"
;;
esac
Expand Down
Loading