0.002006  2026-04-28 22:09:45-07:00 America/Los_Angeles

    - Add [PruneCruft] to dist.ini so blib/ and pm_to_blib are excluded
      from the released tarball (GH #1)
    - Drop the "< 100 GB sanity" upper bound on rss/size in t/ps.t real
      collect subtest; macOS reports virtual size well above 100 GB,
      causing spurious failures (GH #3)

0.002005  2026-04-26 01:49:37-07:00 America/Los_Angeles

    - Replace defined-or (//) operator with explicit defined() checks so
      the module loads on the declared MIN_PERL_VERSION 5.008009
    - Use 'ps -o rss= -o vsz= -p $$' instead of 'ps -o rss=,vsz= -p $$'
      so FreeBSD's ps parses the format string correctly (it treated
      the comma as part of the rss= header)
    - Force the linux _collect_proc collector inside t/memusage.t so
      the mocked t/procfile drives the assertions on every host (the
      previous mock was ignored on *BSD/Solaris/MSWin32, which used
      their native collectors and produced unrelated values)
    - Skip the real-* subtests in t/ps.t when ps exits non-zero or
      returns output our parser cannot match (covers BusyBox/Alpine
      and FreeBSD ps differences)
    - Skip the real-* subtests in t/proc.t on non-Linux hosts; Solaris
      /proc/PID/status is a binary pstatus_t struct, not the Linux
      text format
    - Guard t/win32.t real-* subtests with defined() checks on
      GetProcessMemoryInfo and short-circuit after a failed lives
      check so a single broken Win32::Process::Memory install does
      not cascade into multiple failures

0.002004  2026-04-25 07:18:08-07:00 America/Los_Angeles

    - Fix broken grep filter in send_mem_event that referenced @_ of
      the outer sub instead of the grep iterator
    - Match \s+ instead of a literal space between value and unit in
      the Vm* regexes
    - Warn instead of die when opening or closing the procfile fails,
      so the exit callback does not abort the test process
    - Use -e instead of -f when checking for the procfile, so non-Linux
      procfs implementations are not rejected
    - Add raw numeric value and units to harness_job_fields entries
      under a 'data' hash so consumers can sort and aggregate without
      reparsing the display string
    - Refactor memory collection into a $^O-keyed dispatcher with a
      reusable _collect_proc backend (no behavior change on Linux)
    - Add darwin and *BSD support via 'ps -o rss=,vsz= -p $$' (peak
      remains NA there unless BSD::Resource is available)
    - Add MSWin32 support via Win32::Process::Memory (recommended,
      not required) and recommend it in dist.ini
    - Add BSD::Resource getrusage(RUSAGE_SELF) fallback that fills
      peak RSS when the primary collector did not provide one and
      acts as a last-resort collector on platforms with no native
      backend; recommend BSD::Resource in dist.ini. Also document
      the platform support matrix in POD
    - Add t/dispatch.t covering _collector_for_os table, _augment_peak
      fill / preserve / no-fallback, collect_mem with no collector
      and no fallback, and send_mem_event short-circuits for empty
      and all-NA cases
    - Add t/proc.t covering _collect_proc happy path, missing procfile,
      empty procfile, files without Vm* lines, tab-separated values,
      and partial Vm* presence
    - Add t/ps.t covering _collect_ps via stubbed ps_command (happy /
      empty / unparseable) plus an opportunistic real-ps subtest;
      skips on MSWin32 and any host without a usable shell echo
    - Add t/win32.t covering _collect_win32 via a fake
      Win32::Process::Memory injected into %INC, exercising byte-to-kB
      conversion, undef return, exception in the underlying call, and
      partial-info handling
    - Add t/getrusage.t covering _maxrss_kb (linux kB pass-through,
      darwin byte conversion, zero / empty getrusage), the collect_mem
      last-resort path when no native collector matched, and the
      augment_peak chain end to end against a fake BSD::Resource
    - Extend t/memusage.t to assert that calling import() a second
      time does not register a duplicate exit callback
    - Add Solaris, AIX, and HP-UX support by routing them through the
      existing _collect_ps backend (their POSIX ps accepts
      'ps -o rss=,vsz= -p $$' and reports kilobytes); peak still
      benefits from the BSD::Resource fallback when installed
    - Add real-system subtests to t/proc.t that verify the host's
      /proc/PID/status matches the shape our mocks assume and that
      _collect_proc returns numeric, positive, sanely-ranged values;
      both subtests skip when /proc is unavailable
    - Add real-system subtests to t/ps.t that verify the host's
      'ps -o rss=,vsz= -p $$' exits 0 with parseable output, and that
      _collect_ps returns numeric/positive/in-range values with kB
      units; both subtests skip when ps is missing (exit 127 / fork
      failure) and fail when ps is present but misbehaves
    - Add real-system subtests to t/win32.t that verify the real
      Win32::Process::Memory returns the hash shape we assume and
      that _collect_win32 returns meaningful values; the fake module
      injection is now conditional so the real module is preferred
      when installed, and both new subtests skip off-MSWin32 or when
      Win32::Process::Memory is not installed
    - Add real-system subtests to t/getrusage.t that verify the real
      BSD::Resource::getrusage returns at least 3 fields with a
      numeric ru_maxrss and that _maxrss_kb returns a meaningful
      value; the fake module injection is now conditional so the
      real module is preferred when installed

0.002003  2020-02-26 08:09:20-08:00 America/Los_Angeles

    - Avoid warnings when info is missing

0.002002  2019-08-19 10:57:16-07:00 America/Los_Angeles

    - Add harness_job_fields

0.002001  2019-08-16 15:28:36-07:00 America/Los_Angeles

    - Initial Import
