Crate debian_changelog

Source
Expand description

A lossless parser for Debian changelog files.

See https://manpages.debian.org/bookworm/dpkg-dev/deb-changelog.5.en.html

For its format specification, see Debian Policy.

Example:

use std::io::Read;
let contents = r#"rustc (1.70.0+dfsg1-1) unstable; urgency=medium

  * Upload to unstable

 -- Jelmer Vernooij <jelmer@debian.org>  Wed, 20 Sep 2023 20:18:40 +0200
"#;
let changelog: debian_changelog::ChangeLog = contents.parse().unwrap();
assert_eq!(
    vec![("rustc".to_string(), "1.70.0+dfsg1-1".parse().unwrap())],
    changelog.iter().map(
        |e| (e.package().unwrap(), e.version().unwrap()))
    .collect::<Vec<_>>());

Modules§

changes
Functions to parse the changes from a changelog entry.
textwrap
Text wrapping functions

Structs§

ChangeLog
A node in the changelog syntax tree.
Entry
A node in the changelog syntax tree.
Identity
Simple representation of an identity.
ParseError
Error while parsing

Enums§

Error
Error while reading a changelog file.
SyntaxKind
Let’s start with defining all kinds of tokens and composite nodes.
Urgency
Urgency of the changes in the changelog entry

Functions§

distribution_is_unreleased
Check if the given distribution marks an unreleased entry.
distributions_is_unreleased
Check if any of the given distributions marks an unreleased entry.
gbp_dch
Update changelog with commit messages from commits
get_maintainer
Get the maintainer information in the same manner as dch.
get_maintainer_from_env
Get the maintainer information from the environment.
is_unreleased_inaugural
Check whether this is a traditional inaugural release
parseaddr
Parse a identity string
release
Create a release for a changelog file.
take_uploadership
Take uploadership of a changelog entry, but attribute contributors.