Difference between revisions of "Talk:Arch User Repository"

From ArchWiki
Jump to navigation Jump to search
Line 195: Line 195:
:I'd go for something that makes it clearer that this is still about "uploading" the new content to the AUR. Maybe something like "Release a new package version" or "Publish new package content" or similar? -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 09:30, 2 December 2018 (UTC)
:I'd go for something that makes it clearer that this is still about "uploading" the new content to the AUR. Maybe something like "Release a new package version" or "Publish new package content" or similar? -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 09:30, 2 December 2018 (UTC)
::I like "Publish" because it covers both initial upload and subsequent updates; this is what I was going for with the new title. [[User:Quequotion|quequotion]] ([[User talk:Quequotion|talk]]) 13:31, 4 December 2018 (UTC)
::I like "Publish" because it covers both initial upload and subsequent updates; this is what I was going for with the new title. [[User:Quequotion|quequotion]] ([[User talk:Quequotion|talk]]) 13:31, 4 December 2018 (UTC)
:::I see that you changed the draft title to "Publish package content", however omitting "new" misses the "updating" part of the concept, i.e. the section may be mistaken as only regarding the first upload. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 17:42, 7 December 2018 (UTC)

Revision as of 17:42, 7 December 2018

What is the correct AUR forum section?

Arch_User_Repository#Submitting_packages says it's [1], but we also have [2]. One of them should be added to Arch_User_Repository#I_have_a_PKGBUILD_I_would_like_to_submit.3B_can_someone_check_it_to_see_if_there_are_any_errors.3F. -- Karol (talk) 12:30, 7 August 2015 (UTC)

AUR link

The link to this page from the AUR homepage is outdated.

"Submitting packages" located above the SSH keys directs to an AUR4 link, which has since become just AUR. I'm not knowledgeable of the methods to correct this.

-- Ctag (talk) 00:05, 23 September 2015 (UTC)

You can submit a bug report for the AUR web interface project in the tracker. Or even provide a patch: sources are at [3]. -- Lahwaacz (talk) 11:22, 23 September 2015 (UTC)
That link on the AUR homepage now points to the wiki article. Issue appears to have been resolved, probably some time ago. This discussion can be closed. quequotion (talk) 13:54, 4 December 2018 (UTC)

AUR search takes '%' literally

Arch User Repository#Searching is marked by template:Accuracy, though I couldn't see the discussion here. Did I missed something? There are some comments at this forum thread. Regid (talk) 14:21, 5 June 2017 (UTC)

I haven’t started the discussion, because I assume that the first person that has something to say should do that. Since all I had to say was stated in the reason, I was not re-stating the problem here. Also I can’t fix that myself, because I have no idea how exactly AUR search works internally now and if this is just a bug or the current official status is that strings are taken literally. Therefore only marking it with Template:Accuracy. --Mpan (talk) 15:56, 5 June 2017 (UTC)
There is no longer any such section on the page. This discussion appears to be in regard to an older version of the page and perhaps an older version of the AUR. Not sure if this is relevant to the Aurweb RPC interface, but it seems like this discussion could be ready for closure. quequotion (talk) 14:14, 4 December 2018 (UTC)

Markdown Syntax

Should there be a Markdown syntax section? [4][5] All those seem to work: linkDettalk 16:24, 5 December 2017 (UTC)

Oh wow, yes please. I had no idea that this was possible. And it's still unclear to me what syntax it uses. —Ostiensis (talk) 20:52, 5 December 2017 (UTC)
Well, there's a preliminary section: Arch_User_Repository#Comment_syntax. --Dettalk 22:28, 13 December 2017 (UTC)
[6] Well, I don't know how to do that, since they only implemented a small part of it? --Dettalk 22:35, 13 December 2017 (UTC)
Here they use the Python-Markdown library, which "is almost completely compliant with the reference implementation, though there are a few very minor differences." -- Lahwaacz (talk) 22:50, 13 December 2017 (UTC)
Thanks for that. FWIW I've never seen that multiline code syntax before, so I wonder if it *is* some strange home-brew markdown. —Ostiensis (talk) 22:37, 13 December 2017 (UTC)

