henforcer 1.0.0.0 → 1.0.0.1
raw patch · 3 files changed
+71/−1 lines, 3 files
Files
- ChangeLog.md +4/−0
- henforcer.cabal +2/−1
- test/test-config.toml +65/−0
ChangeLog.md view
@@ -2,6 +2,10 @@ ## Unreleased changes +## 1.0.0.1 -- 2026-02-08++* Fix for missing test config file in distributed tarball.+ ## 1.0.0.0 -- 2026-01-27 * First released version after many years of internal use.
henforcer.cabal view
@@ -1,7 +1,7 @@ cabal-version: 3.4 name: henforcer-version: 1.0.0.0+version: 1.0.0.1 synopsis: GHC plugin to enforce user specified rules on code. description: Please see the README on GitHub at <https://github.com/flipstone/henforcer#readme> category: Development, Compiler Plugin, static-analysis@@ -15,6 +15,7 @@ build-type: Simple extra-source-files: README.md+ test/test-config.toml extra-doc-files: ChangeLog.md
+ test/test-config.toml view
@@ -0,0 +1,65 @@+# This is a configuration file used as part of the test suite.+[forAnyModule]+allowedOpenUnaliasedImports = 3+maximumExportsPlusHeaderUndocumented = 3+minimumExportsPlusHeaderDocumented = 3+maximumExportsWithoutSince = 3+minimumExportsWithSince = 3+moduleHeaderCopyrightMustExistNonEmpty = true+moduleHeaderDescriptionMustExistNonEmpty = true+moduleHeaderLicenseMustExistNonEmpty = true+moduleHeaderMaintainerMustExistNonEmpty = true+encapsulatedTrees = [ "Service.ThirdPartyPetsSite"]+treeDependencies = [ {moduleTree = "Control.Monad", dependencies = ["PetStore"]} ]+allowedAliasUniqueness = { allAliasesUniqueExcept = [ "Export" ] }++[[forAnyModule.allowedQualifications]]+module = "UnliftIO"+[[forAnyModule.allowedQualifications.importScheme]]+qualified = { qualifiedPre = true, qualifiedPost = true }+alias = "Foo"+packageQualified = "unliftio"++[[forPatternModules]]+pattern = "Pattern*.Module.**"+allowedOpenUnaliasedImports = 2+maximumExportsPlusHeaderUndocumented = 2+minimumExportsPlusHeaderDocumented = 2+maximumExportsWithoutSince = 2+minimumExportsWithSince = 2+moduleHeaderCopyrightMustExistNonEmpty = false+moduleHeaderDescriptionMustExistNonEmpty = false+moduleHeaderLicenseMustExistNonEmpty = false+moduleHeaderMaintainerMustExistNonEmpty = false++[[forPatternModules]]+# Note this will not be applied to Pattern2.Module! The following pattern overlaps with the above+# and the first matching pattern rule is the one that will win.+pattern = "Pattern2*.Module.**"+maximumExportsPlusHeaderUndocumented = 20+minimumExportsPlusHeaderDocumented = 20+maximumExportsWithoutSince = 20+minimumExportsWithSince = 20+moduleHeaderCopyrightMustExistNonEmpty = true+moduleHeaderDescriptionMustExistNonEmpty = true+moduleHeaderLicenseMustExistNonEmpty = true+moduleHeaderMaintainerMustExistNonEmpty = true+allowedOpenUnaliasedImports = 20+treeDependencies = [ {moduleTree = "Control.Monad", dependencies = ["PetStore"]} ]++[[forPatternModules]]+pattern = "WithIgnoresPattern*.Module.**"+[forPatternModules.rulesToIgnore]+all = true++[[forSpecifiedModules]]+module = "PatternMatchedButSpecifiedWins.Module"+maximumExportsPlusHeaderUndocumented = 20+minimumExportsPlusHeaderDocumented = 20+maximumExportsWithoutSince = 20+minimumExportsWithSince = 20+moduleHeaderCopyrightMustExistNonEmpty = true+moduleHeaderDescriptionMustExistNonEmpty = true+moduleHeaderLicenseMustExistNonEmpty = true+moduleHeaderMaintainerMustExistNonEmpty = true+allowedOpenUnaliasedImports = 20