diff --git a/.github/workflows/manifest-lint.yml b/.github/workflows/manifest-lint.yml new file mode 100644 index 0000000..36426ae --- /dev/null +++ b/.github/workflows/manifest-lint.yml @@ -0,0 +1,35 @@ +name: Manifest Lint + +on: + push: + branches: ["main", "next"] + paths: + - "package.json" + - "scripts/build-manifest.py" + pull_request: + paths: + - "package.json" + - "scripts/build-manifest.py" + +permissions: + contents: read + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Validate package.json parses + run: | + jq . package.json > /dev/null + + - name: Validate zsh-data structure and default profile + run: | + jq -e '.["zsh-data"]["plugin-info"]["plugin"] == "zsh"' package.json > /dev/null + jq -e '.["zsh-data"]["zi-ices"]["default"]["atclone"] | length > 0' package.json > /dev/null + + - name: Ensure manifest is up-to-date with generator script + run: | + python3 scripts/build-manifest.py + git diff --exit-code package.json || (echo "package.json is out of date. Please run scripts/build-manifest.py and commit the result." && exit 1) diff --git a/docs/README.md b/docs/README.md index 16fec5e..714d4a8 100755 --- a/docs/README.md +++ b/docs/README.md @@ -42,8 +42,6 @@ zi pack"5.6.2" for zsh zi pack"5.5.1" for zsh zi pack"5.4.2" for zsh zi pack"5.3.1" for zsh -zi pack"5.2.4" for zsh -zi pack"5.1.1" for zsh ``` ### System installation (opt-in) diff --git a/package.json b/package.json index e768ebf..d8e91bd 100755 --- a/package.json +++ b/package.json @@ -27,28 +27,6 @@ "nocompletions": "", "countdown": "" }, - "5.1.1": { - "requires": "cc;make;cp;rm", - "git": "", - "lucid": "", - "as": "null", - "atclone": "git checkout --quiet zsh-5.1.1; ./.preconfig; m {nl}{hi}Building Zsh{…}; CPPFLAGS='-I/usr/include -I/usr/local/include' CFLAGS='-g -O2 -Wall' LDFLAGS='-L/usr/lib -L/usr/local/lib' ./configure --prefix=\"$ZPFX\" >> /dev/null 2>&1 && { type yodl >> /dev/null 2>&1 || { m -u2 {warn}WARNING{ehi}:{rst}{warn} No {cmd}yodl{warn}, manual pages will not be built.; ((0)); } && { make install; ((1)); } || make install.bin install.fns install.modules } >> /dev/null 2>&1 && { [[ ${ZSH_INSTALL_SYSTEM:-} != 1 ]] || { type sudo >> /dev/null 2>&1 && [[ -e /bin/zsh ]] && [[ ! -e /bin/zsh.bkp ]] && sudo mv /bin/zsh /bin/zsh.bkp && sudo cp -vf Src/zsh /bin/zsh; }; } && m {ok}The build succeeded. || m {failure}The build failed.", - "atpull": "%atclone", - "nocompile": "", - "nocompletions": "", - "countdown": "" - }, - "5.2.4": { - "requires": "cc;make;cp;rm", - "git": "", - "lucid": "", - "as": "null", - "atclone": "git checkout --quiet zsh-5.2.4; ./.preconfig; m {nl}{hi}Building Zsh{…}; CPPFLAGS='-I/usr/include -I/usr/local/include' CFLAGS='-g -O2 -Wall' LDFLAGS='-L/usr/lib -L/usr/local/lib' ./configure --prefix=\"$ZPFX\" >> /dev/null 2>&1 && { type yodl >> /dev/null 2>&1 || { m -u2 {warn}WARNING{ehi}:{rst}{warn} No {cmd}yodl{warn}, manual pages will not be built.; ((0)); } && { make install; ((1)); } || make install.bin install.fns install.modules } >> /dev/null 2>&1 && { [[ ${ZSH_INSTALL_SYSTEM:-} != 1 ]] || { type sudo >> /dev/null 2>&1 && [[ -e /bin/zsh ]] && [[ ! -e /bin/zsh.bkp ]] && sudo mv /bin/zsh /bin/zsh.bkp && sudo cp -vf Src/zsh /bin/zsh; }; } && m {ok}The build succeeded. || m {failure}The build failed.", - "atpull": "%atclone", - "nocompile": "", - "nocompletions": "", - "countdown": "" - }, "5.3.1": { "requires": "cc;make;cp;rm", "git": "", diff --git a/scripts/build-manifest.py b/scripts/build-manifest.py index 926b05c..d70537e 100644 --- a/scripts/build-manifest.py +++ b/scripts/build-manifest.py @@ -28,7 +28,7 @@ PLUGIN_INFO = {"user": "zsh-users", "plugin": "zsh"} # Selectable version profiles, in addition to the unpinned "default". -VERSIONS = ["5.1.1", "5.2.4", "5.3.1", "5.4.2", "5.5.1", "5.6.2", +VERSIONS = ["5.3.1", "5.4.2", "5.5.1", "5.6.2", "5.7.1", "5.8", "5.8.1", "5.9"] # Single source of truth for the build recipe. `{checkout}` is replaced per