Proposing a MAINTENANCE file #81
Reference in New Issue
Block a user
No description provided.
Delete Branch "ineiti/nextcloud:maintenance.md"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Cobbled together a file with the help of Claude.
I did re-read all of it, manually edited some parts,
and asked for modifications.
@ineiti I like the reference to Nextcloud's own release schedule!
@ -0,0 +31,4 @@This recipe commits to the following, which is tighter than the floor set byResolution 025 (stable-recipe category):- Respond to PRs / issues within 3 working daysI can join the maintainers team, but I cannot commit to these timelines. Can we rephrase all these deadlines to something like 'within a reasonable amount of time', or is someone else willing to commit to these timelines?
Tagging others from #57 that wanted to maintain: @stevensting @simon @Apfelwurm
I propose we keep the timeline, but add "according to best effort" or something like that. Having a timeline can also give an incentive to move the task up in the list of "voluntary project efforts". And, as none of us is paid for this, nobody will get fired over missing a deadline :)
So if we're a bunch of maintainers, I think 3 days is reasonable for a reply. Also, it's not about solving the issue, but at least advancing it a bit.
I'm not afraid of getting fired, but I do tend to take commitments seriously, so I don't want to commit to something I won't be able to keep up with. Starting this list with the fact that we aim for these deadlines is indeed a good middle ground.
@ -0,0 +51,4 @@- **Patch releases (e.g. `32.0.x`)**: published to this recipe shortly afterupstream, ideally within 1 week. `chore(deps)` opens the PRs; a maintainerreviews, deploys against a test instance, and tags.If we are deploying a patch release only quickly against a test instance, I don't think that adds much value compared to the tests that Nextcloud itself already does. If the patch image update is done by Renovate, the risk of making a configuration error is pretty small.
I would propose that, for a patch release, a maintainer does a quick review (release notes and Nextcloud's issue tracker?) and then releases the new version.
A patch can always introduce a bug that affects someone, but the same patch could also fix a bug for someone else and security issues. Overall, I think it's better to have a low threshold for releasing patch updates.
The next line for Minor release should then be updated to something like a more thorough review of the release notes and a test upgrade?
@ -0,0 +53,4 @@upstream, ideally within 1 week. `chore(deps)` opens the PRs; a maintainerreviews, deploys against a test instance, and tags.- **Minor releases**: same flow as patch releases.- **Major releases (e.g. `32 → 33`)**: not adopted on day one. We wait for theProposal for Major release:
Can you please explain how tagging with
nextcloud:32-fpmhelps in that case? I'm not yet very fluent in how abra works with upgrades.The current recipe version is 13.0.1+32.0.3-fpm, which deploys the 32.0.3-fpm image of Nextcloud. If we now decide to move to Nextcloud 33, we would release a recipe with the tagged version 14.0.0+33.0.5-fpm. But if for whatever reason you can't move to version 33 yet, you'll have to stay on recipe version 13.0.1+32.0.3-fpm, and you're missing out on all the bugfixes and security updates in 32.0.4-32.0.12. Version 32 will still receive updates for a few more months.
I'm proposing to first release a recipe version 13.1.0+32-fpm. This version will have the nextcloud image tag set to nextcloud:32-fpm. On redeploy, Docker will pull the latest 32 image (currently 32.0.12), but after a reboot it should just keep the last image version that was deployed. So a redeploy is less predictable in the sense that it could pull a new 32.x.x image if that was released since the last deploy. (To be fair, I haven't fully tested this with abra, so there might be edge cases where it will or won't pull an updated image)
Immediately after we release a recipe version 14.0.0+33.0.5-fpm with image tag nextcloud:33.0.5-fpm. So anyone just updating to the latest recipe version should not notice a difference. But if you want to stay on Nextcloud 32, you can choose between recipe 13.0.1+32.0.3-fpm for a fixed image version or recipe version 13.1.0+32-fpm to get the latest 32 image on redeploy.
OK, if I understand that correctly, you propose to create a "catch-all-future-updates" version, where the user can
app deploy --forceand it will pull the latest minor/patch version of the previous major version. Sounds like a good hack! Thanks for the explanation.@dannygroenewegen updated the MAINTENANCE.md file with your suggestions. Let me know if I missed anything, please.
So who should be in the initial maintainers list? I'm happy to be on it. Shall I add you, too, @dannygroenewegen ? @3wordchant ?
I would prefer not to, sending y'all good luck though
Pinging the last couple committers to this recipe - do you want to appear as a maintainer?
@carla @decentral1se @moritz @oxaliq @simon @iexos @p4u1 @Apfelwurm @ammaratef45
Also, one of you will have to add me to the repo so I have write access :)
I +1 this, wish I had capacity
@moritz @simon and me, we are trying to maintain the recipe as part of our workflow at our it collective. But if you have the capacity and you feel good with the list of maintainers from now, we are happy if you take care of it :) We can put more work on other recipes than. Likewise we would not be able to keep up with the responsibilities in the maintenance file (3 days for PRs eg). So as I said: if you feel comfortable we do not need to be listed :)
I'm actually realising that my way of working might not be possible here: toolshed/organising#678 - if I'm not allowed to use LLMs when working on the recipes or tools, I won't have the necessary time to participate in this wonderful project :( Which of course I understand and will respect. But then I'd have to remove myself from the README.md, and I'll add you :)
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.