Liking cljdoc? Tell your friends :D

Speculoos library changelog

changelog meta

version 5

2024 November 13
Brad Losavio (blosavio@sagevisuals.com)
Description: Upgraded scalar validation so that regex predicates gracefully handle non-string scalars.
Project status: active
Urgency: medium
Breaking: no

altered functions: valid-scalars?, validate-scalars

Breaking changes

    Non-breaking changes

    • Adjusted changelog filename format from `vX.edn` to `xXYZ.edn`.
    • GitHub Issue #10: Adjusted regex-predicate+scalar evaluation to test for string before testing against the regex. Now, it doesn't throw an exception when supplied with a non-string scalar.

    version 4

    2024 November 13
    Brad Losavio (blosavio@sagevisuals.com)
    Description: Added case study materials for documentation.
    Project status: experimental
    Urgency: low
    Breaking: no

    Breaking changes

      Non-breaking changes

      • Added case study hiccup/html files and document generation scripts, plus specifications describing the `changelog.edn` structure, and validation scripts.

      version 3

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

      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: medium
      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 `validate-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