Repository navigation
Ship beta to main: the app, server and experiments as submitted #179
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
b7f51ba
49a676e
ad91620
f838eb6
d3d053c
e760327
57a3ae1
11878ec
3c7b83a
75dea41
72144a7
97ee40c
21e21ce
074bf1d
3e5446e
afd02c8
067f413
792a900
3b27aaf
6ee2874
ff6645b
e4ce503
c9a4473
e3a3fa9
feb35a0
99e914c
067cec7
5c8c739
170d7f2
0e8a559
90f94bd
2d33cea
9e42970
d0ff1be
898cd4e
8604928
3095e20
86fd555
9edcd4b
f173c8a
07d8660
2187518
1263338
b69db3e
63d950d
cd05d67
2f193aa
d02cc11
20bf369
ce90112
085e0ed
73d7b17
8064f74
871fb50
cae4f42
45017ba
2641027
e367161
4f1a8c9
3153cca
9607a48
fb4c30e
1b41f6d
de04c3b
9f10fc1
37729cc
257a6a7
e4f8ef4
534813b
c05f1c2
9ee7686
4b71161
47dd609
ee1087e
5150321
f232b9f
87dd34a
02d74f6
916838f
c9a46ac
74fb280
0f866a0
7bc900a
b9851e1
96fdcaa
3599ce5
d9a7759
0d5286e
bc5a1ac
5ce6088
659e5ae
0a3a05e
00fb017
b5006fc
41291e8
a4b8b27
c4dec62
9b5348b
c07bafe
4ca919d
5c15da8
9c2a567
3cec36d
9b0acc5
9704867
94e87b5
f141a62
6ea58d5
07be67f
d17296b
d3b4820
06abc43
db80cfb
7ca5f5b
44f38ab
a8bd17a
f14947e
acd3d35
057131b
4c43e44
2d476ef
f84df3a
9f40386
956744c
9583b12
72c32f8
8a9ee81
8ea82c0
577acc4
6f5d1aa
722df5f
98d96ca
8487a02
3b80f78
eec3862
633c26d
a44780a
1214baa
4be491e
6d82e62
6f7d378
44370cb
5bc81fb
d4e008c
87be505
f35d850
6406271
1da41b3
1b3229a
38bd756
d5c403d
6f20468
b93bf67
f07d6c3
da571e2
4896e0a
fbab420
b2c6367
a9e9b6d
25f1f45
450fdf7
aef9bd3
15e18dc
057cfd4
686a1d3
05003e5
5c83ad4
32fc075
1e9c6b5
8b42e13
6af4d8f
50a2953
c60e6ff
7f3c486
7724c42
76462dc
51184fe
86da28d
fd50357
73d931e
b8b3c37
6bc1df0
2c5063d
e085372
15cbb77
94c2e2a
48d024a
9defff1
4606fe2
0964ecc
5267a25
6e8403f
88912e5
16ad21b
9d0a662
de5357f
90b1821
c8dd2f8
4661682
4482ab1
6836db7
8d9bfd7
5f3f4c0
8383eb5
1d6adb6
b2d80e8
9a0e275
3ec22b2
e6ffbce
e7af970
30487e5
3540c42
cb66a76
644beb2
7bed770
5ec47cb
73f3288
2e46bac
4a5d20c
60c8caf
af1914e
660d7bf
f0bf3bf
a0d3341
b609540
7b85a39
5532f22
6d73fff
a4479c0
2db95af
f45fef0
3011831
5ceaa8d
ab56e2f
029050e
59e0bc0
a5e4bf7
64b9719
a3c789f
9228ed4
f47f361
6b21236
9fc6019
756cc68
a1c2bcf
473e8fd
99dc65d
1645411
381d0d3
ed1c3af
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,42 @@ | ||
| name: Evals | ||
|
|
||
| on: | ||
| push: | ||
| branches: [main] | ||
| paths: | ||
| - "experiments/evals/**" | ||
| - ".github/workflows/evals.yml" | ||
| pull_request: | ||
| paths: | ||
| - "experiments/evals/**" | ||
| - ".github/workflows/evals.yml" | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| concurrency: | ||
| group: evals-${{ github.ref }} | ||
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | ||
|
|
||
| jobs: | ||
| evals-checks: | ||
| name: Evals checks | ||
| runs-on: ubuntu-24.04 | ||
| timeout-minutes: 10 | ||
| defaults: | ||
| run: | ||
| working-directory: experiments/evals | ||
| steps: | ||
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | ||
| with: | ||
| persist-credentials: false | ||
| # Reads tool.uv.required-version from experiments/evals/pyproject.toml. | ||
| - uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 | ||
| with: | ||
| working-directory: experiments/evals | ||
| # The datasets are non-commercial and never in git, so CI runs the metric code's unit tests | ||
| # (hand-computed cases), lint and format; the result tables are regenerated locally. | ||
| - run: uv sync --locked | ||
| - run: uv run ruff check . | ||
| - run: uv run ruff format --check . | ||
| - run: uv run pytest -q |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,97 @@ | ||
| name: Measure lab | ||
|
|
||
| on: | ||
| push: | ||
| branches: [main] | ||
| paths: | ||
| - "experiments/measure-lab/**" | ||
| - ".github/workflows/measure-lab.yml" | ||
| pull_request: | ||
| paths: | ||
| - "experiments/measure-lab/**" | ||
| - ".github/workflows/measure-lab.yml" | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| concurrency: | ||
| group: measure-lab-${{ github.ref }} | ||
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | ||
|
|
||
| jobs: | ||
| geometry-linux: | ||
| name: Measure lab geometry (Linux) | ||
| runs-on: ubuntu-24.04 | ||
| timeout-minutes: 15 | ||
| container: | ||
| # Swift 6.2 is the oldest toolchain the tests compile with (their raw-identifier names need | ||
| # it); the app job's Xcode 26.6 ships Swift 6.3. Pinned by digest so a retag can't change | ||
| # the compiler under the tests. | ||
| image: swift:6.2-noble@sha256:9bea530093ffff8cf6c259991715ee843fe4d0f932e612f7f4b79cca6e00db87 | ||
| steps: | ||
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | ||
| with: | ||
| persist-credentials: false | ||
|
|
||
| - name: Show toolchain | ||
| run: swift --version | ||
|
|
||
| - name: Test | ||
| working-directory: experiments/measure-lab/Geometry | ||
| run: swift test | ||
|
|
||
| app-build: | ||
| name: Measure lab app build | ||
| # Same image and Xcode as .github/workflows/ios.yml. | ||
| runs-on: macos-26 | ||
| timeout-minutes: 30 | ||
| env: | ||
| DEVELOPER_DIR: /Applications/Xcode_26.6.app/Contents/Developer | ||
| XCODEGEN_VERSION: 2.46.0 | ||
| XCODEGEN_SHA256: 4d9e34b62172d645eed6457cac13fc222569974098ef4ee9c3368bedf0196806 | ||
| steps: | ||
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | ||
| with: | ||
| persist-credentials: false | ||
|
|
||
| - name: Show toolchain | ||
| run: | | ||
| if [ ! -d "$DEVELOPER_DIR" ]; then | ||
| echo "::error::$DEVELOPER_DIR is not on this runner image. Pick an installed Xcode from the image readme." | ||
| exit 1 | ||
| fi | ||
| xcodebuild -version | ||
| swift --version | ||
|
|
||
| - name: Install XcodeGen | ||
| run: | | ||
| curl -fsSL -o "$RUNNER_TEMP/xcodegen.zip" \ | ||
| "https://github.com/yonaskolb/XcodeGen/releases/download/${XCODEGEN_VERSION}/xcodegen.zip" | ||
| echo "${XCODEGEN_SHA256} $RUNNER_TEMP/xcodegen.zip" | shasum -a 256 -c - | ||
| unzip -q "$RUNNER_TEMP/xcodegen.zip" -d "$RUNNER_TEMP" | ||
| echo "$RUNNER_TEMP/xcodegen/bin" >> "$GITHUB_PATH" | ||
|
|
||
| - name: Generate project | ||
| run: xcodegen generate --spec experiments/measure-lab/project.yml | ||
|
|
||
| - name: Check committed project matches project.yml | ||
| run: | | ||
| if ! git diff --exit-code -- experiments/measure-lab; then | ||
| echo "::error::MeasureLab.xcodeproj differs from project.yml. Run 'make project' in experiments/measure-lab (XcodeGen ${XCODEGEN_VERSION}) and commit the result." | ||
| exit 1 | ||
| fi | ||
| untracked="$(git ls-files --others --exclude-standard -- experiments/measure-lab)" | ||
| if [ -n "$untracked" ]; then | ||
| echo "::error::xcodegen generate wrote files that are not committed. Run 'make project' and commit them." | ||
| echo "$untracked" | ||
| exit 1 | ||
| fi | ||
|
|
||
| - name: Test geometry on macOS | ||
| working-directory: experiments/measure-lab/Geometry | ||
| run: swift test | ||
|
|
||
| - name: Build | ||
| run: >- | ||
| xcodebuild -project experiments/measure-lab/MeasureLab.xcodeproj -scheme MeasureLab | ||
| -configuration Debug -destination "generic/platform=iOS" CODE_SIGNING_ALLOWED=NO build |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| name: Meter close-up experiment | ||
|
|
||
| on: | ||
| push: | ||
| branches: [main] | ||
| paths: | ||
| - "experiments/meter-closeup/**" | ||
| - ".github/workflows/meter-closeup.yml" | ||
| pull_request: | ||
| paths: | ||
| - "experiments/meter-closeup/**" | ||
| - ".github/workflows/meter-closeup.yml" | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| concurrency: | ||
| group: meter-closeup-${{ github.ref }} | ||
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | ||
|
|
||
| jobs: | ||
| checks: | ||
| name: Meter close-up checks | ||
| runs-on: ubuntu-24.04 | ||
| timeout-minutes: 10 | ||
| defaults: | ||
| run: | ||
| working-directory: experiments/meter-closeup | ||
| steps: | ||
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | ||
| with: | ||
| persist-credentials: false | ||
| - uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 | ||
| with: | ||
| working-directory: experiments/meter-closeup | ||
| # The unit tests cover the metric code only; the Vision reader needs macOS and the photos. | ||
| - run: uv sync --locked | ||
| - run: uv run ruff check . | ||
| - run: uv run ruff format --check . | ||
| - run: uv run pytest -q | ||
| # Looks for any transcribed meter identifier in the tracked files. The key stays in a | ||
| # repository secret; without it the step fails with an explanation. | ||
| - run: uv run python -m meter_eval.leakcheck | ||
| env: | ||
| METER_HMAC_KEY: ${{ secrets.METER_HMAC_KEY }} | ||
|
Comment on lines
+43
to
+45
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
When a fork pull request changes the meter-closeup experiment, this job runs without access to the repository's Prompt To Fix With AIThis is a comment left during a code review.
Path: .github/workflows/meter-closeup.yml
Line: 43-45
Comment:
**Fork pull requests fail checks**
When a fork pull request changes the meter-closeup experiment, this job runs without access to the repository's `METER_HMAC_KEY` secret. The leak check then looks for a local key that is not provisioned on the runner and raises `FileNotFoundError`, so the check fails regardless of the contributor's changes.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly. |
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,46 @@ | ||
| name: Panel label experiment | ||
|
|
||
| on: | ||
| push: | ||
| branches: [main] | ||
| paths: | ||
| - "experiments/panel-label/**" | ||
| - ".github/workflows/panel-label.yml" | ||
| pull_request: | ||
| paths: | ||
| - "experiments/panel-label/**" | ||
| - ".github/workflows/panel-label.yml" | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| concurrency: | ||
| group: panel-label-${{ github.ref }} | ||
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | ||
|
|
||
| jobs: | ||
| checks: | ||
| name: Panel label checks | ||
| runs-on: ubuntu-24.04 | ||
| timeout-minutes: 10 | ||
| defaults: | ||
| run: | ||
| working-directory: experiments/panel-label | ||
| steps: | ||
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | ||
| with: | ||
| persist-credentials: false | ||
| - uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 | ||
| with: | ||
| working-directory: experiments/panel-label | ||
| - run: uv sync --locked | ||
| - run: uv run ruff check . | ||
| - run: uv run ruff format --check . | ||
| - run: uv run pytest -q | ||
| # Photos of real panels can show addresses and inspection stickers; they stay out of git. | ||
| - name: No photos committed | ||
| run: | | ||
| if git ls-files . | grep -iE '\.(jpe?g|png|heic|webp|tiff?)$'; then | ||
| echo "Photos must stay in ~/house-scanning-data/panel, not in the repository." >&2 | ||
| exit 1 | ||
| fi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The job runs all of
HouseScanUITestsand skips only the accessibility audit. That includestestPracticeMeterFromReplay, which the PR description identifies as red on beta. As submitted, an iOS change cannot get a green CI run until that test is fixed or excluded.Prompt To Fix With AI