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
13 changes: 13 additions & 0 deletions .github/lint-pilot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Shared lint pilot

The [pilot workflow](workflows/zsh-lint-pilot.yml) qualifies the shared reporting wrapper under [issue #30](https://github.com/z-shell/zunit/issues/30). It runs on every pull request targeting `main`, including documentation-only changes and forks, and every push to `main`.

The explicit [configuration](../zsh-lint.json) selects only `build.zsh`, with the `standalone-executable` profile and unchanged Zsh 5.5.1 floor. Runtime libraries, generated `zunit`, tests and the ZUnit DSL retain their existing validation and are outside this analyzer inventory.

The config uses schema v2 and identifier `zunit`, replacing the obsolete schema-v1 empty namespace list. The existing lint job and pilot both pin released analyzer v1.3.0 at `999cb76cc65ef6af56c0ae65ab0f3622eb527944`; that release rejects schema v1. The existing required check name remains unchanged. Direct and wrapped analyzer invocations must be compared at the same revision and configuration to isolate wrapper behavior.

The pilot pins the reviewed shared workflow at `af725f0ad9c7b24dd4f4527e582ade2eb8e9ea7b`. Its artifact records both revisions, the resolved inventory, diagnostics, stderr and outcome. Artifact retention is 14 days; lasting qualification evidence belongs on issue #30.

`mode: observe` reports semantic findings without failing the job. Parser failures, malformed configuration and infrastructure failures still fail. The caller grants only `contents: read`, passes no secrets and uses the ordinary `pull_request` event. The new check remains advisory; required-check changes need separate approval after hosted check-name, trigger and fork qualification.

Native syntax, compilation and functional workflows remain active. The analyzer profile's declared minimum is not a replacement for runtime testing at that version. Roll back this enrollment by reverting the pilot workflow and this guide, and restore the old config and analyzer commit `1e8b0a6c02d4aa433e6aee8ca141e11ef62ba76b` together. Mixing schema v1 with v1.3.0 fails configuration validation.
27 changes: 27 additions & 0 deletions .github/workflows/zsh-lint-pilot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
name: Zsh Lint Pilot

on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch: {}

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
zsh-lint-pilot:
name: Observe Zsh Lint
uses: z-shell/.github/.github/workflows/zsh-lint.yml@af725f0ad9c7b24dd4f4527e582ade2eb8e9ea7b # main
with:
paths: build.zsh
zsh-lint-ref: 999cb76cc65ef6af56c0ae65ab0f3622eb527944 # v1.3.0
config: zsh-lint.json
mode: observe
artifact-name: zsh-lint-pilot-report
2 changes: 1 addition & 1 deletion .github/workflows/zsh-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
repository: z-shell/zsh-lint
ref: 1e8b0a6c02d4aa433e6aee8ca141e11ef62ba76b
ref: 999cb76cc65ef6af56c0ae65ab0f3622eb527944 # v1.3.0
path: .zsh-lint-tool
persist-credentials: false
- name: Set up Go
Expand Down
11 changes: 8 additions & 3 deletions zsh-lint.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
{
"version": 1,
"version": 2,
"project": {
"kind": "tool",
"minimum_zsh": "5.5.1",
"function_namespaces": []
"identifier": "zunit"
},
"sources": [{ "root": "build.zsh", "profile": "standalone-executable" }]
"sources": [
{
"root": "build.zsh",
"profile": "standalone-executable"
}
]
}
Loading