FAQ - outdated package

Do you understand what the comment means "When we are talking about a package which is flagged out of date for more than 3 months and is in general not updated for a long time, please add this in your orphan request. " ? Kewl (talk) 15:49, 13 January 2018 (UTC)

When people request a package to be orphaned because the current maintainer does not respond to out-of-date notifications, it should be clarified in the request to speed up the resolution. -- Lahwaacz (talk) 18:05, 13 January 2018 (UTC)
Yes indeed and what about the 2 weeks vs the 3 months difference in the comments? This is what I don't get, if this is more than 3 months we should say in the comments "it has been 4 months" but if it has been let say 2 months we should not mention it? The rule is not clear and I am wondering if it is more urgent to find an adopter for a package that has not been updated for 2 years or for 3 weeks. In the latter case it does seem more urgent, rather the opposite then. Kewl (talk) 18:57, 13 January 2018 (UTC)
I think that the 2 weeks are for the maintainers to react to the request, even if it is not due to out-of-date package. Anyway, the FAQ entries are not strict, I doubt that the 3 months are obligatory. -- Lahwaacz (talk) 19:15, 13 January 2018 (UTC)
I have rephrased providing some more details in line with the AUR request template. The 3 months does not seems to be anything official, the 2 weeks neither but sounds reasonable. Feel free to amend or revert. Kewl (talk) 19:41, 13 January 2018 (UTC)

Creating a new package: uploading an existing package to AUR

The "Creating a new package" section should assist two possible workflows: one wherein a user sets out to create an AUR package from scratch, and can thus start with a git clone; and another wherein a user already has a package (be it a git repository or not), then decides to upload it to AUR.

I've added a rewrite of "Uploading packages" to the proposal, hoping to eliminate redundancy between the two sections.

The goals of this proposal are as follows:

  • Reduce listed git commands in the article to those specific to using the AUR (eg, when it is necessary to specify an AUR repository url) by describing the procedure and linking to appropriate sections in the existing Git article. Avoiding a redundant git tutorial has been a point of contention on this article and I think this is the best resolution.
  • Simplify the language of these sections to reduce possible confusion and misinterpretations. I think we can help new users get the hang of this more quickly and reduce the size of the article.
  • Be more technically correct, such as specifying pkgbase instead of "package name" for the AUR remote repository. This may require new users to learn more about PKGBUILDs before attempting to upload one to the AUR, but that is probably a good thing.

With the right wording, and proper integration with other articles in the wiki, we can cover more bases with a smaller article and not leave as many users to bang their heads against the wiki until they figure it out. quequotion (talk) 16:43, 23 November 2018 (UTC)

