Not strictly related to Perl, because I want this to be useful outside the Perl toolchain too, but here it goes...

We already have the Changes file with its CPAN::Changes::Spec format standard (which I'm also using outside of Perl/CPAN distributions). What I'm trying to develop is something more machine readable and "machine actionable", for example:

  1. The nature of the release (bug fixes only, new features, removed features, whether there are API incompatibilities, security update). If there is an API incompatibility or removed feature, I would like the installer (like cpanminus) to show the detail of the change first and ask for user's confirmation.
  2. What services/daemons should be restarted.
  3. What things need to be done after an upgrade/install (e.g. what config variables need/recommended to be set). This can be just a note and displayed for the user.
  4. There will be others, but so far those (#1, #2, #3) are the ones that are immediately needed in my project.

One way to do this is to define more detailed specialized specification to the Changes entry, some of which have already been seen in practice. For example, if there is a group/heading called INCOMPATIBLE CHANGES, it means there are incompatible changes and the installer should confirm first. Likewise for #2, for example, we can define a group/heading called RESTARTED SERVICES or SERVICES TO RESTART (though this is arguably a misuse of the Changes file).

I am also aware that OS packages (like Debian's .deb, Redhat's RPM) deal with these installation/upgrade issues.

Any pointers/thoughts? I'd like to keep things simple and tend to just encode the required metadata/information into Changes, but I also don't want to end up with an overloaded and strange-looking Changes.


In reply to A more machine readable and "machine actionable" Changes by sedusedan

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.