summaryrefslogtreecommitdiff
path: root/CHANGELOG.md
blob: 1f9ccca10c40423667c379d3e75e83ba778df8f0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
0.4.2 (2020-01-25)
==================

* GHC 8.8 support.

0.4.1 (2019-05-10)
==================

* Added `pLeftSemigroupalUpdate` and `pRightSemigroupalUpdate`.

0.4.0 (2018-08-21)
==================

*   Drop support for GHC < 7.10 and base < 4.8
*   Drop support for Cabal < 1.24
*   Drop support for transformers < 0.4
*   Don't run CI tests for Cabal < 2

*   With Cabal 2.0 or later package info modules are placed in per component
    `autogen` directories. All package info modules are named just `PkgInfo`.
    For backward compatibility modules with the old legacy names (`PkgInfo_*`)
    are still generated but marked deprecated. With Cabal 1.24 only the legacy
    behavior is available and a deprecation warning is raised.

0.3.1 (2018-03-16)
==================

*   Support GHC-8.4.1 and Cabal-2.2
*   Replaced the use of non-ascii identifiers in the public API

0.3.0
=====

*   Remove built in short options `-p`, `-c`, and `-i`
*   Support GHC-8.2 and Cabal-2.0

0.2.15
======

*   Support for http-client >= 0.5

0.2.14
======

*   Support for GHC-8 and Cabal-1.24

0.2.13
======

*   Eliminate most compiler warnings when compiling with GHC-7.10.

*   Bump lower bound on the version of `optparse-applicative` to `0.11.0.2`.
    This avoids issues when building with `transformers-compat`.

*   Reduce compilation time with `text<1.2.0.5` by avoiding usage of `toCaseFold`
    from the `case-insensitive` package.

*   Dropped dependency on the error package.

*   [Issue 43](https://github.com/alephcloud/hs-configuration-tools/issues/43):
    Support detection of the version control system when the package directory
    and thus the cabal file is in sub-directory of the repository.

0.2.12
======

*   Added support for transformers-0.3.0.0. This changes allows usage
    of configuration-tools along with packages that depend on ghc, which
    in turn depends on transformers-0.3.0.0.

0.2.11
======

*   Added support for Cabal-1.18. This is supposed to make the build more
    robust and simplify integration with existing build infrastructure
    and other packages.

0.2.10
======

*   Moved all internal APIs to the `Internal` name space. Exposing them
    in 0.2.9 was considered a bug.

*   Configuration files can be formatted either as JSON or as YAML.
    For remote configuration files the HTTP `Content-Type` header is used to
    determine the format, for local files the file suffix is used.
    The default format is YAML.

*   Set the HTTP `accept` header for JSON and YAML when requesting remote
    configuration files.

0.2.9
=====

*   Use tight constraint for all validation functions. Previously the
    constraint where unnecessarily restrictive.

*   Added `updateProperty` function that generalized `%.:` in the same
    way as `setProperty` generalizes `..:`.

*   Added a validation function for configuration file arguments.

*   Allow usage of more than a single `--config-file` option on the
    command line.

*   Support for static configuration file locations. Configuration files
    can be marked as `required` or `optional`.

*   Support for loading of configuration files form HTTP and HTTPS URLs.
    There are new flags for disabling validation of SSL certificates and
    white listing SSL certificates based on their fingerprint.

*   Added tools for updating configurations with a monoid instance.

*   Added two new option parsers for boolean flags.

    *   The `boolOption_` parser uses the syntax `--feature` and
        `--no-feature` to enable and respectively disable a feature.

    *   The `enableDisableFlag` parser uses the syntax `--enable-feature`
        and `--disable-feature` to enable and respectively disable a feature.

*   Refactored the module layout. The API of the existing modules is
    is backward compatible, but a lot of code got moved into submodules.

*   Improved documentation.

*   Improved test suite.

0.2.8
=====

*   Added validation functions for Boolean values, numeric values and
    orders.

*   Added operator `!..:` for parsing of configuration values that are
    required to be present in a configuration file, thus preventing
    the default value from being used.

*   More consistent usage of case in metavar values.

*   Drop support for optparse-applicative < 0.10.

0.2.7
=====

*   Added `view` function for lenses to `Configuration.Utils.Internal`.

*   Added support for validation of configuration values.

*   Added module `Configuration.Utils.Validation` that provides primitives
    for validating different basic configuration values.

0.2.6
=====

*   For git repositories include also light-weight (non-annotated) tags
    in the version description.

*   Added new function `boolReader`, `boolOption`, `fileOption`, and
    `eitherReadP` to `Utils`.

*   Added new function `maybeOption` and improved documentation about
    `Maybe` config values.

*   Included optimisation level into long info.

0.2.5
=====

*   `Configuration.Utils.Setup`: export `mkPkgInfoModules` function
    that modifies a given `UserHooks` record to generate an `PkgInfo`
    module during configuration.

0.2.4.1
=======

*   Support for optparse-applicative >= 0.10.

0.2.4
=====

*   Configuration.Utils.Setup: fixed generation of `PkgInfo` module for
    package configurations with explicit flags.

*   Improved documentation for `Maybe` values.

0.2.3
=====

*   Show the help options in the options summary message.

*   Add `-?` as short version of for `--help` in addition to `-h`.

*   Remove `showHelpOnError` and `disambiguate` from option parser preferences.

*   Added file `INSTALL_ON_WINDOWS.md` with installation instructions for
    windows to the package.

0.2.2
=====

*   Add Lens `piOptionParserAndDefaultConfiguration` that gives simultaneous
    accesses to `piOptionParser` and `piDefaultConfiguration` which allows
    changing the type parameter of `ProgramInfo a`.

*   Introduce function `setProperty`. It is used as the `..:` operator
    but allows to specify a custom parser for the property value instead
    of the default `parseJSON` from the `FromJSON` instance.

*   Introduce operators `(<*<)`, `(>*>)`, `(<$<)`, `(>$>)` and deprecate
    `(⊙)` and `(<.>)`.

0.2.1
=====

*   Fix build with GHC-7.6 by relaxing lower bounds on some dependencies.

0.2
===

First release.