#####
Scriv
#####
Scriv changelog management tool
.. begin-badges
| |pypi-badge| |ci-badge| |coverage-badge| |doc-badge|
| |pyversions-badge| |license-badge| |sponsor-badge| |mastodon-nedbat|
.. end
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.
Getting Started
===============
Scriv writes changelog fragments into a directory called "changelog.d". Start
by creating this directory. (By the way, like many aspects of scriv's
operation, you can choose a different name for this directory.)
To make a new changelog fragment, use the ``scriv create`` command. It will
make a new file with a filename using the current date and time, your GitHub or
Git user name, and your branch name. Changelog fragments should be committed
along with all the other changes on your branch.
When it is time to release your project, the ``scriv collect`` command
aggregates all the fragments into a new entry in your changelog file.
You can also choose to publish your changelog entries as GitHub releases with
the ``scriv github-release`` command. It parses the changelog file and
creates or updates GitHub releases to match. It can be used even with
changelog files that were not created by scriv.
Documentation
=============
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. Thanks to all the contributors so far:
.. begin-contributors
| Ned Batchelder
| Abhilash Raj
| Agustín Piqueres
| Flo Kuepper
| James Gerity
| Javier Sagredo
| Kurt McKee
| Matias Guijarro
| Rodrigo Girão Serrão
| Ronny Pfannschmidt
.. end
.. begin-badge-links
.. |pypi-badge| image:: https://img.shields.io/pypi/v/scriv.svg
:target: https://pypi.python.org/pypi/scriv/
:alt: PyPI
.. |ci-badge| image:: https://github.com/nedbat/scriv/workflows/Test%20Suite/badge.svg
:target: https://github.com/nedbat/scriv/actions?query=workflow%3A%22Test+Suite%22
:alt: Build status
.. |coverage-badge| image:: https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/nedbat/5a304c1c779d4bcc57be95f847e9327f/raw/covbadge.json
:target: https://github.com/nedbat/scriv/actions?query=workflow%3A%22Test+Suite%22
:alt: Coverage
.. |doc-badge| image:: https://readthedocs.org/projects/scriv/badge/?version=latest
:target: http://scriv.readthedocs.io/en/latest/
:alt: Documentation
.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/scriv.svg
:target: https://pypi.python.org/pypi/scriv/
:alt: Supported Python versions
.. |license-badge| image:: https://img.shields.io/github/license/nedbat/scriv.svg
:target: https://github.com/nedbat/scriv/blob/master/LICENSE.txt
:alt: License
.. |mastodon-nedbat| image:: https://img.shields.io/badge/dynamic/json?style=flat&labelColor=450657&logo=mastodon&logoColor=ffffff&link=https%3A%2F%2Fhachyderm.io%2F%40nedbat&url=https%3A%2F%2Fhachyderm.io%2Fusers%2Fnedbat%2Ffollowers.json&query=totalItems&label=Mastodon
:target: https://hachyderm.io/@nedbat
:alt: nedbat on Mastodon
.. |sponsor-badge| image:: https://img.shields.io/badge/%E2%9D%A4-Sponsor%20me-brightgreen?style=flat&logo=GitHub
:target: https://github.com/sponsors/nedbat
:alt: Sponsor me on GitHub
.. end
.. this will be appended to README.rst
Changelog
=========
..
All enhancements and patches to scriv will be documented
in this file. It adheres to the structure of http://keepachangelog.com/ ,
but in reStructuredText instead of Markdown (for ease of incorporation into
Sphinx documentation and the PyPI description).
This project adheres to Semantic Versioning (http://semver.org/).
Unreleased
----------
See the fragment files in the `changelog.d directory`_.
.. _changelog.d directory: https://github.com/nedbat/scriv/tree/master/changelog.d
.. scriv-insert-here
.. _changelog-1.5.1:
1.5.1 — 2023-12-14
------------------
Fixed
.....
- Fixed the documentation build on ReadTheDocs. Fixes `issue 118`_.
.. _issue 118: https://github.com/nedbat/scriv/issues/118
.. _changelog-1.5.0:
1.5.0 — 2023-10-18
------------------
Added
.....
- RST to Markdown conversion can now be stricter. Using the ``--fail-if-warn``
option on the ``scriv github-releases`` command will fail the command if your
RST conversion generates warnings, for example due to malformed link
references.
- The ``scriv github-release`` command now has a ``--check-links`` option to
check URLs. Each is fetched, and if an error occurs, warnings will show the
URLs that didn't succeed.
Fixed
.....
- Commands no longer display full tracebacks for exceptions raised by scriv
code.
.. _changelog-1.4.0:
1.4.0 — 2023-10-12
------------------
Added
.....
- Literals can be extracted from .cabal files.
Thanks `Javier Sagredo <pull 91_>`_.
- Use the git config ``scriv.user_nick`` for the user nick part
of the fragment file. Thanks to `Ronny Pfannschmidt <pull 106_>`_,
fixing `issue 103`_.
- Settings can now be prefixed with ``command:`` to execute the rest of the
setting as a shell command. The output of the command will be used as the
value of the setting.
Fixed
.....
- If there are no changelog fragments, ``scriv collect`` now exits with status
code of 2, fixing `issue 110`_.
- Changelogs with non-version headings now produce an understandable error
message from ``scriv collect``, thanks to `James Gerity <pull 101_>`_, fixing
`issue 100`_.
.. _pull 91: https://github.com/nedbat/scriv/pull/91
.. _issue 100: https://github.com/nedbat/scriv/issues/100
.. _pull 101: https://github.com/nedbat/scriv/pull/101
.. _issue 103: https://github.com/nedbat/scriv/pull/103
.. _pull 106: https://github.com/nedbat/scriv/pull/106
.. _issue 110: https://github.com/nedbat/scriv/issues/110
.. _changelog-1.3.1:
1.3.1 — 2023-04-16
------------------
Fixed
.....
- The Version class introduced in 1.3.0 broke the ``scriv github-release``
command. This is now fixed.
.. _changelog-1.3.0:
1.3.0 — 2023-04-16
------------------
Added
.....
- ``.cfg`` files can now be read with ``literal:`` settings, thanks to `Matias
Guijarro <pull 88_>`_.
.. _pull 88: https://github.com/nedbat/scriv/pull/88
Fixed
.....
- In compliance with `PEP 440`_, comparing version numbers now ignores a
leading "v" character. This makes scriv more flexible about how you present
version numbers in various places (code literals, changelog entries, git
tags, and so on). Fixes `issue 89`_.
.. _PEP 440: https://peps.python.org/pep-0440/
.. _issue 89: https://github.com/nedbat/scriv/issues/89
.. _changelog-1.2.1:
1.2.1 — 2023-02-18
------------------
Fixed
.....
- Scriv would fail trying to import tomllib on Python <3.11 if installed
without the ``[toml]`` extra. This is now fixed, closing `issue 80`_.
- Settings specified as ``file:`` will now search in the changelog directory
and then the current directory for the file. The only exception is if the
first component is ``.`` or ``..``, then only the current directory is
considered. Fixes `issue 82`_.
- Python variables with type annotations can now be read with ``literal:``
settings, fixing `issue 85`_.
- Error messages for mis-formed ``literal:`` configuration values are more
precise, as requested in `issue 84`_.
- Error messages from settings validation are ScrivExceptions now, and report
configuration problems more clearly and earlier in some cases.
.. _issue 80: https://github.com/nedbat/scriv/issues/80
.. _issue 82: https://github.com/nedbat/scriv/issues/82
.. _issue 84: https://github.com/nedbat/scriv/issues/84
.. _issue 85: https://github.com/nedbat/scriv/issues/85
.. _changelog-1.2.0:
1.2.0 — 2023-01-18
------------------
Added
.....
- ``scriv github-release`` now has a ``--repo=`` option to specify which GitHub
repo to use when you have multiple remotes.
Changed
.......
- Improved the error messages from ``scriv github-release`` when a GitHub repo
can't be identified among the git remotes.
.. _changelog-1.1.0:
1.1.0 — 2023-01-16
------------------
Added
.....
- The ``scriv github-release`` command has a new setting, ``ghrel_template``.
This is a template to use when building the release text, to add text before
or after the Markdown extracted from the changelog.
- The ``scriv github-release`` command now has a ``--dry-run`` option to show
what would happen, without posting to GitHub.
Changed
.......
- File names specified for ``file:`` settings will be interpreted relative to
the current directory if they have path components. If the file name has no
slashes or backslashes, then the old behavior remains: the file will be found
in the fragment directory, or as a built-in template.
- All exceptions raised by Scriv are now ScrivException.
Fixed
.....
- Parsing changelogs now take the `insert-marker` setting into account. Only
content after the insert-marker line is parsed.
- More internal activities are logged, to help debug operations.
.. _changelog-1.0.0:
1.0.0 — 2022-12-03
------------------
Added
.....
- Now literal configuration settings can be read from YAML files. Closes `issue 69`_.
Thanks, `Florian Küpper <pull 70_>`_.
.. _pull 70: https://github.com/nedbat/scriv/pull/70
.. _issue 69: https://github.com/nedbat/scriv/issues/69
Fixed
.....
- Fixed truncated help summaries by shortening them, closing `issue 63`_.
.. _issue 63: https://github.com/nedbat/scriv/issues/63
.. _changelog-0.17.0:
0.17.0 — 2022-09-18
-------------------
Added
.....
- The ``collect`` command now has a ``--title=TEXT`` option to provide the
exact text to use as the title of the new changelog entry. Finishes `issue
48`_.
.. _issue 48: https://github.com/nedbat/scriv/issues/48
Changed
.......
- The ``github_release`` command now only considers the top-most entry in the
changelog. You can use the ``--all`` option to continue the old behavior of
making or updating GitHub releases for all of the entries.
This change makes it easier for projects to start using scriv with an
existing populated changelog file.
Closes `issue 57`_.
.. _issue 57: https://github.com/nedbat/scriv/issues/57
Fixed
.....
- If there were no fragments to collect, `scriv collect` would make a new empty
section in the changelog. This was wrong, and is now fixed. Now the
changelog remains unchanged in this case. Closes `issue 55`_.
.. _issue 55: https://github.com/nedbat/scriv/issues/55
- The ``github-release`` command will now issue a warning for changelog entries
that have no version number. These can't be made into releases, so they are
skipped. (`issue 56`_).
.. _issue 56: https://github.com/nedbat/scriv/issues/56
- ``scriv collect`` will end with an error now if the version number would
duplicate a version number on an existing changelog entry. Fixes `issue 26`_.
.. _issue 26: https://github.com/nedbat/scriv/issues/26
.. _changelog-0.16.0:
0.16.0 — 2022-07-24
-------------------
Added
.....
- The ``github_release`` command will use a GitHub personal access token stored
in the GITHUB_TOKEN environment variable, or from a .netrc file.
Fixed
.....
- The github_release command was using `git tags` as a command when it should
have used `git tag`.
- Anchors in the changelog were being included in the previous sections when
creating GitHub releases. This has been fixed, closing `issue 53`_.
.. _issue 53: https://github.com/nedbat/scriv/issues/53
.. _changelog-0.15.2:
0.15.2 — 2022-06-18
-------------------
Fixed
.....
- Quoted commands failed, so we couldn't determine the GitHub remote.
.. _changelog-0.15.1:
0.15.1 — 2022-06-18
-------------------
Added
.....
- Added docs for ``scriv github-release``.
Fixed
.....
- Call pandoc properly on Windows for the github_release command.
.. _changelog-0.15.0:
0.15.0 — 2022-04-24
-------------------
Removed
.......
- Dropped support for Python 3.6.
Added
.....
- The `github-release` command parses the changelog and creates GitHub releases
from the entries. Changed entries will update the corresponding release.
- Added a ``--version`` option.
Changed
.......
- Parsing of fragments now only attends to the top-level section headers, and
includes nested headers instead of splitting on all headers.
.. _changelog-0.14.0:
0.14.0 — 2022-03-23
-------------------
Added
.....
- Add an anchor before each version section in the output of ``scriv collect``
so URLs for the sections are predictable and stable for each new version
(Fixes `issue 46`_). Thanks Abhilash Raj and Rodrigo Girão Serrão.
Fixed
.....
- Markdown fragments weren't combined properly. Now they are. Thanks Rodrigo
Girão Serrão.
.. _issue 46: https://github.com/nedbat/scriv/issues/46
0.13.0 — 2022-01-23
-------------------
Added
.....
- Support finding version information in TOML files (like ``pyproject.toml``)
using the ``literal`` configuration directive. Thanks, Kurt McKee
0.12.0 — 2021-07-28
-------------------
Added
.....
- Fragment files in the fragment directory will be skipped if they match the
new configuration value ``skip_fragments``, a glob pattern. The default
value is "README.*". This lets you put a README.md file in that directory to
explain its purpose, as requested in `issue 40`_.
.. _issue 40: https://github.com/nedbat/scriv/issues/40
Changed
.......
- Switched from "toml" to "tomli" for reading TOML files.
Fixed
.....
- Setting ``format=md`` didn't properly cascade into other default settings,
leaving you with RST settings that needed to be explicitly overridden
(`issue 39`_). This is now fixed.
.. _issue 39: https://github.com/nedbat/scriv/issues/39
0.11.0 — 2021-06-22
-------------------
Added
.....
- A new poorly documented API is available. See the Scriv, Changelog, and
Fragment classes in the scriv.scriv module.
Changed
.......
- Python 3.6 is now the minimum supported Python version.
Fixed
.....
- The changelog is now always written as UTF-8, regardless of the default
encoding of the system. Thanks, Hei (yhlam).
0.10.0 — 2020-12-27
-------------------
Added
.....
- Settings can now be read from a pyproject.toml file. Install with the
"[toml]" extra to be sure TOML support is available. Closes `issue 9`_.
.. _issue 9: https://github.com/nedbat/scriv/issues/9
- Added the Philosophy section of the docs.
Changed
.......
- The default entry header no longer puts the version number in square
brackets: this was a misunderstanding of the keepachangelog formatting.
- Respect the existing newline style of changelog files. (`#14`_)
This means that a changelog file with Linux newlines on a Windows platform
will be updated with Linux newlines, not rewritten with Windows newlines.
Thanks, Kurt McKee.
.. _#14: https://github.com/nedbat/scriv/issues/14
Fixed
.....
- Support Windows' directory separator (``\``) in unit test output. (`#15`_)
This allows the unit tests to run in Windows environments. Thanks, Kurt
McKee.
- Explicitly specify the directories and files that Black should scan. (`#16`_)
This prevents Black from scanning every file in a virtual environment.
Thanks, Kurt McKee.
- Using "literal:" values in the configuration file didn't work on Python 3.6
or 3.7, as reported in `issue 18`_. This is now fixed.
.. _#15: https://github.com/nedbat/scriv/issues/15
.. _#16: https://github.com/nedbat/scriv/issues/16
.. _issue 18: https://github.com/nedbat/scriv/issues/18
0.9.2 — 2020-08-29
------------------
- Packaging fix.
0.9.0 — 2020-08-29
------------------
Added
.....
- Markdown format is supported, both for fragments and changelog entries.
- Fragments can be mixed (some .rst and some .md). They will be collected and
output in the format configured in the settings.
- Documentation.
- "python -m scriv" now works.
Changed
.......
- The version number is displayed in the help message.
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`_.)
.. _issue 2: https://github.com/nedbat/scriv/issues/2
Changed
.......
- If the fragment directory doesn't exist, a simple direct message is shown,
rather than a misleading FileNotFound error (closes `issue 1`_).
.. _issue 1: https://github.com/nedbat/scriv/issues/1
Fixed
.....
- When not using categories, comments in fragment files would be copied to the
changelog file (`issue 3`_). This is now fixed.
.. _issue 3: https://github.com/nedbat/scriv/issues/3
- 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".
- Configuration 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.
Raw data
{
"_id": null,
"home_page": "https://github.com/nedbat/scriv",
"name": "scriv",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "",
"author": "Ned Batchelder",
"author_email": "ned@nedbatchelder.com",
"download_url": "https://files.pythonhosted.org/packages/56/35/6e05af688bc3f983a207a6f89acf139aa16693473360d0cbc2a9bda19efc/scriv-1.5.1.tar.gz",
"platform": null,
"description": "#####\nScriv\n#####\n\nScriv changelog management tool\n\n.. begin-badges\n\n| |pypi-badge| |ci-badge| |coverage-badge| |doc-badge|\n| |pyversions-badge| |license-badge| |sponsor-badge| |mastodon-nedbat|\n\n.. end\n\nOverview\n========\n\nScriv is a command-line tool for helping developers maintain useful changelogs.\nIt manages a directory of changelog fragments. It aggregates them into entries\nin a CHANGELOG file.\n\nGetting Started\n===============\n\nScriv writes changelog fragments into a directory called \"changelog.d\". Start\nby creating this directory. (By the way, like many aspects of scriv's\noperation, you can choose a different name for this directory.)\n\nTo make a new changelog fragment, use the ``scriv create`` command. It will\nmake a new file with a filename using the current date and time, your GitHub or\nGit user name, and your branch name. Changelog fragments should be committed\nalong with all the other changes on your branch.\n\nWhen it is time to release your project, the ``scriv collect`` command\naggregates all the fragments into a new entry in your changelog file.\n\nYou can also choose to publish your changelog entries as GitHub releases with\nthe ``scriv github-release`` command. It parses the changelog file and\ncreates or updates GitHub releases to match. It can be used even with\nchangelog files that were not created by scriv.\n\nDocumentation\n=============\n\nFull documentation is at https://scriv.readthedocs.org.\n\nLicense\n=======\n\nThe code in this repository is licensed under the Apache Software License 2.0\nunless otherwise noted.\n\nPlease see ``LICENSE.txt`` for details.\n\nHow To Contribute\n=================\n\nContributions are very welcome. Thanks to all the contributors so far:\n\n.. begin-contributors\n\n| Ned Batchelder\n| Abhilash Raj\n| Agust\u00edn Piqueres\n| Flo Kuepper\n| James Gerity\n| Javier Sagredo\n| Kurt McKee\n| Matias Guijarro\n| Rodrigo Gir\u00e3o Serr\u00e3o\n| Ronny Pfannschmidt\n\n.. end\n\n.. begin-badge-links\n\n.. |pypi-badge| image:: https://img.shields.io/pypi/v/scriv.svg\n :target: https://pypi.python.org/pypi/scriv/\n :alt: PyPI\n\n.. |ci-badge| image:: https://github.com/nedbat/scriv/workflows/Test%20Suite/badge.svg\n :target: https://github.com/nedbat/scriv/actions?query=workflow%3A%22Test+Suite%22\n :alt: Build status\n\n.. |coverage-badge| image:: https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/nedbat/5a304c1c779d4bcc57be95f847e9327f/raw/covbadge.json\n :target: https://github.com/nedbat/scriv/actions?query=workflow%3A%22Test+Suite%22\n :alt: Coverage\n\n.. |doc-badge| image:: https://readthedocs.org/projects/scriv/badge/?version=latest\n :target: http://scriv.readthedocs.io/en/latest/\n :alt: Documentation\n\n.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/scriv.svg\n :target: https://pypi.python.org/pypi/scriv/\n :alt: Supported Python versions\n\n.. |license-badge| image:: https://img.shields.io/github/license/nedbat/scriv.svg\n :target: https://github.com/nedbat/scriv/blob/master/LICENSE.txt\n :alt: License\n\n.. |mastodon-nedbat| image:: https://img.shields.io/badge/dynamic/json?style=flat&labelColor=450657&logo=mastodon&logoColor=ffffff&link=https%3A%2F%2Fhachyderm.io%2F%40nedbat&url=https%3A%2F%2Fhachyderm.io%2Fusers%2Fnedbat%2Ffollowers.json&query=totalItems&label=Mastodon\n :target: https://hachyderm.io/@nedbat\n :alt: nedbat on Mastodon\n\n.. |sponsor-badge| image:: https://img.shields.io/badge/%E2%9D%A4-Sponsor%20me-brightgreen?style=flat&logo=GitHub\n :target: https://github.com/sponsors/nedbat\n :alt: Sponsor me on GitHub\n\n.. end\n\n.. this will be appended to README.rst\n\nChangelog\n=========\n\n..\n All enhancements and patches to scriv will be documented\n in this file. It adheres to the structure of http://keepachangelog.com/ ,\n but in reStructuredText instead of Markdown (for ease of incorporation into\n Sphinx documentation and the PyPI description).\n\n This project adheres to Semantic Versioning (http://semver.org/).\n\nUnreleased\n----------\n\nSee the fragment files in the `changelog.d directory`_.\n\n.. _changelog.d directory: https://github.com/nedbat/scriv/tree/master/changelog.d\n\n\n.. scriv-insert-here\n\n.. _changelog-1.5.1:\n\n1.5.1 \u2014 2023-12-14\n------------------\n\nFixed\n.....\n\n- Fixed the documentation build on ReadTheDocs. Fixes `issue 118`_.\n\n.. _issue 118: https://github.com/nedbat/scriv/issues/118\n\n\n.. _changelog-1.5.0:\n\n1.5.0 \u2014 2023-10-18\n------------------\n\nAdded\n.....\n\n- RST to Markdown conversion can now be stricter. Using the ``--fail-if-warn``\n option on the ``scriv github-releases`` command will fail the command if your\n RST conversion generates warnings, for example due to malformed link\n references.\n\n- The ``scriv github-release`` command now has a ``--check-links`` option to\n check URLs. Each is fetched, and if an error occurs, warnings will show the\n URLs that didn't succeed.\n\nFixed\n.....\n\n- Commands no longer display full tracebacks for exceptions raised by scriv\n code.\n\n\n.. _changelog-1.4.0:\n\n1.4.0 \u2014 2023-10-12\n------------------\n\nAdded\n.....\n\n- Literals can be extracted from .cabal files.\n Thanks `Javier Sagredo <pull 91_>`_.\n\n- Use the git config ``scriv.user_nick`` for the user nick part\n of the fragment file. Thanks to `Ronny Pfannschmidt <pull 106_>`_,\n fixing `issue 103`_.\n\n- Settings can now be prefixed with ``command:`` to execute the rest of the\n setting as a shell command. The output of the command will be used as the\n value of the setting.\n\nFixed\n.....\n\n- If there are no changelog fragments, ``scriv collect`` now exits with status\n code of 2, fixing `issue 110`_.\n\n- Changelogs with non-version headings now produce an understandable error\n message from ``scriv collect``, thanks to `James Gerity <pull 101_>`_, fixing\n `issue 100`_.\n\n.. _pull 91: https://github.com/nedbat/scriv/pull/91\n.. _issue 100: https://github.com/nedbat/scriv/issues/100\n.. _pull 101: https://github.com/nedbat/scriv/pull/101\n.. _issue 103: https://github.com/nedbat/scriv/pull/103\n.. _pull 106: https://github.com/nedbat/scriv/pull/106\n.. _issue 110: https://github.com/nedbat/scriv/issues/110\n\n\n.. _changelog-1.3.1:\n\n1.3.1 \u2014 2023-04-16\n------------------\n\nFixed\n.....\n\n- The Version class introduced in 1.3.0 broke the ``scriv github-release``\n command. This is now fixed.\n\n.. _changelog-1.3.0:\n\n1.3.0 \u2014 2023-04-16\n------------------\n\nAdded\n.....\n\n- ``.cfg`` files can now be read with ``literal:`` settings, thanks to `Matias\n Guijarro <pull 88_>`_.\n\n.. _pull 88: https://github.com/nedbat/scriv/pull/88\n\nFixed\n.....\n\n- In compliance with `PEP 440`_, comparing version numbers now ignores a\n leading \"v\" character. This makes scriv more flexible about how you present\n version numbers in various places (code literals, changelog entries, git\n tags, and so on). Fixes `issue 89`_.\n\n.. _PEP 440: https://peps.python.org/pep-0440/\n.. _issue 89: https://github.com/nedbat/scriv/issues/89\n\n.. _changelog-1.2.1:\n\n1.2.1 \u2014 2023-02-18\n------------------\n\nFixed\n.....\n\n- Scriv would fail trying to import tomllib on Python <3.11 if installed\n without the ``[toml]`` extra. This is now fixed, closing `issue 80`_.\n\n- Settings specified as ``file:`` will now search in the changelog directory\n and then the current directory for the file. The only exception is if the\n first component is ``.`` or ``..``, then only the current directory is\n considered. Fixes `issue 82`_.\n\n- Python variables with type annotations can now be read with ``literal:``\n settings, fixing `issue 85`_.\n\n- Error messages for mis-formed ``literal:`` configuration values are more\n precise, as requested in `issue 84`_.\n\n- Error messages from settings validation are ScrivExceptions now, and report\n configuration problems more clearly and earlier in some cases.\n\n.. _issue 80: https://github.com/nedbat/scriv/issues/80\n.. _issue 82: https://github.com/nedbat/scriv/issues/82\n.. _issue 84: https://github.com/nedbat/scriv/issues/84\n.. _issue 85: https://github.com/nedbat/scriv/issues/85\n\n\n.. _changelog-1.2.0:\n\n1.2.0 \u2014 2023-01-18\n------------------\n\nAdded\n.....\n\n- ``scriv github-release`` now has a ``--repo=`` option to specify which GitHub\n repo to use when you have multiple remotes.\n\nChanged\n.......\n\n- Improved the error messages from ``scriv github-release`` when a GitHub repo\n can't be identified among the git remotes.\n\n.. _changelog-1.1.0:\n\n1.1.0 \u2014 2023-01-16\n------------------\n\nAdded\n.....\n\n- The ``scriv github-release`` command has a new setting, ``ghrel_template``.\n This is a template to use when building the release text, to add text before\n or after the Markdown extracted from the changelog.\n\n- The ``scriv github-release`` command now has a ``--dry-run`` option to show\n what would happen, without posting to GitHub.\n\nChanged\n.......\n\n- File names specified for ``file:`` settings will be interpreted relative to\n the current directory if they have path components. If the file name has no\n slashes or backslashes, then the old behavior remains: the file will be found\n in the fragment directory, or as a built-in template.\n\n- All exceptions raised by Scriv are now ScrivException.\n\nFixed\n.....\n\n- Parsing changelogs now take the `insert-marker` setting into account. Only\n content after the insert-marker line is parsed.\n\n- More internal activities are logged, to help debug operations.\n\n\n.. _changelog-1.0.0:\n\n1.0.0 \u2014 2022-12-03\n------------------\n\nAdded\n.....\n\n- Now literal configuration settings can be read from YAML files. Closes `issue 69`_.\n Thanks, `Florian K\u00fcpper <pull 70_>`_.\n\n.. _pull 70: https://github.com/nedbat/scriv/pull/70\n.. _issue 69: https://github.com/nedbat/scriv/issues/69\n\nFixed\n.....\n\n- Fixed truncated help summaries by shortening them, closing `issue 63`_.\n\n.. _issue 63: https://github.com/nedbat/scriv/issues/63\n\n.. _changelog-0.17.0:\n\n0.17.0 \u2014 2022-09-18\n-------------------\n\nAdded\n.....\n\n- The ``collect`` command now has a ``--title=TEXT`` option to provide the\n exact text to use as the title of the new changelog entry. Finishes `issue\n 48`_.\n\n.. _issue 48: https://github.com/nedbat/scriv/issues/48\n\nChanged\n.......\n\n- The ``github_release`` command now only considers the top-most entry in the\n changelog. You can use the ``--all`` option to continue the old behavior of\n making or updating GitHub releases for all of the entries.\n\n This change makes it easier for projects to start using scriv with an\n existing populated changelog file.\n\n Closes `issue 57`_.\n\n.. _issue 57: https://github.com/nedbat/scriv/issues/57\n\nFixed\n.....\n\n- If there were no fragments to collect, `scriv collect` would make a new empty\n section in the changelog. This was wrong, and is now fixed. Now the\n changelog remains unchanged in this case. Closes `issue 55`_.\n\n.. _issue 55: https://github.com/nedbat/scriv/issues/55\n\n- The ``github-release`` command will now issue a warning for changelog entries\n that have no version number. These can't be made into releases, so they are\n skipped. (`issue 56`_).\n\n.. _issue 56: https://github.com/nedbat/scriv/issues/56\n\n- ``scriv collect`` will end with an error now if the version number would\n duplicate a version number on an existing changelog entry. Fixes `issue 26`_.\n\n.. _issue 26: https://github.com/nedbat/scriv/issues/26\n\n.. _changelog-0.16.0:\n\n0.16.0 \u2014 2022-07-24\n-------------------\n\nAdded\n.....\n\n- The ``github_release`` command will use a GitHub personal access token stored\n in the GITHUB_TOKEN environment variable, or from a .netrc file.\n\nFixed\n.....\n\n- The github_release command was using `git tags` as a command when it should\n have used `git tag`.\n\n- Anchors in the changelog were being included in the previous sections when\n creating GitHub releases. This has been fixed, closing `issue 53`_.\n\n.. _issue 53: https://github.com/nedbat/scriv/issues/53\n\n.. _changelog-0.15.2:\n\n0.15.2 \u2014 2022-06-18\n-------------------\n\nFixed\n.....\n\n- Quoted commands failed, so we couldn't determine the GitHub remote.\n\n.. _changelog-0.15.1:\n\n0.15.1 \u2014 2022-06-18\n-------------------\n\nAdded\n.....\n\n- Added docs for ``scriv github-release``.\n\nFixed\n.....\n\n- Call pandoc properly on Windows for the github_release command.\n\n.. _changelog-0.15.0:\n\n0.15.0 \u2014 2022-04-24\n-------------------\n\nRemoved\n.......\n\n- Dropped support for Python 3.6.\n\nAdded\n.....\n\n- The `github-release` command parses the changelog and creates GitHub releases\n from the entries. Changed entries will update the corresponding release.\n\n- Added a ``--version`` option.\n\nChanged\n.......\n\n- Parsing of fragments now only attends to the top-level section headers, and\n includes nested headers instead of splitting on all headers.\n\n\n.. _changelog-0.14.0:\n\n0.14.0 \u2014 2022-03-23\n-------------------\n\nAdded\n.....\n\n- Add an anchor before each version section in the output of ``scriv collect``\n so URLs for the sections are predictable and stable for each new version\n (Fixes `issue 46`_). Thanks Abhilash Raj and Rodrigo Gir\u00e3o Serr\u00e3o.\n\nFixed\n.....\n\n- Markdown fragments weren't combined properly. Now they are. Thanks Rodrigo\n Gir\u00e3o Serr\u00e3o.\n\n.. _issue 46: https://github.com/nedbat/scriv/issues/46\n\n\n0.13.0 \u2014 2022-01-23\n-------------------\n\nAdded\n.....\n\n- Support finding version information in TOML files (like ``pyproject.toml``)\n using the ``literal`` configuration directive. Thanks, Kurt McKee\n\n0.12.0 \u2014 2021-07-28\n-------------------\n\nAdded\n.....\n\n- Fragment files in the fragment directory will be skipped if they match the\n new configuration value ``skip_fragments``, a glob pattern. The default\n value is \"README.*\". This lets you put a README.md file in that directory to\n explain its purpose, as requested in `issue 40`_.\n\n.. _issue 40: https://github.com/nedbat/scriv/issues/40\n\nChanged\n.......\n\n- Switched from \"toml\" to \"tomli\" for reading TOML files.\n\nFixed\n.....\n\n- Setting ``format=md`` didn't properly cascade into other default settings,\n leaving you with RST settings that needed to be explicitly overridden\n (`issue 39`_). This is now fixed.\n\n.. _issue 39: https://github.com/nedbat/scriv/issues/39\n\n0.11.0 \u2014 2021-06-22\n-------------------\n\nAdded\n.....\n\n- A new poorly documented API is available. See the Scriv, Changelog, and\n Fragment classes in the scriv.scriv module.\n\nChanged\n.......\n\n- Python 3.6 is now the minimum supported Python version.\n\nFixed\n.....\n\n- The changelog is now always written as UTF-8, regardless of the default\n encoding of the system. Thanks, Hei (yhlam).\n\n0.10.0 \u2014 2020-12-27\n-------------------\n\nAdded\n.....\n\n- Settings can now be read from a pyproject.toml file. Install with the\n \"[toml]\" extra to be sure TOML support is available. Closes `issue 9`_.\n\n.. _issue 9: https://github.com/nedbat/scriv/issues/9\n\n- Added the Philosophy section of the docs.\n\nChanged\n.......\n\n- The default entry header no longer puts the version number in square\n brackets: this was a misunderstanding of the keepachangelog formatting.\n\n- Respect the existing newline style of changelog files. (`#14`_)\n This means that a changelog file with Linux newlines on a Windows platform\n will be updated with Linux newlines, not rewritten with Windows newlines.\n Thanks, Kurt McKee.\n\n.. _#14: https://github.com/nedbat/scriv/issues/14\n\nFixed\n.....\n\n- Support Windows' directory separator (``\\``) in unit test output. (`#15`_)\n This allows the unit tests to run in Windows environments. Thanks, Kurt\n McKee.\n\n- Explicitly specify the directories and files that Black should scan. (`#16`_)\n This prevents Black from scanning every file in a virtual environment.\n Thanks, Kurt McKee.\n\n- Using \"literal:\" values in the configuration file didn't work on Python 3.6\n or 3.7, as reported in `issue 18`_. This is now fixed.\n\n.. _#15: https://github.com/nedbat/scriv/issues/15\n.. _#16: https://github.com/nedbat/scriv/issues/16\n.. _issue 18: https://github.com/nedbat/scriv/issues/18\n\n0.9.2 \u2014 2020-08-29\n------------------\n\n- Packaging fix.\n\n0.9.0 \u2014 2020-08-29\n------------------\n\nAdded\n.....\n\n- Markdown format is supported, both for fragments and changelog entries.\n\n- Fragments can be mixed (some .rst and some .md). They will be collected and\n output in the format configured in the settings.\n\n- Documentation.\n\n- \"python -m scriv\" now works.\n\nChanged\n.......\n\n- The version number is displayed in the help message.\n\n0.8.1 \u2014 2020-08-09\n------------------\n\nAdded\n.....\n\n- When editing a new fragment during \"scriv create\", if the edited fragment has\n no content (only comments or blank lines), then the create operation will be\n aborted, and the file will be removed. (Closes `issue 2`_.)\n\n.. _issue 2: https://github.com/nedbat/scriv/issues/2\n\nChanged\n.......\n\n- If the fragment directory doesn't exist, a simple direct message is shown,\n rather than a misleading FileNotFound error (closes `issue 1`_).\n\n.. _issue 1: https://github.com/nedbat/scriv/issues/1\n\nFixed\n.....\n\n- When not using categories, comments in fragment files would be copied to the\n changelog file (`issue 3`_). This is now fixed.\n\n.. _issue 3: https://github.com/nedbat/scriv/issues/3\n\n- RST syntax is better understood, so that hyperlink references and directives\n will be preserved. Previously, they were mistakenly interpreted as comments\n and discarded.\n\n0.8.0 \u2014 2020-08-04\n------------------\n\nAdded\n.....\n\n- Added the `collect` command.\n\n- Configuration is now read from setup.cfg or tox.ini.\n\n- A new configuration setting, rst_section_char, determines the character used\n in the underlines for the section headings in .rst files.\n\n- The `new_entry_template` configuration setting is the name of the template\n file to use when creating new entries. The file will be found in the\n `fragment_directory` directory. The file name defaults to ``new_entry.FMT.j2``.\n If the file doesn't exist, an internal default will be used.\n\n- Now the collect command also includes a header for the entire entry. The\n underline is determined by the \"rst_header_char\" settings. The heading text\n is determined by the \"header\" setting, which defaults to the current date.\n\n- The categories list in the config can be empty, meaning entries are not\n categorized.\n\n- The create command now accepts --edit (to open the new entry in your text\n editor), and --add (to \"git add\" the new entry).\n\n- The collect command now accepts --edit (to open the changelog file in an\n editor after the new entries have been collected) and --add (to git-add the\n changelog file and git rm the entries).\n\n- The names of the main git branches are configurable as \"main_branches\" in the\n configuration file. The default is \"master\", \"main\", and \"develop\".\n\n- Configuration values can now be read from files by prefixing them with\n \"file:\". File names will be interpreted relative to the changelog.d\n directory, or will be found in a few files installed with scriv.\n\n- Configuration values can interpolate the currently configured format (rst or\n md) with \"${config:format}\".\n\n- The default value for new templates is now\n \"file: new_entry.${config:format}.j2\".\n\n- Configuration values can be read from string literals in Python code with a\n \"literal:\" prefix.\n\n- \"version\" is now a configuration setting. This will be most useful when used\n with the \"literal:\" prefix.\n\n- By default, the title of collected changelog entries includes the version if\n it's defined.\n\n- The collect command now accepts a ``--version`` option to set the version\n name used in the changelog entry title.\n\nChanged\n.......\n\n- RST now uses minuses instead of equals.\n\n- The `create` command now includes the time as well as the date in the entry\n file name.\n\n- The --delete option to collect is now called --keep, and defaults to False.\n By default, the collected entry files are removed.\n\n- Created file names now include the seconds from the current time.\n\n- \"scriv create\" will refuse to overwrite an existing entry file.\n\n- Made terminology more uniform: files in changelog.d are \"fragments.\" When\n collected together, they make one changelog \"entry.\"\n\n- The title text for the collected changelog entry is now created from the\n \"entry_title_template\" configuration setting. It's a Jinja2 template.\n\n- Combined the rst_header_char and rst_section_char settings into one:\n rst_header_chars, which much be exactly two characters.\n\n- Parsing RST fragments is more flexible: the sections can use any valid RST\n header characters for the underline. Previously, it had to match the\n configured RST header character.\n\nFixed\n.....\n\n- Fragments with no category header were being dropped if categories were in\n use. This is now fixed. Uncategorized fragments get sorted before any\n categorized fragments.\n\n\n0.1.0 \u2014 2019-12-30\n------------------\n\n* Doesn't really do anything yet.\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Scriv changelog management tool",
"version": "1.5.1",
"project_urls": {
"Documentation": "https://scriv.readthedocs.io",
"Funding": "https://github.com/sponsors/nedbat",
"Homepage": "https://github.com/nedbat/scriv",
"Issues": "https://github.com/nedbat/scriv/issues",
"Mastodon": "https://hachyderm.io/@nedbat",
"Source": "https://github.com/nedbat/scriv"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3ee6cf5c273f57ded9dd0b22430eb62c2af3c883578bab0d824700355f4c16b2",
"md5": "abff2919bad978a6d108337d942b2e07",
"sha256": "a3adc657733b4124fcb54527a5f3daab0d3c300de82d0fd2b9b297b243151b78"
},
"downloads": -1,
"filename": "scriv-1.5.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "abff2919bad978a6d108337d942b2e07",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 35332,
"upload_time": "2023-12-14T14:46:10",
"upload_time_iso_8601": "2023-12-14T14:46:10.980037Z",
"url": "https://files.pythonhosted.org/packages/3e/e6/cf5c273f57ded9dd0b22430eb62c2af3c883578bab0d824700355f4c16b2/scriv-1.5.1-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "56356e05af688bc3f983a207a6f89acf139aa16693473360d0cbc2a9bda19efc",
"md5": "97e7dcac11763ed2d9d38232d76b78c4",
"sha256": "30ae9ff8d144f8e0cf394c4e1d379542f1b3823767642955b54ec40dc00b32b6"
},
"downloads": -1,
"filename": "scriv-1.5.1.tar.gz",
"has_sig": false,
"md5_digest": "97e7dcac11763ed2d9d38232d76b78c4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 84382,
"upload_time": "2023-12-14T14:46:12",
"upload_time_iso_8601": "2023-12-14T14:46:12.461279Z",
"url": "https://files.pythonhosted.org/packages/56/35/6e05af688bc3f983a207a6f89acf139aa16693473360d0cbc2a9bda19efc/scriv-1.5.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-14 14:46:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "nedbat",
"github_project": "scriv",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "scriv"
}