Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/linter #465

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
41 changes: 41 additions & 0 deletions .github/workflows/oe-linter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Lint

on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
run-linters:
name: Run linters
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Check out Git repository
uses: actions/checkout@v2
with:
fetch-depth: 0

- name: Get changed files
id: changed-files
uses: tj-actions/[email protected]

- name: Install linters
run: pip3 install oelint-adv codespell

- name: Linting all modified files
run: |
for file in ${{ steps.changed-files.outputs.all_modified_files }}; do
echo "linting $file"
oelint-adv --quiet --color --relpaths --rulefile=oelint-rulefile.json $file
done

- name: Codespell
run: |
for file in ${{ steps.changed-files.outputs.all_modified_files }}; do
echo "spell checking $file"
codespell $file --skip=oelint-rulefile.json
done
13 changes: 12 additions & 1 deletion README
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@ Collection of layers for the OE-core universe

Main layer maintainer: Khem Raj <[email protected]>

This repository is a collection of layers to suppliment OE-Core
This repository is a collection of layers to supplement OE-Core
with additional packages, Each layer have designated maintainer
Please see the respective READMEs in the layer subdirectories

# Linting

We use [oelint-adv](`https://github.com/priv-kweihmann/oelint-adv`)
as a linter to ensure consistent quality. You can lint your recipes
with the same linting rules with:

oelint-adv --rulefile=oelint-rulefile.json --quiet <recipe>