I think I've done all the nitpicking I need to do here. I'm going to try to leave this alone for a while and wait for feedback. quequotion (talk) 13:58, 24 November 2018 (UTC)
Since you've completely rewritten 2 sections, you need to wait much longer than 3 days. Also, you should gain some positive feedback before merging this. Finally, note that merging proposals from discussion pages or elsewhere is not an excuse to break ArchWiki:Contributing#Do_not_make_complex_edits_at_once, i.e. the merge should not be done in just one edit. -- Lahwaacz (talk) 17:58, 27 November 2018 (UTC)
I understand your concerns. It may have been three days since the last edit, but I have been working on this for a week or so. I did get positive feedback, in #archlinux-wiki. As for splitting up the edits, I wouldn't mind doing one section at a time as long as it's understood that both edits are necessary to avoid redundancy (ie: I can make two edits, one immediately after the other). quequotion (talk) 09:19, 28 November 2018 (UTC)
Hey quequotion, thanks for taking the time to poperly introduce the changes here first, of course as Lahwaacz said it's sensible to wait longer, since there are many proposed modifications and the discussion looked quite "scary" at a glance, I've restructured it a bit also because it wasn't clear how you intended letting other people discuss each change in a tidy way.
About splitting complex changes, ArchWiki:Contributing#Do_not_make_complex_edits_at_once doesn't enforce to apply a specific number of edits (one, two, etc.); it instead recommends to split them "according to the various logical steps needed to complete" them. The edit summary that you used was:
> "Reduce creating and updating package subsections; replace git tutorials with descriptions linked to archwiki git page and git documentation; move comment about remaining git repositories to requests subsection"
I can see at least 4 logical steps there: 1) reduce creating package subsection; 2) reduce updating package subsection; 3) replace git tutorials with descriptions linked to archwiki git page and git documentation; 4) move comment about remaining git repositories to requests subsection.
Based on the number of inline comments in the drafts below, it may even feel more natural to make an edit for each of them, and use your comment as the edit summary ;)
-- Kynikos (talk) 16:43, 28 November 2018 (UTC)
I appreciate that you are trying to support improving the page by recommending a path to merging these changes that might be more acceptable to the other editors. The reason I made the initial edit at once is because it's the cleanest way. Breaking all of the necessary edits into stages will be messy; some things have to be done simultaneously (like moving the warning about git username and email out of one section and into the other, merging a tip into a note in Updating Package Content, etc). If it's really required to be done that way, so long as it is understood that the subsections will be messy and broken until the series of edits is complete. quequotion (talk) 09:50, 29 November 2018 (UTC)
About moving content around, Help:Procedures#Move a section within the same page can easily apply to any portion of content: if you need to move a Warning from one section to another, please open the common supersection (or the whole article) for editing, and move that portion of text in a single edit without changing its content; only reword it in a subsequent edit if needed. In general, those things that have to be done simultaneously as you noted yourself, should indeed be done simultaneously. This doesn't mean doing everything simultaneously, only that specific step. I'm sure that you understand that breaking changes into logical steps means that each small step must be internally coherent, i.e. it should not leave the article in a broken or messy state, unless strictly necessary. It's self evident that splitting a complex change in a series of edits where in the extreme case only one character would be moved at a time is just as illogical and unintelligible as doing everything in a single edit. These patches can be easily merged in a clean and tidy way, this is a good opportunity for you to practise it.
It's already well explained in ArchWiki:Contributing#The 3 fundamental rules, but this is all to make it as easy as possible for everybody now or in the future to follow what you're doing to this article which belongs to all of us.
-- Kynikos (talk) 14:40, 29 November 2018 (UTC)
Subjectively, I agree that making a single edit for each change is a good idea. Objectively, I think in this case it is a recipe for an edit war. I need to know the changes are going to be accepted, in whole, before I break them into stages and make individual edits. I understand the importance of protocol, and I can try to make these edits in as minimal stages as are possible, but I don't want to waste my time. We haven't much discussed the content of my proposal. I am confident these changes are beneficial; they received positive feedback on IRC, but they need feedback on this talk page as well. quequotion (talk) 10:44, 30 November 2018 (UTC)
From the #archlinux-wiki rules:
Always follow the three fundamental rules
Live discussions are not a replacement for proper edit summaries, or article discussion pages. Always follow ArchWiki:Contributing#The 3 fundamental rules.
So yes, you do need to reach an agreement on the talk page; anything on IRC is purely informal. -- Alad (talk) 13:42, 30 November 2018 (UTC)
I've added my feedback. Following the contribution rules isn't a waste of time, maybe a 5kB+ discussion on whether that's actually the case could instead be an example. I'm happy to properly merge the changes on behalf of quequotion. -- Kynikos (talk) 09:56, 2 December 2018 (UTC)
Thank you. I'd rather perform the merges myself. I suppose I should give it a week before I make edits in case there's any further feedback and to avoid giving anyone an aneurysm. By the way, don't be shy about putting Comments in the "Proposal" sections; this is the purpose I created the template for. quequotion (talk) 14:21, 4 December 2018 (UTC)

