Skip to content

Releases: sociomantic-tsunami/ocean

v4.6.1 auto-converted to D2

v4.6.1

24 Apr 10:21
Compare
Choose a tag to compare
  • Workaround a compiler bug #698

v4.5.4 auto-converted to D2

v4.5.4

24 Apr 10:21
Compare
Choose a tag to compare

v5.0.1

08 Apr 12:12
Compare
Choose a tag to compare

v5.0.0 : drop D1 support

04 Apr 15:07
Compare
Choose a tag to compare

https://github.com/sociomantic-tsunami/ocean/milestone/66?closed=1

Migration Instructions

Trying to override non-existent config value will error

ocean.util.app.ext.ConfigExt

Previously ocean application framework would allow to specify config override
via command-line flag even for non-existent config values. This was reported
as confusing as there is nothing to "override" in such case.

Starting with this ocean release such attempt will result in an error and any
scripts doing it by accident should be adjusted.

DaemonApp doesn't append SIGTERM to signal list

Previously DaemonApp would append SIGTERM to handled signal
list even if there is already an app-defined one. It was a bug - automatic
handling of SIGTERM was only intended to happen if there is no custom
signal handling defined in derived application.

Starting with 5.0.0 DaemonApp will behave as originally intended - if your
application was relying on old behaviour, make sure to add SIGTERM to signal
list explicitly now.

onStatsTimer will never trigger after zero seconds

ocean.util.app.DaemonApp

Previously, to align the stats on 0/30s mark, onStatsTimer could fire
as soon as startEventlHandling is called. Ocean now delayes the first
onStatsTimer call, meaning that it will be called in [1, interval], instead
of [0, interval) range.

Deprecations

Deprecation of ocean.core.Traits

ocean.core.TypeConvert

Now contains toDg utility previously present in ocean.core.Traits

ocean.meta.codegen.Identifier

Deprecated fieldIdentifier because in D2 it is possible to use plain
identifier template from the same module in all relevant cases.

ocean.meta.traits.Aggregates

Now provides totalMemberSize trait which calculates sum of individual sizes
of all aggregate members (non-recursively).

ocean.meta.traits.Arrays

Now contains rankOfArray utility previously present in ocean.core.Traits.

ocean.meta.types.Enum

New module providing EnumBaseType utility that reduces enum type to its base
type.

ocean.core.Traits

All symbols in this module are deprecated now. Symbols that were not used by any
of downstream applications got immediately removed. Please follow deprecation
instructions for each of remaining symbols to switch to appropriate ocean.meta
utility or direct tupleof usage.

v4.6.0 auto-converted to D2

v4.6.0

04 Apr 14:12
Compare
Choose a tag to compare

https://github.com/sociomantic-tsunami/ocean/milestone/101?closed=1

Deprecations

Deprecation of FullQueryParamSet

This class was not used in our code in any way that can't be replaced by plain
QueryParamSet and had inconsistencies in its API design. Rather than trying
to fix those, it was decided to deprecate/remove this unused utility altogether.

Deprecation of IMicrosecondsClock

This ocean module and containing interface family was not used anywhere in ocean
and is now pending removal.

Features

Add a cli arguments parser for date intervals

ocean.text.arguments.TimeIntervalArgs

TimeIntervalArgs is an utility for the apps that get a time interval for the
cli arguments. the contained functions can be used to handle
timestamps, iso1806 dates and relative time intervals.

example of usage with CliApp class

    import ocean.text.arguments.DateIntervalArgs;

    ...

    TimestampInterval interval;

    override protected void setupArgs ( IApplication app,  Arguments args )
    {
        setupTimeRangeArgs(args, false);
    }

    override protected cstring validateArgs ( IApplication app,
        Arguments args )
    {
        return validateTimeIntervalArgs(args);
    }

    override protected void processArgs ( IApplication app, Arguments args )
    {
        this.interval = processTimeRangeArgs(args);
    }

    ...

and then you can call the app with the time-interval argument:

my_app --time-interval 2014-03-09 now
my_app --time-interval now 1m

v4.5.3 auto-converted to D2

v4.5.3

22 Mar 09:58
Compare
Choose a tag to compare