Skip to content

Commit 906fb78

Browse files
authored
Merge pull request #27594 from mbarbin/dunolint
[new release] dunolint (2 packages) (0.0.20250310)
2 parents 5ab9f3c + 076768a commit 906fb78

File tree

3 files changed

+236
-0
lines changed
  • packages
    • dunolint-lib/dunolint-lib.0.0.20250310
    • dunolint/dunolint.0.0.20250310
    • pplumbing/pplumbing.0.0.10

3 files changed

+236
-0
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
opam-version: "2.0"
2+
synopsis: "A library to create dunolint configs"
3+
maintainer: ["Mathieu Barbin <[email protected]>"]
4+
authors: ["Mathieu Barbin"]
5+
license: "LGPL-3.0-or-later WITH LGPL-3.0-linking-exception"
6+
homepage: "https://github.com/mbarbin/dunolint"
7+
doc: "https://mbarbin.github.io/dunolint/"
8+
bug-reports: "https://github.com/mbarbin/dunolint/issues"
9+
depends: [
10+
"dune" {>= "3.17"}
11+
"ocaml" {>= "5.3"}
12+
"base" {>= "v0.17"}
13+
"dune-glob" {>= "3.17"}
14+
"fpath-base" {>= "0.2.2"}
15+
"ppx_compare" {>= "v0.17"}
16+
"ppx_enumerate" {>= "v0.17"}
17+
"ppx_hash" {>= "v0.17"}
18+
"ppx_here" {>= "v0.17"}
19+
"ppx_let" {>= "v0.17"}
20+
"ppx_sexp_conv" {>= "v0.17"}
21+
"ppx_sexp_value" {>= "v0.17"}
22+
"ppxlib" {>= "0.35.0"}
23+
"re" {>= "1.8.0"}
24+
"sexplib0" {>= "v0.17"}
25+
"odoc" {with-doc}
26+
]
27+
build: [
28+
["dune" "subst"] {dev}
29+
[
30+
"dune"
31+
"build"
32+
"-p"
33+
name
34+
"-j"
35+
jobs
36+
"@install"
37+
"@runtest" {with-test}
38+
"@doc" {with-doc}
39+
]
40+
]
41+
dev-repo: "git+https://github.com/mbarbin/dunolint.git"
42+
description: """\
43+
44+
[dunolint] is a set of OCaml libraries and a cli tool to lint and help
45+
manage files in (large) dune projects.
46+
47+
[dunolint-lib] is the package you need as a user to define a dunolint
48+
config, without pulling all the dependencies required by the linter
49+
engine and command line.
50+
51+
It defines a configuration language in which you can express linting
52+
invariants for your projects. The tool will enforce these invariants,
53+
applying global and systematic changes automatically when able, and
54+
help with general ergonomics questions.
55+
56+
For example: "I want for all libs in this subdirectory to enable
57+
`bisect_ppx`, please go patch my dune files". Or, "I would like all
58+
libraries that verify this particular predicate to supply the ppx flag
59+
`-unused-code-warnings=force`", and more.
60+
61+
You can setup [dunolint] as part of your CI checks to help enforcing
62+
properties and linting checks going forward.
63+
64+
"""
65+
tags: [ "dune" "linter" ]
66+
x-maintenance-intent: [ "(latest)" ]
67+
url {
68+
src:
69+
"https://github.com/mbarbin/dunolint/releases/download/0.0.20250310/dunolint-0.0.20250310.tbz"
70+
checksum: [
71+
"sha256=b44119c96aeabb960e852711c2f20ae43f0011e796f05e012141ba980a5b58f6"
72+
"sha512=5bf76732adc940db6cac0875e94c3eaff436288faba95388b9675c68b3f30f5362e01f289fc8a096325f7db812ace273773a1e051ab7d7ace3b8db4a57a0e070"
73+
]
74+
}
75+
x-commit-hash: "8c0c34d8f7c250aff52881a2fe25569488c8dbf5"
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
opam-version: "2.0"
2+
synopsis: "A linter for build files in dune projects"
3+
maintainer: ["Mathieu Barbin <[email protected]>"]
4+
authors: ["Mathieu Barbin"]
5+
license: "LGPL-3.0-or-later WITH LGPL-3.0-linking-exception"
6+
homepage: "https://github.com/mbarbin/dunolint"
7+
doc: "https://mbarbin.github.io/dunolint/"
8+
bug-reports: "https://github.com/mbarbin/dunolint/issues"
9+
depends: [
10+
"dune" {>= "3.17"}
11+
"ocaml" {>= "5.3"}
12+
"base" {>= "v0.17"}
13+
"cmdlang" {>= "0.0.9"}
14+
"dunolint-lib" {= version}
15+
"file-rewriter" {>= "0.0.3"}
16+
"fmt" {>= "0.9.0"}
17+
"fpath" {>= "0.7.3"}
18+
"fpath-base" {>= "0.2.2"}
19+
"fpath-sexp0" {>= "0.2.2"}
20+
"loc" {>= "0.2.2"}
21+
"logs" {>= "0.7.0"}
22+
"parsexp" {>= "v0.17"}
23+
"patdiff" {>= "v0.17"}
24+
"pp" {>= "2.0.0"}
25+
"pplumbing" {>= "0.0.10"}
26+
"ppx_compare" {>= "v0.17"}
27+
"ppx_enumerate" {>= "v0.17"}
28+
"ppx_hash" {>= "v0.17"}
29+
"ppx_here" {>= "v0.17"}
30+
"ppx_let" {>= "v0.17"}
31+
"ppx_sexp_conv" {>= "v0.17"}
32+
"ppx_sexp_value" {>= "v0.17"}
33+
"ppxlib" {>= "0.35.0"}
34+
"sexplib0" {>= "v0.17"}
35+
"sexps-rewriter" {>= "0.0.3"}
36+
"stdio" {>= "v0.17"}
37+
"odoc" {with-doc}
38+
]
39+
build: [
40+
["dune" "subst"] {dev}
41+
[
42+
"dune"
43+
"build"
44+
"-p"
45+
name
46+
"-j"
47+
jobs
48+
"@install"
49+
"@runtest" {with-test}
50+
"@doc" {with-doc}
51+
]
52+
]
53+
dev-repo: "git+https://github.com/mbarbin/dunolint.git"
54+
description: """\
55+
56+
[dunolint] is a set of OCaml libraries and a cli tool to lint and help
57+
manage files in (large) dune projects.
58+
59+
[dunolint] is the package that implements the linter engine for
60+
dunolint configs as well as the [dunolint] command line tool.
61+
62+
You may install it to get the [dunolint] cli, and/or if you want to
63+
use the linting libraries to write custom rewriters and linters.
64+
65+
"""
66+
tags: [ "dune" "linter" ]
67+
x-maintenance-intent: [ "(latest)" ]
68+
url {
69+
src:
70+
"https://github.com/mbarbin/dunolint/releases/download/0.0.20250310/dunolint-0.0.20250310.tbz"
71+
checksum: [
72+
"sha256=b44119c96aeabb960e852711c2f20ae43f0011e796f05e012141ba980a5b58f6"
73+
"sha512=5bf76732adc940db6cac0875e94c3eaff436288faba95388b9675c68b3f30f5362e01f289fc8a096325f7db812ace273773a1e051ab7d7ace3b8db4a57a0e070"
74+
]
75+
}
76+
x-commit-hash: "8c0c34d8f7c250aff52881a2fe25569488c8dbf5"
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
opam-version: "2.0"
2+
synopsis: "Utility libraries to use with [pp]"
3+
maintainer: ["Mathieu Barbin <[email protected]>"]
4+
authors: ["Mathieu Barbin"]
5+
license: "MIT"
6+
homepage: "https://github.com/mbarbin/pplumbing"
7+
doc: "https://mbarbin.github.io/pplumbing/"
8+
bug-reports: "https://github.com/mbarbin/pplumbing/issues"
9+
depends: [
10+
"dune" {>= "3.17"}
11+
"ocaml" {>= "5.2"}
12+
"cmdlang" {>= "0.0.9"}
13+
"cmdlang-to-cmdliner" {>= "0.0.9"}
14+
"cmdliner" {>= "1.3.0"}
15+
"dyn" {>= "3.17"}
16+
"fmt" {>= "0.9.0"}
17+
"loc" {>= "0.2.2"}
18+
"logs" {>= "0.7.0"}
19+
"ordering" {>= "3.17"}
20+
"pp" {>= "2.0.0"}
21+
"sexplib0" {>= "v0.17"}
22+
"stdune" {>= "3.17"}
23+
"odoc" {with-doc}
24+
]
25+
build: [
26+
["dune" "subst"] {dev}
27+
[
28+
"dune"
29+
"build"
30+
"-p"
31+
name
32+
"-j"
33+
jobs
34+
"@install"
35+
"@runtest" {with-test}
36+
"@doc" {with-doc}
37+
]
38+
]
39+
dev-repo: "git+https://github.com/mbarbin/pplumbing.git"
40+
description: """\
41+
42+
[pplumbing] defines a set of utility libraries to use with [pp]. It
43+
is compatible with [logs] and inspired by design choices used by
44+
[dune] for user messages:
45+
46+
- [Pp_tty] extends [pp] to build colored documents in the user's
47+
terminal using ansi escape codes.
48+
49+
- [Err] is an abstraction to report located errors and warnings to
50+
the user.
51+
52+
- [Log] is an interface to [logs] using [Pp_tty] rather than [Format].
53+
54+
- [Log_cli] contains functions to work with [Err] on the side of end
55+
programs (such as a command line tool). It defines command line
56+
helpers to configure the [Err] library, while taking care of setting
57+
the [logs] and [fmt] style rendering.
58+
59+
- [Cmdlang_cmdliner_runner] is a library for running command line
60+
programs specified with [cmdlang] with [cmdliner] as a backend and
61+
making opinionated choices, assuming your dependencies are using
62+
[Err].
63+
64+
These libraries are meant to combine nicely into a small ecosystem of
65+
useful helpers to build CLIs in OCaml.
66+
67+
[cmdlang]: https://github.com/mbarbin/cmdlang
68+
[cmdliner]: https://github.com/dbuenzli/cmdliner
69+
[dune]: https://github.com/ocaml/dune
70+
[fmt]: https://github.com/dbuenzli/fmt
71+
[logs]: https://github.com/dbuenzli/logs
72+
[pp]: https://github.com/ocaml-dune/pp
73+
74+
"""
75+
tags: [ "cli" "cmdlang" "logs" "pp" ]
76+
x-maintenance-intent: [ "(latest)" ]
77+
url {
78+
src:
79+
"https://github.com/mbarbin/pplumbing/releases/download/0.0.10/pplumbing-0.0.10.tbz"
80+
checksum: [
81+
"sha256=17725f5fc34bab17168bb8dadca78b07e76aada6736617782af34d34ef0e7cc1"
82+
"sha512=6b538f79a41dc43f6b8adca455972a0755ddbeb348f17442cb47a0eb3d72ef9bf630ffbe2e3634d66d1b44972ade7bf95e6b495c54bb219841cf8024b16b196d"
83+
]
84+
}
85+
x-commit-hash: "48fa979cbfad07d1111a09c01999560f20fd7f5c"

0 commit comments

Comments
 (0)