linesman 0.3.0
linesman: ^0.3.0 copied to clipboard
Enforce boundaries between different parts of your codebase.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased] #
0.3.0 - 2026-04-04 #
Added #
- Pub workspace support: linesman now walks up from the package root to find a workspace-level
linesman.yamland merges it with the package-level config. This allows defining cross-package rules and layers in a single place.
Fixed #
- Configuration is now parsed once and cached instead of being re-read from disk for every analyzed file.
- Added test_project to .pubignore
- Untracked pubspec.lock
Changed #
- Use shared release script
0.2.0 - 2026-04-03 #
Changed #
- Migrated from
custom_lintto the nativeanalysis_server_pluginarchitecture (requires Dart 3.10+). - Merged
linesmanandlinesman_lintinto a singlelinesmanpackage. - Configuration is now read from a dedicated
linesman.yamlfile instead ofanalysis_options.yaml. sourceandtargetin rules now accept a list of patterns in addition to a single string.
Added #
- Named groups: define reusable sets of file patterns under
groupsand reference them in rules with a$prefix. - Custom
messagefield on deny rules, shown in the diagnostic output. - Layer enforcement via the
layerskey: define an ordered architecture where imports can only go downward, with optional peer isolation. transitiveLayersoption (defaulttrue): whenfalse, layers can only import from the layer directly below them.