Current: Creating a new package

In order to create a new, empty, local Git repository for a package, simply git clone the remote repository with the corresponding name. If the package does not exist on AUR yet, you will see the following warning:


Terms like "simply" beg the question "In comparison to what?" and, in my opinion, make this sound in fact more difficult. -- quequotion (talk) 13:58, 24 November 2018 (UTC)

AFAIC I like with your reworded version below, except for the following Comment. -- Kynikos (talk) 08:50, 2 December 2018 (UTC)
$ git clone ssh://aur@aur.archlinux.org/package_name.git
Cloning into 'package_name'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

Technically, AUR repository names should correspond to pkgbase. I think that should be specified here. -- quequotion (talk) 13:58, 24 November 2018 (UTC)

Yeah, ok, that's technically more accurate, but I'd still mention that pkgbase most of the times corresponds to the package name.
Also, links shouldn't be further formatted (in this case it should be pkgbase, not pkgbase), see Help:Style/Formatting_and_punctuation#Links.
-- Kynikos (talk) 14:45, 29 November 2018 (UTC)
Italicization does not concern me in the least, but as you admit it is more technically accurate to specify 'pkgbase' here. It does no one any favors to use inspecific terminology like "package name"; the definition of 'pkgbase' is appropriately provided on the PKGBUILD page (as linked in my proposal) and it would be redundant to define it again here. quequotion (talk) 16:33, 29 November 2018 (UTC)
I don't feel very strongly about this, but without a third opinion I still think that ", which often corresponds to the package name" should be appended to the pkgbase link. -- Kynikos (talk) 08:59, 2 December 2018 (UTC)
What bothers me about it is that we have a pkgname variable, a pkgbase variable, and the words "package name" referring to both. I considered changing the link text to "package name"; but it seems a little dissonant. I think the opportunity to learn about pkgbase is also an important one, in case a user ever decides to upload a split package. quequotion (talk) 12:54, 4 December 2018 (UTC)
I'm fine with your version if we agree on Talk:PKGBUILD#Package name restructuring. -- Kynikos (talk) 17:37, 7 December 2018 (UTC)
Note: When a package on the AUR is deleted, the git repository is not deleted so it is possible for a deleted package's repository to not be empty when cloned if someone is creating a package with the same name.

That's quite a sentence. The statement about what happens when an AUR package is deleted probably belongs in #Other_requests' "deletion" subsection. -- quequotion (talk) 13:58, 24 November 2018 (UTC)

I like your revised Note below, I'm just mentioning that your proposed patch to #Other requests is only visible in [7] (and I'm ok with that too). -- Kynikos (talk) 09:03, 2 December 2018 (UTC)
I didn't go to the trouble of creating another current/proposal section for this change, but it is implied by proposals for both of these sections. In fact, the "Other requests" section itself is in desperate need of a rewrite, and I may get around to proposing that after these changes go through. I'd probably still want to move this statement as part of the currently proposed changes, but the included language implies the situation with deleted AUR remotes well enough that I wouldn't consider the page in a broken state if it were not explicitly stated. quequotion (talk) 12:54, 4 December 2018 (UTC)

If you have already created a git repository, you can simply create a remote for the AUR git repository and then fetch it:

$ git remote add remote_name ssh://aur@aur.archlinux.org/package_name.git
$ git fetch remote_name

As we've been over in regard to this section in particular more than enough times, what is not wanted for the Arch wiki are lists of specific instructions but rather general information from which a procedure can be surmised. Adding git init here may be too specific, but we really should cover the case of converting an existing package into a git repository. If this can be achieved by reducing this section and relying more on existing pages of the wiki I think it would be best all around. -- quequotion (talk) 13:58, 24 November 2018 (UTC)

I like your version below. -- Kynikos (talk) 09:20, 2 December 2018 (UTC)

In the case that package_name matches a "deleted" repository, pushes from a package created this way will be rejected. -- quequotion (talk) 13:58, 24 November 2018 (UTC)

