Skip to content

Commit dca0d58

Browse files
mtfishmanclaude
andauthored
README: document the workflow templates and the TagBot env: marker (#129)
## Summary Add a "Workflow templates" section to the README explaining what `template/.github/workflows/` is for and calling out the `TagBot.yml` marker `env: REGISTRY_TAGBOT_ACTION: "JuliaRegistries/TagBot"` so future readers don't remove it as dead code. The marker exists because the General registry's [TagBotTriggers workflow](https://github.com/JuliaRegistries/General/blob/master/.github/workflows/TagBotTriggers.yml) runs `RegistryCI.TagBot.maybe_notify`, which only treats TagBot as enabled on a package repo if the literal substring `JuliaRegistries/TagBot` appears in some file under `.github/workflows/`. After delegating to the reusable workflow at [ITensorActions](https://github.com/ITensor/ITensorActions), the caller no longer contains that string, so the substring check fails. The unused `env:` variable carries the literal substring so the check passes. A YAML comment would be simpler, but [ITensorFormatter](https://github.com/ITensor/ITensorFormatter.jl) (`itpkgfmt`) strips comments when reformatting YAML — a consequence of writing through [YAML.jl](https://github.com/JuliaData/YAML.jl), whose writer does not preserve comments (tracked upstream at [YAML.jl#245](JuliaData/YAML.jl#245)). ITensorActions's README carries the full technical explanation; this README cross-references it and adds a short "do not remove this `env:` block" note. Source is `examples/README.jl` (Literate.jl regenerates `README.md`). Bumps to v0.3.52. ## Test plan - [x] No code changes; documentation only. - [x] Pre-commit checks pass (yaml/toml/EOL/ITensor formatter). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent ced1588 commit dca0d58

3 files changed

Lines changed: 41 additions & 1 deletion

File tree

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "ITensorPkgSkeleton"
22
uuid = "3d388ab1-018a-49f4-ae50-18094d5f71ea"
3-
version = "0.3.51"
3+
version = "0.3.52"
44
authors = ["ITensor developers <support@itensor.org> and contributors"]
55

66
[workspace]

README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,26 @@ ITensorPkgSkeleton.generate("MyPackage")
4848

4949
Examples go here.
5050

51+
## Workflow templates
52+
53+
The `template/.github/workflows/` directory is the source of truth for the GitHub Actions
54+
workflows shared across the ITensor ecosystem (`Tests.yml`, `FormatCheck.yml`, `TagBot.yml`,
55+
`CompatHelper.yml`, etc.). Most of them simply call into reusable workflows in
56+
[ITensorActions](https://github.com/ITensor/ITensorActions); see that repository's README
57+
for details on each.
58+
59+
`TagBot.yml` carries a marker `env: REGISTRY_TAGBOT_ACTION: "JuliaRegistries/TagBot"`
60+
that looks unused but is required: the General registry's trigger workflow only treats
61+
TagBot as enabled when the literal string `JuliaRegistries/TagBot` appears in a file
62+
under `.github/workflows/`, and the reusable-workflow caller would otherwise not
63+
contain it. The same string would work as a YAML comment, but
64+
[ITensorFormatter](https://github.com/ITensor/ITensorFormatter.jl) (`itpkgfmt`) strips
65+
YAML comments via [YAML.jl](https://github.com/JuliaData/YAML.jl)'s writer (tracked
66+
upstream at [YAML.jl#245](https://github.com/JuliaData/YAML.jl/issues/245)), so the
67+
marker has to live in a structural element. See
68+
[ITensorActions's TagBot docs](https://github.com/ITensor/ITensorActions#why-the-env-marker)
69+
for the full explanation. Do not remove this `env:` block.
70+
5171
---
5272

5373
*This page was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*

examples/README.jl

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,23 @@ julia> Pkg.add("ITensorPkgSkeleton")
4646
using ITensorPkgSkeleton: ITensorPkgSkeleton
4747
ITensorPkgSkeleton.generate("MyPackage")
4848
# Examples go here.
49+
50+
# ## Workflow templates
51+
#
52+
# The `template/.github/workflows/` directory is the source of truth for the GitHub Actions
53+
# workflows shared across the ITensor ecosystem (`Tests.yml`, `FormatCheck.yml`, `TagBot.yml`,
54+
# `CompatHelper.yml`, etc.). Most of them simply call into reusable workflows in
55+
# [ITensorActions](https://github.com/ITensor/ITensorActions); see that repository's README
56+
# for details on each.
57+
#
58+
# `TagBot.yml` carries a marker `env: REGISTRY_TAGBOT_ACTION: "JuliaRegistries/TagBot"`
59+
# that looks unused but is required: the General registry's trigger workflow only treats
60+
# TagBot as enabled when the literal string `JuliaRegistries/TagBot` appears in a file
61+
# under `.github/workflows/`, and the reusable-workflow caller would otherwise not
62+
# contain it. The same string would work as a YAML comment, but
63+
# [ITensorFormatter](https://github.com/ITensor/ITensorFormatter.jl) (`itpkgfmt`) strips
64+
# YAML comments via [YAML.jl](https://github.com/JuliaData/YAML.jl)'s writer (tracked
65+
# upstream at [YAML.jl#245](https://github.com/JuliaData/YAML.jl/issues/245)), so the
66+
# marker has to live in a structural element. See
67+
# [ITensorActions's TagBot docs](https://github.com/ITensor/ITensorActions#why-the-env-marker)
68+
# for the full explanation. Do not remove this `env:` block.

0 commit comments

Comments
 (0)