Library
Arduino Lint provides 77 rules for the library
project type:
invalid library (LS001
)¶
The path does not contain a valid Arduino library.
More information: here
Enabled for superproject type: all
Category: structure
Subcategory: general
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
folder name too long (LS002
)¶
The library root folder name exceeds the maximum length supported by the Arduino development tools. This will be problematic for people doing manual installation of the library.
More information: here
Enabled for superproject type: all
Category: structure
Subcategory: root folder
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | ERROR |
strict | ERROR |
prohibited character in folder name (LS003
)¶
The library root folder name contains prohibited characters. This will be problematic for people doing manual installation of the library.
More information: here
Enabled for superproject type: all
Category: structure
Subcategory: root folder
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | ERROR |
strict | ERROR |
submodule (LS004
)¶
A Git submodule was found under the library folder. Library Manager installations and installations of libraries downloaded via GitHub's "Download ZIP" feature will only contain an empty folder in place of the submodule.
Enabled for superproject type: library
Category: structure
Subcategory: miscellaneous
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | WARNING |
symlink (LS005
)¶
A symlink was found under the library folder. Symlinks cause difficulties for Windows users due to restrictions on their use. The presence of a symlink blocks addition to the Arduino Library Manager index.
Enabled for superproject type: all
Category: structure
Subcategory: miscellaneous
Rule levels¶
compliance |
library-manager |
Level |
---|---|---|
permissive | submit | ERROR |
permissive | update | ERROR |
permissive | false | WARNING |
specification | submit | ERROR |
specification | update | ERROR |
specification | false | WARNING |
strict | submit | ERROR |
strict | update | ERROR |
strict | false | WARNING |
.development file (LS006
)¶
A .development
file was found in the library root folder. Presence of this file blocks addition to the Library Manager index.
More information: here
Enabled for superproject type: all
Category: structure
Subcategory: miscellaneous
Rule levels¶
compliance |
library-manager |
Level |
---|---|---|
permissive | submit | ERROR |
permissive | update | ERROR |
permissive | false | WARNING |
specification | submit | ERROR |
specification | update | ERROR |
specification | false | WARNING |
strict | submit | ERROR |
strict | update | ERROR |
strict | false | ERROR |
.exe file (LS007
)¶
A file with .exe
file extension was found under the library folder. Presence of this file blocks addition to the Library Manager index.
Enabled for superproject type: library
Category: structure
Subcategory: miscellaneous
Rule levels¶
compliance |
library-manager |
Level |
---|---|---|
permissive | submit | ERROR |
permissive | update | ERROR |
permissive | false | disabled |
specification | submit | ERROR |
specification | update | ERROR |
specification | false | disabled |
strict | submit | ERROR |
strict | update | ERROR |
strict | false | disabled |
name-header mismatch (LS008
)¶
The match between the library.properties
name
field and the filename in an #include
directive is a factor in the library's dependency resolution priority. It's recommended for the primary header filename to match the library name.
More information: here
Enabled for superproject type: all
Category: structure
Subcategory: source code
Rule levels¶
compliance |
Level |
---|---|
permissive | INFO |
specification | WARNING |
strict | WARNING |
src folder case (LS009
)¶
The library's source subfolder name has incorrect case. This folder must be named exactly src
in order for the library to work on case sensitive file systems (e.g., Linux).
More information: here
Enabled for superproject type: all
Category: structure
Subcategory: source code
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
recursive with utility folder (LS010
)¶
A library with "1.5 format" (recursive layout) contains a subfolder named utility
. Although the utility
folder has special treatment in libraries with the old "1.5 format" (flat layout), it is not supported in libraries of the new layout.
More information: here
Enabled for superproject type: all
Category: structure
Subcategory: source code
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | ERROR |
strict | ERROR |
incorrect extras folder name (LS011
)¶
A subfolder was found under the library root with a name similar to extras
. The extras
subfolder has been designated as the location for any supplemental files for the library. The name must be spelled exactly extras
.
More information: here
Enabled for superproject type: all
Category: structure
Subcategory: extras folder
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
extras folder name case (LS012
)¶
The library's extras subfolder name has incorrect case. The extras
subfolder has been designated as the location for any supplemental files for the library. The folder name must be spelled exactly extras
More information: here
Enabled for superproject type: all
Category: structure
Subcategory: extras folder
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | ERROR |
strict | ERROR |
missing library.properties (LP001
)¶
The library.properties
file provides metadata for Arduino libraries. Although not required for 1.0 format libraries (AKA "legacy") which are not in the Library Manager index, this metadata is useful, hence recommended.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: general
Rule levels¶
compliance |
library-manager |
Level |
---|---|---|
permissive | submit | ERROR |
permissive | update | ERROR |
permissive | false | WARNING |
specification | submit | ERROR |
specification | update | ERROR |
specification | false | WARNING |
strict | submit | ERROR |
strict | update | ERROR |
strict | false | ERROR |
incorrect library.properties file name (LP002
)¶
A file was found under the library root with a name similar to library.properties
. The library.properties
file provides metadata for Arduino libraries. The file name must be spelled exactly library.properties
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: general
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
library.properties file name case (LP003
)¶
The library's metadata file has incorrect case. This causes "1.5" format (AKA "recursive layout") libraries to not be recognized on case-sensitive file systems. The file name must be spelled exactly library.properties
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: general
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
redundant library.properties (LP004
)¶
The library contains a library.properties
file in a subfolder. Only the file in the root of the library is used by the Arduino development tools for library metadata. Superfluous library.properties
files can result in confusion or unnecessary maintenance effort.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: general
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | ERROR |
strict | ERROR |
library.properties format (LP005
)¶
The library.properties
file provides metadata for Arduino libraries. This file has a specific format that must be followed in order for the library to be valid.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: general
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
misspelled library.properties field (LP006
)¶
A field was found in the library.properties
metadata file with a name similar, but not matching, one of the standard fields.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: general
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
missing name (LP007
)¶
The name
field is missing from the library's library.properties
metadata file.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: name field
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
name < min length (LP008
)¶
The name
field in the library's library.properties
metadata file is shorter than the minimum length.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: name field
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
name > max length (LP009
)¶
The name
field in the library's library.properties
metadata file is greater than the maximum length.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: name field
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
name > recommended length (LP010
)¶
The name
field in the library's library.properties
metadata file is longer than the recommended length. As the unique identifier for the library, the name will be typed by the users of command line tools (e.g., arduino-cli lib install Servo
). For this reason, it is best practices to avoid unnecessary name length.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: name field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
prohibited character in name (LP011
)¶
The name
field in the library's library.properties
metadata file contains a prohibited character.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: name field
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
name starts with "Arduino" (LP012
)¶
The name
field in the library's library.properties
metadata file starts with "Arduino" (case insensitive). Libraries with this name prefix are only allowed in Library Manager under one of the following conditions:
- official libraries
- 3rd party libraries added to the Library Manager index prior to the enactment of this rule
If the former, configure Arduino Lint in "official" mode.
If the latter, use the --library-manager=update
flag
More information: here
Enabled for superproject type: library
Category: library.properties
Subcategory: name field
Rule levels¶
compliance |
library-manager |
Level |
---|---|---|
permissive | submit | ERROR |
permissive | update | WARNING |
permissive | false | WARNING |
specification | submit | ERROR |
specification | update | WARNING |
specification | false | WARNING |
strict | submit | ERROR |
strict | update | ERROR |
strict | false | ERROR |
name missing official prefix (LP013
)¶
The name
field in the library's library.properties
metadata file is missing the "Arduino_" prefix. The names of all new official libraries must have this prefix.
More information: here
Enabled for superproject type: library
Category: library.properties
Subcategory: name field
Rule levels¶
compliance |
Level |
---|---|
permissive | disabled |
specification | disabled |
strict | disabled |
name contains "Arduino" (LP014
)¶
The name
field in the library's library.properties
metadata file contains "Arduino" (case insensitive). This is usually implicit, only adding unnecessary length to the name.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: name field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
name contains spaces (LP015
)¶
The name
field in the library's library.properties
metadata file contains spaces. It's recommended that the name value, installation folder, and primary header filename all match. Since spaces are not allowed in library folder or file names, this is not possible when the name contains spaces.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: name field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
name contains "library" (LP016
)¶
The name
field in the library's library.properties
metadata file contains "library" (case insensitive). This is implicit, only adding unnecessary length to the name.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: name field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
duplicate name (LP017
)¶
The name
field in the library's library.properties
metadata file is in use by a library in the Library Manager index. A library must have a unique name value in order to be accepted into the Library Manager index.
This requirement only applies to the library.properties name value. There is no requirement to change the repository or header file names.
If your library is already in the index, use the --library-manager update
flag.
More information: here
Enabled for superproject type: library
Category: library.properties
Subcategory: name field
Rule levels¶
compliance |
library-manager |
Level |
---|---|---|
permissive | submit | ERROR |
permissive | update | disabled |
permissive | false | disabled |
specification | submit | ERROR |
specification | update | disabled |
specification | false | disabled |
strict | submit | ERROR |
strict | update | disabled |
strict | false | disabled |
not in LM index (LP018
)¶
The library name (as defined by name
field in the library.properties
metadata file) was not found in the Library Manager index, but Arduino Lint was run in the --library-manager update
mode, indicating that it was expected there.
Because the name
value is the identifier used to install the library and define dependencies, it is not allowed to change after the library has been added to the index.
More information: here
Enabled for superproject type: library
Category: library.properties
Subcategory: name field
Rule levels¶
compliance |
library-manager |
Level |
---|---|---|
permissive | submit | disabled |
permissive | update | ERROR |
permissive | false | disabled |
specification | submit | disabled |
specification | update | ERROR |
specification | false | disabled |
strict | submit | disabled |
strict | update | ERROR |
strict | false | disabled |
missing version field (LP019
)¶
The version
field is missing from the library's library.properties
metadata file.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: version field
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
invalid version (LP020
)¶
The version
field in the library's library.properties
metadata file is invalid. It must be compliant with "relaxed semver".
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: version field
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
non-semver version (LP021
)¶
The version
field in the library's library.properties
metadata file is not compliant with the "semver" specification. Although not required, use of the standard semver version format is recommended.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: version field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
tag mismatch (LP022
)¶
The latest Git tag appears to be greater than the version
field in the library's library.properties
metadata file. The Library Manager indexer will reject any tag that has a library.properties
version
value equal to a previous tag in the index.
More information: here
Enabled for superproject type: library
Category: library.properties
Subcategory: version field
Rule levels¶
compliance |
library-manager |
Level |
---|---|---|
permissive | submit | disabled |
permissive | update | WARNING |
permissive | false | disabled |
specification | submit | disabled |
specification | update | WARNING |
specification | false | disabled |
strict | submit | disabled |
strict | update | ERROR |
strict | false | disabled |
missing author field (LP023
)¶
The author
field is missing from the library's library.properties
metadata file.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: author field
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
author < min length (LP024
)¶
The author
field in the library's library.properties
metadata file is shorter than the minimum length.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: author field
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
missing maintainer field (LP025
)¶
The maintainer
field is missing from the library's library.properties
metadata file.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: maintainer field
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
maintainer < min length (LP026
)¶
The maintainer
field in the library's library.properties
metadata file is shorter than the minimum length.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: maintainer field
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
maintainer starts with "Arduino" (LP027
)¶
The maintainer
field in the library's library.properties
metadata file starts with "Arduino" (case insensitive). 3rd party libraries are not maintained by Arduino.
If the library is maintained by Arduino, configure Arduino Lint in "official" mode.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: maintainer field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
maintainer contains "Arduino" (LP057
)¶
The maintainer
field in the library's library.properties
metadata file contains "Arduino" (case insensitive). 3rd party libraries are not maintained by Arduino.
If the library is maintained by Arduino, configure Arduino Lint in "official" mode.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: maintainer field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
"email" used as alias for "maintainer" (LP028
)¶
The library's library.properties
metadata file uses the deprecated email
field instead of the standard maintainer
.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: email field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | ERROR |
strict | ERROR |
email < min length (LP029
)¶
The email
field in the library's library.properties
metadata file is shorter than the minimum length.
Enabled for superproject type: all
Category: library.properties
Subcategory: email field
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
email starts with "Arduino" (LP030
)¶
The maintainer
field in the library's library.properties
metadata file starts with "Arduino" (case insensitive). 3rd party libraries are not maintained by Arduino.
Enabled for superproject type: all
Category: library.properties
Subcategory: email field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
missing sentence field (LP031
)¶
The sentence
field is missing from the library's library.properties
metadata file.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: sentence field
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
sentence < min length (LP032
)¶
The sentence
field in the library's library.properties
metadata file is shorter than the minimum length.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: sentence field
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
sentence spell check (LP033
)¶
The sentence
field in the library's library.properties
metadata file contains a commonly misspelled word.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: sentence field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | WARNING |
missing paragraph field (LP034
)¶
The paragraph
field is missing from the library's library.properties
metadata file.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: paragraph field
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
paragraph spell check (LP035
)¶
The paragraph
field in the library's library.properties
metadata file contains a commonly misspelled word.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: paragraph field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | WARNING |
paragraph repeats sentence (LP036
)¶
The paragraph
field in the library's library.properties
metadata file repeats the sentence
field. These are displayed together so redundancy is not needed.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: paragraph field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
missing category field (LP037
)¶
The category
field is missing from the library's library.properties
metadata file.This can cause a warning and results in the default "Uncategorized" category being used.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: category field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
invalid category value (LP038
)¶
The category
field in the library's library.properties
metadata file has an invalid value. This can cause a warning and results in the default "Uncategorized" category being used.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: category field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | ERROR |
strict | ERROR |
"Uncategorized" category value (LP039
)¶
The category
field in the library's library.properties
metadata file is set to "Uncategorized". There is no good reason for using this non-specification compliant category value.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: category field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
missing url field (LP040
)¶
The url
field is missing from the library's library.properties
metadata file.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: url field
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
url < min length (LP056
)¶
The url
field in the library's library.properties
metadata file is shorter than the minimum length.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: url field
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
invalid url format (LP041
)¶
The url
field in the library's library.properties
metadata file has an invalid URL format.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: url field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | ERROR |
strict | ERROR |
dead URL (LP042
)¶
The url
field in the library's library.properties
metadata file can not be loaded.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: url field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
missing architectures field (LP043
)¶
The architectures
field is missing from the library's library.properties
metadata file. The architecture defaults to *
, but it's better to explicitly define architectures.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: architectures field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
architectures blank (LP044
)¶
The architectures
field in the library's library.properties
metadata file is blank. This causes the library to be considered incompatible with all architectures.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: architectures field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | ERROR |
strict | ERROR |
architecture alias (LP045
)¶
The architectures
field in the library's library.properties
metadata file contains architecture aliases.
Alternative development frameworks diverged on architecture naming. It is fine to specify those, but compatibilities with the true Arduino architectures should also be defined.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: architectures field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
architecture case (LP046
)¶
The architecture
field in the library's library.properties
metadata file contains architecture names with incorrect case. These are case sensitive (e.g., AVR
!= avr
).
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: architectures field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
invalid depends format (LP047
)¶
The depends
field in the library's library.properties
metadata file has an invalid format. This is a comma-separated list of library references.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: depends field
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
depends not in index (LP048
)¶
The depends
field in the library's library.properties
metadata file contains library names not found in the Library Manager index. This field should be used to define only the dependencies available from Library Manager. Library names are case-sensitive.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: depends field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | WARNING |
invalid depends constraint syntax (LP058
)¶
The depends
field in the library's library.properties
metadata file uses invalid version constraint syntax.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: depends field
Rule levels¶
compliance |
Level |
---|---|
permissive | ERROR |
specification | ERROR |
strict | ERROR |
invalid dot_a_linkage value (LP049
)¶
The dot_a_linkage
field in the library's library.properties
metadata file has an invalid value.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: dot_a_linkage field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | ERROR |
strict | ERROR |
dot_a_linkage=true with "1.0" library format (LP050
)¶
The dot_a_linkage
field in the library's library.properties
metadata file has a setting incompatible with the library format in use. The dot_a_linkage
feature is only supported for "1.5 format" (recursive layout) libraries.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: dot_a_linkage field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | ERROR |
strict | ERROR |
includes blank (LP051
)¶
The includes
field in the library's library.properties
metadata file is blank.
This caused the "Sketch > Include library" feature of previous Arduino IDE versions to add an invalid empty #include
directive to the sketch.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: includes field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | ERROR |
strict | ERROR |
includes not in library (LP052
)¶
The includes
field in the library's library.properties
metadata file contains file names not found in the library. This should be a list of header file names that must be added to #include
directives in the sketch in order to use the library.
Library authors sometimes think this is the way to define their library's dependencies, which breaks the Arduino IDE's "Sketch > Include Library" feature for that library.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: includes field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | ERROR |
strict | ERROR |
invalid precompiled value (LP053
)¶
The precompiled
field in the library's library.properties
metadata file has an invalid value.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: precompiled field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | ERROR |
strict | ERROR |
precompiled with "1.0" format (LP054
)¶
The precompiled
field in the library's library.properties
metadata file has a setting incompatible with the library format in use. The precompiled
feature is only supported for the "1.5 format" (recursive layout) library format.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: precompiled field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | ERROR |
strict | ERROR |
ldflags < min length (LP055
)¶
The ldflags
field in the library's library.properties
metadata file is shorter than the minimum length.
More information: here
Enabled for superproject type: all
Category: library.properties
Subcategory: ldflags field
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | ERROR |
strict | ERROR |
Arduino.h case (LC001
)¶
An #include
directive for a file matching the standardized Arduino core library's Arduino.h
header in all except case (e.g., #include <arduino.h>
) was found in the library's code. This causes compilation failure on case-sensitive file systems.
Enabled for superproject type: all
Category: code
Subcategory: miscellaneous
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
no readme (LD001
)¶
None of the standard README file names (e.g., README.md
) were found in the library's root folder. This file provides interested parties with a convenient and standardized location to get information about the project.
More information: here
Enabled for superproject type: library
Category: documentation
Subcategory: miscellaneous
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
no license file (LD002
)¶
None of the standard license file names (e.g., LICENSE.txt
) were found in the library's root folder. This file provides interested parties with a convenient and standardized location to get information about the project's licensing and is also used by GitHub for automatic license type classification.
More information: here
Enabled for superproject type: library
Category: documentation
Subcategory: miscellaneous
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | ERROR |
stray sketch (LD003
)¶
A sketch was found outside the library's examples
and/or extras
subfolders. Example sketches must be placed in the standardized location.
More information: here
Enabled for superproject type: all
Category: documentation
Subcategory: examples
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | ERROR |
strict | ERROR |
no examples (LD004
)¶
No example sketches were found in the library. Examples demonstrating usage of the library serve as an important form of documentation for Arduino users. If the library does contain example sketches, make sure they are valid sketches and in the appropriate location.
More information: here
Enabled for superproject type: all
Category: documentation
Subcategory: examples
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | WARNING |
strict | WARNING |
incorrect examples folder name (LD005
)¶
A subfolder was found in the library with name similar to the standard examples
folder used for example sketches.
More information: here
Enabled for superproject type: all
Category: documentation
Subcategory: examples
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | ERROR |
strict | ERROR |
examples folder name case (LD006
)¶
The library's examples subfolder name has incorrect case. The folder name must be spelled exactly examples
More information: here
Enabled for superproject type: all
Category: documentation
Subcategory: examples
Rule levels¶
compliance |
Level |
---|---|
permissive | WARNING |
specification | ERROR |
strict | ERROR |