Revision history for rak

0.0.67  2026-05-28T17:37:52+02:00
    - Bump dependencies, because we can

0.0.66  2026-04-12T15:05:06+02:00
    - Add link to App::Rak(::Complete) in docs
    - Better document :batch, :degree, :dont-catch arguments
    - Add examples of Callable usage to documentation
    - Modernize META
    - Update copyright year

0.0.65  2025-02-12T17:03:00+01:00
    - Remove ParaSeq as a dependency for now, it is causing too
      many gotchas, revert back to hyperize

0.0.64  2025-02-10T16:12:14+01:00
    - Update dependencies, because we can
    - Update copyright year

0.0.63  2024-08-21T21:01:43+02:00
    - Remove hypering of large files for now: they appear to tickle
      some issue in MoarVM, causing crashes
    - Bump dependency on ParaSeq for safer queueing of blocks

0.0.62  2024-08-19T21:32:46+02:00
    - Bump dependency on ParaSeq for exception handling fix

0.0.61  2024-08-19T12:13:16+02:00
    - Add ":also-first" and ":always-first" options

0.0.60  2024-08-18T12:09:20+02:00
    - Add ":produce-many-pairs" option
    - Up dependency on path-utils to keep in sync

0.0.59  2024-07-29T12:41:21+02:00
    - Up dependencies on Git::Files, path-utils and Trap to keep
      in sync

0.0.58  2024-07-29T11:50:20+02:00
    - Add ".changed" method to PairContext, returning False
    - Add PairChanged subclass of PairMatched, with a ".changed"
      method returning True
    - Add separate CI badges for each OS
    - Add sponsor button

0.0.57  2024-07-28T18:21:59+02:00
    - Disable ":max-matches-per-source" if ":unique", ":frequencies",
      ":classify" or ":categorize" have been specified
    - Replace dependency on "hyperize" by "ParaSeq", and re-design
      some internals so that large files (with more than 2K lines)
      will be hyperized
    - No longer eagerly create result Slips, as these will probably
      do too much, but rely on the result sequences lazily if possible

0.0.56  2024-05-14T14:18:49+02:00
    - Only hyperize large files if we don't have a maximum number
      of matches.  This is really a stopgap measure until we can
      actually terminate something hypered immediately

0.0.55  2024-05-14T12:46:38+02:00
    - Fix issue with ":unicode" option

0.0.54  2024-05-14T12:13:55+02:00
    - If an IO::Path as source is more than 2MB, then the producer
      of that file will be hyperized for better performance when
      e.g. searching a single (large) file

