Reazen Relude Versions Save

FP-inspired prelude/standard library for ReasonML projects

v0.66.1

1 year ago

🧹 Housekeeping

  • This is a tiny release to remove the engines field from the package.json. I had added this to clearly convey the expected Node version for CI and other developers, but it turns out this field can actually prevent Relude from being installed in projects with mismatched Node versions. My bad.

v0.66.0

1 year ago

🚨 Breaking changes

  • The flip-map operator (previously <#>) is now <$$>. This allows for compatibility with Melange and newer OCaml versions! 🥳 h/t @anmonteiro, and sorry it took so long to get a release out with this change!

✨ New stuff

  • Optionally append and prepend values to lists via List.consOption and List.appendOption. h/t @cakekindel
  • Named tuple accessors (e.g. first, second, third...) were added to the Tuple module. h/t @maxkorp
  • Construct a Set from a single value via Set.singleton
  • Given two AsyncResult values, prefer the "most successful" with AsyncResult.alt
  • Set and Map expose more information about the internal Comparable.t type, keeping that type information from being lost outside of the module. h/t @johnhaley81

🧹 Housekeeping

  • Relude now builds with Melange and OCaml 4.14 in CI 🎉
  • Tests and test coverage are once again running in CI (but if you still see a red X next to this release, that's because the OCaml docgen step is still busted for release builds...)
  • Dependencies like bastet and bisect_ppx have been updated. If these dependencies were giving you any problems in the past, please try updating and let us know if there are still problems (e.g. on Windows or when using the ReScript compiler).

v0.65.0

3 years ago

:sparkles: New

  • BoundedEnum.inverseMap* functions
    • Given an enumeration with a BoundedEnum instance, and a function 'e => 'a, create a function which can perform an inverse lookup from 'a to option('e)
    • Requires an equality function/Eq module or a compare function/Ord module in order to do the lookup comparisons for the 'a value
    • See #278 and #288
    • Thanks @austindd!

v0.64.0

3 years ago

✨ New

  • A few data extraction helpers for Result - see #286 - thanks @rolandpeelen!

v0.63.1

4 years ago

✅ Code coverage

  • Update to bisect_ppx 2.4.1
    • Releasing this as a relude patch release because bisect_ppx is currently listed as a dependency, and not just a devDependency

v0.63.0

4 years ago

Documentation and code coverage updates

This is a documentation/tooling update release - no API changes.

Documentation

Updated docs home page: https://reazen.github.io/relude/#/ Generated docs page: https://reazen.github.io/relude/api/index.html

  • @mlms13 undertook the monumental and soul-crushing effort to generate docs using odoc/bsdoc
    • All of the hand-written markdown docs were moved into code comments, and all the mostly empty markdown files were finally deleted
    • New documentation sidebar has a link to the generated API docs odoc entry point
  • The direction moving forward will be to put all API-related docs in code comments, and to potentially create a new hand-written "Recipes" section in the Docsify docs/ site.
    • The Recipes should cover common usage scenarios and patterns

Coverage

Updated Coverage (in Coveralls): https://coveralls.io/github/reazen/relude

  • @jihchi and @aantron figured out how to get bisect_ppx working well with BuckleScript and undertook the task of switching from Jest coverage to proper OCaml/Reason-based coverage.
    • It might have been a thankless task, but thank you for your efforts - they are greatly appreciated!
    • Tests are still run via Jest, but coverage data is collected against the reason code, which gives much more accurate coverage info
    • The Coveralls reporting is now actually useful in that we can upload coverage info at the file level for online browsing

v0.62.0

4 years ago

:bug: Bug fix

  • Hopefully fix issue on Result TRAVERSE and BITRAVERSE not exposing/unifying the types in the signatures #252 - fix in #264

v0.61.0

4 years ago

✨ New

  • @johnhaley81 #260 - Add keep/reject for Set/Map

v0.60.0

4 years ago

:sparkles: New features

  • List now implements Bastet's UNFOLDABLE (thanks @esbullington!)

v0.59.0

4 years ago

:rotating_light: Breaking changes

  • The underlying bs-abstract dependency is now [email protected]. While the API is nearly identical, you'll need to update your package.json, bsconfig.json, and any references to the BsAbstract module (which should now be BsBastet instead). The Bastet migration guide may also be helpful.

:sparkles: New features

  • Relude.String now has a type t. This means it conforms to BsBastet.Interface.TYPE, and you can pass the Relude.String module anywhere a TYPE module is needed.

:bug: Bug fixes

  • The module signature for Bitraversable was missing some with type ..., which made it difficult to use (#252), but this has been fixed upstream