commit f13c9b63052cfb0b2ec69f9442edb2db0442768f
parent 23a65d9fa371c2b1660c673bc85ae8e14cedb053
Author: aabacchus <ben@bvnf.space>
Date: Mon, 16 May 2022 01:24:36 +0100
Style Guide: remove (now in wiki/kiss)
Diffstat:
1 file changed, 0 insertions(+), 473 deletions(-)
diff --git a/wiki/Style_Guide/index.txt b/wiki/Style_Guide/index.txt
@@ -1,473 +0,0 @@
-PACKAGE STYLE GUIDE
-________________________________________________________________________________
-
-This document is a style guide which will double as documentation for a possible
-package linter in the future. Every package in the Official Repositories and the
-Community repository adheres to this style guide.
-
-NOTE: Exceptions are made where it makes sense.
-
-
-MAINTAINERSHIP
-________________________________________________________________________________
-
-* Each package has a set maintainer stored via git commits. Use 'git log' or
- 'kiss-maintainer pkg' to find the maintainer's contact information.
-
-* Only the maintainer of a package has the ability to make changes to said
- package. Any pull requests by a non-maintainer for a package will be closed.
-
-* If you would like to make a change to an existing package, contact the
- maintainer and they will do so on your behalf.
-
-* If the maintainer leaves a package out of date and does not respond in a
- reasonable time frame, the package will be orphaned and up for grabs.
-
-* If no one steps forward to adopt an orphaned package, it will be dropped from
- the repositories.
-
-
-GENERAL
-________________________________________________________________________________
-
-
- [0000]----------------------------------------------------------------------
-
- Package is not suitable for inclusion in the Community repository. The same
- rules above may apply to other software at the discretion of the BDFL.
-
- Examples: ConsoleKit, dbus, electron, gettext, gtk2, intltool, libsn,
- logind, pam, pipewire, polkit, pulseaudio, systemd, wayland and
- all Desktop Environments.
-
-
- [0001]----------------------------------------------------------------------
-
- No new packages shall use Python 2 as it will be removed once Chromium drops
- it as a dependency.
-
-
- [0002]----------------------------------------------------------------------
-
- Packages which are binaries should contain the suffix '-bin' to reflect
- this fact. Similarly, packages which pull from git should contain the
- suffix '-git'. The version of git packages should also be set to 'git'.
-
-
-
-BUILD
-________________________________________________________________________________
-
-
- [0200]----------------------------------------------------------------------
-
- This guide should be used alongside shellcheck and not in place of it.
-
-
- [0201]----------------------------------------------------------------------
-
- All shell code must pass the shellcheck linter. Any false-positives or
- intended behavior must have a rationale attached with the exclusion.
-
- # Disable warning as CFLAGS must work this way.
- # shellcheck disable=2086
- "${CC:-cc}" $CFLAGS ...
-
-
- [0202]----------------------------------------------------------------------
-
- Use 4 spaces for indentation.
-
-
- [0203]----------------------------------------------------------------------
-
- Lines should not exceed 80 characters in length.
-
-
- [0204]----------------------------------------------------------------------
-
- All packages must use the POSIX shell shebang with '-e' to exit on error.
- Additionally, '-ef' can be used if word-splitting is required.
-
- There must also be a blank line directly below the shebang.
-
- #!/bin/sh -e
-
- # Code starts here.
-
-
- [0205]----------------------------------------------------------------------
-
- All comments must start with a capital letter and use proper spelling,
- grammar and punctuation.
-
- # This is a comment.
-
-
- [0206]----------------------------------------------------------------------
-
- Leave comments to explain *why* the code is needed and not *what* it does.
-
- Bad:
-
- # Create a directory.
- mkdir -p "$1/usr/bin"
-
- Good:
-
- # 'make install' doesn't create the directory.
- mkdir -p "$1/usr/bin"
-
-
- [0207]----------------------------------------------------------------------
-
- Avoid adding braces around variables if unneeded.
-
- Bad: printf '%s\n' "${var}"
- Good: printf '%s\n' "$var"
- Good: printf '%s\n' "${var}.${var2}"
-
-
- [0208]----------------------------------------------------------------------
-
- Avoid quotes when unneeded.
-
- Bad: [ "$var" = "test" ]
- Good: [ "$var" = test ]
-
- Bad: install -Dm755 "file" "$1/usr/bin/file"
- Good: install -Dm755 file "$1/usr/bin/file"
-
-
- [0209]----------------------------------------------------------------------
-
- Quote entire strings instead of variables.
-
- Bad: install -Dm644 cat "$1"/usr/bin/cat
- Good: install -Dm644 cat "$1/usr/bin/cat"
-
-
- [0210]----------------------------------------------------------------------
-
- Align arguments in blocks of command calls.
-
- Bad:
-
- install -D file.h "$1/usr/include/file.h"
- install -D libfile.so "$1/usr/lib/libfile.so"
-
- Good:
-
- install -D file.h "$1/usr/include/file.h"
- install -D libfile.so "$1/usr/lib/libfile.so"
-
-
- [0211]----------------------------------------------------------------------
-
- Use 'install' instead of ...
-
- Bad:
-
- mkdir -p "$1/usr/bin"
- cp ls "$1/usr/bin/"
-
- Good:
-
- install -Dm755 ls "$1/usr/bin/ls"
-
-
- [0212]----------------------------------------------------------------------
-
- Prefer $CC to ...
-
- Bad: gcc -o file file.c
- Good: "${CC:-cc}" -o file file.c
-
-
- [0213]----------------------------------------------------------------------
-
- Always use '-p' with 'mkdir'.
-
-
-
-GNU AUTOTOOLS
-________________________________________________________________________________
-
-
- [0400]----------------------------------------------------------------------
-
- Use the following style:
-
- ./configure \
- --prefix=/usr \
- --more_args_here
-
- make
- make DESTDIR="$1" install
-
-
- [0401]----------------------------------------------------------------------
-
- Avoid running ./autogen.sh, autoreconf or similar tools prior to starting
- the build process. If there are no pre-generated configure or Makefiles, an
- alternate source must be sought.
-
- An exception can be made for packages in which no such source exists. If
- autogen.sh or autoreconf are required, prefer autoreconf.
-
-
-
-MESON
-________________________________________________________________________________
-
-
- [0600]----------------------------------------------------------------------
-
- Use the following style:
-
- export DESTDIR="$1"
-
- meson \
- --prefix=/usr \
- -Dexample=false \
- . output
-
- ninja -C output
- ninja -C output install
-
-
-
-CMAKE
-________________________________________________________________________________
-
-
- [0800]----------------------------------------------------------------------
-
- Use the following style:
-
- export DESTDIR="$1"
-
- cmake -B build \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DFLAG=1
-
- cmake --build build
- cmake --install build
-
-
-
-MAKE
-________________________________________________________________________________
-
-
- [1000]----------------------------------------------------------------------
-
- Use one of the following style when applicable:
-
- make
- make DESTDIR="$1" PREFIX=/usr install
-
-
- make PREFIX=/usr
- make DESTDIR="$1" install
-
-
- make PREFIX=/usr
- make DESTDIR="$1" PREFIX=/usr install
-
-
- For packages which require a few variables be set, prefer this style.
-
- make \
- PREFIX=/usr \
- SBINDIR=/usr/bin \
- OPT="$CFLAGS"
-
- make \
- DESTDIR="$1" \
- PREFIX=/usr \
- install
-
-
- For packages which require the variables be set for all calls to make,
- prefer this style.
-
- mk() {
- make \
- PREFIX=/usr \
- DESTDIR="$1" \
- EXAMPLE=1 \
- "$@"
- }
-
- mk
- mk install
-
-
-
-RUST
-________________________________________________________________________________
-
-
- [1050]----------------------------------------------------------------------
-
- Use the following style:
-
- cargo build --release
-
- install -Dm755 target/release/rg "$1/usr/bin/rg"
-
-
-
-GO
-________________________________________________________________________________
-
-
- [1100]----------------------------------------------------------------------
-
- Use the following style:
-
- export GOPATH="$PWD/go"
- export GO111MODULE=on
-
- go build \
- -modcacherw \
- -trimpath
-
- install -Dm755 lazygit "$1/usr/bin/lazygit"
-
- Note: If the directory 'vendor' is available in the root directory of the
- source, the preffered method is to omit GOPATH and GO111MODULE and use:
-
- go build \
- -mod=vendor \
- -further-options
-
- to prevent cluttering $HOME and enable offline building.
-
-PYTHON
-________________________________________________________________________________
-
-
- [1150]----------------------------------------------------------------------
-
- Use the following style:
-
- python setup.py build
- python setup.py install --prefix=/usr --root="$1"
-
-
-
-DEPENDS
-________________________________________________________________________________
-
-
- [1201]----------------------------------------------------------------------
-
- This dependency is unneeded and can be removed.
-
-
- [1202]----------------------------------------------------------------------
-
- This dependency is implicit. Some packages are assumed to always be
- available. This dependency can be removed.
-
- Examples: gcc, make, musl.
-
-
- [1203]----------------------------------------------------------------------
-
- This dependency needs 'make' as it is only required during build time.
-
- Common Examples: autoconf, automake, cmake, meson.
-
-
- [1204]----------------------------------------------------------------------
-
- This dependency doesn't need 'make' as it is required during runtime.
-
-
- [1205]----------------------------------------------------------------------
-
- The depends list must be sorted.
-
-
- [1206]----------------------------------------------------------------------
-
- The depends file is empty and should be removed.
-
-
-
-SOURCES
-________________________________________________________________________________
-
-
- [1401]----------------------------------------------------------------------
-
- Use a HTTPS source if at all possible.
-
-
- [1402]----------------------------------------------------------------------
-
- Don't specify patches remotely. Store them as a part of the package's
- repository files.
-
- Bad: https://example.com/fix-build.patch
- Good: patches/fix-build.patch
-
-
- [1403]----------------------------------------------------------------------
-
- Don't use a git repository in place of a release tarball unless it makes
- sense to do so.
-
-
- [1404]----------------------------------------------------------------------
-
- Drop www. and .git from all sources if possible.
-
-
-
-VERSION
-________________________________________________________________________________
-
-
- [1601]----------------------------------------------------------------------
-
- Version doesn't match upstream.
-
-
- [1602]----------------------------------------------------------------------
-
- Use 'git' in place of '9999'.
-
-
- [1603]----------------------------------------------------------------------
-
- Missing relative version number.
-
- Bad: 1.0.0
- Good: 1.0.0 1
-
-
-
-PATCHES
-________________________________________________________________________________
-
-
- [1800]----------------------------------------------------------------------
-
- Use the following style:
-
- patch -p1 < patch.patch
-
- # If there is more than one patch.
- for patch in *.patch; do
- patch -p1 < "$patch"
- done
-
-
- [1801]----------------------------------------------------------------------
-
- All patches should use the same strip amount. If this is not possible,
- modify the patches. Strip amount is controlled by the -p flag.