Repository navigation
Add a root action for GitHub Marketplace, and publish the docs with GitHub Pages - #31
Merged
Merged
Conversation
…he runner GitHub Marketplace lists the action whose metadata is at a repository's root, and there was none. action.yml there now reads fastchess pgns found by paths or glob patterns and pools them into one estimate or one sequential test. The report goes to the job summary, and line, trailer, verdict and carried come back as outputs. It suits a repository that plays its own matches and only wants them read, which the actions under actions/ do not serve on their own: summarise-match expects the shard layout the workflows download. It runs the package from its own checkout, so the version a caller names is the version that reads the games and there is no pin inside it to move. The work is in bin/estimate.sh, so that shellcheck sees it and the tests run it. It writes nothing in the caller's working directory. The tests run it on a fixture pgn with the real estimator, and check the metadata against what the Marketplace accepts. A job in the Action workflow calls it with `uses: ./` on two shards found by a `**` pattern. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018ccJFsmZ4jAKYmFNgNBh9u
docs/ is now a site that GitHub Pages builds with Jekyll and the just-the-docs theme, pinned at v0.12.0, with no workflow. Each page's address and place in the menu are set in docs/_config.yml rather than in front matter, which GitHub would show as a table when a page is read in the repository. The long sections of the README move into pages of their own: using the tools, running a match without CI, what hosted runners can measure, how it works, and the statistics. Their text is unchanged apart from the heading levels. The README keeps the overview, gains a section on the root action and a list of the pages, and links to the site where it linked to its own anchors. Links out of docs/ are full URLs, since the site has nothing above it. tests/test_docs.py checks that no link climbs out of docs/, that links between pages find their page and heading, that every page has an address and a place in the menu, and that the README and pyproject.toml link to addresses the site has. The README's call of the root action is held to the current release like the other pins. PyPI's Documentation link now points at the site. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018ccJFsmZ4jAKYmFNgNBh9u
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two commits.
An action at the root
GitHub Marketplace lists the action whose
action.ymlis at a repository's root, and there was none. The new one reads fastchess pgns that are already on the runner and pools them into one estimate or one sequential test:pgntakes paths or glob patterns, and each file it matches is one shard.strength.yml's:sprt,elo0,elo1,sprt_model,alpha,betaandprior_pairs.line,trailer,verdictandcarriedcome back as outputs.summarise-matchexpects the shard layout the workflows download, so it doesn't serve that case alone.bin/estimate.sh, so that shellcheck sees it and the tests run it. It writes nothing in the caller's working directory.Metadata: the name is
Chess engine elo and SPRT (mache), and the badge isbar-chart-2on blue. The description fits the 125-character limit.The README's example pins
v0.6.0, the current release, like the other pins. That release has no root action, so the example only works from the next release. The release's pin commit moves it, andtests/test_examples.pyholds it to that.A GitHub Pages site
Build:
docs/is built by GitHub Pages with Jekyll and the just-the-docs theme (pinned at v0.12.0). There is no workflow.No front matter: each page's address and place in the menu are set in
docs/_config.yml. Front matter would show as a table at the top of each file on GitHub.New pages: the long README sections move into their own pages:
tools.mdwithout-ci.mdlimits.mdhow-it-works.mdstatistics.mdTheir text is unchanged apart from heading levels. The quickstart and
BUILDING-A-REF.mdjoin them, and there is a shortindex.md.README: keeps the overview, why it exists and what is here. It gains a section on the root action and a list of the pages. It links to the site where it used to link to its own anchors.
Links: links out of
docs/are now full GitHub URLs, since the site has nothing above it. PyPI'sDocumentationlink points at the site.The site needs turning on once after this merges: Settings → Pages → Deploy from a branch →
main,/docs. It is served athttps://aywrite.github.io/mache/. Until then, the README's links to it return 404.How it was checked
github-pagesgem, which is what Pages runs. Every page lands at its own address. Every internal link and anchor in the built HTML resolves to a page and a heading that exist.tests/test_root_action.pyruns the script on a fixture pgn with the real estimator. It covers globs, several patterns, a sequential test with other rates, a pattern that matches nothing, the untouched working directory, the summary and the outputs file. It also checks the metadata against what the Marketplace accepts.tests/test_docs.pychecks that no link leavesdocs/, that links between pages find their page and heading, and that every page has an address and a menu place. It also checks that the README andpyproject.tomllink to addresses the site has. Adding a../link, a bad anchor, or dropping a menu entry each fails it.run:block by hand on two shards found by a**pattern. It read 52 games, judged the test and wrote the four outputs. A new job in the Action workflow does the same withuses: ./.python3 -m pytest testspasses (470 tests), and so does the first commit alone (440).pre-commit run --all-filesis clean.After merging
🤖 Generated with Claude Code
https://claude.ai/code/session_018ccJFsmZ4jAKYmFNgNBh9u
Generated by Claude Code