freckle-app 1.17.0.0 → 1.17.1.0
raw patch · 4 files changed
+26/−26 lines, 4 filesdep ~hw-kafka-clientPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: hw-kafka-client
API changes (from Hackage documentation)
Files
- CHANGELOG.md +5/−1
- freckle-app.cabal +2/−2
- library/Freckle/App/Kafka/Producer.hs +17/−21
- package.yaml +2/−2
CHANGELOG.md view
@@ -1,4 +1,8 @@-## [_Unreleased_](https://github.com/freckle/freckle-app/compare/v1.17.0.0...main)+## [_Unreleased_](https://github.com/freckle/freckle-app/compare/v1.17.1.0...main)++## [v1.17.1.0](https://github.com/freckle/freckle-app/compare/v1.17.0.0...v1.17.1.0)++- Support (and require) `hw-kafka-client` `>= 5` ## [v1.17.0.0](https://github.com/freckle/freckle-app/compare/v1.16.0.0...v1.17.0.0)
freckle-app.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.18 name: freckle-app-version: 1.17.0.0+version: 1.17.1.0 license: MIT license-file: LICENSE maintainer: Freckle Education@@ -148,7 +148,7 @@ http-conduit >=2.3.5, http-link-header >=1.2.1, http-types >=0.12.3,- hw-kafka-client >=4.0.3 && <5.0.0,+ hw-kafka-client >=5.0.0, immortal >=0.3, lens >=5.1.1, memcache >=0.3.0.1,
library/Freckle/App/Kafka/Producer.hs view
@@ -28,6 +28,7 @@ import Freckle.App.OpenTelemetry import Kafka.Producer import qualified OpenTelemetry.Trace as Trace+import UnliftIO (withRunInIO) import Yesod.Core.Lens import Yesod.Core.Types (HandlerData) @@ -91,13 +92,13 @@ -> KafkaProducerPoolConfig -> IO (Pool KafkaProducer) createKafkaProducerPool addresses KafkaProducerPoolConfig {..} =- Pool.newPool $- Pool.setNumStripes (Just kafkaProducerPoolConfigStripes) $- Pool.defaultPoolConfig- mkProducer- closeProducer- (realToFrac kafkaProducerPoolConfigIdleTimeout)- kafkaProducerPoolConfigSize+ Pool.newPool+ $ Pool.setNumStripes (Just kafkaProducerPoolConfigStripes)+ $ Pool.defaultPoolConfig+ mkProducer+ closeProducer+ (realToFrac kafkaProducerPoolConfigIdleTimeout)+ kafkaProducerPoolConfigSize where mkProducer = either@@ -122,26 +123,21 @@ logDebugNS "kafka" $ "Producing Kafka events" :# ["events" .= values] view kafkaProducerPoolL >>= \case NullKafkaProducerPool -> pure ()- KafkaProducerPool producerPool -> do- errors <-- liftIO $- Pool.withResource producerPool $ \producer ->- produceMessageBatch producer $- toList $- mkProducerRecord <$> values- unless (null errors) $- logErrorNS "kafka" $- "Failed to send events" :# ["errors" .= fmap (tshow . snd) errors]+ KafkaProducerPool producerPool ->+ withRunInIO $ \run ->+ Pool.withResource producerPool $ \producer ->+ for_ @NonEmpty values $ \value -> do+ mError <- liftIO $ produceMessage producer $ mkProducerRecord value+ for_ @Maybe mError $ \e ->+ run $ logErrorNS "kafka" $ "Failed to send event" :# ["error" .= tshow e] where mkProducerRecord value = ProducerRecord { prTopic , prPartition = UnassignedPartition , prKey = Just $ toStrict $ encode $ keyF value- , prValue =- Just $- toStrict $- encode value+ , prValue = Just $ toStrict $ encode value+ , prHeaders = mempty } traced =
package.yaml view
@@ -1,5 +1,5 @@ name: freckle-app-version: 1.17.0.0+version: 1.17.1.0 maintainer: Freckle Education category: Utils github: freckle/freckle-app@@ -112,7 +112,7 @@ - http-conduit >= 2.3.5 # addToRequestQueryString - http-link-header - http-types- - hw-kafka-client < 5.0.0+ - hw-kafka-client - immortal - lens - memcache