NAME

Developer::Dashboard::SeedSync - md5-based content checks for staged seed files

SYNOPSIS

use Developer::Dashboard::SeedSync qw();

my $same = Developer::Dashboard::SeedSync::file_matches_content_md5(
    $path,
    $wanted_content,
);

DESCRIPTION

This module centralizes the content-digest checks used when Developer Dashboard decides whether built-in helper files or shipped seeded bookmark files need to be rewritten.

PURPOSE

This module provides the MD5-based content comparison helpers used when the dashboard stages private helpers and seeds starter pages. It answers the question “did the shipped managed content actually change?” without relying on external checksum tools.

WHY IT EXISTS

It exists because seed refresh and helper staging have to distinguish unchanged managed files from files that need a rewrite. Putting that digest logic in one module keeps the non-destructive bootstrap contract portable and testable.

WHEN TO USE

Use this file when changing how managed seed files are compared, when adding a new dashboard-managed asset type, or when diagnosing why init/bootstrap did or did not refresh a managed runtime file.

HOW TO USE

Call content_md5, same_content_md5, or file_matches_content_md5 before rewriting a managed file. The helpers accept either in-memory strings or an on-disk file path, so callers do not need shelling-out checksum code.

WHAT USES IT

It is used by helper staging, seeded-page refresh logic, historical managed-digest bridges, and tests that verify non-destructive managed file updates.

EXAMPLES

Example 1:

perl -Ilib -MDeveloper::Dashboard::SeedSync -e 1

Do a direct compile-and-load check against the module from a source checkout.

Example 2:

prove -lv t/04-update-manager.t t/26-sql-dashboard.t

Run the focused regression tests that most directly exercise this module's behavior.

Example 3:

HARNESS_PERL_SWITCHES=-MDevel::Cover prove -lr t

Recheck the module under the repository coverage gate rather than relying on a load-only probe.

Example 4:

prove -lr t

Put any module-level change back through the entire repository suite before release.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 80:

Non-ASCII character seen before =encoding in '“did'. Assuming UTF-8