WIP feat: introduce local recipes #742

Open
p4u1 wants to merge 3 commits from p4u1/abra:local-recipes into main
Owner
Docs PR: https://git.coopcloud.tech/toolshed/docs.coopcloud.tech/pulls/298
p4u1 added 3 commits 2025-12-30 14:16:30 +00:00
feat: introduce local recipes
Some checks failed
continuous-integration/drone/pr Build is failing
8cbf118f66
fix
Some checks failed
continuous-integration/drone/pr Build is failing
e3fe1029da
Author
Owner

@decentral1se @ammaratef45 and others: what do you think about the general idea? If others like this, I can add integratoin tests

@decentral1se @ammaratef45 and others: what do you think about the general idea? If others like this, I can add integratoin tests
decentral1se reviewed 2026-02-02 14:32:08 +00:00
decentral1se left a comment
Owner

Thanks, sounds good to me! People have asked for it also several times.

What happens with a local recipe that doesn't exist in the catalogue? It would be good to write some integration tests indeed that don't just test the direct functionality but also how a local recipe behaves with all the usual commands (abra app deploy, upgrade, etc.). It would be good to adjust some existing tests and make the recipe local and see what explodes.

Thanks, sounds good to me! People have asked for it also several times. What happens with a local recipe that doesn't exist in the catalogue? It would be good to write some integration tests indeed that don't just test the direct functionality but also how a local recipe behaves with all the usual commands (`abra app deploy`, `upgrade`, etc.). It would be good to adjust some existing tests and make the recipe local and see what explodes.
@ -133,0 +128,4 @@
sshURL := ""
dir := ""
local := false
if strings.HasPrefix(name, "./") {
Owner

This needs a docs patch for https://docs.coopcloud.tech/maintainers/handbook/ to explain how you create a "local only" recipe. We have too often created features which go undiscovered for years 🙃 Docs might help avoid this...

This needs a docs patch for https://docs.coopcloud.tech/maintainers/handbook/ to explain how you create a "local only" recipe. We have too often created features which go undiscovered for years 🙃 Docs might help avoid this...
decentral1se marked this conversation as resolved
@ -133,0 +129,4 @@
dir := ""
local := false
if strings.HasPrefix(name, "./") {
dir = path.Join(config.ABRA_DIR, name)
Owner

we should also check if the local recipe dir exists.

we should also check if the local recipe dir exists.
Owner

The feature makes sense to me, unsure from reading the code but it seems like local recipes will use whatever exists in the directory, so it won't look for a release tag

I wonder if local recipes should also be expected to be a git directory but without the need for a remote (one can exist but abra won't need it)

wdyt?

The feature makes sense to me, unsure from reading the code but it seems like local recipes will use whatever exists in the directory, so it won't look for a release tag I wonder if local recipes should also be expected to be a git directory but without the need for a remote (one can exist but abra won't need it) wdyt?
Author
Owner

I don't think local recipes should check for git repo. If you want your recipe to be a git repooutside of the recipe catalogue you can already reference that with the full hit URL

For me local recipes should be, just take the files and deploy whatever is there. The upgrade command would then be a no op

Will add documentation in the coming days

I don't think local recipes should check for git repo. If you want your recipe to be a git repooutside of the recipe catalogue you can already reference that with the full hit URL For me local recipes should be, just take the files and deploy whatever is there. The upgrade command would then be a no op Will add documentation in the coming days
Author
Owner

@ammaratef45 @decentral1se I have added documentation toolshed/docs.coopcloud.tech#298

Let's discuss and agree on the feature before I add tests and make abra behave well in all cases

@ammaratef45 @decentral1se I have added documentation https://git.coopcloud.tech/toolshed/docs.coopcloud.tech/pulls/298 Let's discuss and agree on the feature before I add tests and make abra behave well in all cases
Owner

Aight, re: toolshed/docs.coopcloud.tech#298 (comment) let's push this out to the next abra release

Aight, re: https://git.coopcloud.tech/toolshed/docs.coopcloud.tech/pulls/298#issuecomment-30601 let's push this out to the next `abra` release ✅
Some checks failed
continuous-integration/drone/pr Build is failing
This pull request has changes conflicting with the target branch.
  • pkg/app/app.go
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u local-recipes:p4u1-local-recipes
git checkout p4u1-local-recipes
Sign in to join this conversation.
No description provided.