This file records important changes that made in each release.  Those are
picked by human sense, so could be incomplete and missing many things.

v3.3.0
- 'damo report access': show probe hits by default if probes are set.

v3.2.9
- Cleanup 'damo report access' code.

v3.2.8
- Document 'damo report trace'.
- Fix 'damo report trace' for perf/trace-cmd generated records.
- Unify trace line parsing logic.

v3.2.7
- Handle version mismatcing perf.
- Support trace-cmd versions that omit flags field on 'report' output.
- Mark 'damo pa_layout' and 'damo record_info' as officially deprecated.
- Add a linter to tests.
- Code cleanup.

v3.2.6
- Cleanup 'damo report trace' code.
- Add tests for 'damo report trace'

v3.2.5
- Fix the flaky scheme-filters test.
- damo report trace: support damon_region_aggregated trace event.

v3.2.4
- Fix of wrong probe_filters feature support warning.

v3.2.3
- Support '--damos_action collapse'.
- Support '--damos_quota_goal node_eligible_mem_bp'.
- Support data attributes probes (--probe_filter).

v3.2.2
- damo report trace: support saving and loading the output.
- damo report trace: make output simplified.

v3.2.1
- Add deprecation plan notices to 'damo pa_layout' and 'damo record_info'.
- 'damo record': support recording all DAMON trace events
  (--do_record damon_trace_events).
- 'damo report trace': support reporting DAMON trace events in 'damo
  record'-recorded file (--input).

v3.2.0
- Support DAMON context execution pause/resume (--pause_ctx).
- Support DAMOS quota failed regions charge ratio feature
  (--damos_quota_fail_charge_ratio).

v3.1.9
- Support 'addr_unit' DAMON parameter (--damon_addr_unit).
- Introducee 'damo report trace'.

