Difference between revisions of "Talk:AUR helpers"

From ArchWiki
Jump to navigation Jump to search
 
(371 intermediate revisions by 25 users not shown)
Line 1: Line 1:
{{Note|'''Moderation''' — If your AUR helper does [[partial upgrade]]s ''without explicit user intervention'' (i.e, specifying {{ic|-Sy}} on the command line), it has no place on this page or anywhere else on ArchWiki. No exceptions. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 09:37, 20 September 2015 (UTC)
+
== Legend editions ==
}}
 
  
== "Reference" implementation ==
+
[[Special:Diff/573543/573551]]: Good revert, I did these late into sleepless night and did not notice this were huge and not that thought through changes :/
  
This is an alternative to [[#Reliable_Updater]]. Instead of an arbitrary set of test packages, we could write up a "specification" on what a reliable AUR helper should do. This should also be more helpful for potential AUR helper writers who otherwise have to wade through complex, fully-featured AUR helpers.
+
* <s>Merge note definitions for partial and optional as part of legends list?</s> This was a mistake, note there exactly makes sense according to style rules.
 +
* Add known used unsafe flags to legend, add that asterisk means optional, as it may be unclear?
 +
* Move legend concerning pacman wrappers only inside its section? Alternatively mention these apply only to pacman wrappers, example text:
  
I propose a minimal reference implementation with the following points:
+
:;Unsafe flags: Potentially harmful pacman flags that could be used by [[#pacman wrappers]].
 +
::* {{ic|--ask}} – [https://git.archlinux.org/pacman.git/commit/src/pacman?id=90e3e02 Undocumented option] to be used for testing only;
 +
::* {{ic|-Sy}} – Can lead to [[partial upgrade]];
 +
::* {{ic|-Ud}} – Skips dependency checks when installing packages.
 +
::{{Note|Asterisk means these pacman flags are optionally enabled.}}
 +
:;Batch interaction: Ability of [[#pacman wrappers]] to prompt before the build process and package transactions, in particular:
 +
::# Combined summary of repository and AUR package upgrades;
 +
::# Resolution of package conflicts and choice of providers.
  
* No client-side workarounds for upstream limitations. In particular, a reference implementation does not need to score full points on split packages, as {{ic|makepkg --pkg}} was removed with pacman 5.
+
-- [[User:Svito|Svito]] ([[User talk:Svito|talk]]) 07:33, 22 May 2019 (UTC)
* Minimal language constructs in e.g. a scripting language like {{Pkg|dash}}.
 
* Prefer simplicity of implementation over being fully featured. In particular, an implementation may only support git clone and not git diff.
 
  
My initial plan was to keep such an implementation in a man page {{ic|aurhelper(7)}} (hosted as part of aurutils), but we can consider including on a sub-page of this article. It could be then linked from the comparison table. Thoughts? -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 13:28, 8 March 2018 (UTC)
+
:Batch interaction isn't specific to pacman wrappers, at least not 2. The legend denotes it as a column though, which it isn't. At the same time, I'm not sure if replacing "columns" with "columns and values" is a good idea.
 +
:If we document all the unsafe flags, I would argue it's out of scope in this article and should be expanded in [[System_maintenance#Avoid_certain_pacman_commands]] instead. (Side-note: what if a regular AUR helper uses an unsafe command to e.g. install dependencies? None of the current entries do, but it's a possible scenario.) -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 13:26, 25 May 2019 (UTC)
  
: Generally agree with the idea, but I don't think there is a way around a set of PKGBUILDs that could be used to test helpers in a local AUR instance. F.e., I wouldn't define a "reliable" helper that doesn't handle split packages well. Since helpers are tolerated rather than supported, upstream limitations of the AUR might be temporary or permanent, meaning the limitation would actually be in the helper itself (f.e. like regex support). Also, I'd use pseudo code for such a reference as the actual implementation itself doesn't matter, unless you'd like to write a new minimalist helper. [[User:Spyhawk|Spyhawk]] ([[User talk:Spyhawk|talk]]) 15:26, 8 March 2018 (UTC)
+
::How about expanding the note:
 +
::{{Note|
 +
::* ''Optional'' means that a feature is available, but only through a command-line argument or configuration option. ''Partial'' means that a feature is not fully implemented, or that it partially deviates from the given criteria.
 +
::* ''Batch interaction'' indicates the ability to prompt ''before'' the build process and package transactions. In particular:
 +
:::1. Combined summary of repository and AUR package upgrades;
 +
:::2. Resolution of package conflicts and choice of providers.
 +
::}}
 +
::I've looked at [[System_maintenance#Avoid_certain_pacman_commands]] again and it contains all needed detail already, apart from the --ask option which is niche (and linked from in the table where appropriate). -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 22:02, 25 July 2019 (UTC)
  
::Apart from {{Bug|56602}}, I can't think of a case where upstream ''opposed'' removing limitations, even if helpers directly benefited. cf. the regex support discussed in [https://lists.archlinux.org/pipermail/aur-dev/2016-May/004036.html] or the exit codes finally introduced in makepkg 5.1 which made automatic building significantly easier imo. To me it seems that the main reason we have these AUR limations is due to the minimal interest of helper writers in contributing upstream, and upstream itself having different priorities. Not sure why former is the case, the PHP codebase may play part in it - at least it does for me.
+
:::Agreed. What about the following style:
::You can keep ''dash'' close enough to pseudo-code, I guess less so if you want a complete example rather than exemplary code blocks. For the PKGBUILD set, I use this: [https://github.com/AladW/aurutils-test/blob/master/package.t#L11-L31] -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 18:34, 8 March 2018 (UTC)
+
::::The [[#Comparison tables]] columns have the following meaning:
 +
::::;Major feature columns:
 +
:::::*''Optional'' means that a feature is available, but only through a command-line argument or configuration option;
 +
:::::*''Partial'' means that a feature is not fully implemented, or that it partially deviates from the given criteria.
 +
::::;File review: Does not [[source]] the PKGBUILD at all ''by default''; or, alerts the user and offers the opportunity to inspect the PKGBUILD manually before it is sourced. Some helpers are known to source PKGBUILDs before the user can inspect them, '''allowing malicious code to be executed'''.
 +
::::...
 +
::::;Shell completion: [[w:Command-line_completion|Tab completion]] is available for the listed [[shell]]s.
 +
::::;Specificity:
 +
:::::*''Batch interaction'' indicates the ability to prompt ''before'' the build process and package transactions. In particular:
 +
:::::# Combined summary of repository and AUR package upgrades;
 +
:::::# Resolution of package conflicts and choice of providers.
 +
:::-- [[User:Svito|Svito]] ([[User talk:Svito|talk]]) 01:20, 2 December 2019 (UTC)
  
::: My understanding is that changes that aren't invasive will be accepted upstream, but otherwise might be rejected (see [https://lists.archlinux.org/pipermail/aur-dev/2018-January/004421.html]). One prominent example that comes to mind is {{Bug|48796}}. It's not really relevant anymore since x86 has been officially dropped, but the solution would involve duplicating DB tables on the server, which isn't trivial to implement/migrate. Many of the feature requests involve non-trivial code change, which is the main reason nobody pushed patches; I dislike PHP but the language itself isn't too hard either. For regex, see the bottom of [https://lists.archlinux.org/pipermail/aur-dev/2016-May/004044.html], which is the follow-up of your link above.
+
== Add yup to Pacman wrappers ==
::: Your testsuite seems interesting (thanks for the link), but one advantage of having a fixed set of packages is that these packages might be updated and change, making these edge cases difficult to test. This happened quite a few times with my own list of test packages in the past and this was rather annoying. [[User:Spyhawk|Spyhawk]] ([[User talk:Spyhawk|talk]]) 20:20, 8 March 2018 (UTC)
 
  
== Add pacui to the table? ==
+
Links:
 +
[https://github.com/ericm/yup github] {{AUR|yup}}
  
[https://github.com/excalibur1234/pacui] {{AUR|pacui}} is kind of an aur-helper-helper. It wraps AUR helpers to provide a nice tui and also adds some of its own features. I don't really use it my self so I can't comment on how it would fit in the table/what results it would get. Just wondering if it fits here. [[User:Morganamilo|Morganamilo]] ([[User talk:Morganamilo|talk]]) 07:27, 11 June 2018 (UTC)
+
Right now yup ticks every box in the 'Pacman Wrappers' table except for 'Split packages'.
 +
It has code completion working mostly in zsh and will soon support bash and fish too.
  
:Seems to be aimed at Manjaro going by the amount of partial upgrade it runs (e.g. [https://github.com/excalibur1234/pacui/blob/master/pacui#L1251]) and weird stuff like "update systemd first". Former alone makes it unsuitable for inclusion in the wiki.
+
Pros:
:There's some other of these GUIs around that might fit though, like {{AUR|argon}}. Not sure where to put them; a separate section perhaps? They don't really have unique functionality of their own besides a modified user interface.  -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 09:50, 11 June 2018 (UTC)
 
  
::A new section like [[Pacman tips#Graphical front-ends]] could work. Probably wont be too useful if argon ends up being the only one that's suitable for inclusion. [[User:Morganamilo|Morganamilo]] ([[User talk:Morganamilo|talk]]) 12:37, 11 June 2018 (UTC)
+
It fetches pgp keys for you.
 +
It shows the PKGBUILD before installing by default for security reasons.
 +
It shows far more relevant search results that other AUR helpers on the market.
  
== Expand Secure criteria to include other (non-PKGBUILD) bundled files ==
+
[[User:Ericm|Ericm]] ([[User talk:Ericm|talk]]) 14:52, 21 July 2019 (UTC)
  
[https://github.com/Jguer/yay/issues/493], in particular [https://github.com/Jguer/yay/issues/493#issuecomment-402522467]
+
:It's another yaourt clone - pretty sure we have enough of those in the table already. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 20:11, 21 July 2019 (UTC)
  
The new criteria would be as follows:
+
:: Even though it's got tonnes of features that yaourt doesn't have? [[User:Ericm|Ericm]] ([[User talk:Ericm|talk]]) 20:40, 21 July 2019 (UTC)
* PKGBUILD, no other files -> Partial
 
* Other subset of files that includes the PKGBUILD -> Partial
 
* No PKGBUILD -> No
 
* All files in the git repo or tar archive -> Yes
 
  
Similar to the ''Diff view'' column. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 16:32, 4 July 2018 (UTC)
+
::: I would argue the splitting into "packages" is the main distinguish feature - things like an ncurses interface are superficial in my book.
 +
::: Generally speaking, most AUR helpers have turned out to be either vaporware or small variations on existing work. Some recent examples: {{AUR|aurs}}, {{AUR|baph}}, {{AUR|gutaur}}, {{AUR|ram}}, {{AUR|raur-git}}, {{AUR|simpleaur-git}}, {{AUR|vam}}. So let's wait a bit how this projects evolves before adding it to the wiki. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 21:56, 25 July 2019 (UTC)
  
: good idea, you also mentioned this for aurman a few months ago, see: https://github.com/polygamma/aurman/issues/25#issuecomment-371971155 really a good idea to implement it in a way, so that changes of all known files are being shown [[User:Polygamma|Polygamma]] ([[User talk:Polygamma|talk]]) 17:07, 4 July 2018 (UTC)
+
:::: Looks like it's still around after 3 months, so it could be added to the article. Would be nice if someone else than upstream tests the column entries, though. Also don't expect to have "far more relevant search" added, because that could basically mean anything. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 11:37, 10 September 2019 (UTC)
  
: "All files in the git repo or tar archive -> Yes" What exactly do you mean by all files? Build files often contain non text files such as images. Git diff is smart enough to hide these but then you could consider that partial because not all files are covered.
+
:::::Since it uses ncurses I would rather suggest to include it as TUI in #Graphical section instead. -- [[User:Svito|Svito]] ([[User talk:Svito|talk]]) 23:11, 1 December 2019 (UTC)
: In my opinion all a helper has to do to be secure it pause and allow the user to read the build files. The helper does not even need to offer to open them for you that's the user's responsibility. Anything more than that is nice to have but not strictly needed. [[User:Morganamilo|Morganamilo]] ([[User talk:Morganamilo|talk]]) 20:25, 4 July 2018 (UTC)
 
  
:: If this qualifies as "nice to have", there has to be an explicit warning that a green entry in the "Secure" column does not cover other files, files which may cause more harm than the PKGBUILD itself (such as {{ic|.install}} files or exectuables called from the PKGBUILD). In either case it's misleading, since you either give the impression that viewing PKGBUILDs alone is sufficient (with the current criteria), or include a warning that diminguishes the value of the criteria in the first place.
+
== Update information on rua? ==
:: Latter is similar to "Native pacman", in that you have a warning at the article top warning against any sort of pacman wrapping, and criteria in the table that ignore this warning, or even reward behavior which goes against it. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 17:07, 8 July 2018 (UTC)
 
  
::: That's a fair point, what about changing the name to "show files before sourcing" or something? Seems more accurate. Then it would make sense that not showing .install files to be partial. The only problem I see that it's not as hard hitting as "secure". [[User:Morganamilo|Morganamilo]] ([[User talk:Morganamilo|talk]]) 20:11, 8 July 2018 (UTC)
+
Please update information on RUA helper. "Diff view" and "Split packages" were implemented, as per the linked issues. Also, please add "shellcheck" and "local patch application" to the list of features that the helper has. The second is most probably not unique, the first one is unique I think. [[User:Vasya|Vasya]] ([[User talk:Vasya|talk]]) 17:28, 23 August 2019 (UTC)
  
:::: It cuts both ways: it's an effective deterrent against broken helpers, but it also gives the impression that using a "Secure" helper makes usage of the AUR safe, which it definitely doesn't. I'm not sure on what different name to use, though. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 17:25, 14 July 2018 (UTC)
+
: To be specific on "split packages" support. I've made another manual test on the latest released version of the helper. 1. Tried to install both clion and clion-jre at the same time. RUA only builds it once (`rua install clion clion-jre`). 2. Requested to install `libc++`, it understands that it only needs to be built once but both packages are installed. 3. When trying to install python2-pyalsaaudio, rua correctly builds pkgbase python-pyalsaaudio, and then installs python2-pyalsaaudio. [[User:Vasya|Vasya]] ([[User talk:Vasya|talk]]) 11:31, 26 August 2019 (UTC)
  
::::: I guess "File view" could work. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 17:44, 14 July 2018 (UTC)
+
::First request satisfied with [[Special:Diff/581029]]. Let's wait for opinion on other features. -- [[User:Svito|Svito]] ([[User talk:Svito|talk]]) 11:57, 26 August 2019 (UTC)
  
== Native pacman revisited ==
+
:::Thanks for actually testing this. Regarding the suggested features: running shellcheck before sourcing the PKGBUILD is trivial. I'm not sure what's meant by "local patch application" - does rua support git rebase with local commits, or does it just not undo local changes in the worktree e.g. through {{ic|git --autostash}}? -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 11:34, 10 September 2019 (UTC)
  
As a follow-up to [[#Expand_Secure_criteria_to_include_other_.28non-PKGBUILD.29_bundled_files]], the way "Native pacman" is used is misleading, since it depicts wrapping {{ic|pacman}} as a generally positive thing. This contradicts the warning bundled with the criteria, as well that using the same syntax for official and user-submitted packages blurs the lines between packages that are supported, and packages that might arbitrary broken things; latter requiring careful attention before installation.
+
:::: Regarding shellcheck. It's not THAT trivial. For example, this is the output of `rua shellcheck xcalib/PKGBUILD`: https://gist.github.com/vn971/7bcbc5fc6ebf731abc8399988dfb4fef. Compare it to the output of raw `shellcheck xcalib/PKGBUILD`: https://gist.github.com/vn971/edb08becb9ed7dd558b4c8655b57adec. That being said, `rua shellcheck` is not ideal as well. For example, it will always approach $pkgname as an array, and warn on all usages of the variable that treat it as non-array.
 +
:::: Regarding patch application. It keeps your locally reviewed state in a separate branch. Whenever you're ready to merge upstream, it basically does `git merge upstream/master`. You can drop to shell and do a manual rebase as well if you want, though only merging is streamlined as a built-in action. It is also safe for e.g. aborting the installation, because, unless you manually merge upstream changes yourself, changes won't ever leak into your "accepted" state (local branch). Building without merging upstream/master is forbidden as a foolproof. [[User:Vasya|Vasya]] ([[User talk:Vasya|talk]]) 16:12, 12 September 2019 (UTC)
  
I see some alternatives:
+
== <s>pacaur is also discontinued</s> ==
  
* <s>Remove the column and move any entries that go against it to "problematic". The description of [[AUR_helpers#Discontinued_or_problematic]] would be adapted accordingly.</s>
+
According to the project github and discussion on archlinux forum pacaur is discontinued [[User:C13251|C13251]] ([[User talk:C13251|talk]]) 13:14, 24 October 2019 (UTC)
* Keep the column but remove Green/Grey colors, potentially renaming both the column and its entries.
 
  
There's benefits in both approaches but implementing the first is less effort. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 17:21, 14 July 2018 (UTC)
+
: I think you are confusing the discontinued repo: https://github.com/rmarquis/pacaur with the fork: https://github.com/rmarquis/pacaur The fork seems pretty much alive. [[User:Vasya|Vasya]] ([[User talk:Vasya|talk]]) 13:29, 24 October 2019 (UTC)
-- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 17:21, 14 July 2018 (UTC)
 
  
:I think the second approach is best since it offers more information/overview over the first. I propose the following changes:
+
::You meant https://github.com/E5ten/pacaur to be second link probably. -- [[User:Svito|Svito]] ([[User talk:Svito|talk]]) 00:15, 2 December 2019 (UTC)
:*Native pacman -> Pacman wrapping (restore the original column name)
 
:*Yes [Green] -> ''Literal'' '''[Grey]'''
 
:*N/A [Grey] -> ''None'' [Grey]
 
:*Partial [Yellow] -> ''Modified'' [Yellow]
 
:*No [Red] -> ''Faulty'' [Red]
 
:-- The color change would basically reflect the old "Syntax" column, which deliberately had no colors. See [https://wiki.archlinux.org/index.php?title=Talk:AUR_helpers&oldid=423597#Pacman-like_Syntax]. [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 22:46, 21 July 2018 (UTC)
 
  
::Works for me. I'm guessing the criteria will remain the same? [[User:Morganamilo|Morganamilo]] ([[User talk:Morganamilo|talk]]) 23:16, 21 July 2018 (UTC)
+
== <s>Drop "Clean Build" Column</s> ==
  
:::Yeah, unless someone brings new arguments to the table. I'll probably make some minor changes to fit the new wording. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 23:19, 21 July 2018 (UTC)
+
Literally every helper apart from yaourt has this as yes. Perhaps yaourt's variable exporting should be listed under specificity or the "Unsafe Flags" column could be adjusted to unsafe actions? [[User:Morganamilo|Morganamilo]] ([[User talk:Morganamilo|talk]]) 04:54, 14 September 2018 (UTC)
  
:::Actually, thinking about it how about faulty -> harmful? To me faulty kind of implies it's bugged out. While -Udd and such are usually purposely implemented. [[User:Morganamilo|Morganamilo]] ([[User talk:Morganamilo|talk]]) 23:25, 21 July 2018 (UTC)
+
:Disagree, since it's a reminder to anyone writing (existing and new) helpers. Example: [https://github.com/AladW/aurutils/pull/448] -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 10:52, 14 September 2018 (UTC)
  
== Include helpers that do automatic -Sy and other bad things. ==
+
::Revisiting this topic, as 1. {{ic|makepkg}} related variables are listed under {{ic|ENVIRONMENT}} in {{man|8|makepkg}} and 2. custom logic that reimplements makepkg's configuration parsing (to e.g. append values such as PKGDEST) is more fragile than simply exporting these variables where required. That said, I guess there should remain some mention for {{ic|yaourt}} since it takes this idea to the literal extreme and apparently exports every single variable defined in {{ic|makepkg.conf}}. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 21:08, 1 December 2019 (UTC)
  
The warning at the top of the page:
+
:::And I had already removed both the column and yaourt. I must be living in the past. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 21:13, 1 December 2019 (UTC)
 
 
{{Note|'''Moderation''' — If your AUR helper does [[partial upgrade]]s ''without explicit user intervention'' (i.e, specifying {{ic|-Sy}} on the command line), it has no place on this page or anywhere else on ArchWiki. No exceptions. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 09:37, 20 September 2015 (UTC)
 
}}
 
 
 
Is quite old and since then the table now has a "Discontinued or problematic" section. This would be a good place to include the more troublesome helpers and include a column to say exactly what is wrong with each entry. To really discourage usage maybe they could be added to their own table instead? No information on their abilities, just name and what is wrong.
 
 
 
Currently when a helper does something bad, there's no credible source to find that out. For example, I believe pamac refreshes the sync databases every 10 minutes, but that's just word of mouth. Reading the edit history it was 15 hours, point is this information is kind of hidden away. [[User:Morganamilo|Morganamilo]] ([[User talk:Morganamilo|talk]]) 17:02, 21 July 2018 (UTC)
 
 
 
:I agree with this in principle. That said, I think only 2 helpers apply: {{AUR|octopi}} and {{AUR|pamac-aur}}. Both are mostly used in derivatives and other unsupported works. The real solution would be in removing these from the AUR, but ostensibly doing broken things in an unsupported user repository doesn't matter, as long as the submission guidelines are respected.
 
 
 
:Also compare the warning in [[Pacman/Tips_and_tricks#Graphical_front-ends]]. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 22:43, 21 July 2018 (UTC)
 

Latest revision as of 01:20, 2 December 2019

Legend editions

Special:Diff/573543/573551: Good revert, I did these late into sleepless night and did not notice this were huge and not that thought through changes :/

  • Merge note definitions for partial and optional as part of legends list? This was a mistake, note there exactly makes sense according to style rules.
  • Add known used unsafe flags to legend, add that asterisk means optional, as it may be unclear?
  • Move legend concerning pacman wrappers only inside its section? Alternatively mention these apply only to pacman wrappers, example text:
Unsafe flags
Potentially harmful pacman flags that could be used by #pacman wrappers.
Note: Asterisk means these pacman flags are optionally enabled.
Batch interaction
Ability of #pacman wrappers to prompt before the build process and package transactions, in particular:
  1. Combined summary of repository and AUR package upgrades;
  2. Resolution of package conflicts and choice of providers.

-- Svito (talk) 07:33, 22 May 2019 (UTC)

Batch interaction isn't specific to pacman wrappers, at least not 2. The legend denotes it as a column though, which it isn't. At the same time, I'm not sure if replacing "columns" with "columns and values" is a good idea.
If we document all the unsafe flags, I would argue it's out of scope in this article and should be expanded in System_maintenance#Avoid_certain_pacman_commands instead. (Side-note: what if a regular AUR helper uses an unsafe command to e.g. install dependencies? None of the current entries do, but it's a possible scenario.) -- Alad (talk) 13:26, 25 May 2019 (UTC)
How about expanding the note:
Note:
  • Optional means that a feature is available, but only through a command-line argument or configuration option. Partial means that a feature is not fully implemented, or that it partially deviates from the given criteria.
  • Batch interaction indicates the ability to prompt before the build process and package transactions. In particular:
1. Combined summary of repository and AUR package upgrades;
2. Resolution of package conflicts and choice of providers.
I've looked at System_maintenance#Avoid_certain_pacman_commands again and it contains all needed detail already, apart from the --ask option which is niche (and linked from in the table where appropriate). -- Alad (talk) 22:02, 25 July 2019 (UTC)
Agreed. What about the following style:
The #Comparison tables columns have the following meaning:
Major feature columns
  • Optional means that a feature is available, but only through a command-line argument or configuration option;
  • Partial means that a feature is not fully implemented, or that it partially deviates from the given criteria.
File review
Does not source the PKGBUILD at all by default; or, alerts the user and offers the opportunity to inspect the PKGBUILD manually before it is sourced. Some helpers are known to source PKGBUILDs before the user can inspect them, allowing malicious code to be executed.
...
Shell completion
Tab completion is available for the listed shells.
Specificity
  • Batch interaction indicates the ability to prompt before the build process and package transactions. In particular:
  1. Combined summary of repository and AUR package upgrades;
  2. Resolution of package conflicts and choice of providers.
-- Svito (talk) 01:20, 2 December 2019 (UTC)

Add yup to Pacman wrappers

Links: github yupAUR

Right now yup ticks every box in the 'Pacman Wrappers' table except for 'Split packages'. It has code completion working mostly in zsh and will soon support bash and fish too.

Pros:

It fetches pgp keys for you. It shows the PKGBUILD before installing by default for security reasons. It shows far more relevant search results that other AUR helpers on the market.

Ericm (talk) 14:52, 21 July 2019 (UTC)

It's another yaourt clone - pretty sure we have enough of those in the table already. -- Alad (talk) 20:11, 21 July 2019 (UTC)
Even though it's got tonnes of features that yaourt doesn't have? Ericm (talk) 20:40, 21 July 2019 (UTC)
I would argue the splitting into "packages" is the main distinguish feature - things like an ncurses interface are superficial in my book.
Generally speaking, most AUR helpers have turned out to be either vaporware or small variations on existing work. Some recent examples: aursAUR, baphAUR, gutaurAUR, ramAUR, raur-gitAUR, simpleaur-gitAUR, vamAUR. So let's wait a bit how this projects evolves before adding it to the wiki. -- Alad (talk) 21:56, 25 July 2019 (UTC)
Looks like it's still around after 3 months, so it could be added to the article. Would be nice if someone else than upstream tests the column entries, though. Also don't expect to have "far more relevant search" added, because that could basically mean anything. -- Alad (talk) 11:37, 10 September 2019 (UTC)
Since it uses ncurses I would rather suggest to include it as TUI in #Graphical section instead. -- Svito (talk) 23:11, 1 December 2019 (UTC)

Update information on rua?

Please update information on RUA helper. "Diff view" and "Split packages" were implemented, as per the linked issues. Also, please add "shellcheck" and "local patch application" to the list of features that the helper has. The second is most probably not unique, the first one is unique I think. Vasya (talk) 17:28, 23 August 2019 (UTC)

To be specific on "split packages" support. I've made another manual test on the latest released version of the helper. 1. Tried to install both clion and clion-jre at the same time. RUA only builds it once (`rua install clion clion-jre`). 2. Requested to install `libc++`, it understands that it only needs to be built once but both packages are installed. 3. When trying to install python2-pyalsaaudio, rua correctly builds pkgbase python-pyalsaaudio, and then installs python2-pyalsaaudio. Vasya (talk) 11:31, 26 August 2019 (UTC)
First request satisfied with Special:Diff/581029. Let's wait for opinion on other features. -- Svito (talk) 11:57, 26 August 2019 (UTC)
Thanks for actually testing this. Regarding the suggested features: running shellcheck before sourcing the PKGBUILD is trivial. I'm not sure what's meant by "local patch application" - does rua support git rebase with local commits, or does it just not undo local changes in the worktree e.g. through git --autostash? -- Alad (talk) 11:34, 10 September 2019 (UTC)
Regarding shellcheck. It's not THAT trivial. For example, this is the output of `rua shellcheck xcalib/PKGBUILD`: https://gist.github.com/vn971/7bcbc5fc6ebf731abc8399988dfb4fef. Compare it to the output of raw `shellcheck xcalib/PKGBUILD`: https://gist.github.com/vn971/edb08becb9ed7dd558b4c8655b57adec. That being said, `rua shellcheck` is not ideal as well. For example, it will always approach $pkgname as an array, and warn on all usages of the variable that treat it as non-array.
Regarding patch application. It keeps your locally reviewed state in a separate branch. Whenever you're ready to merge upstream, it basically does `git merge upstream/master`. You can drop to shell and do a manual rebase as well if you want, though only merging is streamlined as a built-in action. It is also safe for e.g. aborting the installation, because, unless you manually merge upstream changes yourself, changes won't ever leak into your "accepted" state (local branch). Building without merging upstream/master is forbidden as a foolproof. Vasya (talk) 16:12, 12 September 2019 (UTC)

pacaur is also discontinued

According to the project github and discussion on archlinux forum pacaur is discontinued C13251 (talk) 13:14, 24 October 2019 (UTC)

I think you are confusing the discontinued repo: https://github.com/rmarquis/pacaur with the fork: https://github.com/rmarquis/pacaur The fork seems pretty much alive. Vasya (talk) 13:29, 24 October 2019 (UTC)
You meant https://github.com/E5ten/pacaur to be second link probably. -- Svito (talk) 00:15, 2 December 2019 (UTC)

Drop "Clean Build" Column

Literally every helper apart from yaourt has this as yes. Perhaps yaourt's variable exporting should be listed under specificity or the "Unsafe Flags" column could be adjusted to unsafe actions? Morganamilo (talk) 04:54, 14 September 2018 (UTC)

Disagree, since it's a reminder to anyone writing (existing and new) helpers. Example: [1] -- Alad (talk) 10:52, 14 September 2018 (UTC)
Revisiting this topic, as 1. makepkg related variables are listed under ENVIRONMENT in makepkg(8) and 2. custom logic that reimplements makepkg's configuration parsing (to e.g. append values such as PKGDEST) is more fragile than simply exporting these variables where required. That said, I guess there should remain some mention for yaourt since it takes this idea to the literal extreme and apparently exports every single variable defined in makepkg.conf. -- Alad (talk) 21:08, 1 December 2019 (UTC)
And I had already removed both the column and yaourt. I must be living in the past. -- Alad (talk) 21:13, 1 December 2019 (UTC)