pkgsrc/pkgtools/pkglint
schmonz 9387f5385a Catch up tests to code:
- PythonDependency is a basic vartype
- Wording for missing LICENSE has changed (plural -> singular)
- Unknown dependency pattern is now ERROR (used to be WARN)
- qmail package behavior has been improved a bit (surprise!)
2014-11-23 19:14:40 +00:00
..
files Catch up tests to code: 2014-11-23 19:14:40 +00:00
DESCR
Makefile Add emacs25, xemacs21[45]nox for makevars.map 2014-11-23 15:30:07 +00:00
PLIST
README Document the need for many more automated tests. 2013-03-26 15:08:53 +00:00
TODO Cleaned up the TODO list; the license check has been implemented. 2014-10-08 19:19:43 +00:00

$NetBSD: README,v 1.5 2013/03/26 15:08:53 schmonz Exp $

== Current problems ==

There are finally some automated tests that document a few intended
and actual behaviors. There is still plenty of poorly expressed
code not yet under test and therefore not yet safe to refactor.

The current pkglint architecture will not scale much further. What is
needed next are parsers for nested, non-context-free languages (make(1),
sh(1), sed(1)). The parsers should be able to recognize partial
structures, as well as structures containing foreign parts. This is
because most of pkgsrc is heavily based on preprocessors:

- The .if and .for directives in Makefiles are preprocessed by make(1)
  before building dependencies and shell commands out of the remaining
  text.

- make(1) assembles shell commands from literal text and variables like
  ${PKGNAME}.

- Shell commands often use dynamic evaluation of variables.

All this makes enhancing pkglint non-trivial. If you know of any
academic papers that might be of help in this case, please tell me.

The pkglint source code is much too big for a single file.