NEWS IS DEPRECATED, do (see changelogs/$pkgver) for automatically generated
changelogs for an specific version

CHANGES In 19.8.3:

- apkbuild-fixer now accepts `-s` for only fixing violations apkbuild-lint
  is certain are not false positives
- apkbuild-fixer now prints usage and options when passed `-h`
- rewrite apkbuild-fixer.1 to conform to recent changes
- add a table of all violations currently recognized to alint.5

CHANGES in 19.8.2:

- Make apkbuild-fixer return exit code based on how many APKBUILDs were
  changed

CHANGES in 19.8.1:

- Fix shellcode error in apkbuild-fixer, do-loops should end with done
  instead of fi

CHANGES in 19.8.0:

- AL1 now checks for _builddir having the default value and recommending
  its removal
- Add tests for checking changes in AL1
- Rewrite apkbuild-fixer to be more reliable and work with a single call
  to apkbuild-lint, also allow specifying apkbuild-lint binary with -p,

CHANGES In 19.7.1:

- AL13 now checks for 'cd "$_builddir"' as this is very common in super
  old APKBUILDs
- Add tests for checking new changes in AL13

CHANGES in 19.7.0:

- AL55 will no longer try to check every statement caught in the same
  line as -DCMAKE_BUILD_TYPE, this avoids lots of false positives
- AL58 is now part of aports-lint as it requires accessing other files.
  apkbuild-lint is meant to be used solely on the apkbuild with no external
  access, all code and tests were moved from apkbuild-lint to aports-lint.
- AL58 now prints where inside the source= variable the offending patch
  is located.
- aports-lint will no longer return in every single occasion

CHANGES in 19.6.4:

- cpan* variables are no longer recognized
- pcprefix is now recognized as a variable

CHANGES in 19.6.3:

- AL55 now properly deal with APKBUILDs that have multiple invocations of -DCMAKE_BUILD_TYPE

CHANGES in 19.6.2:

- AL55 should now check for SKIP_AL55, not SKIP_AL56
- AL55 will now print AL55, not AL56, in its error message
- Perform various linting fixes to apkbuild-lint
- Add simple tests for AL55
- AL6 no longer checks for strings starting with '-' as
 it is an invalid character in variables

CHANGES in 19.6.1:

- Escape '{' and '}' when passing URLs of source= for checking
 this fixes AL29 and AL60
- Add 'lib64' to the accepted options as this is now used by
 abuild to ignore installing to /usr/lib64

CHANGES in 19.6.0:

- Make shellcheck lint against ash shell on all binaries
- Document AL61
- Implement AL61 with initial bad_versions
- Fix some linting warnings on apkbuild-lint
- Implement tests for AL61

CHANGES in 19.5.5:

- Fix apkbuild-fixer usage of sort (now uses sort -n)
- apkbuild-fixer now automatically rewrites CMAKE_BUILD_TYPE= to None
- Fix typo in alint.5

CHANGES in 19.5.4:

- Correct the manpage of secfixes-check to not mention standard error
- Make secfixes-check write to standard output

CHANGES in 19.5.3:

- Make AL56 properly detect when a remote patch is renamed locally with ::
- Add tests for AL56

CHANGES in 19.5.2:

- Add _distill() helper function to get all strings of a variable
- Make _distill() deal with unquoted variables
- Make AL60 check for 'pull' instead of 'pulls'

CHANGES in 19.5.1:

- Check if source is a single line and distill it differently

CHANGES in 19.5.0:

- Adapt README.md to changes in dependency requirements
- Fix typo in AL32, unnecesary->unnecessary
- Adapt tests for typo fix in AL32
- Fix typo in titles of tests for secfixes-check hyphtens->hyphens
- Document remote-patch-from-live-source [AL60]
- Implement [AL60]
- Add tests for [AL60]
- Fix typos in alint.5
- Provide distilled_source as a iterable-list of variables in $source
- Make pkgname-used-in-source [AL29] use distilled_source
- Adapt existing tests and implement new ones for changes in [AL29]
- XFAIL test that works manually but fails in bats

CHANGES in 19.4.2:

- Implement duplicate-identifiers [AL59] and tests for it
- Adapt other tests for [AL59]
- Use tr instead of paste for apkbuild-fixer
- Don't verify if the yaml passed is valid for now it will
 be fixed later

CHANGES in 19.4.1:

- Make deprecated-packages [AL58] search harder for APKBUILDs of
 deprecated packages