v3.1.8
- 'damo start', 'damo tune': Warn DAMON feature-command arguments mismatches.
- Support DAMOS quota goal tuner via --damos_quota_goal_tuner
  (https://lore.kernel.org/20260212062314.69961-1-sj@kernel.org).
- 'damo record_info': mark as will be deprecated by 2026-06-01.
  - 'damo report record_info' can be used instead.
- 'damo pa_layout': mark as will be deprecated by 2026-06-01.
  - 'damo report pa_layout' can be used instead.

v3.1.7
- Wordsmith and update USAGE.
- Add 'damo report record_info'.
- Use accurate address information on 'damo report heatmap' x-axis range.

v3.1.6
- damo report sysinfo: support check of more DAMON features.
- damo report sysinfo: support printing unavailable DAMON features.
- README: clarify kernel supports.
- Internal code refactoring.

v3.1.5
- damo: Show 'setup_cli_completion' command on the help message.
- damo report sysinfo: Handle more ready-to-upstream feature checks.
- Internal code refactoring.

v3.1.4
- damo record: Support ongoing record of DAMON_STAT kdamond.
- damo report damon: Show DAMON module kdamonds on/off state.
- damo report sysinfo: Show available DAMON user interfaces by default.
- damo: Help cli auto-completion setup with a hidden command,
  'setup_cli_completion'.

v3.1.3
- Support 'damo monitor' for ongoing DAMON.
- Improve 'damo monitor' monitoring quality.
- Support 'damo monitor' command line completion.
  - 'source scripts/damo-completion.sh' is required.
- Fix 'damo monitor --report_type heats'.

v3.1.2
- Support command line auto-completion.
  - 'source scripts/damo-completion.sh' is required.

v3.1.1
- Refactor DAMON features management.

v3.1.0
- damo report sysinfo: Support available DAMON modules listing.
- Fix 5.15 kernel 'damo report access' breakage for None age.
- Add more unit tests for trace output parsing.

v3.0.9
- Support 'perf' unavailable systems.
  - Require 'trace-cmd' instead, for 'damo record'.

v3.0.8
- Add --sample_primitives option.

v3.0.7
- sysinfo: Support perf information.
- sysinfo: Support <5.15 DAMON version inference.
- Support 'damon sample control' feature.

v3.0.6
- damo report damon: Support yaml format with --format option.
- Provide wrong memcg DAMOS filter error detail.
- sysinfo: use git-based damo version if available.
- Support nr_stats and max_nr_stats
  (https://lore.kernel.org/20251123184329.85287-1-sj@kernel.org).

v3.0.5
- Fix a bug in 'damo report heatmap --interactive_edit'.
- damo record: Support taking snapshots from DAMON_STAT.
- Improve --include_child_tasks monitoring results inheritance on kernels not
  supporting obsolete targets feature.
- Cleanup damon feature check code.

v3.0.4
- Fix debugfs interface support bug that was introduced by v3.0.3.
- damo report sysinfo: Support trace features.
- More feature/sysinfo check cleanups.

v3.0.3
- damo report access: Add 'cold-memory-tail' and 'idle-memory-percentiles'
  --style option.
- Implement 'damo report sysinfo'.
- Refactor DAMON features check system.

v3.0.2
- Improve monitoring results inheritance for --include_child_tasks use case, on
  kernels supporting obsolete_target feature.
- Introduce --obsolete_targets option for online DAMON parameter commit
  commands.
- Fix DAMON features check for allow_filter and hugepage_size.

v3.0.1
- Update damo record test be more time-error tolerant.
- Add node_memcg_{used,free}bp DAMOS quota goal feature check.
- Support obsolete_target sysfs file support.

v3.0.0
- Save record output per user-specified time interval (--output_flush_sec, one
  hour by default).
- Add record filter options to 'damo adjust' for splitting too huge record
  files into multiple files.
- Support node_memcg_{used,free}_bp DAMOS quota goal
  (https://lore.kernel.org/20251009212042.60084-1-sj@kernel.org)

v2.9.9
- Fix lost targets bug on _damon.add_childs_target().
- Clarify target regions inheritance behavior.
- Support retrieving DAMON records from DAMON_STAT.

v2.9.8
- Fixup 'damo report holistic' breakage.
- Avoid unnecessary DAMOS tried regions update in 'damo report damon --json'.
- Add '--omit_damos_tried_regions' to 'damo report damon'.
- Preparation of DAMON_STAT support on 'damo record' and 'damo report access'.

v2.9.7
- DAMOS arguments parsing cleanup.
- Errors out on invalid number of --damos_action arguments.

v2.9.6
- Prepare DAMON_STAT integration into DAMON records.

v2.9.5
- Accelerate --include_child_tasks to be recursive

v2.9.4
- damo module stat: support transforming partial idle time percentiles to idle
  time-memory size visualization (--input_idle_time_percentiles).

v2.9.3
- Support per-threads monitoring of damon/next kernel
- Support idle time to memory size visualization for DAMON_STAT

v2.9.2
- Add idle time to memory size visualization as a 'damo report access --exec'
  example script (report_access_exec_scripts/idle_time_mem_sz.py).

v2.9.1
- Add experimental support of write-only and cpus group-only monitoring.
- damo args damon: format DAMOS apply interval in human-friendly way.

v2.9.0
- Support multiple DAMOS (migration) action destinations.
- Add example scripts for memory tiering and LRU lists sorting under scripts/.

v2.8.9
- Show access frequency in hertz by default.
- Support automatic and faster DAMON status read (--refresh_stat).

v2.8.8
- Improve handling of access records that made with intervals auto-tuning

v2.8.7
- damo report heatmap: Support interactive zoom and scroll (--interactive_edit)
- Support DAMOS_QUOTA_INACTIVE_MEM_BP

v2.8.6
- damo report heatmap: Support base value for --address_range and --time_range
- support active_mem_bp DAMOS quota goal metric

v2.8.5
- damo report heatmap: support sorting regions on space by access temperature
  (--sort_temperature to use the feature, --temperature_weights for custom
  temperature calculation)
- damo report access: improve handling records made with auto-tuned intervals
  - use inferred interval for percentiles, histogram, and memory bw

v2.8.4
- Support local-repo usage on distros having symlink dir in os.sys.path.
- Advance 'damo report heatmap' for modern DAMON features.
  - Display unknown heat pixels as transparent.
  - gnuplot output: Use fixed color range.
  - Fix snapshot an age accounting bug.
  - Support human friendly --{time,address}_range.
  - Support DAMOS filters-passed memory heatmap.
- report heatmap,access: Support multiple input record files
- report access: Show monitoring intervals regardless of intervals auto-tuning.

v2.8.3
- Support 'damo report heatmap' for snapshot records.
- Support 'damo report heatmap' for multi records with different intervals.
- fix --numa_nodes bug (commit c42f8ec54dcb).

v2.8.2
- refactor damo_report_access and add more tests for that
- damo start: add --include_child_tasks options for virtual address space.

v2.8.1
- damo report access: support <temperature percentiles> snapshot keyword.
- damo report access: extend --style for 'temperature percentiles'.
- add damo command 'module', for controlling all DAMON kernel modules.

v2.8.0
- damo report access: extend --style for 'recency percentiles'

v2.7.9
- fix wrong hugepage_size handling from 'damo report access --input' case
- add '<recency percentiles>' and '<df-passed recency percentiles>' snapshot
  format keywords

v2.7.8
- damo report access: keep auto-tuned intervals
- damo report access: show auto-tuned intervals by default
- damo report access: extend --format for appending info on current output

v2.7.7
- damo report access: allow visualizing given access information with arbitrary
  Python code (--exec)

v2.7.6
- damo help: add topics for DAMON record filtering and formatting
- damo report access: add option for manual histogram ranges setup
  (--hist_ranges)
- USAGE.md updates for 'damo help' and multiple contexts support

v2.7.5
- Let partial DAMON parameters command line option supports multiple kdamonds,
  multiple contexts, multiple monitoring targets
  - Use '--nr_schemes', '--nr_targets' and '--nr_ctxs'

v2.7.3
- Support 'active' page filter
- Introduce 'damo help' for detaield help messages for given topics
  - Currently command line options for DAMON parameters are supported
- Remove '--damos_filter_out'

v2.7.2
- Clarify available DAMON parameters keywords
- List available --damos_action parameters on help message
- Remove 'damo report raw' support
- Add '--draw_range' option to 'damo report heatmap'

v2.7.1
- 'damo report access': support logscale histograms via --hist_logscale
- 'damo report access': add '<damos stats>' snapshot format keyword

v2.7.0
- remove 'damo report heats', 'damo show', and 'damo status' as notified
- 'damo report access': show moitoring intervals tuning status if auto-tuning
  is enabled

v2.6.9
- add pa_layout subcommand (experimental)
- support running DAMON for multiple NUMA nodes with --numa_node option
- add '<intervals tuning status>' snapshot format keyword
- add '<format strings>' record format keyword

v2.6.8
- damo report access
  - add '<filters passed estimated memory bandwidth>' snapshot format keyword
    (show it by default)
  - add --repeat option
  - support static length snapshot heatmap (--snapshot_heatmap_static)
  - add 'hot' and 'cold' --style arguments

v2.6.7
- Support monitoring intervals auto-tuning goal ('--monitoring_intervals_goal')
- damo report access: add '<estimated memory bandwidth>' snapshot format keyword
  - show it by default
- Visualize DAMOS filters passed regions heatmap
- Warn allow filters usage without reject filters after that
- Add '--omit_defaults' option to 'damo args damon'
- Omit non-parameters from 'damo args damon' outputs

v2.6.6
- Improve multiple kdamonds parameters edit
  - damo args damon: add '--out' and '--replace' option
  - update documentation
- Deprecate 'damo report heats', 'damo show' and 'damo status'
- Add experimental option, 'damo report damon --damon_params_omit_defaults'

v2.6.5
- damo report access: add '<positive access samples ratio>' snapshot format keyword
- damo report access: add '<filters passed bytes>' snapshot format keyword
- damo report access: Show <filters passed bytes> on snapshot tail by default
- Code cleanup

v2.6.4
- Allow more human-friendly DAMOS filter format, v2
  - <allow|reject> [none] <type> [<additional type argument>...]
  - e.g., 'damo report access --snapshot_damos_filter allow none anon reject memcg a/b/c'
- Code cleanup

v2.6.3
- Remove 'damo fmt_json'
- Rename --damos_filter for snapshot commands to --snapshot_damos_filter
- Support --snapshot_damos_filter from 'damo record' for snapshot case
- Support general snapshot filters from 'damo record' for snapshot case
- Add a single option to specify what to record ('damo record --do_record')
  - Remove experimental --no_{vmas,mem_footprint,profile} in favor of the new
    option

v2.6.2
- Support DAMOS pass filter
  (https://lore.kernel.org/20241227210819.63776-1-sj@kernel.org)
- Document --damos_filter option format
- Support per-region filter-passed memory histogram visualization
- Support per-region filter-passed bytes visualization on record

v2.6.1
- Support page level properties based access monitoring
  (https://lore.kernel.org/all/20241219040327.61902-1-sj@kernel.org/)
  - 'damo report damon': provide per-scheme, per-region page level filters passed bytes
  - 'damo report access': show the per-region information by default, when available
    - support '--damos_filter' for snapshot use case
      (e.g., damo report access --damos_filter anon matching)
    - show the per-region data when '--tried_regions_of' is given

v2.6.0
- Support filtering records via snapshot index (damo report access --snapshot_idx)

v2.5.9
- damo report access: Add heatmap by default even if there is only single snapshot.
- Wordsmith and clarify concepts on documents.

v2.5.8
- Fix snapshot heatmap temperature calculation bug
- damo report access: Show snapshot heatmap by default
- deprecate 'damo fmt_json'

v2.5.7
- Remove end address from default region format of 'damo report access'
- Add temperature based region filter (--temperature of multiple report commands)
- Add '<temperature>' region format keyword for 'damo report access'

v2.5.6
- Reduce a corner case to use stale cached kernel feature check results
- Implement '<heatmap>' snapshot visualization format
  (damo report access --format_snapshot_head <heatmap>)
- Support multiple kdamonds parameters edit (experimental)
  (--add and --remove of 'damo args damon')
- Support human-readable DAMON parameters view (experimental)
  ('damo args damon --format report')

v2.5.5
- Minimize unnecessary I/O for kernel features check

v2.5.4
- Implement recency to total size of regions histogram visualization
  (damo report access --style recency-sz-hist)
- Implement temperature to total size of regions histogram visualization
  (damo report access --style temperature-sz-hist)
- Clarify 'damo' support scope on README.md

v2.5.3
- Implement 'damo report raw' alternative as 'damo report access --raw_form'
- Mark 'damo report raw' as will be deprecated
- Use 'damon.data' as --input_file of 'damo report access' as a last resort

v2.5.2
- Add features deprecation process documentation
- Mark 'damo show', 'damo status' and 'damo report heats' as will be deprecated
- Update USAGE.md for alternatives of the will-be-deprecated features

v2.5.1
- 'damo report kdamonds': Support full feature of 'damo status'
- Rename 'damo report kdamonds' to 'damo report damon'
- Mark 'damo args' officially supported
- Update documents

v2.5.0
- 'damo record': Extend processes' CPU usage recording to general stats
- 'damo record': Record kdamonds
- 'damo report': Add 'kdamonds' report type

v2.4.9
- Add --timeout option to 'damo record'
- Add --show_cpu_usage to 'damo status'

v2.4.8
- Update awslabs URLs to damonitor URLs
  (https://lore.kernel.org/20240813232158.83903-1-sj@kernel.org)
- Add a new report type, 'access'
  - Work same to 'show' (some behaviors will be changed in future)
- Support --damos_filter_out option for DAMOS-control commands

v2.4.7
- Hide DAMON parameter options from help messages of commands except
  'damo args damon'.
- Support snapshots recording (damo record --snapshot).
- 'damo show': Support json format formatting parameters.
- 'damo args': Support access formatting parameters
  ('damo args accesses_format').
- Hide detailed formatting parameter options from help message of 'damo show'.

v2.4.6
- Mark 'damo fmt_json' as will-be-deprecated.

v2.4.5
- 'damo record': Record CPU usages of kdamonds and target processes
- Update 'damo args --format=yaml` output

v2.4.4
- 'damo report heatmap': Select hottest region as default plot target region
- 'damo record': Record vmas by default
- Introduce 'damo args' command
  - Supports formatting DAMON parameters in json and yaml formats

v2.4.3
- 'damo report': Shorten holistic output by default
- 'damo monitor': Support holistic report type

v2.4.2
- Support 'diagnose' subcommand
- Add hotspot functions on 'damo report holistic' output
- 'damo reclaim': Support online and auto tuning

v2.4.1
- Implement the first version of 'holistic' report type
- Document source files hierarchy on CONTRIBUTING file
- Simplify target regions part of 'damo fmt_json' output
- Cleanup code

v2.4.0
- Complete support of migrage_{hot,cold} DAMOS action
  - target_nid support and schemes_migrate feature check is added
- Support 'all' metric for 'damo report footprints'
- Add unit test on pre-commit hooks

v2.3.9
- Support migrate_{hot,cold} DAMOS action
  - Need taget_nid work for fully functioning

v2.3.8
- Support yaml format DAMON parameters

v2.3.7
- Cleanup code and documents

v2.3.6
- Support memory mapping recording (--vmas)
- Support custom temperature weights from 'damo show' (--temperature_weights)
- Add heatmap report type (damo report heatmap)

v2.3.5
- Add --style option of 'damo show'
- Add --damos_quotas_{time,space,interval,weights} options
- Add 'temperature' regions sorting key for 'damo show'

v2.3.4
- damo record: Set --profile and --footprint by default
- Cleanup documents and files

v2.3.3
- Support memory footprint recording for non-process and ongoing targets
- damo report wss: Do --collapse_targets by default
- damo record: Do --include_child_tasks by default

v2.3.2
- Support system memory footprints recording/reporting

v2.3.1
- Hotfix release for bugs that intorudced with v2.3.0

v2.3.0
- Implement 'damo report footprints'

v2.2.9
- Cleanup code

v2.2.8
- Support recording memory usage of monitoring target process

v2.2.7
- Support region box right-side aligning (--region_box_align) of 'damo show'
- Cleanup code

v2.2.6
- Cleanup code

v2.2.5
- Support damon/next tree feature, the DAMOS filter type for young pages
- Implement '--infer_version' of 'damo feature'

v2.2.4
- Implement 'damo report profile'
- Implement 'damo report times'
- Implement snapshot size based record filtering (--sz_snapshot)

v2.2.3
- Document 'replay' command
- Support profiling data record (--profile option of 'damo record')
- Add a prototype of access pattern-based profiling report generation

v2.2.2
- Implement 'replay' command
- Support damon/next tree feature, quota goal metric

v2.2.1
- Support damon/next tree feature, effective quota

v2.2.0
- Make 'damo show' faster on schemes apply interval supporting kernel

v2.1.9
- dbgfs: Use proc/mounts
- Rename --damon_interface to --damon_interface_DEPRECATED
- Support damon/next kernel change for DAMON debugfs deprecation
  (https://git.kernel.org/pub/scm/linux/kernel/git/sj/damon-hack.git/tree/todo?id=90812522ebb5#n9)

v2.1.8
- sysfs: Use proc/mounts
- sysfs/stage_kdamonds(): Be features detection independent

v2.1.7
- Cleanup code

v2.1.6
- Cleanup code

v2.1.5
- Hotfix of v2.1.4: Add missing _damo_print.py file.

v2.1.4
- 'damo show, damo report raw': Use a pager if the output is longer than the
  terminal

v2.1.3
- 'damo reclaim': Support 'skip_anon'
- Cleanup code and documents

v2.1.2
- Internal code cleanup

v2.1.1
- Internal code cleanup

v2.1.0
- Remove 'damo translate_damos'
- Internal code cleanup
- Make 'damo show' fail faster for some cases

v2.0.9
- Internal code cleanup

v2.0.8
- Support DAMOS quota goals (not mainlined DAMON feature)

v2.0.7
- 'damo status': Add an option for only entered inputs without updating sysfs
- 'damo fmt_json': Drop non-input fields

v2.0.6
- Optimize 'damo status --damos_stat' to update only needed metrics
- Implement an alternative of '--damos_stat', namely '--damos_stats'
- Remove '--damos_stat' option

v2.0.5
- Code cleanup
- damo show: Use DAMOS address filter if possible

v2.0.4
- Save/load kernel feature supports to/from $HOME/.damo.damon_feature_supports
- Cleanup feature supports handling

v2.0.3
- Let 'damo status --damos_stat' to work with debugfs interface
- Schemes test code cleanup
- Misc code cleanup

v2.0.2
- Remove DAMON results record binary file format handling code
- Schemes test code cleanup

v2.0.1
- Deprecate DAMON results record binary file format
- 'damo status': Support scheme statistic only output

v2.0.0
- Trivial fixes and cleanups

v1.9.9
- Update documents for online usage commands (start/tune/stop/show/status)

v1.9.8
- Support DAMOS apply interval (feature on damon/next only as of this release)
- Update documents

v1.9.7
- Reverse unnecessary support of DAMON's moving access rate
- Support DAMOS apply intrvals (feature on damon/next only as of this release)
- Support DAMOS recording (feature on damon/next only as of this release)

v1.9.6
- Remove '<age access_rate size> region format keyword
  - Should use only '<box>'
- Add '<region box description>' snapshot keyword
- Add '--region_box' option for shortcut of box-based representation
- Allow per-key reverse sorting of regions
- Minimul support of DAMON's moving access rate

v1.9.5
- Code cleanup

v1.9.4
- DAMON command line options: Support multiple DAMOS schemes
- damo show: Support log/linear scale of region box

v1.9.3
- Restore --ascii_color and --plot_ascii of 'damo report heat'
- damo show: Support coloring of region box
- damo show: Implement '<age heat bar>'
- damo show: Make region box to use logscale for columns and rows
- damo show: Support more region box customizations

v1.9.2
- Support DAMOS filters, quotas, and watermarks via command line
- Support target idx DAMOS filter
- Implement '<size heat bar>' and '<size heat age bar>' region format keyword
  for 'damo show' (likely be changed in future)

v1.9.1
- Remove 'damo stat'
- 'damo show' update
  - Support address range based filtering
  - Add snapshot format keyword for number of regions
  - Implement '<size bar>' region format keyword (subject to change in future)

v1.9.0
- Mark 'damo stat' as deprecated
- Use '--force' for 'perf script'
- Internal code cleanup

v1.8.9
- Support flexible formatting of 'damo show' output
- Implement access pattern based 'damo show' output sorting
- Support --tried_regions_of option of 'damo show'
- Cleanup _damon_resul.py

v1.8.8
- Support under-development schemes tried regions total bytes file
- Fix empty snapshot for vaddr ops issue
- Polish 'damo show' output format
- Support 'update_schemes_tried_bytes' DAMON sysfs command

v1.8.7
- Stop supporting non-mainlined DAMOS kernel implementations
- Rename 'damo show status' into 'damo status'
- Re-implement 'damo show': Support snapshot and record files, but still not
  stabilized

v1.8.6
- Cleanup code

v1.8.5
- Add a not yet stabilized version of 'damo show'

v1.8.4
- Remove Python2 support
- Cleanup code

v1.8.3
- Remove '--rbuf' and kernel-direct record file generation support code
- More documentation of deprecated features
- Implement '--include_childs' option for 'damo record'
- Move single line DAMOS schemes input handling to a new module,
  _damo_deprecated

v1.8.2
- Support zlib-compressed json format monitoring record file
- Use zlib-compressed json format monitoring record file format by default
