Skip to content

Releases: LEGO/woof

Remove deprecated method, custom UUIDGen. Add varargs context method.

19 Sep 07:29
f8a5525
Compare
Choose a tag to compare

What's Changed

Notable

Upgrades

Full Changelog: v0.6.1...v0.7.0

v0.6.1 update dependencies

07 Aug 10:06
c146232
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.6.0...v0.6.1

0.6.0 Move to applicative DSL for filters, introduce optimization based on new filters

03 Apr 10:34
Compare
Choose a tag to compare

The highlight is the move to a new DSL for filters. Previously, filters were a type alias:

type Filter = LogLine => Boolean

This has changed to be an enum-based DSL:

enum Filter:
  private[woof] case AtLeastLevel(level: LogLevel)
  private[woof] case ExactLevel(level: LogLevel)
  private[woof] case ClassRegex(regex: Regex)
  private[woof] case MessageFilter(filter: String => Boolean)
  private[woof] case LineNumberFilter(filter: Int => Boolean)
  private[woof] case CompositeAnd(a: Filter, b: Filter)
  private[woof] case CompositeOr(a: Filter, b: Filter)
  private[woof] case Nothing
  private[woof] case Everything
end Filter

with the same Monoid instance and syntax as before:

  given Monoid[Filter] with
    def empty: Filter                         = nothing
    def combine(f: Filter, g: Filter): Filter = f or g

  extension (f: Filter)
    infix def and(g: Filter): Filter = Filter.CompositeAnd(f, g)
    infix def or(g: Filter): Filter  = Filter.CompositeOr(f, g)

For code using compositions of the pre-defined filters, this should not be a breaking change. However, if you have a custom filter, you need to migrate to some composition of the filters in the companion object of Filter.
We realize that this is a reduction in power, but depending on your filter configuration there should be a considerable speedup as compensation:

[info] Benchmark                        Mode  Cnt      Score     Error  Units
[info] FilterBenchmark.testEverything  thrpt   25    255,250 ±  12,763  ops/s
[info] FilterBenchmark.testInfo        thrpt   25    722,664 ±  25,608  ops/s
[info] FilterBenchmark.testNothing     thrpt   25  11275,189 ± 314,631  ops/s
[success] Total time: 1509 s (25:09), completed 31 Mar 2023, 10.38.35

See modules/benchmarks/FilterBenchmark.scala.output.md for the full benchmark results and treatment.

What's Changed

Full Changelog: v0.5.1...v0.6.0

v0.5.1

20 Mar 20:14
Compare
Choose a tag to compare

This fixes a bug where slf4j-common module was not released, thanks very much to @rgueldem for discovering and fixing this 👌🎉

What's Changed

New Contributors

Full Changelog: v0.5.0...v0.5.1

0.5.0 - SLF4J 2.x.x support, bumped dependencies

13 Mar 08:07
Compare
Choose a tag to compare

What's Changed

The highlight here is the woof-slf4j-2 module. With this comes a minor breaking change. Previously, the slf4j wrapper would dispatch the logging effect using IO directly, i.e. no Dispatcher[F] needed. With the new implementation, most of the moving parts have been abstracted, but the user must supply a Dispatcher[F] when calling .registerSlf4j:

import org.legogroup.woof.slf4j.*
+import cats.effect.std.Dispatcher
val mainSlf4j: IO[Unit] = 
+ Dispatcher.sequential[IO].use{ implicit dispatcher =>
    for
      woofLogger  <- DefaultLogger.makeIo(consoleOutput)
      _           <- woofLogger.registerSlf4j
      _           <- programWithSlf4j
    yield ()
+ }

Full Changelog: v0.4.7...v0.5.0

v0.4.7

26 Sep 18:51
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.4.6...v0.4.7

v0.4.6

12 Sep 11:24
f9b0e33
Compare
Choose a tag to compare

This release is only depenceny bumps, most notably the scala version was bumped to version 3.2.0.

What's Changed

Full Changelog: v0.4.5...v0.4.6

v0.4.5

15 Jun 12:00
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.4.4...v0.4.5

v0.4.4

21 Apr 07:07
3c9638d
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.4.3...v0.4.4

v0.4.3

05 Apr 06:54
Compare
Choose a tag to compare

IMPORTANT!

We are bumping the Scala.js version to fix a CVE (see https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-28355).
Please upgrade when possible.

What's Changed

  • Upgrade sbt-scalajs, scalajs-library_2.13, ... from 1.9.0 to 1.10.0 by @scala-steward in #62

Full Changelog: v0.4.2...v0.4.3