Changelog for freckle-app-1.5.0.0
Unreleased
v1.5.0.0
-
Remove
Freckle.App.Datadog
modules forFreckle.App.Stats
equivalentsIt's not a drop-in, but the required changes should be mechanical:
- Instead of
HasDogStats{Client,Tags}
, implement a singleHasStatsClient
- Instead of
mkStatsClient
usewithStatsClient
(the new style ofrunApp
had will enable that) - Use
tagged
instead of extra arguments to metric sends - Move to the new
Rts
,Gauge
, andMiddleware.Stats
modules
- Instead of
-
Change signature of
runApp
andwithApp
Instead of passing a loaded
App
(or a function that loads anApp
) torunApp
andwithApp
, you should now pass a function that takes a function and calls it on the loadedApp
.This is necessary for apps that hold onto values that require cleanup, like
withStatsClient
.-- This doesn't work loadApp :: IO App loadApp = do -- ... withStatsClient $ \appStatsClient -> do -- ??? -- This does loadApp :: (App -> IO a) -> IO a loadApp f = do -- ... withStatsClient $ \appStatsClient -> do f App { .. }
The old form can be trivially converted to the new form like so,
loadApp :: (App -> IO a) -> IO a loadApp f = f =<< loadApp' loadApp' :: IO App loadApp' = -- old code
-
Add functions that check properties that we like to commonly test.
v1.4.0.0
-
Remove
runCapturedLoggingT
We can use
Blammo.Logging.Logger.newTestLogger
instead. SeeMemcachedSpec
as an example. -
Compatibility down to LTS 12.26 / GHC 8.4
v1.3.0.0
- Adjust
Freckle.App.Test
interface- Remove
runAppTest
- Add
appExample
for making a expectation concretelyAppExample
- Add
expectationFailure
, andpending(With)
helpers inMonadIO
- Remove
v1.2.0.2
Env.kept
compatibility with envparse-0.5
v1.2.0.1
-
Use
Env.kept
with parsing that occurs inmakePostgresPool
This ensure all
PG
variables are kept in the environment after parsing, to again match pre-v1.1 behavior.If you would prefer not to keep these variables, parse them yourself (e.g. with
envParseDatabaseConf
) and usemakePostgresPoolWith
. -
Add
Freckle.App.Env.kept
to re-define aParser
so that all variables are kept after reading. Not doing this can break tests if you are re-parsing the environment for each example.Replace
Env.parse f
withEnv.parse f $ Env.kept
to recover how this module behaved prior to v1.1.
v1.2.0.0
-
Remove
Freckle.App.Logging
, integrate with blammo instead.This will require the following end-user changes:
-
Remove
HasLogging
instance and addHasLogger
This will require storing a
Logger
on your runtimeApp
type, instead of aLogLevel
(et al) in your staticAppSettings
type. (Or move torunSimpleLoggingT
.) -
Replace WAI middleware with Blammo integration
-
Replace Yesod functions with [Blammo integration][blammo-yesod]
And changes to environment variable values:
- If using
LOG_OUTPUT=std(out|err)
, useLOG_DESTINATION=std(out|err)
(note thatstdout
is the default) - If using
LOG_OUTPUT=file
, useLOG_DESTINATION=@fancy.log
(yes, that's this option did) - If using
LOG_FORMAT=terminal
, useLOG_FORMAT=tty
(note that this is the defualt)
-
v1.1.0.0
-
Require
MonadLoggerIO
inmakePostgresPool
(and so respect that logging context from DB activities).Previous behavior can be recovered by using
runNoLoggingT makePostgresPool
. -
Re-implement
FronRow.App.Env
via external library,envparse
Some conversions will be required:
-
Reader a
should now beReader Error a
-
Parser a
should now beParser Error a
-
parse
should now beparse id
-
var x X nonEmpty
should now bevar (x <=< nonempty) X mempty
Note that
(str <=< nonempty)
is redundant. -
var (f <$> g) X m
should now bef <$> var g X m
Note that
def
will now need a value the same type asg
, notf
. -
switch
andflag
no longer acceptdef
(the non-active value is an implicit default; the previous behavior was kind of surprising and ambiguous). -
handleEither
has been removed. Users will have to parse a complete value and then further validate/throw externally. -
Previously, we always behaved as if
keep
was applied. Add that explicitly if you need that behavior.
-
v1.0.4.0
- Add
Freckle.App.Bugsnag
for Bugsnag logging in applications. - Increased default PG poolsize to 10.
v1.0.3.0
-
Add
Freckle.App.Memcache
for using memcached in Apps -
Add
Freckle.App.Scientist
for using scientist in Apps
v1.0.2.10
-
Support GHC 9.0 and 9.2
-
Change
Wai
function arguments for producingRouteName
andTraceId
to tagsTo maintain the same behavior, replace
makeLoggingMiddleware app getRouteName getTraceId ...
With
makeLoggingMiddleware app getTags ... where getTags req = catMaybes [ ("route", ) <$> getRouteName req , ("trace_id", ) <$> getTraceId req ]
And similar for
makeRequestMetricsMiddleware
.
v1.0.2.9
- Add some common textual encoding functions to prelude
v1.0.2.8
- Don't allow
aeson-2.0
v1.0.2.7
- Remove explicit
--region
in IAM DB token call - Relax lower-bounds throughout
v1.0.2.6
- Add a looser lower-bound on
containers
v1.0.2.5
- Add a looser lower-bound on
bytestring
- Add a looser lower-bound on
template-haskell
v1.0.2.4
- Add a looser lower-bound on
base
v1.0.2.3
- Add Freckle-specific prelude.
v1.0.2.2
- Target
hspec-junit-formatter-1.0.3.0
(use1.1.0.0
in development)
v1.0.2.1
- Add
denyFrameEmbeddingMiddleware
for denying HTML frame embedding.
v1.0.2.0
- Add 'Freckle.App.Yesod.Route' to allow printing route names.
v1.0.1.0
- Added
Freckle.App.Datadog.Gauge
for client side stateful gauges. - Added
Freckle.App.Datadog.Rts
for sending RTS statistics to DataDog.
v1.0.0.4
-
Support seconds or milliseconds in
PGSTATEMENTTIMEOUT
NOTE: We consider this a non-breaking change because the environment variable interface is backwards-compatible. By normal Haskell rules, it would be major since it's changing the type of something exported.
-
Add
respondQueryCanceled
Yesod Middlewares -
Add
makeRequestMetricsMiddleware
v1.0.0.3
- Add
package.yaml
toextra-source-files
.
v1.0.0.2
- Extract tests that require
git
into a new suite.
v1.0.0.1
- Ensure
release
GitHub Action completes properly.
v1.0.0.0
First tagged release.