From bacf4f0adc0830a93fe61791ba77b250b9efa736 Mon Sep 17 00:00:00 2001 From: Chris Martin Date: Thu, 16 Jan 2025 18:00:26 -0700 Subject: [PATCH 1/4] split freckle-stats, freckle-ecs --- .github/workflows/release.yml | 6 +- freckle-app/CHANGELOG.md | 18 ++++- freckle-app/freckle-app.cabal | 13 ++-- freckle-app/library/Freckle/App/Yesod.hs | 8 ++- freckle-app/package.yaml | 8 +-- freckle-ecs/freckle-ecs.cabal | 54 ++++++++++++++ .../library/Freckle/App/Ecs.hs | 0 freckle-ecs/package.yaml | 61 ++++++++++++++++ freckle-stats/freckle-stats.cabal | 64 +++++++++++++++++ .../library/Freckle/App/Stats.hs | 19 ++--- .../library/Freckle/App/Stats/Rts.hs | 0 freckle-stats/package.yaml | 70 +++++++++++++++++++ stack-lts20.yaml | 2 + stack-lts21.yaml | 2 + stack-lts22.yaml | 2 + stack-lts23.yaml | 2 + stack-nightly.yaml | 2 + 17 files changed, 300 insertions(+), 31 deletions(-) create mode 100644 freckle-ecs/freckle-ecs.cabal rename {freckle-app => freckle-ecs}/library/Freckle/App/Ecs.hs (100%) create mode 100644 freckle-ecs/package.yaml create mode 100644 freckle-stats/freckle-stats.cabal rename {freckle-app => freckle-stats}/library/Freckle/App/Stats.hs (95%) rename {freckle-app => freckle-stats}/library/Freckle/App/Stats/Rts.hs (100%) create mode 100644 freckle-stats/package.yaml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ad205ec..d923cb2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,6 +12,7 @@ jobs: matrix: package: - freckle-app + - freckle-ecs - freckle-env - freckle-exception - freckle-kafka @@ -19,6 +20,7 @@ jobs: - freckle-memcached - freckle-otel - freckle-prelude + - freckle-stats steps: - uses: actions/checkout@v4 @@ -39,6 +41,7 @@ jobs: matrix: package: - freckle-app + - freckle-ecs - freckle-env - freckle-exception - freckle-kafka @@ -46,6 +49,7 @@ jobs: - freckle-memcached - freckle-otel - freckle-prelude + - freckle-stats env: HACKAGE_KEY: ${{ secrets.HACKAGE_UPLOAD_API_KEY }} @@ -62,7 +66,7 @@ jobs: # Upload using our oldest, tested resolver, to set the lowest lower bounds - name: "Release to Hackage" - run: stack --stack-yaml stack-lts-20.26.yaml upload --pvp-bounds lower ${{ matrix.package }} + run: stack --stack-yaml stack-lts20.yaml upload --pvp-bounds lower ${{ matrix.package }} - name: "Upload documentation" run: stack upload --documentation ${{ matrix.package }} diff --git a/freckle-app/CHANGELOG.md b/freckle-app/CHANGELOG.md index b467aa0..0544127 100644 --- a/freckle-app/CHANGELOG.md +++ b/freckle-app/CHANGELOG.md @@ -1,4 +1,20 @@ -## [_Unreleased_](https://github.com/freckle/freckle-app/compare/freckle-app-v1.21.0.0...main) +## [_Unreleased_](https://github.com/freckle/freckle-app/compare/freckle-app-v1.22.0.0...main) + +## [v1.22.0.0](https://github.com/freckle/freckle-app/compare/freckle-app-v1.21.0.0...freckle-app-v1.22.0.0) + +`Freckle.App.Stats` has moved to a separate package `freckle-stats`. + +When migrating to `freckle-stats`, note that the instance + +```hs +instance HasStatsClient site => HasStatsClient (HandlerData child site) where + statsClientL = envL . siteL . statsClientL +``` + +has been removed. If you are using Yesod, you may need to copy this definition +into your own code. + +`Freckle.App.Ecs` has moved to a separate package `freckle-ecs`. ## [v1.21.0.0](https://github.com/freckle/freckle-app/compare/freckle-app-v1.20.3.0...freckle-app-v1.21.0.0) diff --git a/freckle-app/freckle-app.cabal b/freckle-app/freckle-app.cabal index 50fc14a..71171e6 100644 --- a/freckle-app/freckle-app.cabal +++ b/freckle-app/freckle-app.cabal @@ -1,11 +1,11 @@ cabal-version: 1.22 --- This file has been generated from package.yaml by hpack version 0.36.0. +-- This file has been generated from package.yaml by hpack version 0.37.0. -- -- see: https://github.com/sol/hpack name: freckle-app -version: 1.21.0.0 +version: 1.22.0.0 synopsis: Haskell application toolkit used at Freckle description: Please see README.md category: Utils @@ -35,15 +35,12 @@ library Freckle.App.Bugsnag.SqlError Freckle.App.Csv Freckle.App.Database - Freckle.App.Ecs Freckle.App.Faktory.ProducerPool Freckle.App.Ghci Freckle.App.GlobalCache Freckle.App.Json.Empty Freckle.App.Random Freckle.App.Scientist - Freckle.App.Stats - Freckle.App.Stats.Rts Freckle.App.Test Freckle.App.Test.DocTest Freckle.App.Test.Hspec.AnnotatedException @@ -116,17 +113,15 @@ library , conduit-extra , containers , cookie - , datadog , doctest - , ekg-core , exceptions - , extra , faktory , freckle-env , freckle-exception , freckle-http , freckle-otel , freckle-prelude + , freckle-stats , hs-opentelemetry-api , hs-opentelemetry-instrumentation-persistent , hs-opentelemetry-instrumentation-wai @@ -157,7 +152,6 @@ library , servant-server , template-haskell , text - , time , transformers , transformers-base , typed-process @@ -245,6 +239,7 @@ test-suite spec , cassava , conduit , freckle-app + , freckle-stats , hs-opentelemetry-api , hspec , http-types diff --git a/freckle-app/library/Freckle/App/Yesod.hs b/freckle-app/library/Freckle/App/Yesod.hs index 3e830c6..ad422f8 100644 --- a/freckle-app/library/Freckle/App/Yesod.hs +++ b/freckle-app/library/Freckle/App/Yesod.hs @@ -20,18 +20,20 @@ import Freckle.App.Stats qualified as Stats import Network.HTTP.Types (ResponseHeaders, status503) import Network.Wai qualified as W import Yesod.Core.Handler (HandlerFor, sendWaiResponse) -import Yesod.Core.Types (HandlerContents) +import Yesod.Core.Types (HandlerContents, HandlerData) -- | Catch 'SqlError' when queries are canceled due to timeout and respond 503 -- -- Also logs and increments a metric. respondQueryCanceled - :: HasStatsClient site => HandlerFor site res -> HandlerFor site res + :: HasStatsClient (HandlerData site site) + => HandlerFor site res + -> HandlerFor site res respondQueryCanceled = respondQueryCanceledHeaders [] -- | 'respondQueryCanceledHeaders' but adding headers to the 503 response respondQueryCanceledHeaders - :: HasStatsClient site + :: HasStatsClient (HandlerData site site) => ResponseHeaders -> HandlerFor site res -> HandlerFor site res diff --git a/freckle-app/package.yaml b/freckle-app/package.yaml index 505b870..d42f09b 100644 --- a/freckle-app/package.yaml +++ b/freckle-app/package.yaml @@ -1,5 +1,5 @@ name: freckle-app -version: 1.21.0.0 +version: 1.22.0.0 maintainer: Freckle Education category: Utils @@ -94,17 +94,15 @@ library: - conduit-extra - containers - cookie - - datadog - doctest - - ekg-core - exceptions - - extra - faktory - freckle-env - freckle-exception - freckle-http - freckle-otel - freckle-prelude + - freckle-stats - hs-opentelemetry-api - hs-opentelemetry-instrumentation-persistent - hs-opentelemetry-instrumentation-wai @@ -135,7 +133,6 @@ library: - semigroupoids - template-haskell - text - - time - transformers - transformers-base - typed-process @@ -165,6 +162,7 @@ tests: - cassava - conduit - freckle-app + - freckle-stats - hs-opentelemetry-api - hspec - http-types diff --git a/freckle-ecs/freckle-ecs.cabal b/freckle-ecs/freckle-ecs.cabal new file mode 100644 index 0000000..ca3ac8e --- /dev/null +++ b/freckle-ecs/freckle-ecs.cabal @@ -0,0 +1,54 @@ +cabal-version: 1.18 + +-- This file has been generated from package.yaml by hpack version 0.37.0. +-- +-- see: https://github.com/sol/hpack + +name: freckle-ecs +version: 0.0.0.0 +synopsis: Small utility for Amazon Elastic Container Service +description: Please see README.md +category: Prelude +homepage: https://github.com/freckle/freckle-app#readme +bug-reports: https://github.com/freckle/freckle-app/issues +maintainer: Freckle Education +build-type: Simple +extra-source-files: + package.yaml +extra-doc-files: + README.md + CHANGELOG.md + +source-repository head + type: git + location: https://github.com/freckle/freckle-app + +library + exposed-modules: + Freckle.App.Ecs + other-modules: + Paths_freckle_ecs + hs-source-dirs: + library + default-extensions: + DataKinds + DeriveAnyClass + DerivingVia + DerivingStrategies + GADTs + LambdaCase + NoImplicitPrelude + NoMonomorphismRestriction + OverloadedStrings + TypeFamilies + ghc-options: -fignore-optim-changes -fwrite-ide-info -Weverything -Wno-all-missed-specialisations -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missing-kind-signatures -Wno-missing-local-signatures -Wno-missing-safe-haskell-mode -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-safe -Wno-unsafe + build-depends: + aeson + , base <5 + , extra + , freckle-http + , freckle-prelude + , mtl + default-language: GHC2021 + if impl(ghc >= 9.8) + ghc-options: -Wno-missing-role-annotations -Wno-missing-poly-kind-signatures diff --git a/freckle-app/library/Freckle/App/Ecs.hs b/freckle-ecs/library/Freckle/App/Ecs.hs similarity index 100% rename from freckle-app/library/Freckle/App/Ecs.hs rename to freckle-ecs/library/Freckle/App/Ecs.hs diff --git a/freckle-ecs/package.yaml b/freckle-ecs/package.yaml new file mode 100644 index 0000000..fe944d0 --- /dev/null +++ b/freckle-ecs/package.yaml @@ -0,0 +1,61 @@ +name: freckle-ecs +version: 0.0.0.0 +maintainer: Freckle Education +category: Prelude +github: freckle/freckle-app +synopsis: Small utility for Amazon Elastic Container Service +description: Please see README.md + +extra-doc-files: + - README.md + - CHANGELOG.md + +extra-source-files: + - package.yaml + +language: GHC2021 + +ghc-options: + - -fignore-optim-changes + - -fwrite-ide-info + - -Weverything + - -Wno-all-missed-specialisations + - -Wno-missing-exported-signatures # re-enables missing-signatures + - -Wno-missing-import-lists + - -Wno-missing-kind-signatures + - -Wno-missing-local-signatures + - -Wno-missing-safe-haskell-mode + - -Wno-monomorphism-restriction + - -Wno-prepositive-qualified-module + - -Wno-safe + - -Wno-unsafe + +when: + - condition: "impl(ghc >= 9.8)" + ghc-options: + - -Wno-missing-role-annotations + - -Wno-missing-poly-kind-signatures + +dependencies: + - base < 5 + +default-extensions: + - DataKinds + - DeriveAnyClass + - DerivingVia + - DerivingStrategies + - GADTs + - LambdaCase + - NoImplicitPrelude + - NoMonomorphismRestriction + - OverloadedStrings + - TypeFamilies + +library: + source-dirs: library + dependencies: + - aeson + - extra + - freckle-http + - freckle-prelude + - mtl diff --git a/freckle-stats/freckle-stats.cabal b/freckle-stats/freckle-stats.cabal new file mode 100644 index 0000000..604b43f --- /dev/null +++ b/freckle-stats/freckle-stats.cabal @@ -0,0 +1,64 @@ +cabal-version: 1.18 + +-- This file has been generated from package.yaml by hpack version 0.37.0. +-- +-- see: https://github.com/sol/hpack + +name: freckle-stats +version: 0.0.0.0 +synopsis: An intentionally-leaky StatsD interface to Datadog +description: Please see README.md +category: Prelude +homepage: https://github.com/freckle/freckle-app#readme +bug-reports: https://github.com/freckle/freckle-app/issues +maintainer: Freckle Education +build-type: Simple +extra-source-files: + package.yaml +extra-doc-files: + README.md + CHANGELOG.md + +source-repository head + type: git + location: https://github.com/freckle/freckle-app + +library + exposed-modules: + Freckle.App.Stats + Freckle.App.Stats.Rts + other-modules: + Paths_freckle_stats + hs-source-dirs: + library + default-extensions: + DataKinds + DeriveAnyClass + DerivingVia + DerivingStrategies + GADTs + LambdaCase + NoImplicitPrelude + NoMonomorphismRestriction + OverloadedStrings + RecordWildCards + TypeFamilies + ghc-options: -fignore-optim-changes -fwrite-ide-info -Weverything -Wno-all-missed-specialisations -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missing-kind-signatures -Wno-missing-local-signatures -Wno-missing-safe-haskell-mode -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-safe -Wno-unsafe + build-depends: + Blammo + , aeson + , base <5 + , datadog + , ekg-core + , freckle-ecs + , freckle-env + , freckle-prelude + , immortal + , lens + , mtl + , time + , unliftio + , unordered-containers + default-language: GHC2021 + if impl(ghc >= 9.8) + ghc-options: -Wno-missing-role-annotations -Wno-missing-poly-kind-signatures diff --git a/freckle-app/library/Freckle/App/Stats.hs b/freckle-stats/library/Freckle/App/Stats.hs similarity index 95% rename from freckle-app/library/Freckle/App/Stats.hs rename to freckle-stats/library/Freckle/App/Stats.hs index 8f14616..9132877 100644 --- a/freckle-app/library/Freckle/App/Stats.hs +++ b/freckle-stats/library/Freckle/App/Stats.hs @@ -49,8 +49,6 @@ import Network.StatsD.Datadog qualified as Datadog import System.IO (hPutStrLn, stderr) import System.Metrics.Gauge qualified as EKG import UnliftIO.Exception (bracket_) -import Yesod.Core.Lens -import Yesod.Core.Types (HandlerData) data StatsSettings = StatsSettings { amsEnabled :: Bool @@ -134,9 +132,6 @@ class HasStatsClient env where instance HasStatsClient StatsClient where statsClientL = id -instance HasStatsClient site => HasStatsClient (HandlerData child site) where - statsClientL = envL . siteL . statsClientL - withStatsClient :: (MonadMask m, MonadUnliftIO m) => StatsSettings @@ -153,16 +148,16 @@ withStatsClient StatsSettings {..} f = do tags <- (amsTags <>) <$> getEcsMetadataTags Datadog.withDogStatsD amsSettings $ \client -> -- Add the tags to the thread context so they're present in all logs - withThreadContext (map toPair tags) $ - f + withThreadContext (map toPair tags) + $ f StatsClient { scClient = client , scTags = tags , scGauges = gauges } else do - f $ - StatsClient + f + $ StatsClient { scClient = Datadog.Dummy , scTags = amsTags , scGauges = gauges @@ -295,9 +290,9 @@ sendMetric sendMetric metricType name metricValue = do StatsClient {..} <- view statsClientL - Datadog.send scClient $ - Datadog.metric (Datadog.MetricName name) metricType metricValue - & (Datadog.tags .~ map (uncurry Datadog.tag) scTags) + Datadog.send scClient + $ Datadog.metric (Datadog.MetricName name) metricType metricValue + & (Datadog.tags .~ map (uncurry Datadog.tag) scTags) getEcsMetadataTags :: MonadIO m => m [(Text, Text)] getEcsMetadataTags = do diff --git a/freckle-app/library/Freckle/App/Stats/Rts.hs b/freckle-stats/library/Freckle/App/Stats/Rts.hs similarity index 100% rename from freckle-app/library/Freckle/App/Stats/Rts.hs rename to freckle-stats/library/Freckle/App/Stats/Rts.hs diff --git a/freckle-stats/package.yaml b/freckle-stats/package.yaml new file mode 100644 index 0000000..9b37c4f --- /dev/null +++ b/freckle-stats/package.yaml @@ -0,0 +1,70 @@ +name: freckle-stats +version: 0.0.0.0 +maintainer: Freckle Education +category: Prelude +github: freckle/freckle-app +synopsis: An intentionally-leaky StatsD interface to Datadog +description: Please see README.md + +extra-doc-files: + - README.md + - CHANGELOG.md + +extra-source-files: + - package.yaml + +language: GHC2021 + +ghc-options: + - -fignore-optim-changes + - -fwrite-ide-info + - -Weverything + - -Wno-all-missed-specialisations + - -Wno-missing-exported-signatures # re-enables missing-signatures + - -Wno-missing-import-lists + - -Wno-missing-kind-signatures + - -Wno-missing-local-signatures + - -Wno-missing-safe-haskell-mode + - -Wno-monomorphism-restriction + - -Wno-prepositive-qualified-module + - -Wno-safe + - -Wno-unsafe + +when: + - condition: "impl(ghc >= 9.8)" + ghc-options: + - -Wno-missing-role-annotations + - -Wno-missing-poly-kind-signatures + +dependencies: + - base < 5 + +default-extensions: + - DataKinds + - DeriveAnyClass + - DerivingVia + - DerivingStrategies + - GADTs + - LambdaCase + - NoImplicitPrelude + - NoMonomorphismRestriction + - OverloadedStrings + - RecordWildCards + - TypeFamilies + +library: + source-dirs: library + dependencies: + - aeson + - Blammo + - datadog + - ekg-core + - freckle-ecs + - freckle-env + - freckle-prelude + - immortal + - lens + - mtl + - time + - unliftio + - unordered-containers diff --git a/stack-lts20.yaml b/stack-lts20.yaml index fab7aa4..af84c95 100644 --- a/stack-lts20.yaml +++ b/stack-lts20.yaml @@ -37,6 +37,7 @@ extra-deps: packages: - freckle-app + - freckle-ecs - freckle-env - freckle-exception - freckle-http @@ -44,3 +45,4 @@ packages: - freckle-memcached - freckle-otel - freckle-prelude + - freckle-stats diff --git a/stack-lts21.yaml b/stack-lts21.yaml index 806d8df..b020785 100644 --- a/stack-lts21.yaml +++ b/stack-lts21.yaml @@ -32,6 +32,7 @@ extra-deps: packages: - freckle-app + - freckle-ecs - freckle-env - freckle-exception - freckle-http @@ -39,3 +40,4 @@ packages: - freckle-memcached - freckle-otel - freckle-prelude + - freckle-stats diff --git a/stack-lts22.yaml b/stack-lts22.yaml index 68d0d82..6e5c320 100644 --- a/stack-lts22.yaml +++ b/stack-lts22.yaml @@ -19,6 +19,7 @@ extra-deps: packages: - freckle-app + - freckle-ecs - freckle-env - freckle-exception - freckle-http @@ -26,3 +27,4 @@ packages: - freckle-memcached - freckle-otel - freckle-prelude + - freckle-stats diff --git a/stack-lts23.yaml b/stack-lts23.yaml index ffb81e3..f798b37 100644 --- a/stack-lts23.yaml +++ b/stack-lts23.yaml @@ -19,6 +19,7 @@ extra-deps: packages: - freckle-app + - freckle-ecs - freckle-env - freckle-exception - freckle-http @@ -26,3 +27,4 @@ packages: - freckle-memcached - freckle-otel - freckle-prelude + - freckle-stats diff --git a/stack-nightly.yaml b/stack-nightly.yaml index 87efe87..ea4de0d 100644 --- a/stack-nightly.yaml +++ b/stack-nightly.yaml @@ -44,6 +44,7 @@ allow-newer-deps: packages: - freckle-app + - freckle-ecs - freckle-env - freckle-exception - freckle-http @@ -51,3 +52,4 @@ packages: - freckle-memcached - freckle-otel - freckle-prelude + - freckle-stats From ac43f82b775ac14d4d2b584fbe587d94666e5d2e Mon Sep 17 00:00:00 2001 From: Chris Martin Date: Thu, 16 Jan 2025 18:01:59 -0700 Subject: [PATCH 2/4] licenses --- freckle-ecs/LICENSE | 21 +++++++++++++++++++++ freckle-ecs/freckle-ecs.cabal | 2 ++ freckle-stats/LICENSE | 21 +++++++++++++++++++++ freckle-stats/freckle-stats.cabal | 2 ++ 4 files changed, 46 insertions(+) create mode 100644 freckle-ecs/LICENSE create mode 100644 freckle-stats/LICENSE diff --git a/freckle-ecs/LICENSE b/freckle-ecs/LICENSE new file mode 100644 index 0000000..024922a --- /dev/null +++ b/freckle-ecs/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2021-2024 Renaissance Learning Inc + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/freckle-ecs/freckle-ecs.cabal b/freckle-ecs/freckle-ecs.cabal index ca3ac8e..f16faa3 100644 --- a/freckle-ecs/freckle-ecs.cabal +++ b/freckle-ecs/freckle-ecs.cabal @@ -12,6 +12,8 @@ category: Prelude homepage: https://github.com/freckle/freckle-app#readme bug-reports: https://github.com/freckle/freckle-app/issues maintainer: Freckle Education +license: MIT +license-file: LICENSE build-type: Simple extra-source-files: package.yaml diff --git a/freckle-stats/LICENSE b/freckle-stats/LICENSE new file mode 100644 index 0000000..024922a --- /dev/null +++ b/freckle-stats/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2021-2024 Renaissance Learning Inc + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/freckle-stats/freckle-stats.cabal b/freckle-stats/freckle-stats.cabal index 604b43f..9a8385a 100644 --- a/freckle-stats/freckle-stats.cabal +++ b/freckle-stats/freckle-stats.cabal @@ -12,6 +12,8 @@ category: Prelude homepage: https://github.com/freckle/freckle-app#readme bug-reports: https://github.com/freckle/freckle-app/issues maintainer: Freckle Education +license: MIT +license-file: LICENSE build-type: Simple extra-source-files: package.yaml From 9b6cb338528d110b00502b40eef02855b89c2d02 Mon Sep 17 00:00:00 2001 From: Chris Martin Date: Thu, 16 Jan 2025 18:03:05 -0700 Subject: [PATCH 3/4] readmes --- freckle-ecs/README.md | 3 +++ freckle-stats/README.md | 3 +++ 2 files changed, 6 insertions(+) create mode 100644 freckle-ecs/README.md create mode 100644 freckle-stats/README.md diff --git a/freckle-ecs/README.md b/freckle-ecs/README.md new file mode 100644 index 0000000..a5f79fe --- /dev/null +++ b/freckle-ecs/README.md @@ -0,0 +1,3 @@ +# freckle-ecs + +Small utility for Amazon Elastic Container Service diff --git a/freckle-stats/README.md b/freckle-stats/README.md new file mode 100644 index 0000000..ce11af4 --- /dev/null +++ b/freckle-stats/README.md @@ -0,0 +1,3 @@ +# freckle-stats + +An intentionally-leaky StatsD interface to Datadog From 2562346b7bfb393ddbc852e93fcb13208776b612 Mon Sep 17 00:00:00 2001 From: Chris Martin Date: Thu, 16 Jan 2025 18:04:50 -0700 Subject: [PATCH 4/4] changelogs --- freckle-ecs/CHANGELOG.md | 5 +++++ freckle-stats/CHANGELOG.md | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 freckle-ecs/CHANGELOG.md create mode 100644 freckle-stats/CHANGELOG.md diff --git a/freckle-ecs/CHANGELOG.md b/freckle-ecs/CHANGELOG.md new file mode 100644 index 0000000..c14648a --- /dev/null +++ b/freckle-ecs/CHANGELOG.md @@ -0,0 +1,5 @@ +## [_Unreleased_](https://github.com/freckle/freckle-app/compare/freckle-ecs-v0.0.0.0...main) + +## [v0.0.0.0](https://github.com/freckle/freckle-app/tree/freckle-ecs-v0.0.0.0/freckle-ecs) + +First release, sprouted from `freckle-app-1.21.0.0`. diff --git a/freckle-stats/CHANGELOG.md b/freckle-stats/CHANGELOG.md new file mode 100644 index 0000000..4a703a1 --- /dev/null +++ b/freckle-stats/CHANGELOG.md @@ -0,0 +1,5 @@ +## [_Unreleased_](https://github.com/freckle/freckle-app/compare/freckle-stats-v0.0.0.0...main) + +## [v0.0.0.0](https://github.com/freckle/freckle-app/tree/freckle-stats-v0.0.0.0/freckle-stats) + +First release, sprouted from `freckle-app-1.21.0.0`.