forked from pool/ghc-servant
OBS-URL: https://build.opensuse.org/package/show/devel:languages:haskell/ghc-servant?expand=0&rev=37
357 lines
14 KiB
Plaintext
357 lines
14 KiB
Plaintext
-------------------------------------------------------------------
|
|
Fri Jul 18 14:39:28 UTC 2025 - Peter Simons <psimons@suse.com>
|
|
|
|
- Update servant to version 0.20.3.0 revision 2.
|
|
Upstream has revised the Cabal build instructions on Hackage.
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Jun 4 10:14:21 UTC 2025 - Peter Simons <psimons@suse.com>
|
|
|
|
- Update servant to version 0.20.3.0.
|
|
0.20.3.0
|
|
----
|
|
|
|
### Significant changes
|
|
|
|
- Remove -XStrictData from servant{,-server}'s cabal files [#1780](https://github.com/haskell-servant/servant/issues/1780) [#1781](https://github.com/haskell-servant/servant/pull/1781)
|
|
|
|
The addition of -XStrictData to servant.cabal and servant-server.cabal reduced the laziness
|
|
of routing, which would trigger unimplemented endpoints using `error` or `undefined`,
|
|
despite the fact that these endpoints themselves were not queried.
|
|
|
|
### Other changes
|
|
|
|
- Server-sent events (SSE) for client-side [#1811](https://github.com/haskell-servant/servant/issues/1811)
|
|
|
|
Implement Server-sent events (SSE) for the Servant client using a new
|
|
combinator "ServerSentEvents". The raw event messages, accumulated events and
|
|
JSON-processed events can be exposed.
|
|
|
|
- Integrate MultiVerb [#1766](https://github.com/haskell-servant/servant/pull/1766) [#1804](https://github.com/haskell-servant/servant/pull/1804)
|
|
|
|
Expose MultiVerb, a more ergonomic way of defining endpoints that return
|
|
many kinds of responses. Read the cookbook https://docs.servant.dev/en/master/cookbook/multiverb/MultiVerb.html
|
|
|
|
- Exported addQueryParam [#1232](https://github.com/haskell-servant/servant/issues/1232) [#1785](https://github.com/haskell-servant/servant/pull/1785)
|
|
|
|
`addQueryParams` is required to define custom `HasLink` instances which actually manipulate the
|
|
generated query params. This function was not exported earlier and now it is.
|
|
|
|
- Add Host API combinator [#1800](https://github.com/haskell-servant/servant/pull/1800)
|
|
|
|
Adding a Host combinator allows servant users to select APIs according
|
|
to the Host header provided by clients.
|
|
|
|
- Use newtype deriving for ToHttpApiData in the type Range [#1813](https://github.com/haskell-servant/servant/pull/1813)
|
|
|
|
- Add public re-export of renderCurlBasePath lens [#1706](https://github.com/haskell-servant/servant/pull/1706)
|
|
- Remove GHC <= 8.10.7 from the support window [#1778](https://github.com/haskell-servant/servant/pull/1778)
|
|
- Add Servant.API.Range type [#1805](https://github.com/haskell-servant/servant/pull/1805)
|
|
- Add missing HasLink instance for DeepQuery [#1784](https://github.com/haskell-servant/servant/issues/1784) [#1814](https://github.com/haskell-servant/servant/pull/1814)
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Mar 26 15:12:39 UTC 2025 - Peter Simons <psimons@suse.com>
|
|
|
|
- Update servant to version 0.20.2 revision 1.
|
|
Upstream has revised the Cabal build instructions on Hackage.
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Aug 30 02:25:17 UTC 2024 - Peter Simons <psimons@suse.com>
|
|
|
|
- Update servant to version 0.20.2.
|
|
0.20.2
|
|
----
|
|
- Full query string helpers [#1604](https://github.com/haskell-servant/servant/pull/1604)
|
|
|
|
This PR introduces `DeepQuery`, a route combinator that implements a pattern commonly known as deep objects.
|
|
It builds upon the convention of using `[]` for a list of parameters:
|
|
`books?filter[search]=value&filter[author][name]=value`.
|
|
The corresponding type would be `DeepQuery "filter" BookQuery :> Get '[JSON] [Book]`.
|
|
- Add IsIn instance for NamedRoutes [#1707](https://github.com/haskell-servant/servant/pull/1707)
|
|
- Renamed `AtLeastOneFragment` type class to `AtMostOneFragment` [#1727](https://github.com/haskell-servant/servant/pull/1727)
|
|
|
|
The previously named `AtLeastOneFragment` type class defined in the
|
|
`Servant.API.TypeLevel` module has been renamed to `AtMostOneFragment`,
|
|
since the previous name was misleading.
|
|
- Use `Header'` in response headers. [#1697](https://github.com/haskell-servant/servant/pull/1697)
|
|
|
|
Use `Header'` instead of `Header` in response, so it's possible to provide
|
|
`Description`, for example:
|
|
|
|
```
|
|
type PaginationTotalCountHeader =
|
|
Header'
|
|
'[ Description "Indicates to the client total count of items in collection"
|
|
, Optional
|
|
, Strict
|
|
]
|
|
"Total-Count"
|
|
Int
|
|
```
|
|
|
|
Note: if you want to add header with description you should use `addHeader'`
|
|
or `noHeader'` which accepts `Header'` with all modifiers.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Aug 12 07:27:41 UTC 2024 - Peter Simons <psimons@suse.com>
|
|
|
|
- Update servant to version 0.20.1 revision 5.
|
|
Upstream has revised the Cabal build instructions on Hackage.
|
|
|
|
-------------------------------------------------------------------
|
|
Fri May 17 21:02:02 UTC 2024 - Peter Simons <psimons@suse.com>
|
|
|
|
- Update servant to version 0.20.1 revision 4.
|
|
Upstream has revised the Cabal build instructions on Hackage.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Nov 27 21:41:34 UTC 2023 - Peter Simons <psimons@suse.com>
|
|
|
|
- Update servant to version 0.20.1 revision 2.
|
|
Upstream has revised the Cabal build instructions on Hackage.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Oct 2 07:39:09 UTC 2023 - Peter Simons <psimons@suse.com>
|
|
|
|
- Update servant to version 0.20.1.
|
|
0.20.1
|
|
----
|
|
|
|
- Support aeson-2.2 [#1695](https://github.com/haskell-servant/servant/pull/1695)
|
|
|
|
0.20
|
|
----
|
|
|
|
- Headers support in UVerb responses [#1570](https://github.com/haskell-servant/servant/issues/1570) [#1571](https://github.com/haskell-servant/servant/pull/1571)
|
|
- Generalize type of `Servant.Types.SourceT.source` to any foldable [#1593](https://github.com/haskell-servant/servant/pull/1593)
|
|
- Make `Mime(Un)Render PlainText String` instances encode/decode UTF-8 [#1645](https://github.com/haskell-servant/servant/issues/1645)
|
|
- Add HasStatus instance for Headers (that defers StatusOf to underlying value) [#1649](https://github.com/haskell-servant/servant/pull/1649)
|
|
- Make fromSourceIO run in IO [#1661](https://github.com/haskell-servant/servant/pull/1661)
|
|
|
|
Some streaming abstractions, like io-streams, require stateful
|
|
initialization. Since all actual call sites of `fromSourceIO`
|
|
are in a context where `IO` actions can be executed, these
|
|
streaming sources can be accomodated by having letting
|
|
`fromSourceIO` run in `IO`.
|
|
|
|
To migrate your existing `FromSourceIO` instance, simply put
|
|
a `pure`/`return` in front of it.
|
|
|
|
- Fix the handling of multiple headers with the same name. [#1666](https://github.com/haskell-servant/servant/pull/1666)
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Jul 7 09:47:33 UTC 2023 - Peter Simons <psimons@suse.com>
|
|
|
|
- Update servant to version 0.19.1 revision 2.
|
|
Upstream has revised the Cabal build instructions on Hackage.
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Mar 30 17:08:12 UTC 2023 - Peter Simons <psimons@suse.com>
|
|
|
|
- Updated spec file to conform with ghc-rpm-macros-2.5.2.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Mar 13 19:50:16 UTC 2023 - Peter Simons <psimons@suse.com>
|
|
|
|
- Update servant to version 0.19.1 revision 1.
|
|
Upstream has revised the Cabal build instructions on Hackage.
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Oct 27 22:28:47 UTC 2022 - Peter Simons <psimons@suse.com>
|
|
|
|
- Update servant to version 0.19.1.
|
|
Upstream has edited the change log file since the last release in
|
|
a non-trivial way, i.e. they did more than just add a new entry
|
|
at the top. You can review the file at:
|
|
http://hackage.haskell.org/package/servant-0.19.1/src/CHANGELOG.md
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Mar 21 14:55:15 UTC 2022 - Peter Simons <psimons@suse.com>
|
|
|
|
- Update servant to version 0.19 revision 4.
|
|
Upstream has revised the Cabal build instructions on Hackage.
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Feb 23 10:01:26 UTC 2022 - Peter Simons <psimons@suse.com>
|
|
|
|
- Update servant to version 0.19 revision 1.
|
|
Upstream has revised the Cabal build instructions on Hackage.
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Feb 2 13:15:43 UTC 2022 - Peter Simons <psimons@suse.com>
|
|
|
|
- Update servant to version 0.19.
|
|
Package versions follow the [Package Versioning Policy](https://pvp.haskell.org/): in A.B.C, bumps to either A or B represent major versions.
|
|
|
|
0.19
|
|
----
|
|
|
|
### Significant changes
|
|
|
|
- Drop support for GHC < 8.6.
|
|
- Support GHC 9.0 (GHC 9.2 should work as well, but isn't fully tested yet).
|
|
- Support Aeson 2 ([#1475](https://github.com/haskell-servant/servant/pull/1475)),
|
|
which fixes a [DOS vulnerability](https://github.com/haskell/aeson/issues/864)
|
|
related to hash collisions.
|
|
- Add `NamedRoutes` combinator, making support for records first-class in Servant
|
|
([#1388](https://github.com/haskell-servant/servant/pull/1388)).
|
|
|
|
Users can now directly mark part as an API as defined by a record, instead of
|
|
using `(:<|>)` to combine routes. Concretely, the anonymous:
|
|
|
|
```haskell
|
|
type API =
|
|
"version" :> Get '[JSON] String :<|>
|
|
"products" :> Get '[JSON] [Product]
|
|
```
|
|
|
|
can be replaced with the explicitly-named:
|
|
|
|
```haskell
|
|
type API = NamedRoutes NamedAPI
|
|
data NamedAPI mode = NamedAPI
|
|
{ version :: mode :- "version" :> Get '[JSON] String
|
|
, products :: mode :- "products" :> Get '[JSON] [Product]
|
|
}
|
|
```
|
|
|
|
`NamedRoutes` builds upon `servant-generic`, but improves usability by freeing
|
|
users from the need to perform `toServant` / `fromServant` conversions
|
|
manually. Serving `NamedRoutes NamedAPI` is now done directly by providing a
|
|
record of handlers, and servant generates clients directly as records as well.
|
|
In particular, it makes it much more practical to work with nested hierarchies
|
|
of named routes.
|
|
|
|
Two convenience functions, `(//)` and `(/:)`, have been added to make the
|
|
usage of named route hierarchies more pleasant:
|
|
|
|
```haskell
|
|
rootClient :: RootApi (AsClientT ClientM)
|
|
rootClient = client (Proxy @API)
|
|
|
|
hello :: String -> ClientM String
|
|
hello name = rootClient // hello /: name
|
|
|
|
endpointClient :: ClientM Person
|
|
endpointClient = client // subApi /: "foobar123" // endpoint
|
|
|
|
type Api = NamedRoutes RootApi
|
|
|
|
data RootApi mode = RootApi
|
|
{ subApi :: mode :- Capture "token" String :> NamedRoutes SubApi
|
|
, hello :: mode :- Capture "name" String :> Get '[JSON] String
|
|
, …
|
|
} deriving Generic
|
|
|
|
data SubApi mode = SubApi
|
|
{ endpoint :: mode :- Get '[JSON] Person
|
|
, …
|
|
} deriving Generic
|
|
```
|
|
|
|
- Add custom type errors for partially applied combinators
|
|
([#1289](https://github.com/haskell-servant/servant/pull/1289),
|
|
[#1486](https://github.com/haskell-servant/servant/pull/1486)).
|
|
|
|
For example, forgetting to document the expected type for a query parameter,
|
|
as in:
|
|
|
|
``` haskell
|
|
type API = QueryParam "param" :> Get '[JSON] NoContent
|
|
```
|
|
|
|
will raise to the following error when trying to serve the API:
|
|
|
|
```
|
|
• There is no instance for HasServer (QueryParam'
|
|
'[Optional, Strict] "param" :> ...)
|
|
QueryParam' '[Optional, Strict] "1" expects 1 more arguments
|
|
```
|
|
|
|
As a consequence of this change, unsaturated types are now forbidden before `(:>)`.
|
|
|
|
- Add a `HeadNoContent` verb ([#1502](https://github.com/haskell-servant/servant/pull/1502)).
|
|
|
|
- *servant-client* / *servant-client-core* / *servant-http-streams*:
|
|
Fix erroneous behavior, where only 2XX status codes would be considered
|
|
successful, irrelevant of the status parameter specified by the verb
|
|
combinator. ([#1469](https://github.com/haskell-servant/servant/pull/1469))
|
|
|
|
- *servant-client* / *servant-client-core*: Fix `Show` instance for
|
|
`Servant.Client.Core.Request`.
|
|
|
|
- *servant-client* / *servant-client-core*: Allow passing arbitrary binary data
|
|
in Query parameters.
|
|
([#1432](https://github.com/haskell-servant/servant/pull/1432)).
|
|
|
|
- *servant-docs*: Generate sample cURL requests
|
|
([#1401](https://github.com/haskell-servant/servant/pull/1401/files)).
|
|
|
|
Breaking change: requires sample header values to be supplied with `headers`.
|
|
|
|
### Other changes
|
|
|
|
- Various bit rotten cookbooks have been updated and re-introduced on
|
|
[docs.servant.dev](https://docs.servant.dev).
|
|
|
|
- Various version bumps.
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Sep 7 18:47:40 UTC 2021 - Ondřej Súkup <mimi.vx@gmail.com>
|
|
|
|
- relax constraints on base-compat
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Aug 17 15:25:19 UTC 2021 - Ondřej Súkup <mimi.vx@gmail.com>
|
|
|
|
- relax constraints on transformers-compat
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Jun 24 12:02:53 UTC 2021 - psimons@suse.com
|
|
|
|
- Update servant to version 0.18.3.
|
|
0.18.3
|
|
------
|
|
|
|
### Significant changes
|
|
|
|
- Add response header support to UVerb (#1420).
|
|
- Use Capture Description if available (#1423).
|
|
|
|
### Other changes
|
|
|
|
- Support GHC-9.0.1.
|
|
- Bump `bytestring`, `attoparsec`, `hspec` and `singleton-bool` dependencies.
|
|
|
|
-------------------------------------------------------------------
|
|
Sat May 15 15:56:17 UTC 2021 - psimons@suse.com
|
|
|
|
- Update servant to version 0.18.2 revision 1.
|
|
Upstream has revised the Cabal build instructions on Hackage.
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Apr 6 13:22:48 UTC 2021 - Ondřej Súkup <mimi.vx@gmail.com>
|
|
|
|
- relax overconstrained deps on singleton-bool
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Mar 25 15:46:03 UTC 2021 - Ondřej Súkup <mimi.vx@gmail.com>
|
|
|
|
- relax dep on attoparsec
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Jan 19 20:10:01 UTC 2021 - Ondřej Súkup <mimi.vx@gmail.com>
|
|
|
|
- relax dep on http-api-data
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Dec 17 12:20:00 UTC 2020 - Ondřej Súkup <mimi.vx@gmail.com>
|
|
|
|
- disable %{ix86} build
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Dec 9 11:40:47 UTC 2020 - psimons@suse.com
|
|
|
|
- Add servant at version 0.18.2.
|
|
|