Releases: sociomantic-tsunami/ocean
v4.6.1 auto-converted to D2
v4.6.1
v4.5.4 auto-converted to D2
v4.5.4
https://github.com/sociomantic-tsunami/ocean/milestone/108?closed=1
- Workaround a compiler bug #698
v5.0.1
https://github.com/sociomantic-tsunami/ocean/milestone/107?closed=1
- Fixup ocean internal for DMD 2.085 #697
v5.0.0 : drop D1 support
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
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