Tags: evadne/packmatic
Tags
- Added `Packmatic.Source.Stream`. - Added support for Streams that output IO Lists. - Updated `Packmatic.Source`. - Added ability for any Source to use any data type as its Source State. - Added ability for any Source to return an updated Source State with new data. - Revised `Packmatic.Source.Dynamic`. - Removed custom resolver; any entry notation now accepted. - Updated development & test dependencies.
- Added support for custom Sources. - Any module which implements `Packmatic.Source` can be used as a Source. - Added support for Encoder Events. - Added the `on_event` option to the Encoder which can be used to receive events. - See documentation for `Packmatic.Event`. - Revised `Packmatic.Source`. - Added callback `validate/1` for entry validation. - Revised `Packmatic.Manifest.Entry`. - Moved validation of Initialisation Arguments to Sources. - Revised `Packmatic.Source.File`. - Added explicit cleanup logic. - Revised `Packmatic.Source.URL`. - Added explicit cleanup logic. - Revised `Packmatic.Encoder`. - Fixed acceptance of IO Lists, in case of custom Sources returning these instead of binaries.
- Revised Manifests handling.
- Revised Manifests so they are validated once, during creation.
- Empty Manifests are now invalid.
- Manifests can be valid or invalid depending on their entries.
- See documentation for `Packmatic.Manifest`.
- Revised Encoder to not re-validate Manifests.
- Encoder halts immediately if given an invalid Manifest.
- Removed `Packmatic.Validator.validate_each/1`.
- Since the Manifest is validated as it is built, this function is no longer useful.
- Revised tests.
- Revised test on “no entries” case for invalid Manifest.
- Added simple Manifest test with examples.
- Made the top-level PackmaticTest asynchronous.
- Revised Sources handling.
- Eliminated duplicative types with code generation.
- Known Sources are referred by name.
- The Source Entry type is generated based on the names.
- Revised individual Source modules.
- Standardised nomenclature (`init_arg`, `init_result`, etc) for type handling.
- Revised Manifest types.
- Removed aliasing of `Manifest.Entry.t()`.
- Renamed `Manifest.entry_keyword()` to `Manifest.Entry.proplist()`.
- Added further documentation on how Dynamic Sources work.
- Added documentation within `Packmatic.Source.Dynamic`.
- Added ExDoc test for inlined snippets.