Liking cljdoc? Tell your friends :D

Speculoos library changelog

changelog meta

version 3

2024 November 11
Brad Losavio (blosavio@sagevisuals.com)
Description: Enhancements to handle subvectors.
Project status: experimental
Urgency: low
Breaking: no

altered functions: valid-collections?, valid-scalars?, validate-collections, validate-scalars

Breaking changes

  • Now require version 2 of `fn-in` lib so that can handle subvectors. See https://github.com/blosavio/fn-in/issues/2.
  • Now require version Clojure 1.12.0.

Non-breaking changes

  • All functions in Speculoos can now handle subvector types.

version 2

2024 November 11
Brad Losavio (blosavio@sagevisuals.com)
Description: Work on addressing comments.
Project status: experimental
Urgency: low
Breaking: yes

added functions: predicates-without-collections, thoroughly-valid-collections?, thoroughly-valid-scalars?
renamed functions:
  • map-2map*
  • map-indexed-2map-indexed*
  • reduce-2reduce*
  • reduce-indexed-2reduce-indexed*
  • validate-fn-meta-specvalidate-fn
moved functions: recover-literal-path, reduce-indexed
removed functions: bazooka-swatting-files, bed-of-procrustes, map*, map-indexed*, nil-out, reduce*, reduce-indexed*, smash-data
altered functions: instrument, scalars-without-predicates, thoroughly-valid?, validate-collections, validate-fn-meta-spec, validate-fn-with, validate-scalars, validate-set-elements

Breaking changes

  • Adjusted `scalars-without-predicates` to return a set of all-paths elements, instead of a sequence, to be consistent with `collections-without-predicates`.
  • Re-named functions in collection-functions namespace from `blah-2` to `blah` to emphasize they're not merely a new version, but that they operate on *any* Clojure collection type, and to be consistent with `fn-in` namespace members.
  • Removed Speculoos project's internal 'fn-in' namespace to an external lib. 'fn-in' is a new dependency.
  • Moved `recover-literal-path` and helper functions from utility namespace to core namespace; moved attendant tests from utility-tests to core-tests. In preparation for adding feature to `validate-collections`.
  • GitHub Issue #1: Changed validation report key returned `validate-set-elements` from `:datum` to `:datums-set` to emphasize that *every* datum in the set is validated.
  • Removed un-serious utility functions of dubious usefulness.
  • Removed function arg-vs-ret scalar/collection validation feature from `validate-fn-with`. It was too complex, and difficult to use.
  • Re-named `validate-fn-meta-spec` to `validate-fn`.

Non-breaking changes

  • Added `thoroughly-valid-scalars?` and `thoroughly-valid-collections?` utilities.
  • Adjusted `thoroughly-valid?` to internally use new functions.
  • Removed hard-coded collection hierarchy derivation and replaced with a `load` from a single file.
  • Expanded docstrings and examples to provide clarity, completeness, and better convey how functions behave and what they're intended for, especially for a user who looks at the API doc before html documentation.
  • Internalized `reduce-indexed` into 'core' namespace, plus unit tests into core-tests. Removed 'collection-functions' namespace because Speculoos does not use `map*`, `map-indexed*`, nor `reduce*`.
  • Removed Speculoos project's own version of the derived collection hierarchy; now refers to the one provided by the 'fn-in' dep.
  • Upgraded `validate-collections` report so that entries now indicate the literal path to the collection datum, at keyword `:path-datum`.
  • GitHub Issue #2: Upgraded `validate-scalars` to accept 'bare' scalar and 'bare' predicate. This is intentionally undocumented behavior, but provided for convenience and least surprise.
  • GitHub Issue #1: Fixed incorrect `:path` reporting in `validate-set-elements`.
  • GitHub Issue #3: Fixed bug in `validate-collections` that validated un-paired collection predicates against `nil`.
  • Added `predicates-without-collections` to complete feature matrix.
  • GitHub Issue #4: Fixed ignored return collection validations in `valdiate-fn-with`.
  • Adjusted `validate-fn-with` to take advantage of `validate-scalars` upgraded ability to validate bare scalars with bare predicates.
  • Added a completely new argument/return relationship validation to `validate-fn-with` that is much cleaner. Old, complex way remains.
  • Added `:canonical` option to `exercise` and `exercise-fn` to use canonical values instead of randomly-generated values.
  • GitHub Issue #9: Fixed `valid-collections?` to properly handle collection predicates that yield truthy/falsey values.

version 1

2024 July 26
Brad Losavio (blosavio@sagevisuals.com)
Description: Request for comments.
Project status: experimental
Urgency: low
Breaking: yes

added functions: lazy-seq?, thoroughly-valid?
renamed functions:
  • collections-without-specscollections-without-predicates
  • data-with-specsscalars-with-predicates
  • data-without-specsscalars-without-predicates
  • valid-collection-spec?valid-collections?
  • valid-macro-spec?valid-macro?
  • valid-scalar-spec?valid-scalars?
  • validate-collection-specvalidate-collections
  • validate-scalar-specvalidate-scalars
altered functions: data-with-specs, data-without-specs, defpred, specs-without-data

Breaking changes

  • Re-named functions for clarity, correctness, and conciseness. Also updated documentation to correspond to new function names.
  • Re-naming functions to more accurately convey purpose and action. `data-without-specs` to `scalars-without-predicates`, `data-with-specs` to `scalars-with-predicates`, and `collections-without-specs` to `collections-without-predicates`.

Non-breaking changes

  • Upgraded `defpred` predicate definition macro that can inspect a function S-expression and create a random sample generator. Also added documentation and illustrations.
  • Added `thoroughly-valid?` utility function.
  • Improved `data-without-specs`, `specs-without-data`, `data-with-specs` to properly handle scalars within a set.
  • Removed un-needed/redundant api.clj and api.html pages because they're automatically generated by Codox.
  • Added a `*max-tries*` dynamic var that governs random sample generators.
  • Added tests to verify handling of sequences emitted by `interpose`, `interleave`, `lazy-cat`, `mapcat`, and `zipmap`.
  • Added `lazy-seq?` utility predicate.
  • Various documentation edits spanning 2024July10 through 2024July26.

version 0

2024 June 6
Brad Losavio (blosavio@sagevisuals.com)
Description: Initial public release.
Project status: experimental
Urgency: low
Breaking: no

Breaking changes

    Non-breaking changes


      Changelog info

      A human- and machine-readable changelog.edn will accompany each version at the project's root directory. changelog.edn is tail-appended file constructed from all previous releases, possibly automatically-composed of per-version changelog-vN.edn files in a sub-directory.

      A changelog.md file, intended for display on the web, is generated by a script. This script also contains specifications describing the changelog data.

      Tentative policy: Bug fixes are non-breaking changes.

      Can you improve this documentation?Edit on GitHub

      cljdoc is a website building & hosting documentation for Clojure/Script libraries

      × close