mirror of
https://github.com/Jguer/yay.git
synced 2025-12-27 12:21:35 -05:00
Documented and fixed docker release process
This commit is contained in:
61
CONTRIBUTING.md
Normal file
61
CONTRIBUTING.md
Normal file
@@ -0,0 +1,61 @@
|
||||
## Contributing to yay
|
||||
|
||||
Contributors are always welcome!
|
||||
|
||||
If you plan to make any large changes or changes that may not be 100% agreed
|
||||
on, we suggest opening an issue detailing your ideas first.
|
||||
|
||||
Otherwise send us a pull request and we will be happy to review it.
|
||||
|
||||
### Dependencies
|
||||
|
||||
Yay depends on:
|
||||
|
||||
- go (make only)
|
||||
- git
|
||||
- base-devel
|
||||
|
||||
Note: Yay also depends on a few other projects (as vendored dependencies). These
|
||||
projects are stored in `vendor/`, are built into yay at build time, and do not
|
||||
need to be installed separately. These files are managed as go modules and should not be modified manually.
|
||||
|
||||
Following are the dependencies managed as go modules:
|
||||
|
||||
- https://github.com/Jguer/go-alpm
|
||||
- https://github.com/Morganamilo/go-srcinfo
|
||||
- https://github.com/Morganamilo/go-pacmanconf
|
||||
- https://github.com/mikkeloscar/aur
|
||||
|
||||
### Building
|
||||
|
||||
Run `make` to build Yay. This command will generate a binary called `yay` in
|
||||
the same directory as the Makefile.
|
||||
|
||||
Note: Yay's Makefile sources its dependencies from `vendor/`. When
|
||||
building manually, dependencies will instead be sourced from `GOPATH`. To
|
||||
build against `vendor/` you must specify `-mod=vendor` in the build command.
|
||||
|
||||
#### Docker Release
|
||||
|
||||
`make docker-release` will build the release packages for `aarch64` and for `x86_64`.
|
||||
|
||||
For `aarch64` to run on a `x86_64` platform `qemu-user-static(-bin)` must be
|
||||
installed.
|
||||
|
||||
```
|
||||
docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||
```
|
||||
|
||||
will register QEMU in the build agent. ARM builds tend to crash sometimes but
|
||||
repeated runs tend to succeed.
|
||||
|
||||
### Code Style
|
||||
|
||||
All code should be formatted through `go fmt`. This tool will automatically
|
||||
format code for you. We recommend, however, that you write code in the proper
|
||||
style and use `go fmt` only to catch mistakes.
|
||||
|
||||
### Testing
|
||||
|
||||
Run `make test` to test Yay. This command will verify that the code is
|
||||
formatted correctly, run the code through `go vet`, and run unit tests.
|
||||
4
Makefile
4
Makefile
@@ -60,7 +60,7 @@ release: | test build
|
||||
|
||||
docker-release-aarch64:
|
||||
docker build -f build/aarch64.Dockerfile -t yay-aarch64:${VERSION} .
|
||||
docker create --name yay-aarch64 yay-aarch64:${VERSION}
|
||||
docker run --name yay-aarch64 yay-aarch64:${VERSION}
|
||||
docker cp yay-aarch64:${PKGNAME}_${VERSION}_aarch64.tar.gz ${PKGNAME}_${VERSION}_aarch64.tar.gz
|
||||
docker container rm yay-aarch64
|
||||
|
||||
@@ -70,6 +70,8 @@ docker-release-x86_64:
|
||||
docker cp yay-x86_64:${PKGNAME}_${VERSION}_x86_64.tar.gz ${PKGNAME}_${VERSION}_x86_64.tar.gz
|
||||
docker container rm yay-x86_64
|
||||
|
||||
docker-release: | docker-release-x86_64 docker-release-aarch64
|
||||
|
||||
package: release
|
||||
tar -czvf ${PACKAGE}.tar.gz ${PACKAGE}
|
||||
clean:
|
||||
|
||||
149
README.md
149
README.md
@@ -4,7 +4,7 @@ Yet Another Yogurt - An AUR Helper Written in Go
|
||||
|
||||
#### Packages
|
||||
|
||||
[](https://aur.archlinux.org/packages/yay/) [](https://aur.archlinux.org/packages/yay-bin/) [](https://aur.archlinux.org/packages/yay-git/) [](https://github.com/Jguer/yay/blob/master/LICENSE)
|
||||
[](https://aur.archlinux.org/packages/yay/) [](https://aur.archlinux.org/packages/yay-bin/) [](https://aur.archlinux.org/packages/yay-git/) [](https://github.com/Jguer/yay/blob/master/LICENSE)
|
||||
|
||||
## Objectives
|
||||
|
||||
@@ -13,22 +13,22 @@ So say hi to 20+1.
|
||||
|
||||
Yay is based on the design of [yaourt](https://github.com/archlinuxfr/yaourt), [apacman](https://github.com/oshazard/apacman) and [pacaur](https://github.com/rmarquis/pacaur). It is developed with these objectives in mind:
|
||||
|
||||
* Provide an interface for pacman
|
||||
* Yaourt-style interactive search/install
|
||||
* Minimal dependencies
|
||||
* Minimize user input
|
||||
* Know when git packages are due for upgrades
|
||||
- Provide an interface for pacman
|
||||
- Yaourt-style interactive search/install
|
||||
- Minimal dependencies
|
||||
- Minimize user input
|
||||
- Know when git packages are due for upgrades
|
||||
|
||||
## Features
|
||||
|
||||
* Perform advanced dependency solving
|
||||
* Download PKGBUILDs from ABS or AUR
|
||||
* Tab-complete the AUR
|
||||
* Query user up-front for all input (prior to starting builds)
|
||||
* Narrow search terms (`yay linux header` will first search `linux` and then narrow on `header`)
|
||||
* Find matching package providers during search and allow selection
|
||||
* Remove make dependencies at the end of the build process
|
||||
* Run without sourcing PKGBUILD
|
||||
- Perform advanced dependency solving
|
||||
- Download PKGBUILDs from ABS or AUR
|
||||
- Tab-complete the AUR
|
||||
- Query user up-front for all input (prior to starting builds)
|
||||
- Narrow search terms (`yay linux header` will first search `linux` and then narrow on `header`)
|
||||
- Find matching package providers during search and allow selection
|
||||
- Remove make dependencies at the end of the build process
|
||||
- Run without sourcing PKGBUILD
|
||||
|
||||
## Installation
|
||||
|
||||
@@ -36,6 +36,7 @@ If you are migrating from another AUR helper, you can simply install Yay with th
|
||||
|
||||
Alternatively, the initial installation of Yay can be done by cloning the PKGBUILD and
|
||||
building with makepkg:
|
||||
|
||||
```sh
|
||||
git clone https://aur.archlinux.org/yay.git
|
||||
cd yay
|
||||
@@ -54,116 +55,80 @@ Reports should be made using makepkg and include the full output as well as any
|
||||
other relevant information. Never make reports using Yay or any other external
|
||||
tools.
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributors are always welcome!
|
||||
|
||||
If you plan to make any large changes or changes that may not be 100% agreed
|
||||
on, we suggest opening an issue detailing your ideas first.
|
||||
|
||||
Otherwise send us a pull request and we will be happy to review it.
|
||||
|
||||
### .endencies
|
||||
|
||||
Yay depends on:
|
||||
|
||||
* go (make only)
|
||||
* git
|
||||
* base-devel
|
||||
|
||||
Note: Yay also depends on a few other projects (as vendored dependencies). These
|
||||
projects are stored in `vendor/`, are built into yay at build time, and do not
|
||||
need to be installed separately. These files are managed as go modules and should not be modified manually.
|
||||
|
||||
Following are the dependencies managed as go modules:
|
||||
|
||||
* https://github.com/Jguer/go-alpm
|
||||
* https://github.com/Morganamilo/go-srcinfo
|
||||
* https://github.com/Morganamilo/go-pacmanconf
|
||||
* https://github.com/mikkeloscar/aur
|
||||
|
||||
### Building
|
||||
|
||||
Run `make` to build Yay. This command will generate a binary called `yay` in
|
||||
the same directory as the Makefile.
|
||||
|
||||
Note: Yay's Makefile sources its dependencies from `vendor/`. When
|
||||
building manually, dependencies will instead be sourced from `GOPATH`. To
|
||||
build against `vendor/` you must specify `-mod=vendor` in the build command.
|
||||
|
||||
### Code Style
|
||||
|
||||
All code should be formatted through `go fmt`. This tool will automatically
|
||||
format code for you. We recommend, however, that you write code in the proper
|
||||
style and use `go fmt` only to catch mistakes.
|
||||
|
||||
### Testing
|
||||
|
||||
Run `make test` to test Yay. This command will verify that the code is
|
||||
formatted correctly, run the code through `go vet`, and run unit tests.
|
||||
|
||||
## Frequently Asked Questions
|
||||
|
||||
#### Yay does not display colored output. How do I fix it?
|
||||
Make sure you have the `Color` option in your `/etc/pacman.conf`
|
||||
(see issue [#123](https://github.com/Jguer/yay/issues/123)).
|
||||
|
||||
Make sure you have the `Color` option in your `/etc/pacman.conf`
|
||||
(see issue [#123](https://github.com/Jguer/yay/issues/123)).
|
||||
|
||||
#### Yay is not prompting to skip packages during system upgrade.
|
||||
The default behavior was changed after
|
||||
[v8.918](https://github.com/Jguer/yay/releases/tag/v8.918)
|
||||
(see [3bdb534](https://github.com/Jguer/yay/commit/3bdb5343218d99d40f8a449b887348611f6bdbfc)
|
||||
and issue [#554](https://github.com/Jguer/yay/issues/554)).
|
||||
To restore the package-skip behavior use `--combinedupgrade` (make
|
||||
it permanent by appending `--save`). Note: skipping packages will leave your
|
||||
system in a
|
||||
[partially-upgraded state](https://wiki.archlinux.org/index.php/System_maintenance#Partial_upgrades_are_unsupported).
|
||||
|
||||
The default behavior was changed after
|
||||
[v8.918](https://github.com/Jguer/yay/releases/tag/v8.918)
|
||||
(see [3bdb534](https://github.com/Jguer/yay/commit/3bdb5343218d99d40f8a449b887348611f6bdbfc)
|
||||
and issue [#554](https://github.com/Jguer/yay/issues/554)).
|
||||
To restore the package-skip behavior use `--combinedupgrade` (make
|
||||
it permanent by appending `--save`). Note: skipping packages will leave your
|
||||
system in a
|
||||
[partially-upgraded state](https://wiki.archlinux.org/index.php/System_maintenance#Partial_upgrades_are_unsupported).
|
||||
|
||||
#### Sometimes diffs are printed to the terminal, and other times they are paged via less. How do I fix this?
|
||||
Yay uses `git diff` to display diffs, which by default tells less not to
|
||||
page if the output can fit into one terminal length. This behavior can be
|
||||
overridden by exporting your own flags (`export LESS=SRX`).
|
||||
|
||||
Yay uses `git diff` to display diffs, which by default tells less not to
|
||||
page if the output can fit into one terminal length. This behavior can be
|
||||
overridden by exporting your own flags (`export LESS=SRX`).
|
||||
|
||||
#### Yay is not asking me to edit PKGBUILDS, and I don't like the diff menu! What can I do?
|
||||
`yay --editmenu --nodiffmenu --save`
|
||||
|
||||
`yay --editmenu --nodiffmenu --save`
|
||||
|
||||
#### How can I tell Yay to act only on AUR packages, or only on repo packages?
|
||||
`yay -{OPERATION} --aur`
|
||||
`yay -{OPERATION} --repo`
|
||||
|
||||
`yay -{OPERATION} --aur`
|
||||
`yay -{OPERATION} --repo`
|
||||
|
||||
#### An `Out Of Date AUR Packages` message is displayed. Why doesn't Yay update them?
|
||||
This message does not mean that updated AUR packages are available. It means
|
||||
the packages have been flagged out of date on the AUR, but
|
||||
their maintainers have not yet updated the `PKGBUILD`s
|
||||
(see [outdated AUR packages](https://wiki.archlinux.org/index.php/Arch_User_Repository#Foo_in_the_AUR_is_outdated.3B_what_should_I_do.3F)).
|
||||
|
||||
This message does not mean that updated AUR packages are available. It means
|
||||
the packages have been flagged out of date on the AUR, but
|
||||
their maintainers have not yet updated the `PKGBUILD`s
|
||||
(see [outdated AUR packages](https://wiki.archlinux.org/index.php/Arch_User_Repository#Foo_in_the_AUR_is_outdated.3B_what_should_I_do.3F)).
|
||||
|
||||
#### Yay doesn't install dependencies added to a PKGBUILD during installation.
|
||||
Yay resolves all dependencies ahead of time. You are free to edit the
|
||||
PKGBUILD in any way, but any problems you cause are your own and should not be
|
||||
reported unless they can be reproduced with the original PKGBUILD.
|
||||
|
||||
Yay resolves all dependencies ahead of time. You are free to edit the
|
||||
PKGBUILD in any way, but any problems you cause are your own and should not be
|
||||
reported unless they can be reproduced with the original PKGBUILD.
|
||||
|
||||
#### I know my `-git` package has updates but yay doesn't offer to update it
|
||||
|
||||
Yay uses an hash cache for development packages. Normally it is updated at the end of the package install with the message `Found git repo`.
|
||||
If you transition between aur helpers and did not install the devel package using yay at some point, it is possible it never got added to the cache. `yay -Y --gendb` will fix the current version of every devel package and start checking from there.
|
||||
|
||||
#### I want to help out!
|
||||
|
||||
Check `CONTRIBUTING.md` for more information.
|
||||
|
||||
## Examples of Custom Operations
|
||||
|
||||
`yay <Search Term>`
|
||||
`yay <Search Term>`
|
||||
Present package-installation selection menu.
|
||||
|
||||
`yay -Ps`
|
||||
`yay -Ps`
|
||||
Print system statistics.
|
||||
|
||||
`yay -Yc`
|
||||
`yay -Yc`
|
||||
Clean unneeded dependencies.
|
||||
|
||||
`yay -G <AUR Package>`
|
||||
`yay -G <AUR Package>`
|
||||
Download PKGBUILD from ABS or AUR.
|
||||
|
||||
`yay -Y --gendb`
|
||||
`yay -Y --gendb`
|
||||
Generate development package database used for devel update.
|
||||
|
||||
`yay -Syu --devel --timeupdate`
|
||||
Perform system upgrade, but also check for development package updates and use
|
||||
`yay -Syu --devel --timeupdate`
|
||||
Perform system upgrade, but also check for development package updates and use
|
||||
PKGBUILD modification time (not version number) to determine update.
|
||||
|
||||
## Images
|
||||
|
||||
@@ -9,5 +9,5 @@ RUN pacman -Sy; pacman --noconfirm -S gcc go git tar make
|
||||
|
||||
ADD . .
|
||||
|
||||
ARG MAKE_ARG=package
|
||||
ARG MAKE_ARG="package"
|
||||
RUN make ${MAKE_ARG}
|
||||
|
||||
Reference in New Issue
Block a user