dataforge-core/CHANGELOG.md

220 lines
6.4 KiB
Markdown
Raw Normal View History

# Changelog
2023-03-31 09:38:34 +03:00
## Unreleased
### Added
- Wasm artifacts
2023-11-26 10:05:19 +03:00
### Changed
### Deprecated
### Removed
### Fixed
- Partially fixed a bug with `MutableMeta` observable wrappers.
2023-11-26 10:05:19 +03:00
### Security
## 0.7.0 - 2023-11-26
### Added
- Obligatory `type: KType` and `descriptor` property for `MetaConverters`
2023-10-08 18:20:23 +03:00
- Added separate `Meta`, `SealedMeta` and `ObservableMutableMeta` builders.
2023-03-31 09:38:34 +03:00
### Changed
2023-11-26 10:05:19 +03:00
2023-10-29 21:39:40 +03:00
- Meta converter `metaToObject` returns a non-nullable type. Additional method `metaToObjectOrNull` for nullable return.
2023-09-13 12:19:20 +03:00
- Kotlin 1.9.20.
- Migrated from ktor-io to kotlinx-io.
2023-11-12 14:26:28 +03:00
- `MutableMeta` builder now returns a simplified version of meta that does not hold listeners.
2023-10-08 18:20:23 +03:00
- More concise names for read/write methods in IO.
- Remove unnecessary confusion with `get`/`getMeta` by removing `getMeta` from the interface.
2023-03-31 09:38:34 +03:00
### Deprecated
2023-11-26 10:05:19 +03:00
- `String.parseValue` is replaced with `Value.parse`
2023-03-31 09:38:34 +03:00
### Fixed
2023-11-26 10:05:19 +03:00
- Memory leak in SealedMeta builder
2023-03-31 09:38:34 +03:00
2023-07-29 12:59:55 +03:00
## 0.6.2 - 2023-07-29
### Changed
2023-11-26 10:05:19 +03:00
2023-07-29 12:59:55 +03:00
- 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.
2023-03-31 09:38:34 +03:00
## 0.6.1 - 2023-03-31
### Added
2023-11-26 10:05:19 +03:00
2023-03-20 17:53:40 +03:00
- File cache for workspace
- Smart task metadata transformation for workspace
2022-08-13 19:16:18 +03:00
- Add `readOnly` property to descriptors
2021-12-18 17:02:17 +03:00
- Add `specOrNull` delegate to meta and Scheme
2022-03-07 16:12:01 +03:00
- Suspended read methods to the `Binary`
2022-04-17 21:59:09 +03:00
- Synchronously accessed `meta` to all `DataSet`s
2022-05-01 20:23:37 +03:00
- More fine-grained types in Action builders.
2021-08-13 20:55:05 +03:00
2021-11-30 11:58:23 +03:00
### Changed
2023-11-26 10:05:19 +03:00
2023-03-27 09:45:51 +03:00
- `Name::replaceLast` API
2023-03-20 17:53:40 +03:00
- `PluginFactory` no longer requires plugin class
- Collection<Named> toMap -> associateByName
2023-01-25 18:56:19 +03:00
- Simplified `DFTL` envelope format. Closing symbols are unnecessary. Properties are discontinued.
2022-08-23 10:55:00 +03:00
- Meta `get` method allows nullable receiver
2022-08-11 17:59:31 +03:00
- `withDefault` functions do not add new keys to meta children and are consistent.
2022-08-08 15:09:16 +03:00
- `dataforge.meta.values` package is merged into `dataforge.meta` for better star imports
2023-03-20 17:53:40 +03:00
- Kotlin 1.8.20
2021-12-12 17:58:01 +03:00
- `Factory` is now `fun interface` and uses `build` instead of `invoke`. `invoke moved to an extension.
2022-04-15 18:56:00 +03:00
- KTor 2.0
2022-04-17 21:59:09 +03:00
- DataTree `items` call is blocking.
- DataSet `getData` is no longer suspended and renamed to `get`
2022-04-24 09:57:33 +03:00
- DataSet operates with sequences of data instead of flows
- PartialEnvelope uses `Int` instead `UInt`.
- `ActiveDataSet` renamed to `DataSource`
2022-05-08 20:56:14 +03:00
- `selectOne`->`getByType`
- Data traversal in `DataSet` is done via iterator
- Remove all unnecessary properties for `IOFormat`
- Separate interfaces for `IOReader` and `IOWriter`
2021-11-30 11:58:23 +03:00
### Deprecated
2023-11-26 10:05:19 +03:00
2023-01-08 11:03:58 +03:00
- Context.fetch -> Context.request
2021-11-30 11:58:23 +03:00
### Fixed
2023-11-26 10:05:19 +03:00
2023-03-27 09:45:51 +03:00
- `readDataDirectory` does not split names with dots
- Front matter reader does not crash on non-UTF files
2022-04-24 14:44:31 +03:00
- Meta file name in readMeta from directory
- Tagless and FrontMatter envelope partial readers fix.
2021-11-30 11:58:23 +03:00
2023-03-31 09:38:34 +03:00
## 0.5.2
2021-11-30 11:58:23 +03:00
### Added
2023-11-26 10:05:19 +03:00
2021-11-30 11:58:23 +03:00
- Yaml plugin
- Partial fix to #53
2021-08-13 20:55:05 +03:00
### Fixed
2023-11-26 10:05:19 +03:00
- MutableMetaImpl attachment and checks
- Listeners in observable meta are replaced by lists
2021-11-02 10:50:38 +03:00
- JS number comparison bug.
2021-08-13 20:55:05 +03:00
2023-03-31 09:38:34 +03:00
## 0.5.0
2021-11-30 11:58:23 +03:00
2021-08-13 20:55:05 +03:00
### Added
2023-11-26 10:05:19 +03:00
2021-05-11 12:42:41 +03:00
- Experimental `listOfSpec` delegate.
2021-04-27 11:17:27 +03:00
### Changed
2023-11-26 10:05:19 +03:00
2021-07-08 12:15:34 +03:00
- **API breaking** Config is deprecated, use `ObservableMeta` instead.
- **API breaking** Descriptor no has a member property `defaultValue` instead of `defaultItem()` 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.
2021-08-13 20:55:05 +03:00
- **Huge API-breaking refactoring of Meta**. Meta now can have both value and children. There is only one kind of descriptor now.
2021-07-31 15:02:11 +03:00
- **API breaking** `String.toName()` is replaced by `Name.parse()`
2021-07-31 17:06:17 +03:00
- **API breaking** Configurable`config` changed to `meta`
2021-04-27 11:17:27 +03:00
### Removed
2023-11-26 10:05:19 +03:00
2021-08-06 12:29:48 +03:00
- `Config`
2021-07-08 12:15:34 +03:00
- Public PluginManager mutability
2021-07-18 14:35:31 +03:00
- Tables and tables-exposed moved to the separate project `tables.kt`
2021-07-30 09:17:46 +03:00
- BinaryMetaFormat. Use CBOR encoding instead
2021-04-27 11:17:27 +03:00
### Fixed
2023-11-26 10:05:19 +03:00
- Proper json array index treatment.
- Proper json index for single-value array.
2021-04-27 11:17:27 +03:00
2023-03-31 09:38:34 +03:00
## 0.4.0
2021-04-27 11:17:27 +03:00
### Added
2023-11-26 10:05:19 +03:00
2021-02-28 22:03:40 +03:00
- LogManager plugin
2021-03-07 09:46:01 +03:00
- dataforge-context API dependency on SLF4j
- Context `withEnv` and `fetch` methods to manipulate plugins without changing plugins after creation.
- Split `ItemDescriptor` into builder and read-only part
2021-02-07 20:49:48 +03:00
### Changed
2023-11-26 10:05:19 +03:00
2021-02-23 17:40:28 +03:00
- Kotlin-logging moved from common to JVM and JS. Replaced by console for native.
2021-03-03 11:36:22 +03:00
- 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
2021-04-27 10:55:58 +03:00
- Added blank builders for children context.
- Refactor loggers
2021-02-07 20:49:48 +03:00
### Deprecated
2023-11-26 10:05:19 +03:00
- Direct use of PluginManager
2021-02-07 20:49:48 +03:00
### Removed
2023-11-26 10:05:19 +03:00
2021-02-28 22:03:40 +03:00
- Common dependency on Kotlin-logging
- Kotlinx-io fork dependency. Replaced by Ktor-io.
2021-02-07 20:49:48 +03:00
### Fixed
2023-11-26 10:05:19 +03:00
2021-04-11 11:24:25 +03:00
- Scheme properties properly handle children property change.
2021-02-07 20:49:48 +03:00
2023-03-31 09:38:34 +03:00
## 0.3.0
2021-02-07 20:49:48 +03:00
### Added
2023-11-26 10:05:19 +03:00
2020-12-04 11:20:20 +03:00
- Yaml meta format based on yaml.kt
2020-12-04 17:34:12 +03:00
- `Path` builders
2020-12-09 12:04:10 +03:00
- Special ValueType for lists
2020-12-20 18:22:50 +03:00
- `copy` method to descriptors
2021-01-30 19:49:28 +03:00
- Multiplatform yaml meta
2020-11-26 22:21:29 +03:00
### Changed
2023-11-26 10:05:19 +03:00
- `ListValue` and `DoubleArrayValue` implement `Iterable`.
- Changed the logic of `Value::isList` to check for type instead of size
2020-12-04 11:20:20 +03:00
- `Meta{}` builder made inline
- Moved `Envelope` builder to a top level function. Companion invoke is deprecated.
2020-12-04 17:34:12 +03:00
- Context logging moved to the extension
2020-12-09 12:04:10 +03:00
- `number` and `string` methods on `Value` moved to extensions (breaking change)
2020-12-24 10:32:11 +03:00
- \[Major breaking change\] Schemes and configurables us `MutableItemProvider` instead of `Config`
- \[Major breaking change\] `MetaItem` renamed to `TypedMetaItem` and `MetaItem` is now an alias for `TypedMetaItem<*>`
- \[Major breaking change\] Moved `NodeItem` and `ValueItem` to a top level
2020-12-28 21:05:27 +03:00
- Plugins are removed from Context constructor and added lazily in ContextBuilder
2021-01-10 14:32:52 +03:00
- \[Major breaking change\] Full refactor of DataTree/DataSource
2021-02-07 20:23:33 +03:00
- \[Major Breaking change\] Replace KClass with KType in data. Remove direct access to constructors with types.
2020-11-26 22:21:29 +03:00
2023-03-31 09:38:34 +03:00
## 0.2.0
### Changed
2023-11-26 10:05:19 +03:00
- 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
2020-10-17 17:22:34 +03:00
- Removed io depdendency from `dataforge-output`. Replaced Output by Appendable.
2020-11-13 19:44:07 +03:00
- Configurable is no longer MutableItemProvider. All functionality moved to Scheme.
### Deprecated
2023-11-26 10:05:19 +03:00
- Context activation API
- TextRenderer
### Removed
2023-11-26 10:05:19 +03:00
- Functional server prototype
- `dataforge-output` module
### Fixed
2023-11-26 10:05:19 +03:00
- Global context CoroutineScope resolution
2023-03-31 09:38:34 +03:00
- Library mode compliance