chore: carry haunt.nvim repo hygiene into the template and fix bootstrap docs #3

Open
opened 2026-10-08 01:33:14 -05:00 by noe.trevino · 0 comments
Owner

While bootstrapping goldmarp.nvim from the template (2026-10-07), compared it
against haunt.nvim at the same date. The CI workflow itself is identical
(both call noe.trevino/ci/.forgejo/workflows/nvim-plugins-ci.yml@main), so
nothing is broken; the template is just missing the files every new plugin
then copies by hand from haunt.nvim:

  • .forgejo/workflows/auto-assign.yml (assigns the maintainer and requests
    review on issues/PRs opened by others)
  • .forgejo/ISSUE_TEMPLATE/bug_report.yml, feature_request.yml, config.yml
  • .forgejo/pull_request_template.md
  • .github/ISSUE_TEMPLATE/config.yml (mirror redirect to the Forgejo issues)
  • .github/pull_request_template.md

bootstrap.sh should substitute the plugin name and the GitHub mirror URL in
these the same way it does for ci.yml.

Smaller gaps noticed:

  • haunt.nvim has tests/README.md and a tests/helpers/ directory; the
    template has a single tests/helpers.lua. Worth a sentence in CONTRIBUTING
    about when to split.
  • The GitHub copy of the template (TheNoeTrevino/template.nvim) is behind
    the Forgejo one (last commit 2026-07-19 vs 2026-09-30) and still has
    .github/workflows/ci.yml instead of .forgejo/workflows/ci.yml. If the
    GitHub repo is meant as a mirror, it needs the mirror sync; if not, archive
    it so nobody clones the stale one.

Found while building goldmarp.nvim from the template (2026-10-07):

Bugs

  • bootstrap.sh rewrites the contents of doc/myplugin.txt but does not
    rename the file, so after bootstrap make docs fails at helptags with a
    duplicate-tag error (E154). Fix: git mv doc/myplugin.txt doc/<name>.txt
    in the script.
  • Even on a clean bootstrap the template's own annotations produce two
    *M.setup()* tags (init.lua and config.lua), so helptags errors. One of
    them needs a different tag or @private.
  • make docs exits 0 when helptags fails, so CI cannot catch either of the
    above.
  • make docs loads mini.doc from the developer's personal Neovim config
    rather than the .tests harness, so it works only on a machine that
    happens to have mini.doc installed.

Docs out of date

  • README still says gh repo create thenoetrevino/... and refers to the
    shared thenoetrevino/github reusable workflow; CI is now Forgejo
    noe.trevino/ci. The lazy install snippet uses thenoetrevino/x.nvim;
    haunt uses TheNoeTrevino/x.nvim.
  • No "GitHub is a read-only mirror" note in README or CONTRIBUTING.
    CONTRIBUTING also lacks haunt's branch naming, the local dir = dev
    config, and the module-structure section.

Smaller

  • .gitignore is thinner than haunt's (*.log, *~, *.tmp,
    test_results/).
  • No repro script (scripts/repro.lua, a lazy.minit repro); goldmarp.nvim
    added one and it is what its bug template points at.

Where the template is ahead of haunt (keep): the Makefile, the local
lazy.nvim clone fallback in tests/minit.lua, the pending() shim, and
per-describe test reporting.

While bootstrapping goldmarp.nvim from the template (2026-10-07), compared it against haunt.nvim at the same date. The CI workflow itself is identical (both call `noe.trevino/ci/.forgejo/workflows/nvim-plugins-ci.yml@main`), so nothing is broken; the template is just missing the files every new plugin then copies by hand from haunt.nvim: - `.forgejo/workflows/auto-assign.yml` (assigns the maintainer and requests review on issues/PRs opened by others) - `.forgejo/ISSUE_TEMPLATE/bug_report.yml`, `feature_request.yml`, `config.yml` - `.forgejo/pull_request_template.md` - `.github/ISSUE_TEMPLATE/config.yml` (mirror redirect to the Forgejo issues) - `.github/pull_request_template.md` `bootstrap.sh` should substitute the plugin name and the GitHub mirror URL in these the same way it does for `ci.yml`. Smaller gaps noticed: - haunt.nvim has `tests/README.md` and a `tests/helpers/` directory; the template has a single `tests/helpers.lua`. Worth a sentence in CONTRIBUTING about when to split. - The GitHub copy of the template (TheNoeTrevino/template.nvim) is behind the Forgejo one (last commit 2026-07-19 vs 2026-09-30) and still has `.github/workflows/ci.yml` instead of `.forgejo/workflows/ci.yml`. If the GitHub repo is meant as a mirror, it needs the mirror sync; if not, archive it so nobody clones the stale one. Found while building goldmarp.nvim from the template (2026-10-07): Bugs - `bootstrap.sh` rewrites the contents of `doc/myplugin.txt` but does not rename the file, so after bootstrap `make docs` fails at helptags with a duplicate-tag error (E154). Fix: `git mv doc/myplugin.txt doc/<name>.txt` in the script. - Even on a clean bootstrap the template's own annotations produce two `*M.setup()*` tags (init.lua and config.lua), so helptags errors. One of them needs a different tag or `@private`. - `make docs` exits 0 when helptags fails, so CI cannot catch either of the above. - `make docs` loads mini.doc from the developer's personal Neovim config rather than the `.tests` harness, so it works only on a machine that happens to have mini.doc installed. Docs out of date - README still says `gh repo create thenoetrevino/...` and refers to the shared `thenoetrevino/github` reusable workflow; CI is now Forgejo `noe.trevino/ci`. The lazy install snippet uses `thenoetrevino/x.nvim`; haunt uses `TheNoeTrevino/x.nvim`. - No "GitHub is a read-only mirror" note in README or CONTRIBUTING. CONTRIBUTING also lacks haunt's branch naming, the local `dir =` dev config, and the module-structure section. Smaller - `.gitignore` is thinner than haunt's (`*.log`, `*~`, `*.tmp`, `test_results/`). - No repro script (`scripts/repro.lua`, a lazy.minit repro); goldmarp.nvim added one and it is what its bug template points at. Where the template is ahead of haunt (keep): the Makefile, the local lazy.nvim clone fallback in `tests/minit.lua`, the `pending()` shim, and per-describe test reporting.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
noe.trevino/template.nvim#3
No description provided.