I'm ok with your new Note below. -- Kynikos (talk) 09:20, 2 December 2018 (UTC)

where remote_name is the name of the remote to create (e.g., "origin"). See Git#Using remotes for more information.


This would be more effective if it used language matching that in the Git article. -- quequotion (talk) 13:58, 24 November 2018 (UTC)

Again, ok from me. -- Kynikos (talk) 09:20, 2 December 2018 (UTC)

The new package will appear on AUR after you push the first commit. You can now add the source files to the local copy of the Git repository. See #Uploading packages.


The first two statements should be in the opposite order. -- quequotion (talk) 13:58, 24 November 2018 (UTC)

True. You'd actually remove them here because that's explained in #Proposal: Updating package content, which I agree it makes sense as well. -- Kynikos (talk) 09:20, 2 December 2018 (UTC)
Warning: Your AUR commits will be authored according to your git user name and email address and it is very difficult to change commits after you push them (see FS#45425). If you want to push to AUR under a different name/email, you can change them for this package via git config user.name [...] and git config user.email [...]. Review your commits before pushing them!

The last bit feels like unnecessary hand-holding. It is important, but isn't this something users should learn to do on their own? -- quequotion (talk) 13:58, 24 November 2018 (UTC)

You're referring to the recommendation to "review your commits", ok with removing it.
Also, you're proposing to move the Warning to #Proposal: Updating package content, ok.
-- Kynikos (talk) 09:24, 2 December 2018 (UTC)

Proposal: Creating package repositories

If you are creating a new package from scratch, establish a local Git repository and an AUR remote by cloning the intended pkgbase. If the package does not yet exist, the following warning is expected:

$ git clone ssh://aur@aur.archlinux.org/pkgbase.git
Cloning into 'pkgbase'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
Note: The repository will not be empty if pkgbase matches a deleted package.

If you already have a package, initialize it as a Git repository if it isn't one, and add an AUR remote:

$ git remote add label ssh://aur@aur.archlinux.org/pkgbase.git

Then fetch this remote to initialize it in the AUR.

Note: Pull and rebase to resolve conflicts if pkgbase matches a deleted package.

Current: Uploading packages


At least the title of this section should be changed, as "uploading" (in the sense of creating a remote AUR repository for the package) is already handled above. This section serves to inform users on how to update or upload new package content. -- quequotion (talk) 13:58, 24 November 2018 (UTC)

I'd go for something that makes it clearer that this is still about "uploading" the new content to the AUR. Maybe something like "Release a new package version" or "Publish new package content" or similar? -- Kynikos (talk) 09:30, 2 December 2018 (UTC)
I like "Publish" because it covers both initial upload and subsequent updates; this is what I was going for with the new title. quequotion (talk) 13:31, 4 December 2018 (UTC)
I see that you changed the draft title to "Publish package content", however omitting "new" misses the "updating" part of the concept, i.e. the section may be mistaken as only regarding the first upload. -- Kynikos (talk) 17:42, 7 December 2018 (UTC)

The procedure for uploading packages to the AUR is the same for new packages and package updates. You need at least PKGBUILD and .SRCINFO in the top-level directory to push your package to AUR.


While we're at it, I'd explicitly remind to update pkgver or at least pkgrel. -- Kynikos (talk) 09:34, 2 December 2018 (UTC)

I was also tempted to do this, but I am on the fence about it. At the moment, AUR does not require every upload to have a new pkgver or pkgrel, and that can be conveniently abused if you are pushing very minor changes (fixing a typo, etc). For comparison, publishing a pacakge in a Launchpad PPA requires a source package with a different package version for every single upload, which can become a nightmare of nonsensical numbers very quickly. pkgver updates are mentioned in the merged .SRCINFO note, and this may be sufficient. quequotion (talk) 13:31, 4 December 2018 (UTC)
Note: You need to regenerate the .SRCINFO every time you change PKGBUILD metadata, such as pkgver() updates. Otherwise the AUR will not show the updated version numbers.

@quequotion, why would you merge this Note with the "forgot to commit the .SRCINFO" Tip below? I find it confusing. -- Kynikos (talk) 09:37, 2 December 2018 (UTC)

Because they both are on the topic of .SRCINFO. I think it is more confusing if you are considering where this text came from than encountering it for the first time. The purpose is to make sure users understand that .SRCINFO should be included and updated in every commit--which overlaps with your concern about pkgrel and pkgver. Perhaps they would make more sense in the opposite order. quequotion (talk) 14:25, 4 December 2018 (UTC)

To upload, add the PKGBUILD, .SRCINFO, and any helper files (like .install files or local source files like .patch) to the staging area with git add, commit them to your local tree with a commit message with git commit, and finally publish the changes to the AUR with git push.

For example:

$ makepkg --printsrcinfo > .SRCINFO
$ git commit -m "useful commit message"
$ git push

This list of specific commands could probably be shortened or removed. -- quequotion (talk) 13:58, 24 November 2018 (UTC)

I don't know, if this was the article for some third-party software I'd agree, but this is the reference document that people use to publish packages to the AUR, I think it can be nice to show an example of how everything is supposed to work together without delving into makepkg or git details of course. -- Kynikos (talk) 09:41, 2 December 2018 (UTC)
The lists of git commands have been a contentious issue on this page for some time. I have been in too many discussions of them on this talk page. It's really an issue of ArchWiki style, and there are probably other pages that could stand to reduce their lists of explicit commands to things for which no sufficient ArchWiki or third-party documentation can be linked or that are specific to using Archlinux, the AUR, etc. quequotion (talk) 13:31, 4 December 2018 (UTC)
  • If you initially forgot to commit the .SRCINFO and added it in a later commit, the AUR will still reject your pushes because the .SRCINFO must exist for every commit. To solve this problem you can use git rebase with the --root option or git filter-branch with the --tree-filter option.
  • To prevent untracked files from commits and to keep the working directory as clean as possible, exclude all files with .gitignore and force-add files instead. See dotfiles#Using gitignore.

The git filter-branch --tree-filter method is rather involved. It may be sufficient to recommend something like "filter the git tree or rewrite the git history, such as with git rebase --root" and let users with greater git expertise figure out about --tree-filter for themselves -- quequotion (talk) 13:58, 24 November 2018 (UTC)

Your draft below has an even shorter version. I'd mention the rebase method before tree-filter, and I'd find a way to explicitly mention the --root option, something like "[...] add it by rebasing with --root or filtering the tree, so [...]". -- Kynikos (talk) 09:48, 2 December 2018 (UTC)
I can definetly switch them around. I was considering removing the --tree-filter method altogether because I can't figure out how it is supposed to work, but I trust that whoever put it on the page is better at git than I am. My concern with specifying "--root" is the same as with the lists of git commands: the page shouldn't be redundantly a git tutorial. I used language in the link text ("rebasing all commits") that matches language in the linked git documentation ("rebase all commits") in the hopes that someone following this link (to the --root option) will easily figure out what they need to do. quequotion (talk) 13:31, 4 December 2018 (UTC)

Proposal: Publishing package content

Warning: Your commits will be authored with your global Git name and email address. It is very difficult to change commits after pushing them (FS#45425). If you want to push to the AUR under different credentials, you can change them per package with git config user.name "..." and git config user.email "...".

To upload or update a package, add at least PKGBUILD and .SRCINFO, then any additional new or modified helper files (such as .install files or local source files such as patches), commit with a meaningful commit message, and finally push the changes to the AUR.

Note: If .SRCINFO was not included in your first commit, add it by rebasing all commits or filtering the tree so the AUR will permit your initial push. Be sure to regenerate .SRCINFO whenever PKGBUILD metadata changes, such as pkgver() updates; otherwise the AUR will not show updated version numbers.
Tip: To keep the working directory and commits as clean as possible, create a .gitignore that excludes all files and force-add files as needed.