Replies: 9 comments 1 reply
-
You can also just ask us for help, either here or in the Discord. The refactors are always small, there is no need for you to spend hours on them.
We always post release announcements explaining any changes, and any updates that pacscript maintainers may need to make to their packages.
The PKGBUILD format is exactly what we aim to reflect, and have slowly over the years moved closer towards it. But:
|
Beta Was this translation helpful? Give feedback.
-
Can you provide a list of breaking changes you found frustrating? |
Beta Was this translation helpful? Give feedback.
-
Also would it be useful to have pre-release announcements relating to breaking changes? |
Beta Was this translation helpful? Give feedback.
-
@Elsie19 , so I looked through the git history of my repo and here's what I found. I cannot vouch that all of them were breaking changes, but most definitely were. I switched from Arch to Debian exactly for the reason of stability, but with each upgrade of pacstall I am afraid that something will break.
|
Beta Was this translation helpful? Give feedback.
-
In any case, I can push changes only after the new version is released. IMHO, the best way is to deprecate, but not remove the public API in the next release, and remove in the release after. I.e. something works in v6, deprecate, but keep it working in v7, and remove in v8 (if there is too much overhead keeping it. If not (like it's just a naming thing) - I guess it can be kept for longer)
But why not adopt it immediately as a public API, even if not internal functionality is implemented, and implement it step by step?
I thought that there isn't much difference in terms of the variables and functions of package scripts. I mean, the insides of functions will be different. But
I just checked and couldn't find any mention that |
Beta Was this translation helpful? Give feedback.
-
I will go through each one and try to explain our reasoning if that helps it seem less like we've been making arbitrary decisions.
The
For
The both were done for PKGBUILD compatibility, and the second was done because at that point, we had
This was an objectively good change, I don't think I need to justify this. Lists in bash should be arrays, not strings.
This was also a good change. Before that, even bin packages would have to have two useless functions there.
They were never required to have that line. We put that there as a stop-gap to try to seamlessly move from pre-5.0.0 to 5.0.0. You can read the release notes and I'm sure you'll see that this was not intended to be a permanent "feature".
We transitioned to using bwrap in 5.0.0, and with that, removed the need for running sudo in a potentially untrusted environment on the host system.
You can still use that. We just won't accept that in our repo.
Fair, but we use that to make our repository completely parsable for any useful information without having to source and extract variables/arrays from bash scripts.
If you pull workflows from upstream, this shouldn't be an issue.
Yes, we removed it, because we released 5.0.0 on May 1st, 2024, which was plenty of time to update scripts (242 days actually). The new behavior functions like PKGBUILDs, where you must
PKGBUILD compatibility. In this case, it seems that autoreconf is built differently between Ubuntu and Debian, so the incompatible must be put in there.
Can you give a list of those packages? We realized that wholesale blocking distros is generally not a good idea, so we added version constraints, which covers 90% of the reasons why certain packages don't build on Debian but do on Ubuntu. We have a section on our wiki about that. I think that repo maintainers should absolutely be checking https://github.com/pacstall/pacstall/commits/develop/ for breaking changes, which are marked with something like |
Beta Was this translation helpful? Give feedback.
-
I am not saying these weren't the good changes. This is about the way the are handled. For regular software you can break backwards compatibility immediately with a new version. Because the user can choose to stay on the old one until they are ready to migrate. With pacstall, the user chooses to either be able to install their packages with the old version, or upstream packages with the new version.
|
Beta Was this translation helpful? Give feedback.
-
I meant the list of packages where removing |
Beta Was this translation helpful? Give feedback.
-
One is |
Beta Was this translation helpful? Give feedback.
-
I have a few pacsripts of my own and I want them to work without any shenanigans. However each time I need to install something (or, god forbid, reinstall the system), I have to spend hours trying to fix my pacscripts.
If I lock the old version - your pacscripts don't work. If I upgrade - mine don't. This has happened so many times that it is annoying.
I understand you want to improve the software, but please make it so that old scripts work as well. Maybe add a
pacscript-ver
field or something. (if you do, please don't break the scripts that don't have it). And arch pkgbuild format seems time-proven, I don't understand why not just take it and call it a day.Beta Was this translation helpful? Give feedback.
All reactions