CHANGES in 19.4.0:

- Add deprecated-packages [AL58], which checks depends, makedepends
 and checkdepends for packages that have been blacklisted

CHANGES in 19.3.3:

- Fix default-builddir-value [AL1] choking up on pkgnames that start
 with a hyphen

CHANGES In 19.3.2:

- Add exceptions for default-builddir-value [AL1] based on the
 values found in scripts/bootstrap.sh in Alpine Linux's aports
 repository.
- Allow users to specify packages that are exempt from the checks
 from default-builddir-value [AL1] with the CUSTOM_BOOTSTRAP_PACKAGES
 variable

CHANGES in 19.3.1:

- missing-patch-description [AL56] now ignores remote patches
- rewrite NEWS to use [ALXX] instead of (ALXX)

CHANGES in 19.3.0:

- Add missing-patch-description [AL56]
- Fix location of invalid-option [AL49] in alint.5
- Add invalid-arch [AL57]
- Document CUSTOM_VALID_OPTIONS for invalid-option [AL49]

CHANGES in 19.2.2:

- make build-type-not-none [AL55] not consider every call wrong

CHANGES in 19.2.1:

- Fix typo in implementation of build-type-not-none [AL55]

CHANGES in 19.2.0:

- Add a test for CUSTOM_VALID_OPTIONS (thanks @ollieparanoid)
- Add build-type-not-none [AL55]

CHANGES in 19.1.3:

- Implement tests for secfixes-check
- Adapt gitlab-ci to run those tests
- Update README to deal with changes above
- Fix AL39 triggering when only AL40 actually happened
- Environment variable CUSTOM_VARIABLE_OPTIONS can be used
 to add more variables that can be used inside the options=
 variable in an APKBUILD (thanks @ollieparanoid)
- Document CUSTOM_VALID_OPTIONS in apkbuild-lint.1

CHANGES in 19.1.2:

- custom-variable was rewritten to no longer use PCRE from GNU grep
- remove scan_p function from apkbuild-lint, everything must now use
 scan which uses Extended Regex or write their own, preferably scan
- use -E instead of -P in the grep call in scan from initd-lint
- Remove dependency on GNU grep, busybox grep is now enough for us
- Remove TODO, see the Tasks section in README
- Fix bad regex found in missing-default-prepare that doesn't appear in
 GNU grep
- Fix bad regex found in space-after-function-parenthesis that doesn't
 appear in GNU grep

CHANGES in 19.1.1:

- Install initd-lint binary (thanks @TBK)

CHANGES in 19.1.0:

- Add missing-default-prepare [AL54], checks if default_prepare is called
 inside a user defined prepare() function, and if not it tells the user to
 put it in
- overwrite-xflags no longer uses Perl regex from GNU Grep, instead using
 Extended regex which is available in busybox

CHANGES in 19.0.5:

- ovewrite-xflags now matches flags fully, LUA_CFLAGS and other variables
 that have a substring as part of 'CFLAGS' or any of the other linted FLAGS
 will no longer raise an erroneous linting violation

CHANGES in 19.0.4:

- Add linguas to valid variables

CHANGES in 19.0.3:

- Add overwrite-xflags check for GOFLAGS

CHANGES in 19.0.2:

- rewrite check for comments in secfixes-check to be shorter and match stuff
 better, it will no longer match just the shortest ending ), it will match
 everything between them

CHANGES in 19.0.1:

- secfixes-check ignore everything inside parentheses so those can be used
 for making comments on specific security identifiers

CHANGES in 19.0.0:

- Rework secfixes-check, it now checks multiple different identifers besides
 CVEs, it also check GNUTLS-SA and XSA now, with others being implemented as
 needed
- Remove obsolete ALs, AL43, AL44, AL45, AL46
- Rename AL41 to security-identifier-missing-hyphen
- Rename AL47 to security-identifier-wrong-indent
- Add AL50 cve-identifier-formatted-incorrectly, a catch-all for errors in CVE
 identifiers
- Add AL51 gnutls-sa-identifier-formatted-incorrectly, a catch-all for errors
 in GNUTLS-SA identifiers
- Add AL52 unknown-security-identifier, which appears when a security
 identifier appears that we do not know about
- Add AL53 xsa-identifier-formatted-incorrectly, a catch-all for errors in XSA

CHANGES in 18.14.3:

- Add some undocumented options that affect abuild to invalid-option [AL49]

CHANGES in 18.14.2:

