Add a 'test recipe' or 'local-only recipe' mode to recipes #700
Open
opened 2025-10-18 18:39:49 +00:00 by cas
·
5 comments
No Branch/Tag Specified
main
renovate/golang-1.27
local-integration-testing
renovate/github.com-charmbracelet-bubbletea-2.x
fix/492
renovate/github.com-charmbracelet-lipgloss-2.x
renovate/otel-weaver-0.x
renovate/codespell-2.x
renovate/tonistiigi-xx-1.x
renovate/alpine-3.x
renovate/github.com-charmbracelet-log-2.x
chore-deps
fix/deps
fix/613
0.13.0-beta
0.13.0-rc2-beta
0.13.0-rc1-beta
0.12.0-beta
0.11.0-beta
0.10.1-beta
0.10.0-beta
0.10.0-rc2-beta
0.10.0-rc1-beta
0.9.0-beta
0.8.1-beta
0.8.0-beta
0.8.0-rc2-beta
0.8.0-rc1-beta
0.7.0-beta
0.7.0-rc3-beta
0.7.0-rc2-beta
0.6.0-beta
0.5.1-beta
0.5.0-alpha
0.4.1-alpha
0.4.0-alpha
0.4.0-alpha-rc8
0.4.0-alpha-rc7
0.4.0-alpha-rc6
0.4.0-alpha-rc5
0.4.0-alpha-rc4
0.4.0-alpha-rc3
0.4.0-alpha-rc2
0.4.0-alpha-rc1
0.3.1-alpha-rc2
0.3.1-alpha-rc1
0.3.1-rc1
0.3.0-alpha
0.2.2-alpha
0.2.1-alpha
0.2.0-alpha
0.1.8-alpha
0.1.7-alpha
0.1.6-alpha
0.1.5-alpha
0.1.4-alpha
0.1.3-alpha
0.1.2-alpha
0.1.1-alpha
0.1.0-alpha
10.0.5
10.0.3
10.0.2
10.0.1
10.0.0
9.0.0
8.0.1
8.0.0
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
checkout
0.6.0
0.5.0
0.4.1
0.4.0
0.3.1
0.3.0
0.2.0
0.1.2
0.1.1
0.1.0
Labels
Clear labels
bug
build
ci/cd
critical fix
design
documentation
duplicate
easy-first-issue
enhancement
help wanted
i10n
i18n
installer
invalid
question
release
release-candidate
security
tech-debt
test
wontfix
Something is not working
go build related issues
Building things with CI/CD
https://docs.coopcloud.tech/federation/resolutions/passed/010/
UI/UX
Documenting all the things
This issue or pull request already exists
Something for new people to get stuck into. We hope it's easy!
New feature
Need some help
Everything to do with localisation
Everything to do with internationalisation
Everything to do with the install script.
Something is wrong
More information is needed
Release management
Related to the new release candidate
Security related
Unit/integration testing
This won't be fixed
No labels
enhancement
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Assignees
3wordchant
aadil (Aadil Ayub)
abra-bot (Abra Bot)
ammaratef45
amras (Sarma)
Apfelwurm
BornDeleuze
Brooke
carla
cas (Cassowary)
coopcloud
cyrnel
decentral1se (d1)
dede
devydave
fauno (fauno)
iexos
jade (Jade Ambrose)
jjsfunhouse
jmakdah2 (Jackie Makdah)
joe-irving (Joe Irving)
kawaiipunk (KawaiiPunk)
knoflook
kolaente
lambdabundesverband
linnealovespie (April)
moosemower
moritz
notplants
oxaliq (sorrel)
p4u1
pharaohgraphy (Andrew 🐦🔥❤️🔥✴️)
renovate-bot (Comrade Renovate Bot)
ripclap
simon
sixsmith (Sixsmith)
stevensting
trav (Trav Fryer)
val (val (he/him))
yksflip
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: toolshed/abra#700
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
To support development of new recipes, a way to mark recipes as
local-onlyortest, so they won't ever be considered for git things at all (or maybe, considered for git things but only ever local git things).This status would have to be changeable (e.g. at the end of development to release the new recipe) and also heavily indicated in listings, and such so that there'd be no confusion on the operator's part that it's not been released.
In addition to supporting development of recipes pre-release, I believe that properly implemented this might lead the way toward multiple recipe repositories, rather than the centralized, single source we have now.
@cas a lot of this is already possible, I believe, but it's not well documented.
You can manually create releases (git tags) for recipes, or just
abrawithout the--publishflag to do it. Andabrawill understand those local tags and show them as release targets. I am not sure this is tested and I've just set up a new laptop so cannot re-confirm right now myself.It's already possible to completely divest from the centralised catalogue by using remote recipes in combination with
abra.yml(for convenience).For moving away from the central catalogue in a more structural way, I think we need to move towards a web API approach. The single JSON blob for the catalogue is really starting to slow
abradown. Also, doing comparison operations (is this local? is this remote?) is getting more costly as the catalogue grows.Concretely, for the ignore logic, I think you could add a
ignoreRecipes: [myRecipe, myOtherRecipe]to theabra.ymlwhich could somehow be loaded and then added at runtime into the usualRecipestruct? This would require adapting git-ops related code to check this flag then and ignore if necessary. I am not sure if this would be a big change or not.Hope this helps.
Thank you for this information!
The ignoreReucipes idea is a good one, if I get some abra hacking time I'll try to look at it.
I actually explored local recipes a while back and have a prototype laying around somewhere!
It works by setting
RECIPE=./my-local-recipeIt then ignores every got operation and just treats it like a nor all folder. This allows you to track the files in the same git repo as your app configs. If you are interested I can push my code and you can have a look at it
Hell yes @p4u1, please do push that code up somewhere!
@cas review/testing super welcome! #717