Skip to main content

Scriv changelog management tool

Project description

PyPI Travis Documentation Supported Python versions License

Scriv changelog management tool

Overview

Scriv is a command-line tool for helping developers maintain useful changelogs. It manages a directory of changelog fragments. It aggregates them into entries in a CHANGELOG file.

Documentation

The full documentation is at https://scriv.readthedocs.org.

License

The code in this repository is licensed under the Apache Software License 2.0 unless otherwise noted.

Please see LICENSE.txt for details.

How To Contribute

Contributions are very welcome.

Changelog

Unreleased

See the fragment files in ./changelog.d

[0.8.1] — 2020-08-09

Added

  • When editing a new fragment during “scriv create”, if the edited fragment has no content (only comments or blank lines), then the create operation will be aborted, and the file will be removed. (Closes issue 2.)

Changed

  • If the fragment directory doesn’t exist, a simple direct message is shown, rather than a misleading FileNotFound error (closes issue 1).

Fixed

  • When not using categories, comments in fragment files would be copied to the changelog file (issue 3). This is now fixed.

  • RST syntax is better understood, so that hyperlink references and directives will be preserved. Previously, they were mistakenly interpreted as comments and discarded.

[0.8.0] — 2020-08-04

Added

  • Added the collect command.

  • Configuration is now read from setup.cfg or tox.ini.

  • A new configuration setting, rst_section_char, determines the character used in the underlines for the section headings in .rst files.

  • The new_entry_template configuration setting is the name of the template file to use when creating new entries. The file will be found in the fragment_directory directory. The file name defaults to new_entry.FMT.j2. If the file doesn’t exist, an internal default will be used.

  • Now the collect command also includes a header for the entire entry. The underline is determined by the “rst_header_char” settings. The heading text is determined by the “header” setting, which defaults to the current date.

  • The categories list in the config can be empty, meaning entries are not categorized.

  • The create command now accepts –edit (to open the new entry in your text editor), and –add (to “git add” the new entry).

  • The collect command now accepts –edit (to open the changelog file in an editor after the new entries have been collected) and –add (to git-add the changelog file and git rm the entries).

  • The names of the main git branches are configurable as “main_branches” in the configuration file. The default is “master”, “main”, and “develop”.

  • Configuration values can now be read from files by prefixing them with “file:”. File names will be interpreted relative to the changelog.d directory, or will be found in a few files installed with scriv.

  • Configuration values can interpolate the currently configured format (rst or md) with “${config:format}”.

  • The default value for new templates is now “file: new_entry.${config:format}.j2”.

  • Configuratsion values can be read from string literals in Python code with a “literal:” prefix.

  • “version” is now a configuration setting. This will be most useful when used with the “literal:” prefix.

  • By default, the title of collected changelog entries includes the version if it’s defined.

  • The collect command now accepts a --version option to set the version name used in the changelog entry title.

Changed

  • RST now uses minuses instead of equals.

  • The create command now includes the time as well as the date in the entry file name.

  • The –delete option to collect is now called –keep, and defaults to False. By default, the collected entry files are removed.

  • Created file names now include the seconds from the current time.

  • “scriv create” will refuse to overwrite an existing entry file.

  • Made terminology more uniform: files in changelog.d are “fragments.” When collected together, they make one changelog “entry.”

  • The title text for the collected changelog entry is now created from the “entry_title_template” configuration setting. It’s a Jinja2 template.

  • Combined the rst_header_char and rst_section_char settings into one: rst_header_chars, which much be exactly two characters.

  • Parsing RST fragments is more flexible: the sections can use any valid RST header characters for the underline. Previously, it had to match the configured RST header character.

Fixed

  • Fragments with no category header were being dropped if categories were in use. This is now fixed. Uncategorized fragments get sorted before any categorized fragments.

[0.1.0] — 2019-12-30

  • Doesn’t really do anything yet.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scriv-0.8.1.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

scriv-0.8.1-py2.py3-none-any.whl (18.6 kB view details)

Uploaded Python 2Python 3

File details

Details for the file scriv-0.8.1.tar.gz.

File metadata

  • Download URL: scriv-0.8.1.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.3.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.0

File hashes

Hashes for scriv-0.8.1.tar.gz
Algorithm Hash digest
SHA256 9b61f51ac49cbac329e9bd84073d3d18c34701b474e766e5cc440d4f4a8e24ea
MD5 a2cf33a3e2167b68c8d649e8dd87faa5
BLAKE2b-256 b7b2ac629e753a8b822b9082c65035661a5890893b5e940bd34cb7e18288aa45

See more details on using hashes here.

File details

Details for the file scriv-0.8.1-py2.py3-none-any.whl.

File metadata

  • Download URL: scriv-0.8.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 18.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.3.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.0

File hashes

Hashes for scriv-0.8.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c819fae096b5f90ac9089ade3f3ccc1cd68edb6738d742398e9d0f0ea848697d
MD5 7c056fc0f9dc5d2d2adff9dfae84fbfe
BLAKE2b-256 f5278949495bcb155a4901e78cadaba377a260f73597c41789bacf7f687478f2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page