sbo-maintainer-tools
====================

These are "lint" tools to make life easier for SlackBuilds.org
maintainers and admins. They check your builds and packages for
various problems, so your builds will be higher quality, and there
will be less work for the admins to do when reviewing your build for
approval.

Included tools:
---------------

- sbolint: checks your SlackBuild, README, .info file, and slack-desc.

- sbopkglint: checks your package, after it's built.

- pre-commit-sbolint: a git pre-commit hook you should use, that
  automatically calls sbolint and stops you from committing bad code.

- sbofixinfo: attempts to automatically fix common .info file problems.

- sbodl: download source files listed in DOWNLOAD and DOWNLOAD_x86_64
  in the .info file, and check the md5sums.

Note that the SBo admins use these tools as part of the approval
process, when you submit an update. Failure to pass the lint checks
is a valid reason for rejecting your submission, so you should either
make sure your scripts and packages pass the tests, or give a good
explanation why a failure isn't relevant to your build (because the
tests aren't perfect, of course, and there are exceptions to almost
every rule).

Installation:
-------------

The easiest way to install sbo-maintainer-tools is to install them
from SBo (system/sbo-maintainer-tools). The SBo build might be out
of date, so you might want to get the latest version from git and
install it manually:

  git clone https://slackware.uk/~urchlay/repos/sbo-maintainer-tools
  cd sbo-maintainer-tools
  make install  # add PREFIX=/usr if you hate using /usr/local

You can also run sbolint and sbopkglint directly from the source
directory (e.g. ./sbopkglint), if you can think of a reason for that
(maybe you're hacking on the tests).

If you want, you can just symlink sbolint and sbopkglint to some
directory in your $PATH (e.g. if you keep your local scripts in
~/bin).

Git Hook:
---------

To use the git hook, copy pre-commit-sbolint to .git/hooks/pre-commit
in your git work tree (wherever you cloned the SBo repository),
and make sure it's executable (chmod +x). If you already have a
pre-commit hook, you can copy/paste the code, or (possibly) just
append pre-commit-sbolint to your existing hook (if it doesn't end
with "exit 0").

If you absolutely must commit code that doesn't pass sbolint, you can
set SBOLINT=no in the environment, e.g.

  SBOLINT=no git commit -m'Message here' ...

If you find yourself having to do this often, please contact the SBo
admins and explain the situation; it may mean sbolint needs updating.

Documentation:
--------------

For more information, see the sbolint, sbopkglint, sbofixinfo,
and sbodl man pages (or run the scripts with --doc; it's the same
thing). There's also a QUICKSTART file that gives the bare minimum
info to get started.
