Specify a different git location for a recipe #533
Closed
opened 2023-11-10 09:39:19 +00:00 by p4u1
·
7 comments
Labels
Clear labels
abra
awaiting-feedback
backups
bug
build
ci/cd
community organising
contributing
coopcloud.tech
design
documentation
duplicate
enhancement
fedi
fedi-infra
finance
funding
good first issue
help wanted
installer
legal
performance
proposal
question
security
test
wontfix
Everything to do with abra
Ping/pong on comms
Something is not working
Go build related issues
Getting the robots into the mix
Opening this thing up
Contributors stuff
Our main website
Design thinking required
Let's write things together
This issue or pull request already exists
New feature
Democratic decision making
Money things
Anything related to grant funding
Easy start with development
Need some help
Installation related issues
Performance related
Large change which requires feedback & decisin making
More information is needed
Securing our shit
Unit or integration test suite
This won't be fixed
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/organising#533
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.
Use Case:
I find a bug in a recipe or create a new feature and make those changes in the
~/.abra/recipes/<myrecipe>, so I can directly deploy the fix or the new feature. Next I push the changes to a fork and upstream the changes. While waiting for the changes to land upstream all other people managing the same server must manually change the recipe to my fork and checkout the correct branch. This is quite error prone, since I need to inform them manually and they need to do the correct git operations manually.Feature Request:
It would be nice to optionally specify a git repository for a recipe. I can think of two places where this could be specified:
.envfile using e.g. aGIT_REPOenv variableWith either method it would be nice to have a command for it (but not required). But it must be easy to add this information to a git repository managing the server.
Specify a differnt git location for a recipeto Specify a different git location for a recipeThanks for raising, important one!
I wonder could this feed into: https://docs.coopcloud.tech/federation/resolutions/in-progress/013/ somehow 🤔 Generally, the simplest solution to replace your now laborious work-around is probably the one we'd want to go with. So, please feel free to sketch out something that you think will practically work for yourselves.
So,
abrawould honour aGIT_REPO=...remote URL in a.envfile and then use that to clone the recipe if not present? Otherwise, it respects the remote and pulls from there, so that would be fine. It would try to check out tags from the catalogue tho and if those are not present in your forked recipe, that might be an isssue. However, I believe local tags are also respected and a "fetch all tags" is arranged byabra. Maybe ifGIT_REPO=...is set, we ignore the (centralised) catalogue for now? Unsure, this would need some testing.Probably you want to have a way to specify a branch in that env var? There might be something standard we can parse.
I have an idea, to combine the two proposals:
We define a new Variable
RECIPEwhich can consist of two parts:a
recipe definitionand aversionseparated by a colon. Some examples:Recipe Definition
A recipe definition can be one of the following
https://Version
A version can be any git ref. This includes tags, branches and commits.
When
RECIPEcontains a version, it gets updated when using theabra app upgradeand related commands.I can further refine this proposal, If you think this is right direction.
Oh yeh, that looks pretty damn solid to me @p4u1 🎉
It seems also like a smaller stepping stone towards
OPERATOR_SYNC_VERSIONlike functionality in https://docs.coopcloud.tech/federation/resolutions/in-progress/013/#details-budget-007 without the syncronisation? Maybe more people can agree to this first step.@moritz any thoughts on this one?
Love this idea.
I would like to add the git commit as version for a specific chaos deployment #517:
decentral1se referenced this issue2024-03-28 13:54:55 +00:00
The wheels are turning! coop-cloud/abra#420
Too hasty closing this, we need some integration tests and docs still 🤓
b8e1a3b75f7672eea434