This is using a sub-set of rules (no info-level rules). If you
want an even stricter linting omit the `--rulefile` argument.
225 changes: 225 additions & 0 deletions oelint-rulefile.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,225 @@
{
"oelint.append.protvars": "error",
"oelint.append.protvars.PV": "error",
"oelint.append.protvars.PR": "error",
"oelint.append.protvars.SRCREV": "error",
"oelint.append.protvars.LICENSE": "error",
"oelint.append.protvars.LIC_FILES_CHKSUM": "error",
"oelint.file.includenotfound": "warning",
"oelint.file.requireinclude": "warning",
"oelint.file.nospaces": "error",
"oelint.file.patchsignedoff": "warning",
"oelint.file.requirenotfound": "error",
"oelint.file.underscores": "error",
"oelint.func.specific": "error",
"oelint.newline.consecutive": "warning",
"oelint.newline.eof": "warning",
"oelint.spaces.linebeginning": "warning",
"oelint.spaces.linecont": "error",
"oelint.spaces.emptyline": "warning",
"oelint.spaces.lineend": "warning",
"oelint.tabs.notabs": "warning",
"oelint.task.addnotaskbody": "warning",
"oelint.task.noanonpython": "warning",
"oelint.task.customorder": "error",
"oelint.task.heredocs": "warning",
"oelint.task.nocopy": "error",
"oelint.task.nomkdir": "error",
"oelint.task.nopythonprefix": "warning",
"oelint.task.order": "warning",
"oelint.task.order.do_fetch": "warning",
"oelint.task.order.do_unpack": "warning",
"oelint.task.order.do_patch": "warning",
"oelint.task.order.do_configure": "warning",
"oelint.task.order.do_compile": "warning",
"oelint.task.order.do_install": "warning",
"oelint.task.order.do_populate_sysroot": "warning",
"oelint.task.order.do_build": "warning",
"oelint.task.order.do_package": "warning",
"oelint.task.pythonprefix": "warning",
"oelint.vars.appendop": "error",
"oelint.vars.autorev": "warning",
"oelint.vars.bbvars": "warning",
"oelint.vars.bbvars.BB_CONSOLELOG": "warning",
"oelint.vars.bbvars.BB_CURRENTTASK": "warning",
"oelint.vars.bbvars.BB_DANGLINGAPPENDS_WARNONLY": "warning",
"oelint.vars.bbvars.BB_DEFAULT_TASK": "warning",
"oelint.vars.bbvars.BB_DISKMON_DIRS": "warning",
"oelint.vars.bbvars.BB_DISKMON_WARNINTERVAL": "warning",
"oelint.vars.bbvars.BB_ENV_EXTRAWHITE": "warning",
"oelint.vars.bbvars.BB_ENV_WHITELIST": "warning",
"oelint.vars.bbvars.BB_FETCH_PREMIRRORONLY": "warning",
"oelint.vars.bbvars.BB_FILENAME": "warning",
"oelint.vars.bbvars.BB_GENERATE_MIRROR_TARBALLS": "warning",
"oelint.vars.bbvars.BB_HASHBASE_WHITELIST": "warning",
"oelint.vars.bbvars.BB_HASHCHECK_FUNCTION": "warning",
"oelint.vars.bbvars.BB_HASHCONFIG_WHITELIST": "warning",
"oelint.vars.bbvars.BB_INVALIDCONF": "warning",
"oelint.vars.bbvars.BB_LOGFMT": "warning",
"oelint.vars.bbvars.BB_NICE_LEVEL": "warning",
"oelint.vars.bbvars.BB_NO_NETWORK": "warning",
"oelint.vars.bbvars.BB_NUMBER_PARSE_THREADS": "warning",
"oelint.vars.bbvars.BB_NUMBER_THREADS": "warning",
"oelint.vars.bbvars.BB_ORIGENV": "warning",
"oelint.vars.bbvars.BB_PRESERVE_ENV": "warning",
"oelint.vars.bbvars.BB_RUNFMT": "warning",
"oelint.vars.bbvars.BB_RUNTASK": "warning",
"oelint.vars.bbvars.BB_SCHEDULER": "warning",
"oelint.vars.bbvars.BB_SCHEDULERS": "warning",
"oelint.vars.bbvars.BB_SETSCENE_DEPVALID": "warning",
"oelint.vars.bbvars.BB_SETSCENE_VERIFY_FUNCTION": "warning",
"oelint.vars.bbvars.BB_SIGNATURE_EXCLUDE_FLAGS": "warning",
"oelint.vars.bbvars.BB_SIGNATURE_HANDLER": "warning",
"oelint.vars.bbvars.BB_SRCREV_POLICY": "warning",
"oelint.vars.bbvars.BB_STAMP_POLICY": "warning",
"oelint.vars.bbvars.BB_STAMP_WHITELIST": "warning",
"oelint.vars.bbvars.BB_STRICT_CHECKSUM": "warning",
"oelint.vars.bbvars.BB_TASK_NICE_LEVEL": "warning",
"oelint.vars.bbvars.BB_TASKHASH": "warning",
"oelint.vars.bbvars.BB_VERBOSE_LOGS": "warning",
"oelint.vars.bbvars.BB_WORKERCONTEXT": "warning",
"oelint.vars.bbvars.BBDEBUG": "warning",
"oelint.vars.bbvars.BBFILE_COLLECTIONS": "warning",
"oelint.vars.bbvars.BBFILE_PATTERN": "warning",
"oelint.vars.bbvars.BBFILE_PRIORITY": "warning",
"oelint.vars.bbvars.BBFILES": "warning",
"oelint.vars.bbvars.BBINCLUDED": "warning",
"oelint.vars.bbvars.BBINCLUDELOGS": "warning",
"oelint.vars.bbvars.BBINCLUDELOGS_LINES": "warning",
"oelint.vars.bbvars.BBLAYERS": "warning",
"oelint.vars.bbvars.BBMASK": "warning",
"oelint.vars.bbvars.BBPATH": "warning",
"oelint.vars.bbvars.BBSERVER": "warning",
"oelint.vars.bbvars.BBVERSIONS": "warning",
"oelint.vars.bbvars.BITBAKE_UI": "warning",
"oelint.vars.bbvars.BUILDNAME": "warning",
"oelint.vars.bbvars.CACHE": "warning",
"oelint.vars.bbvars.DL_DIR": "warning",
"oelint.vars.bbvars.FILE": "warning",
"oelint.vars.bbvars.FILESDIR": "warning",
"oelint.vars.bbvars.FILESPATH": "warning",
"oelint.vars.bbvars.INHERIT": "warning",
"oelint.vars.bbvars.LAYERDEPENDS": "warning",
"oelint.vars.bbvars.LAYERDIR": "warning",
"oelint.vars.bbvars.LAYERVERSION": "warning",
"oelint.vars.bbvars.MIRRORS": "warning",
"oelint.vars.bbvars.MULTI_PROVIDER_WHITELIST": "warning",
"oelint.vars.bbvars.PERSISTENT_DIR": "warning",
"oelint.vars.bbvars.PREFERRED_PROVIDER": "warning",
"oelint.vars.bbvars.PREFERRED_PROVIDERS": "warning",
"oelint.vars.bbvars.PREFERRED_VERSION": "warning",
"oelint.vars.bbvars.PREMIRRORS": "warning",
"oelint.vars.bbvars.PRSERV_HOST": "warning",
"oelint.vars.bbvars.STAMP": "warning",
"oelint.vars.bbvars.TOPDIR": "warning",
"oelint.vars.bugtrackerisurl": "warning",
"oelint.vars.dependsappend": "error",
"oelint.vars.dependsordered": "warning",
"oelint.vars.descriptionsame": "warning",
"oelint.vars.descriptiontoobrief": "warning",
"oelint.vars.doublemodify": "error",
"oelint.vars.duplicate": "warning",
"oelint.vars.fileextrapaths": "warning",
"oelint.vars.fileextrapathsop": "error",
"oelint.var.filesoverride": "warning",
"oelint.vars.homepageprefix": "warning",
"oelint.vars.homepageping": "warning",
"oelint.vars.inconspaces": "error",
"oelint.vars.insaneskip": "error",
"oelint.var.licenseremotefile": "warning",
"oelint.vars.licfileprefix": "warning",
"oelint.vars.mispell": "warning",
"oelint.vars.pbpusage": "error",
"oelint.vars.pkgspecific": "error",
"oelint.vars.pkgspecific.RDEPENDS": "error",
"oelint.vars.pkgspecific.RRECOMMENDS": "error",
"oelint.vars.pkgspecific.RSUGGESTS": "error",
"oelint.vars.pkgspecific.RCONFLICTS": "error",
"oelint.vars.pkgspecific.RPROVIDES": "error",
"oelint.vars.pkgspecific.RREPLACES": "error",
"oelint.vars.pkgspecific.FILES": "error",
"oelint.vars.pkgspecific.pkg_preinst": "error",
"oelint.vars.pkgspecific.pkg_postinst": "error",
"oelint.vars.pkgspecific.pkg_prerm": "error",
"oelint.vars.pkgspecific.pkg_postrm": "error",
"oelint.vars.pkgspecific.ALLOW_EMPTY": "error",
"oelint.vars.pnbpnusage": "error",
"oelint.vars.pnusagediscouraged": "warning",
"oelint.vars.valuequoted": "error",
"oelint.var.rootfspostcmd": "warning",
"oelint.vars.sectionlowercase": "warning",
"oelint.vars.spacesassignment": "warning",
"oelint.vars.specific": "error",
"oelint.vars.srcurioptions": "warning",
"oelint.vars.srcuriappend": "error",
"oelint.vars.srcuridomains": "warning",
"oelint.vars.srcurifile": "warning",
"oelint.vars.srcurigittag": "warning",
"oelint.vars.srcurisrcrevtag": "error",
"oelint.var.srcuriwildcard": "error",
"oelint.vars.summary80chars": "warning",
"oelint.vars.summarylinebreaks": "warning",
"oelint.vars.notrailingslash": "error",
"oelint.vars.filessetting": "warning",
"oelint.vars.filessetting.hidden": "warning",
"oelint.vars.filessetting.double": "warning",
"oelint.var.improperinherit": "error",
"oelint.vars.listappend": "error",
"oelint.var.mandatoryvar": "error",
"oelint.var.mandatoryvar.SUMMARY": "error",
"oelint.var.mandatoryvar.DESCRIPTION": "error",
"oelint.var.mandatoryvar.HOMEPAGE": "error",
"oelint.var.mandatoryvar.LICENSE": "error",
"oelint.var.mandatoryvar.SRC_URI": "error",
"oelint.var.multiinclude": "warning",
"oelint.var.multiinherit": "warning",
"oelint.var.nativefilename": "warning",
"oelint.var.nativesdkfilename": "warning",
"oelint.var.order": "warning",
"oelint.var.order.SUMMARY": "warning",
"oelint.var.order.DESCRIPTION": "warning",
"oelint.var.order.AUTHOR": "warning",
"oelint.var.order.HOMEPAGE": "warning",
"oelint.var.order.BUGTRACKER": "warning",
"oelint.var.order.SECTION": "warning",
"oelint.var.order.LICENSE": "warning",
"oelint.var.order.LIC_FILES_CHKSUM": "warning",
"oelint.var.order.DEPENDS": "warning",
"oelint.var.order.PROVIDES": "warning",
"oelint.var.order.PV": "warning",
"oelint.var.order.SRC_URI": "warning",
"oelint.var.order.SRCREV": "warning",
"oelint.var.order.S": "warning",
"oelint.var.order.inherit": "warning",
"oelint.var.order.PACKAGECONFIG": "warning",
"oelint.var.order.EXTRA_QMAKEVARS_POST": "warning",
"oelint.var.order.EXTRA_OECONF": "warning",
"oelint.var.order.PACKAGE_ARCH": "warning",
"oelint.var.order.PACKAGES": "warning",
"oelint.var.order.FILES": "warning",
"oelint.var.order.RDEPENDS": "warning",
"oelint.var.order.RRECOMMENDS": "warning",
"oelint.var.order.RSUGGESTS": "warning",
"oelint.var.order.RPROVIDES": "warning",
"oelint.var.order.RCONFLICTS": "warning",
"oelint.var.order.BBCLASSEXTEND": "warning",
"oelint.vars.pathhardcode": "warning",
"oelint.vars.pathhardcode.systemd_user_unitdir": "warning",
"oelint.vars.pathhardcode.systemd_system_unitdir": "warning",
"oelint.vars.pathhardcode.docdir": "warning",
"oelint.vars.pathhardcode.infodir": "warning",
"oelint.vars.pathhardcode.mandir": "warning",
"oelint.vars.pathhardcode.libexecdir": "warning",
"oelint.vars.pathhardcode.systemd_unitdir": "warning",
"oelint.vars.pathhardcode.libdir": "warning",
"oelint.vars.pathhardcode.bindir": "warning",
"oelint.vars.pathhardcode.datadir": "warning",
"oelint.vars.pathhardcode.includedir": "warning",
"oelint.vars.pathhardcode.localstatedir": "warning",
"oelint.vars.pathhardcode.nonarch_base_libdir": "warning",
"oelint.vars.pathhardcode.sbindir": "warning",
"oelint.vars.pathhardcode.servicedir": "warning",
"oelint.vars.pathhardcode.sharedstatedir": "warning",
"oelint.vars.pathhardcode.sysconfdir": "warning",
"oelint.var.override": "error"
}