- Remove archcheck from valid_options, only !archcheck is valid

CHANGES in 18.14.1:

- Add some undocumented options that affect abuild to invalid-option [AL49]

CHANGES in 18.14.0:

- Add invalid-option [AL49], it checks the value of the options variable
 for any values that are invalid, understood as any value that doesn't affect
 the behaviour of abuild

CHANGES in 18.13.3:

- Downgrade overwrite-xflags [AL36] from Certain to Possible.

CHANGES in 18.13.2:

- braced-variable [AL32] now reports the correct name of the variable, no stray
 characters appear on the string.

CHANGES in 18.13.1:

- braced-variable [AL32] now matches more valid characters
- pkgname-quoted [AL3] now matches single quotes as well as double quotes
- pkgver-quoted [AL4] now matches single quotes as well as double quotes
- Remove obsolete tests related to pkgname-quoted [AL3] and pkgver-quoted [AL4]

CHANGES in 18.13.0:

- pkgname-quoted [AL3] is now enabled as a Minor and Certain violation
- pkgver-quoted [AL4] is now enabled as a Minor and Certain violation

CHANGES in 18.12.3:

- secfixes-check will now exit 0 if no violations are found or
 a number that correspond to how many violations were found.
- Update the manpage to reflect the above change

CHANGES in 18.12.2:

- Add manpage for secfixes-check
- Install secfixes-check and its manpage

CHANGES In 18.12.1:

- Add cve-identifier-wrong-indentation [AL47]
- Add pkgver-pkgrel-wrong-indentation [AL48]
- Update secfixes-check to deal with CVE identifiers with wrong indentation
 and report violations of such, same for wrong indentation for pkgver-pkgrel
 headers

CHANGES in 18.12.0:

- Fix location of newly added tags in alint.5
- Add secfixes-check, a lua5.3 script that checks secfixes section for
 violations
- Add tags for the secfixes-check:
	- secfixes-missing-colon [AL37]
	- pkgver-pkgrel-missing-colon [AL38]
	- pkgver-pkgrel-invalid-pkgver [AL39]
	- pkgver-pkgrel-invalid-pkgrel [AL40]
	- cve-identifier-missing-hyphen [AL41]
	- cve-identifier-missing-prefix [AL42]
	- cve-identifier-invalid-characters [AL43]
	- cve-identifier-invalid-year [AL44]
	- cve-identifier-short-id [AL45]
	- cve-identifier-hyphens [AL46]

CHANGES in 18.11.0:

- Add overwite-xflags to make sure contributors are not overriding variables
 that the user can change in /etc/abuild.conf like CFLAGS, CXXFLAGS, GOFLAGS,
 etc. (thanks @kdaudt)

CHANGES in 18.10.1:

- Add an exception for checking for ninja, which is now in unmaintained, during
 the transition from ninja to samurai. Samurai provides= and replaces= ninja and
 packages don't need to be changed to depend on samurai instead

CHANGES in 18.10.0:

- add cpan-variable, to deal with cpan(|make|check)depends variables created by
 the apkbuild-cpan program.

CHANGES in 18.9.2:

- Fix apkbuild-fixer replacing $pkgname in tarball naming part of source=
- Make apkbuild-lint ignore the HOSTCC variable as a custom variable (thanks @PureTryOut)
- Make apkbuild-lint not treat some newer/uncommon abuild variables as custom variables

CHANGES in 18.9.1:

- Recognize makedepends_build and makedepends_host as official variables

CHANGES in 18.9.0:

- Prevent false positive for start_pre on initd-lint (thanks @kdaudt)
- Fix false negative with custom variables (thanks @kdaudt)
- Rewrite a setence on manpage for clarity and specify version when
 referring to the version of Alpine in which a version of abuild is present
- run superfluous-cd-builddir check on packages in main

CHANGES in 18.8.6:

- Allow double underscores as a variable argument (thanks @kdaudt)

CHANGES in 18.8.5:

- somask is now recognized as a variable used by abuild

CHANGES in 18.8.4:

- apkbuild-lint now deals with archive renaming (::) when detecting AL29

CHANGES in 18.8.3:

- apkbuild-fixer now deals with AL29

CHANGES in 18.8.2:

- use [ -n ] instead of ! [ -z ] to check a condition

CHANGES in 18.8.1:

- apkbuild-fixer now deals with AL32

CHANGES in 18.8:

