Skip to content

Releases: makingthematrix/signals3

1.1.1

30 May 15:39
Compare
Choose a tag to compare
  • Scala version bump to the stable LTS 3.3.0

1.1.0

31 Mar 16:51
Compare
Choose a tag to compare

This release contains breaking changes from 1.0.0 which was a direct rewrite of https://github.com/wireapp/wire-signals . I thought this should be the last time when I can make such breaking changes to existing code without consequences, so I went all the way. In 1.2.0 and later the API of existing code should not be changed much anymore.

Better support for boolean signals and event streams

  • #4
  • Creation by comparison of signals values.
  • Logical NOT for both event streams and signals.
  • Methods and operators for logical AND, OR, XOR, NOR, and NAND.
  • Previous multi-arguments AND and OR methods in signals now get their slightly optimized two-arguments versions.

Generators: GeneratorStream and GeneratorSignal

  • #5
  • methods: generate, repeat and heartbeat for GeneratorStream, unfold for GeneratorSignal
  • Ability to stop the generator.
  • Ability to pause the generator (only for the original one, not the transformed).
  • The interval between two generated events/updates can be variable.

The Closeable trait, transformers for generators

  • #10
  • The ability to close a stream/signal was extracted to Closeable which inherits java.lang.Closeable.
  • Transformers - an object with methods to create more complex generators.
  • onClose functionality moved to the Closeable trait (before only in CloseableFuture, now also in Closeable streams and signals).
  • Closing an original Closeable should close the transformed one as well.

CloseableFuture.repeat is now more precise.

Refactorings

  • EventStream becomes Stream.
  • CancellableFuture becomes CloseableFuture.
  • trait NoAutowiring moved from Signal to EventSource.
  • Reorganization of private subclasses of Signal and EventStream (many of them stop being final).
  • On the other hand, some other methods and classes become final and/or private.
  • CloseableFuture inherints Closeable.
  • Stream and Signal from methods for CloaseableFuture moved to Transformers.
  • A missing method added, Stream.flatten.

And, as always, lots of unit tests and extensive docs.

[info] Passed: Total 199, Failed 0, Errors 0, Passed 199
[info] 
[info] ------- Jacoco Coverage Report -------
[info] 
[info] Lines: 77.2% (>= required 0.0%) covered, 163 of 715 missed, OK
[info] Instructions: 66.04% (>= required 0.0%) covered, 2307 of 6793 missed, OK
[info] Branches: 48.77% (>= required 0.0%) covered, 249 of 486 missed, OK
[info] Methods: 57.73% (>= required 0.0%) covered, 276 of 653 missed, OK
[info] Complexity: 48.77% (>= required 0.0%) covered, 459 of 896 missed, OK
[info] Class: 78.57% (>= required 0.0%) covered, 24 of 112 missed, OK
[info]  
[success] Total time: 54 s, completed Mar 31, 2023, 4:54:06 PM
makingthematrix@athena:~/workspace/signals3$ cloc src/main/
      24 text files.
      24 unique files.                              
       0 files ignored.

github.com/AlDanial/cloc v 1.82  T=0.01 s (2596.3 files/s, 438664.6 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Scala                           24            452           2321           1282
-------------------------------------------------------------------------------
SUM:                            24            452           2321           1282
-------------------------------------------------------------------------------
makingthematrix@athena:~/workspace/signals3$ cloc src/test
      20 text files.
      20 unique files.                              
       0 files ignored.

github.com/AlDanial/cloc v 1.82  T=0.01 s (2335.1 files/s, 465268.4 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Scala                           20            957             24           3004
-------------------------------------------------------------------------------
SUM:                            20            957             24           3004
-------------------------------------------------------------------------------

1.0.0

12 Feb 12:06
Compare
Choose a tag to compare

This is Wire Signals 1.0.0 rewritten in Scala 3.

Main features

  • Event streams
  • Signals - event streams with internal values
  • Abstractions for easy data transfer between execution contexts
  • An implementation of (sometimes) cancellable futures
  • Methods to work with event streams and signals in a way similar to standard Scala collections