v2.0
v2 Prologue
v1 of LAMS was developed at a time when few LookML developers had continuous integration (CI) infrastructure set up for their LookML projects. As a result, LAMS targeted a markdown output format for maximum interoperability from Looker’s IDE.
In addition, it tried to fit several distinct use cases into that markdown output: reporting issues/recommendtions, summarizing exemptions, and listing tables by primary key (ostensibly for organizational & navigational benefits).
As more LookML developers adopted a CI pipeline, it became clear that most consumers were looking primarily for a pass/fail indicator and an a listing of failures that was easily consumable via their CI tooling.
With the v2 release of LAMS, the possible output modes have been expanded and modularized, so that consumers can explicity state which output mode(s) are best for them. In addition, LAMS will emphasize a new output mode that is designed to be more accessible from a typical CI tooling context: output goes to the command line’s standard output, rather than to a file, and with a tabular human-readable output with one message on each line, instead of markdown.
Highlighted changes
- Changes to output
- New
output
parameter to toggle between output modes
- New
lines
output mode: human-readable tabular output to the CLI with 1 line per message
- Default output mode set to the new
lines
mode. To preserve v1 functionality, use --output=markdown,developerMarkdown
- LookML parsing errors are now consistent with other errors. They are reported to the selected output mode with other errors, instead of logging to the command-line during execution, and will fail the run by default. To preserve the default v1 functionality (where parsing errors do not result in run errors), you may pass
--on-parser-error=info
- All warnings are now errors. Despite the initial intentions behind the style guide and LAMS, warnings were not meaningfully different from errors, so the distinction has been dropped in the interest of simplicity and intuitiveness.
- Removed reporting of exemptions. As alluded to in the prologue, the markdown output was handling many use cases, each in a subpar way. The reporting of exemptions was an example of this. In the future, a more considered exemption report may be added back with a dedicated output mode.
Other changes
- Ability to pass in additional manifest options via a JSON encoded
manifest
CLI argument
- Fix for finding manifest file when the filesystem returns absolute paths in certain cases
- Additional informational messages, in output modes that display informational messages
- Fixed bug where rule F1 was not being enforced within singtleton link declarations
v2.1
- Adds an ‘ignore’ parameter to exclude certain file paths. It works as per the ignore parameter exposed by glob. The default value is
node_modules/**
, for cases where LAMS may be installed as a local dependency, so that its own test files will not be picked up.
- T2 is now an “umbrella” rule covering T3-T10. Exempting T2 is sufficient, and users no longer need to exempt each “sub rule”. Errors that were previously reported as T2 are now reported as T3.
- Bugfix: Rules T2-10, K1-4, and F3 can now be exempted via a global exemption (in the manifest file)
- Docs: Added a Rule Sandbox micro-app for testing custom rules
v2.1.4
v2.1.5
v2.1.6
- Fix bug in rule F1 with
_rendered_value
. See issue 118
- Fix oversight in rule F4. See issue 19. As a new error condition, this would be a breaking change, and so it requires opt-in via
manifest.rule.F4.options.v3_dimension_groups:yes
v2.1.7
- Allow
_link
in rule F1.
- Dependency updates