0.0.53  2024-05-13T15:24:36+02:00
    - Rename option ":sort" to ":sort-sources" to be more clear
      about its function
    - Remove the "stats" attribute from the Rak object, replace
      them by "nr-sources", "nr-items", "nr-matches", "nr-passthrus"
      and "nr-changes" methods and a "stats" method that will return
      a Map with these counters (for compatibility with previous
      versions)
    - Add ":progress" option, for displaying search progress and
      export associated Progress object
    - Add ":sort" option, to sort result (currently only if ":unique"
      has also been specified
    - Fix race conditions with ":unique", ":classify", ":categorize"

0.0.52  2024-05-09T13:49:19+02:00
    - Bump dependency on path-utils to fix issue with unreadable
      files and the :is-text filesystem test

0.0.51  2024-05-08T21:56:49+02:00
    - Bump dependency on path-utils to fix issue with ":is-moarvm"
      on module precomp files with many dependencies

0.0.50  2024-05-08T15:04:54+02:00
    - Bump dependency on path-utils to fix issue with ":is-pdf"
      on files that are too small

0.0.49  2024-05-08T11:59:39+02:00
    - Bump dependency on path-utils
    - Add support for ":is-pdf" argument

0.0.48  2024-04-29T20:38:00+02:00
    - Bump dependency on path-utils
    - Add support for ":is-moarvm" argument
    - Update copyright year

0.0.47  2022-11-23T13:05:35+01:00
    - Bump dependency on Git::Files properly

0.0.46  2022-11-23T12:54:09+01:00
    - Bump dependency on Git::Files to sync up path-utils version

0.0.45  2022-11-19T19:53:24+01:00
    - Fix issue with :is-text test on unreadable files, again
      spotted by Márton Polgár.
    - Bumped dependency on paths to get more comprehensive and
      better readability checks

0.0.44  2022-11-18T17:31:34+01:00
    - Fix issue with :files-from<-> and :paths-from<->, spotted by
      Márton Polgár

0.0.43  2022-11-17T18:54:54+01:00
    - Make sure that data fetched from URLs produce strings for the
      file filter property checks to be performed without issues.

0.0.42  2022-11-14T18:06:01+01:00
    - Bump dependency on "path-utils" to get "path-is-text" support
    - Add support for ":is-text" argument
    - Remove dependency on Data::TextOrBinary
    - No longer look whether files without extension are binary:
      this should now explicitely be specified with :is-text

0.0.41  2022-11-12T12:52:16+01:00
    - Make ":dont-catch" actually work

0.0.40  2022-11-11T19:01:50+01:00
    - Bump dependency on paths to get support for ":!file" as a way to
      fetch directory paths, rather than file paths
    - Document specification of ":!file" to get directory paths only

0.0.39  2022-11-08T11:04:01+01:00
    - Add dependency on Data::TextOrBinary
    - Files without extension that look like they're binary, will
      not be searched (at least for now)

0.0.38  2022-10-20T15:46:42+02:00
    - Add support for ":ioify" argument, indicating the code that
      should be used convert a path into an object on which
      .lines and .slurp can be called

0.0.37  2022-10-16T14:16:36+02:00
    - Add support for ":sort" argument, to sort sources

0.0.36  2022-10-15T21:37:20+02:00
    - Bump dependency on path-utils to fix issues with testing
    - Bump dependency on Git::Files to fix issues with testing

0.0.35  2022-10-12T14:23:38+02:00
    - Fix issue with :unique|classify|categorize when being given
      a Seq rather than something Listy
    - Make default stringification of PairContext/PairMatched objects
      a bit more intuitive

0.0.34  2022-10-11T15:36:32+02:00
    - Add support for ":classify" and ":categorize"

0.0.33  2022-10-07T23:16:07+02:00
    - Add support for ":accept" and ":deny"

0.0.32  2022-10-07T12:44:51+02:00
    - Support URLs as path/file specifications, needs 'curl'

0.0.31  2022-10-06T14:33:17+02:00
    - Make sure that ":find" doesn't eagerize either

0.0.30  2022-10-02T17:49:27+02:00
    - Make sure reading from STDIN does not eagerize to allow
      tail -f sources to work

0.0.29  2022-09-29T01:20:05+02:00
    - Make sure that not specifying ":dir" or ":file" will actually use
      the defaults that "paths" assume for ":dir" and ":file"

0.0.28  2022-09-27T21:41:23+02:00
    - Fix version dependency snafu

0.0.27  2022-09-27T21:04:28+02:00
    - Bump dependency of Git::Files to fix deadlock on large repos
    - Bump dependency of path-utils for Windows fixes

0.0.26  2022-09-25T21:51:39+02:00
    - Add support for :old-new

0.0.25  2022-09-24T16:46:02+02:00
    - Fix issue with path "-" and reading from STDIN if $*IN.t
    - Fix issue with checking for readability when reading from STDIN

0.0.24  2022-09-23T18:08:09+02:00
    - Add support for ":mapper" if ":sources-only" or
      ":sources-without-only" has been specified
    - Fix issue when using both :before-context and :after-context
    - Fix issue when trying to read lines from files that do not exist,
      or which are not readable.
    - Make ":produce-on"e expect Nil for failure to produce
    - ":produce-one" now implies ":omit-item-number"

0.0.23  2022-09-20T13:38:57+02:00
    - Fix issue with ":under-version-control", to handle files that have
      been removed (or 'git mv'ed), but which haven't been committed yet.
    - Bump dependency on path-utils, because we can
    - Add dependency on Git::Files: it handles ":under-version-control"
      semantics more correctly than the local code did

0.0.22  2022-09-11T22:45:09+02:00
    - Add ":eager" option for eager evalution

0.0.21  2022-09-04T23:23:07+02:00
    - Git submodules are also followed with ":under-version-control"
    - No longer assume ":under-version-control" if no path specified
      and the current directory is top dir in git repo: it was too
      magic and confusing
    - Fix issue with ":quietly"
    - Properly hyperize the sources sequence

0.0.20  2022-09-04T13:20:22+02:00
    - Add support for ":exec" and ":shell"

0.0.19  2022-08-31T12:10:51+02:00
    - Remove ":file" / ":dir" specification if defaulti
      ":under-version-control" is active
    - Remove unused dependency on "has-word", that lives in App::Rak now
    - Ignore git submodules for now when ":under-version-control" is active

0.0.18  2022-08-30T00:08:33+02:00
    - Fix synopsis in pod
    - Assume ":under-version-control" if only searching current
      directory *and* the directory looks like it is the top
      directory of a git repository.

0.0.17  2022-08-29T11:08:06+02:00
    - Add support for ":sources-without-only"

0.0.16  2022-08-27T15:44:46+02:00
    - Make sure $*SOURCE is set to indicate the current source of
      items to check
    - Bump dependency on "path-utils"
    - Add support for ":has-setgid"
    - Add support for ":has-setuid"
    - Add support for ":is-sticky"

0.0.15  2022-08-27T12:21:06+02:00
    - Clarification about the relation between PairContext and
      PairMatched
    - Attempt to upload to fez again, as it appeared to have eaten the
      previous release

0.0.14  2022-08-27T00:15:28+02:00
    - Make PairMatched a subclass of PairContext, so that we can check
      on the PairContext type to see if it is a "normal" line number /
      line | produced value case
    - Changed name of ":omit-item-numbers" to ":omit-item-number" for
      consistency
    - Changed name of ":passthru-context" to ":passthru", as it will
      *always* pass through all lines, even if there is no match.
      So there's not really a concept of context at work here
    - Add support for ":passthru-context", which will only produce
      all items *if* there is at least one match
    - Bump dependency on "path-utils"
    - Add support for ":is-owner-readable"
    - Add support for ":is-owner-writable"
    - Add support for ":is-owner-executable"

0.0.13  2022-08-23T22:58:57+02:00
    - Add support for ":under-version-control"
    - Change semantics of matcher returning Empty: now means no match
    - Fix ":invert-match" logic

0.0.12  2022-08-23T13:00:04+02:00
    - Make matcher returning Nil act the same as False.  This can
      typically happen in a pattern with a try and an execution error
    - Add support for ":frequencies"

0.0.11  2022-08-22T21:08:35+02:00
    - Fix issue with ":paragraph-context"

0.0.10  2022-08-20T14:51:48+02:00
    - Make sure we stop trying to match if we reached number of required
      matches (rather than trying once more)
    - Add support for :sources-only

0.0.9  2022-08-19T14:17:48+02:00
    - Remove ":is-git-repo" and ":is-github-repo" arguments: they would
      never fire as the checks are only applied to files, and those
      are directory level checks.
    - Recognize &defined to be used as a "noop" producer of matches,
      to allow e.g. a bare :find without pattern to produce all files.
    - The return result is now always a Rak object

0.0.8  2022-08-17T23:52:03+02:00
    - Changed return value of rak to always be a Pair, with
      either an Exception / Map with stats as key, and a potentially
      empty Iterable as value
    - Change ":count-only" to ":stats-only"
    - Make sure explicit producer get an IO::Path instead of a string
    - Add ":omit-item-numbers" to get faster/leaner data-structures
      if item numbers are not needed
    - Made sure that source is always an IO::Path object, unless the
      sources were specified with :sources, or reading from STDIN

0.0.7  2022-08-17T13:25:56+02:00
    - Split ":producer" into ":produce-one" and ":produce-many"
    - Add support for ":max-matches-per-source"
    - Fixed thread-safety issue with generation of context items
    - Only use "lines" in docs if really about lines of text, else
      use the more generic "items" mnemonic.

0.0.6  2022-08-16T22:14:26+02:00
    - Rename ":recurse-symlink" to ":recurse-symlinked-dir" for clarity
    - Rename ":with-line-endings" to ":with-line-ending" for consistency
    - Add support for ":recurse-unmatched-dir"
    - Add warning when reading from STDIN and there's a human attached
    - Prefixed all boolean path filters with "is-" for clarity
    - Removed :per-file and :per-line, we only need a :producer semantics

0.0.5  2022-08-16T11:03:40+02:00
    - Add support for ":with-line-endings"

0.0.4  2022-08-15T22:30:44+02:00
    - Add support for ":count-only"
    - Fix issue with laziness of match list of a source

0.0.3  2022-08-15T10:55:39+02:00
    - Add support for ":git-repo" and ":github-repo" path selection options
    - Actually make ":group-readable" work correctly

0.0.2  2022-08-14T16:53:38+02:00
    - Change undocumented ":follow-symlinks" flag into documented
      ":recurse-symlink" flag.
    - Add support for ":unique" flag

0.0.1  2022-08-14T14:23:56+02:00
    - Re-implementation of core of App::Rak 0.47 as plumbing
    - Added features:
      - many file property filters
      - support for mapping functionality
      - abstract sources
      - generic "per-file" logic
