- Custom CoroutineContext during
Context
creation.
- Kotlin 2.0
MetaSpec
renamed toMetaReader
. MetaSpec is now reserved for builder-based generation of meta descriptors.- Add self-type for Meta. Remove unsafe cast method for meta instances.
- Automatic descriptors for schema. It is not possible to implement them without heavy reflection.
- Name index comparator
- Specialized ByteArrayValue
- DataSink
branch
is replaced withputAll
to avoid confusion with DataTree methods - Meta delegate now uses a specific class that has a descriptor
listOfScheme
andlistOfConvertable
delegates provides correct items order.- Scheme meta setter works with proper sub-branch.
- NameToken.parse improper work with indices.
- Proper data handling for cache.
- Wasm artifacts
- Add automatic MetaConverter for serializeable objects
- Add Meta and MutableMeta delegates for convertable and serializeable
- Meta mapping for data.
- Descriptor
children
renamed tonodes
MetaConverter
now inheritsMetaSpec
(formerSpecifiction
). SoMetaConverter
could be used more universally.- Meta copy and modification now use lightweight non-observable meta builders.
- Full refactor of Data API. DataTree now works similar to Meta: contains optional anonymous root element and data items. Updates are available for
ObservaleDataSource
andObservableDataTree
variants.
node(key,converter)
in favor ofserializable
delegate
- Partially fixed a bug with
MutableMeta
observable wrappers. valueSequence
now include root value. Someta.update
works properly.
- Obligatory
type: KType
anddescriptor
property forMetaConverters
- Added separate
Meta
,SealedMeta
andObservableMutableMeta
builders.
- Meta converter
metaToObject
returns a non-nullable type. Additional methodmetaToObjectOrNull
for nullable return. - Kotlin 1.9.20.
- Migrated from ktor-io to kotlinx-io.
MutableMeta
builder now returns a simplified version of meta that does not hold listeners.- More concise names for read/write methods in IO.
- Remove unnecessary confusion with
get
/getMeta
by removinggetMeta
from the interface.
String.parseValue
is replaced withValue.parse
- Memory leak in SealedMeta builder
- Meta to Json serializer now serializes a single item with index as an array. It is important for plotly integration.
- Meta to Json serializes Meta without children a value as literal or array instead of an object with
@value
field.
- File cache for workspace
- Smart task metadata transformation for workspace
- Add
readOnly
property to descriptors - Add
specOrNull
delegate to meta and Scheme - Suspended read methods to the
Binary
- Synchronously accessed
meta
to allDataSet
s - More fine-grained types in Action builders.
Name::replaceLast
APIPluginFactory
no longer requires plugin class- Collection toMap -> associateByName
- Simplified
DFTL
envelope format. Closing symbols are unnecessary. Properties are discontinued. - Meta
get
method allows nullable receiver withDefault
functions do not add new keys to meta children and are consistent.dataforge.meta.values
package is merged intodataforge.meta
for better star imports- Kotlin 1.8.20
Factory
is nowfun interface
and usesbuild
instead ofinvoke
. `invoke moved to an extension.- KTor 2.0
- DataTree
items
call is blocking. - DataSet
getData
is no longer suspended and renamed toget
- DataSet operates with sequences of data instead of flows
- PartialEnvelope uses
Int
insteadUInt
. ActiveDataSet
renamed toDataSource
selectOne
->getByType
- Data traversal in
DataSet
is done via iterator - Remove all unnecessary properties for
IOFormat
- Separate interfaces for
IOReader
andIOWriter
- Context.fetch -> Context.request
readDataDirectory
does not split names with dots- Front matter reader does not crash on non-UTF files
- Meta file name in readMeta from directory
- Tagless and FrontMatter envelope partial readers fix.
- Yaml plugin
- Partial fix to #53
- MutableMetaImpl attachment and checks
- Listeners in observable meta are replaced by lists
- JS number comparison bug.
- Experimental
listOfSpec
delegate.
- API breaking Config is deprecated, use
ObservableMeta
instead. - API breaking Descriptor no has a member property
defaultValue
instead ofdefaultItem()
extension. It caches default value state on the first call. It is done because computing default on each call is too expensive. - Kotlin 1.5.10
- Build tools 0.10.0
- Relaxed type restriction on
MetaConverter
. Now nullables are available. - Huge API-breaking refactoring of Meta. Meta now can have both value and children. There is only one kind of descriptor now.
- API breaking
String.toName()
is replaced byName.parse()
- API breaking Configurable
config
changed tometa
Config
- Public PluginManager mutability
- Tables and tables-exposed moved to the separate project
tables.kt
- BinaryMetaFormat. Use CBOR encoding instead
- Proper json array index treatment.
- Proper json index for single-value array.
- LogManager plugin
- dataforge-context API dependency on SLF4j
- Context
withEnv
andfetch
methods to manipulate plugins without changing plugins after creation. - Split
ItemDescriptor
into builder and read-only part
- Kotlin-logging moved from common to JVM and JS. Replaced by console for native.
- Package changed to
space.kscience
- Scheme made observable
- Global context is a variable (the singleton is hidden and will be deprecated in future)
- Kotlin 1.5
- Added blank builders for children context.
- Refactor loggers
- Direct use of PluginManager
- Common dependency on Kotlin-logging
- Kotlinx-io fork dependency. Replaced by Ktor-io.
- Scheme properties properly handle children property change.
- Yaml meta format based on yaml.kt
Path
builders- Special ValueType for lists
copy
method to descriptors- Multiplatform yaml meta
ListValue
andDoubleArrayValue
implementIterable
.- Changed the logic of
Value::isList
to check for type instead of size Meta{}
builder made inline- Moved
Envelope
builder to a top level function. Companion invoke is deprecated. - Context logging moved to the extension
number
andstring
methods onValue
moved to extensions (breaking change)- [Major breaking change] Schemes and configurables us
MutableItemProvider
instead ofConfig
- [Major breaking change]
MetaItem
renamed toTypedMetaItem
andMetaItem
is now an alias forTypedMetaItem<*>
- [Major breaking change] Moved
NodeItem
andValueItem
to a top level - Plugins are removed from Context constructor and added lazily in ContextBuilder
- [Major breaking change] Full refactor of DataTree/DataSource
- [Major Breaking change] Replace KClass with KType in data. Remove direct access to constructors with types.
- Context content resolution refactor
- Kotlin 1.4.10 (build tools 0.6.0)
- Empty query in Name is null instead of ""
- Provider provides an empty map instead of error by default
- Hidden delegates hierarchy in favor of stdlib properties
- Removed io depdendency from
dataforge-output
. Replaced Output by Appendable. - Configurable is no longer MutableItemProvider. All functionality moved to Scheme.
- Context activation API
- TextRenderer
- Functional server prototype
dataforge-output
module
- Global context CoroutineScope resolution
- Library mode compliance