diff --git a/.github/workflows/oe-linter.yml b/.github/workflows/oe-linter.yml index e4f11b4fdf0..3b1365c5bdf 100644 --- a/.github/workflows/oe-linter.yml +++ b/.github/workflows/oe-linter.yml @@ -30,5 +30,5 @@ jobs: run: | for file in ${{ steps.changed-files.outputs.all_modified_files }}; do echo "linting $file" - oelint-adv $file --quiet + oelint-adv --rulefile=oelint-rulefile.json --quiet $file done diff --git a/README b/README index 7318f09cdba..2fce6b47492 100644 --- a/README +++ b/README @@ -5,3 +5,11 @@ Main layer maintainer: Khem Raj This repository is a collection of layers to suppliment 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 diff --git a/oelint-rulefile.json b/oelint-rulefile.json new file mode 100644 index 00000000000..f1a6b3a475b --- /dev/null +++ b/oelint-rulefile.json @@ -0,0 +1,238 @@ +{ + "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.inappropriatemsg": "info", + "oelint.file.patchsignedoff": "warning", + "oelint.file.upstreamstatus": "info", + "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.docstrings": "info", + "oelint.task.heredocs": "warning", + "oelint.task.multifragments": "info", + "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.multilineident": "info", + "oelint.vars.notneededspace": "info", + "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.var.bbclassextend": "info", + "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.suggestedvar": "info", + "oelint.var.suggestedvar.AUTHOR": "info", + "oelint.var.suggestedvar.BUGTRACKER": "info", + "oelint.var.suggestedvar.BBCLASSEXTEND": "info", + "oelint.var.suggestedvar.CVE_PRODUCT": "info", + "oelint.var.suggestedvar.SECTION": "info", + "oelint.var.override": "error" +}