diff --git a/ChangeLog.md b/ChangeLog.md index 8c4ff57..c16b003 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,33 +1,75 @@ -# Changelog for Habulara +# CHANGELOG -## 0.0.0.2 (2021-02-05) +All notable changes to this project will be documented in this file. +This project adheres to [Haskell Package Versioning +Policy](https://pvp.haskell.org/). -Refactoring (or rewriting to be precise) the prototype. + +## [Unreleased] -Essentially: -- Entire implementation is based on a custom monad that spans across - the library and application. -- Processing is done in a streaming-fashion, based on [conduit - library](https://hackage.haskell.org/package/conduit). -- CLI application is now based on sub-commands. - -There are some functionality removed temporarily which will be added -later (such as some field value operators, file encoding handler, -etc). + +## [0.0.0.3] - 2021-02-09 +### Features +- accept non-UTF8 CSV input text data +- **operators:** add new conditional operators -Also, we have significant performance regression due to the new -underlying code architecture. This is not much worrying as -expressiveness and control over the program execution is much more -important at the moment. + +## [0.0.0.2] - 2021-02-05 ### Features +- enable UTF-8 encoding if the input file is not encoded as such +- add Date/Time type +- **app:** start proper CLI user experience, add "process" command -* **app:** start proper CLI user experience, add "process" command ([2834a59](https://github.com/telostat/habulara/commit/2834a59a8f5e1ab4d137e53dacb371902be5908c)) +### Bug Fixes +- lower the tail of text while capitalizing -## 0.0.0.1 (2020-12-22) +### Code Refactoring +- update README +- review and reorganize examples, benchmarks +- review Mapping module, change and adopt some definitions +- re-implement DSL, make application work again +- make field accessors work with Value arguments +- re-organize Mapping and Operation modules, reformat +- purge old implementation +- add date/time operators +- add boolean operations +- add textual operators +- add numeric operators +- add type-guarded value operators +- change final 'Value' constructor name, adopt in operations +- rename 'VBoolean' constructor to 'VBool' +- rename 'VDecimal' constructor to 'VNumber' +- drop Integer based 'VInt' value type +- re-organize types under Data.Habulara.Core.Types +- drop ByteString based 'VRaw' value type +- improve value conversion semantics +- add 'liftMaybe' to lift 'Maybe' into 'MonadHabulara' +- update stack.yaml, regenerate .cabal file +- start with tests (QuickCheck), ditch Examples, reorganize +- revisit Operations module +- split Types modules, improve Value and Operations +- add another convenience for running HabularaT inside IO +- add OverloadedString extension by default +- add convenience function for running HabularaT inside IO +- implement 'NonEmpty' type +- update sample data generator and add benchmark script +- fix space leak due to laziness in incrementing row counter +- return total number of rows processed from mapper +- reorganize core library, start using Conduit +- introduce VRaw (ByteString-based Value type) +- continue refactoring +- start refactoring + + +## 0.0.0.1 - 2020-12-22 ### Features +- add code generator for Haskell `data` definitions +- add initial DSL implementation for mapping + -* add code generator for Haskell `data` definitions ([8e6e3d6](https://github.com/telostat/habulara/commit/8e6e3d65325f6154d2f19cacc8d64a0e927ca89f)) -* add initial DSL implementation for mapping ([bb5c56f](https://github.com/telostat/habulara/commit/bb5c56f97ac56e167f3eb4e38249dd4a61468439)) +[Unreleased]: https://github.com/telostat/habulara/compare/0.0.0.3...HEAD +[0.0.0.3]: https://github.com/telostat/habulara/compare/0.0.0.2...0.0.0.3 +[0.0.0.2]: https://github.com/telostat/habulara/compare/0.0.0.1...0.0.0.2