BestieTemplate v0.20.0
BREAKING NOTICE
- The
testitem_clitesting strategy option has changed slightly fixing a bug and removing an unnecessary temporary environment. add_feature(:pre_commit_with_config)andadd_feature(:pre_commit_without_config)have been removed.add_feature(:pre_commit)now adds only.pre-commit-config.yaml; add the shared formatter/linter configuration files independently with the newadd_feature(:formatter_linter_config).AddPrecommitis now an independent question fromAddFormatterAndLinterConfigFiles. If you previously answeredfalsetoAddFormatterAndLinterConfigFiles, you will be asked aboutAddPrecommitagain on the nextupdate.
Added
- New feature
add_feature(:lint_action_explicit), which adds.github/workflows/Lint.ymlto any package by taking the answers that say which tools the package uses (AddPrecommit,AddLychee) as explicit data, instead of requiring an existing.copier-answers.ymllike:lint_action - New optional
optional_filesfield infeatures.toml, mapping a boolean answer to files the feature's output needs when it is true —:lint_action_explicituses it for.lychee.tomland.pre-commit-config.yaml, which its jobs read. They are written only when missing, so an existing file is kept and two features can declare the same path - New workflow
.github/workflows/PublishPython.yml, publishing thebestie-templatePython package to PyPI onpy-v*tags via trusted publishing (no tokens) - New question
AddVSCodeRecommendations(Advanced strategy), adding a.vscode/extensions.jsonfile that recommends the Julia VS Code extension. Also available asadd_feature(:vscode_recommendations)(#298)
Changed
- New Python package
bestie-templatereleases:0.1.1and0.2.0. Its version is independent of the Julia package's, since the two are released on different cadences bestie-templateinstalls abestie-templatecommand as an alias ofbestie, souvx bestie-template ...works without--from- The documentation, the
bestie-featuresskill andpython/README.mdnow installbestie-templatefrom PyPI instead of from the git repository - The README and the full guide now mention the
bestie-featuresagent skill and how to install it withnpx skills add JuliaBesties/BestieTemplate.jl - The
bestie-featuresskill now describes the BestieTemplate README badge, so it can offer it when adding features to a package that was not generated from the template python/pyproject.tomlnow sets a one-weekexclude-newerdependency cooldown- The
testitem_clitest runner no longer builds a temporary environment to bring the package into scope. The[sources]section thattest/Project.tomlgained in 0.17.1 (#559) already does that, soPkgis no longer a test dependency of that strategy (#640)
Fixed
add_featureno longer advances the_commitand_src_pathrecorded in.copier-answers.yml. Copier stamps both with the template version it rendered from, but a feature writes a deliberate subset of the template, so a package that had not runupdatein a while was left claiming it was fully reconciled with the newest version — and the nextupdatethen skipped every version in between without saying so. The answers themselves are still recorded, and the newest version of the feature's files is still what gets applied. Passpreserve_template_version = false(--no-preserve-template-versionin the CLI) for the previous behaviour (#626)- The filter flags of the
testitem_clitest runner now work when the tests are run throughPkg.test, which includestest/runtests.jlinstead of executing it as a program. Filters passed astest_argswere previously ignored, and so were misspelled flags, both without any warning. This affectspkg> testandjulia-actions/julia-runtestas well (#640) - The
AddPrecommitquestion no longer depends onAddFormatterAndLinterConfigFiles. The two were entangled so that declining the config files also silently defaulted away pre-commit, which forcedadd_feature(:pre_commit_without_config)to recordAddFormatterAndLinterConfigFiles = truejust to keep pre-commit's own answer remembered — and a later plainupdatewould then restore the config files the feature was meant to leave out (#625)
Merged pull requests:
- Prepare the first bestie-template PyPI release (#634) (@abelsiqueira)
- Release py-v0.1.1 (#637) (@abelsiqueira)
- Update the "new question" developer docs to the strategy system (#641) (@abelsiqueira)
- Clarify in the skill how add_feature answers are resolved (#642) (@abelsiqueira)
- Parse the test runner arguments when it is included, not only when run (#643) (@abelsiqueira)
- Add the lint_action_explicit feature (#644) (@abelsiqueira)
- Add optional_files to the feature registry (#645) (@abelsiqueira)
- Mention the bestie-features agent skill in AGENTS.md and dev docs (#646) (@abelsiqueira)
- Restrict this repo's own CI tag triggers to Julia release tags (#647) (@abelsiqueira)
- Allow trailing / in template/.lychee.toml stable docs link (#648) (@abelsiqueira)
- Add AddVSCodeRecommendations question for .vscode/extensions.json (#651) (@abelsiqueira)
- Make AddPrecommit independent of AddFormatterAndLinterConfigFiles (#652) (@abelsiqueira)
- Keep the recorded template version when adding a feature (#653) (@abelsiqueira)
- skill support badge (#654) (@abelsiqueira)
- Document adding features via bestie CLI and add_feature in the quick guide (#655) (@abelsiqueira)
Closed issues:
- Add CompatHelper for test/Project.toml (#111)
- Add VSCode settings (#298)
- [extras] test section vs test/Project.toml (#408)
- [Bug]: ignoring stable documentation link doesn't seem to work (#498)
- First PyPI release of bestie-template (py-v0.1.0) (#618)
- Fetch the feature registry at the resolved template release tag (default-ref consistency) (#621)
- add_feature(:pre_commit_without_config) records AddFormatterAndLinterConfigFiles = true, so a later update creates the opted-out files (#625)
- add_feature advances _commit to the latest template ref, so a later update silently skips versions (#626)
- [Bug] runtests.jl filter flags are silently ignored under Pkg.test (#640)