- Make braced-variable more liberal by matching any sigil without
 checking if it a variable. This change will make the script find
 possible false positives but it will now find occurences outside
 of variables, and multiple occurences in a single line, it will
 also show what is the offender on the line given. Tests were
 adapted accordingly to the new error message
- Make braced-variable use Extended regex (-E) instead of PCRE (-P)
 in the future all should use this and it is a work in progress
- Downgrade braced-variable Certainty from Certain to Possible

CHANGES in 18.7.1:

- Make braced-variable more robust by matching lowercase characters
 and underscores inside the braced variable to avoid detection of a
 legitimate case of bracing variable called parameter substitution

CHANGES in 18.7:

- Add braced-variable

CHANGES in 18.6.1:

- Fix failing test

CHANGES in 18.6:

- Make double-score-in-variable check more robust by running separate checks
 for variables declared plainly and variables declared with the local keyword
- Add variable-capitalized

CHANGES in 18.5:

- Add double-score-in-variable
- Make tests more robust by unsetting APKBUILD_STYLE

CHANGES in 18.4:

- Add pkgname-used-in-source (Thanks @Ikke)

CHANGES in 18.3:

- Fix backticks-usage header on alint.5

CHANGES in 18.2:

- Remove APKBUILD_STYLE=leo from some tests for checks that are now part
 of the main suite
- Add literal-integer-is-quoted

CHANGES in 18.1:

- Move some style checks that belonged to leo to minor since they are
 now part of the CODINGSTYLE.md

CHANGES in 18.0:

- Add a Style severity label denoted by a T character
- Add leo to APKBUILD_STYLE options and move some style checks to it

CHANGES In 17.2:

- Remove line-above-80-chars [AL27], it was broken anyways
- Check for the APKBUILD file instead of just the directory
 when trying to find duplicates and packages in other repos.
 Fixing a case where remants of a moved package would stay there.

CHANGES in 17.1:

- Update build system to install apkbuild-fixer

CHANGES in 17.0:

- Add apkbuild-fixer
- Disable line-above-80-chars until it can be fixed

CHANGES in 16.0:

- add line-above-80-chars

CHANGES in 15.4:

- Add more expensive but more accurate find_repo for finding packages in upper repos
- Mark default-builddir-value and superfluous-cd-builddir as minor

CHANGES in 15.3:

- Fix upper-repo-checkdepends detection when options= is empty

CHANGES in 15.2:

- Fix minor mistake in alint.5.scd

CHANGES with 15.1:

- Fix minor mistake in alint.5.scd

CHANGES with 15:

- Skip to next loop of checking if we can't source the APKBUILD

CHANGES with 14:

- Add _builddir-is-set test

CHANGES with 13:

- Add tags for each violation in apkbuild-lint
- Add tags for each violation in aports-lint
- Update documentation to add each tag to the violation
- Fix mistake on pkgver-quoted documentation
- Update documentation to show how to skip tests for certain tags
- Update tests to check for the tags when using assert_match
- Convert all output to a draft version of a stable output format
- Add extra field on the format for the severity
- Update documentation of the tools to add an OUTPUT chapter
- Add missing backticks-usage tag to documentation

CHANGES with 12.1:

- Remove spurious section referring to a tag that never existed

CHANGES with 12:

- superfluous-cd-builddir now detects variations of cd "$builddir" such as with brackets
  without quotes and any in between

CHANGES with 11.2:

- make duplicate and upper package detection remove tab chars ('\t') before sorting

CHANGES with 11.1:

- Include NEWS from version 10 to 11

CHANGES with 11:

- Fix tests for _underscore prefix
- deal with _rc being allowed

CHANGES with 10:

- Add makedepend-in-depends
- Replace makedepends-in-depends with depends-makedepends-checkdepends-overlap

CHANGES with 9:

- Implement build system based on redo (@Ikke)
- Fix sourcing of variable with bash in posix SH compatibility mode (@maxice8)
- Add pkgname-dirname-mismatch (@maxice8)
- Add missing SKIP_* directive to duplicate-package (@maxice8)
- Add initial testsuite based on bats (@Ikke)
- Fix parsing with different cat -n outputs (@Ikke)
- Fix pkgname-has-uppercase and expand its scope (@maxice8)
- Add tests for pkgname-has-uppercase (@maxice8)
- Add travis-ci support via .travis.yml (@maxice8)
- Add pkgver-has-pkgrel (@maxice8)
- Skip broken test on travis-ci (@maxice8)
- Do small fix in README.md (@maxice8)
- Write first version of NEWS
