[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#816611: RFS: yamllint/1.0.3-1 [ITP] -- A linter for YAML files



On Thu, Mar 3, 2016 at 9:43 PM, Adrien Vergé wrote:

>   yamllint - A linter for YAML files

Since I am interested in more static analysis and linting tools for
check-all-the-things I'm willing to sponsor this, but only in return
for a patch for check-all-the-things adding support for any one of the
tools with TODO comments or checks flagged todo.

https://anonscm.debian.org/cgit/collab-maint/check-all-the-things.git/tree/data/

In addition, you may want to submit pull requests to the linters and
git-lint repos to advertise yamllint more widely and get it supported
by git-lint.

https://github.com/mcandre/linters
https://github.com/sk-/git-lint

Some thoughts about yamllint while you consider my offer:

The package fails to build in a clean chroot, see below for the log.

Since you are upstream, you may want to read our guide for upstreams:

https://wiki.debian.org/UpstreamGuide

Please sign your tags, commits and releases using OpenPGP and have
uscan verify them tarball signatures.

http://mikegerwitz.com/papers/git-horror-story
https://wiki.debian.org/debian/watch#Cryptographic_signature_verification
https://wiki.debian.org/Creating%20signed%20GitHub%20releases
https://help.riseup.net/en/security/message-security/openpgp/best-practices

debian/copyright has unknown@unknown as your email address.

Did you really mean for the license for debian/ to be different to the
rest of the code? debian/copyright says GPL-2+ for it but GPL-3+ for
the rest.

The Standards-Version in debian/control is out of date, please read
the upgrading guide and bump it:

https://www.debian.org/doc/debian-policy/upgrading-checklist

Please uncomment the Vcs-* fields and point them at the VCS for the
Debian packaging. It seems that is at github too:

https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-VCS-fields
https://github.com/adrienverge/yamllint/tree/packaging/packaging/debian/

You may want to wrap-and-sort the debian meta-data for easier to read
diffs. My favourite command is:

wrap-and-sort --short-indent --wrap-always --sort-binary-packages
--trailing-comma --verbose

Please add some upstream metadata: https://wiki.debian.org/UpstreamMetadata

You may want to add some DEP-8 tests: http://dep.debian.net/deps/dep8/

Automatic checks:

build

warning: build_py: byte-compiling is disabled, skipping.

   dh_auto_test -O--buildsystem=pybuild
I: pybuild base:184: cd
/build/yamllint-1.0.3/.pybuild/pythonX.Y_3.5/build; python3.5 -m nose
tests
.....................................................................................................................................E.....
======================================================================
ERROR: Failure: FileNotFoundError ([Errno 2] No such file or
directory: 'tests/yaml-1.2-spec-examples')
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/nose/failure.py", line 39, in runTest
    raise self.exc_val.with_traceback(self.tb)
  File "/usr/lib/python3/dist-packages/nose/loader.py", line 418, in
loadTestsFromName
    addr.filename, addr.module)
  File "/usr/lib/python3/dist-packages/nose/importer.py", line 47, in
importFromPath
    return self.importFromDir(dir_path, fqname)
  File "/usr/lib/python3/dist-packages/nose/importer.py", line 94, in
importFromDir
    mod = load_module(part_fqname, fh, filename, desc)
  File "/usr/lib/python3.5/imp.py", line 234, in load_module
    return load_source(name, filename, file)
  File "/usr/lib/python3.5/imp.py", line 172, in load_source
    module = _load(spec)
  File "<frozen importlib._bootstrap>", line 693, in _load
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 662, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "/build/yamllint-1.0.3/.pybuild/pythonX.Y_3.5/build/tests/test_spec_examples.py",
line 124, in <module>
    files = os.listdir('tests/yaml-1.2-spec-examples')
FileNotFoundError: [Errno 2] No such file or directory:
'tests/yaml-1.2-spec-examples'

----------------------------------------------------------------------
Ran 139 tests in 7.107s

FAILED (errors=1)
E: pybuild pybuild:274: test: plugin distutils failed with: exit
code=1: cd /build/yamllint-1.0.3/.pybuild/pythonX.Y_3.5/build;
python3.5 -m nose tests
dh_auto_test: pybuild --test --test-nose -i python{version} -p 3.5
--dir . returned exit code 13
debian/rules:4: recipe for target 'build' failed
...
/build/yamllint-1.0.3# find -iname *1.2*
./tests/yaml-1.2-spec-examples

lintian

W: yamllint source: out-of-date-standards-version 3.9.6 (current is 3.9.7)
P: yamllint source: debian-watch-may-check-gpg-signature

check-all-the-things:

$ duck
E: debian/copyright:6: Email: unknown@unknown: ERROR (Certainty:possible)
   unknown@unknown: No MX entry found.
   unknown@unknown: No A entry found.
   unknown@unknown: No AAAA entry found.

$ fdupes -q -r . | grep -vE
'/(\.(git|svn|bzr|hg|sgdrawer)|_(darcs|FOSSIL_)|CVS)(/|$)' | cat -s
./tests/rules/__init__.py
./tests/__init__.py
./.pc/applied-patches

./tests/yaml-1.2-spec-examples/example-5.5
./tests/yaml-1.2-spec-examples/example-5.1

./tests/yaml-1.2-spec-examples/example-8.11
./tests/yaml-1.2-spec-examples/example-8.10

./PKG-INFO
./yamllint.egg-info/PKG-INFO

# check if these can be switched to https://
$ grep -rF http: .
./tests/test_linter.py:# along with this program.  If not, see
<http://www.gnu.org/licenses/>.
./tests/test_config.py:# along with this program.  If not, see
<http://www.gnu.org/licenses/>.
<lots>

$ find -type d \( -iname .bzr -o -iname .git -o -iname .hg -o -iname
.svn -o -iname CVS -o -iname RCS -o -iname SCCS -o -iname _MTN -o
-iname _darcs -o -iname .pc -o -iname .cabal-sandbox -o -iname .cdv -o
-iname .metadata -o -iname CMakeFiles -o -iname _build -o -iname
_sgbak -o -iname autom4te.cache -o -iname blib -o -iname cover_db -o
-iname node_modules -o -iname '~.dep' -o -iname '~.dot' -o -iname
'~.nib' -o -iname '~.plst' \) -prune -o -type f ! \( -iname '*.bak' -o
-iname '*.swp' -o -iname '#.*' -o -iname '#*#' -o -iname 'core.*' -o
-iname '*~' -o -iname '*.gif' -o -iname '*.jpg' -o -iname '*.jpeg' -o
-iname '*.png' -o -iname '*.min.js' -o -iname '*.js.map' -o -iname
'*.js.min' -o -iname '*.min.css' -o -iname '*.css.map' -o -iname
'*.css.min' \) -exec spellintian --picky {} +
./tests/yaml-1.2-spec-examples/example-2.3: american -> American
./catt: python -> Python
./docs/quickstart.rst: python -> Python
./docs/Makefile: latex -> LaTeX
./yamllint/rules/line_length.py: splitted -> split
./yamllint/rules/empty_lines.py: serie -> series

$ grep -riE 'fixme|todo|hack|xxx|broken' .
./yamllint/cli.py:    # TODO: read from stdin when no filename?


-- 
bye,
pabs

https://wiki.debian.org/PaulWise


Reply to: