跳转到主要内容

从Git提交生成变更日志。

项目描述

从Git提交生成变更日志。

PyPI Version Supported Python versions Build Status GPL-2.0-only OR LGPL-2.1-or-later Coverage

先决条件

  • Python 3.6, 3.7和3.8

文档

文档可在Read the Docs上找到。

安装

PyPI上的最新稳定版本

pip install matyan

用法

基本用法

查看基本概念部分,以了解可能的提交方法和所做的假设。

生成变更日志

generate-changelog

跳过孤儿提交以生成变更日志

在某些情况下,您可能只想显示与票据相关的操作,并跳过所有非票据相关的提交。

generate-changelog --no-other

在两个发布版本之间生成变更日志

在其他情况下,您可能想显示自上次发布以来所做的工作。以下示例将生成从版本0.0.1到版本0.0.3的变更日志。

generate-changelog 0.0.1..0.0.3

在两个分支之间生成变更日志

有时您只需显示自上次生产版本以来在验收阶段所做的更改。以下示例将生成包含验收分支上更改但尚未在master分支中的变更日志。

generate-changelog master..acceptance

生成包含发布信息显示的变更日志

generate-changelog --show-releases

生成包含发布信息显示的版本之间的变更日志

generate-changelog 0.0.1..0.0.3 --show-releases

生成包含发布信息显示的分支之间的变更日志

generate-changelog master..dev --show-releases

生成包含发布信息显示的最新版本的变更日志

generate-changelog --latest-release --show-releases

生成仅包含标题(无提交消息)并显示发布信息的变更日志

generate-changelog --headings-only --show-releases

生成两个分支之间的变更日志,仅显示未发布的更改

generate-changelog master..acceptance --show-releases --unreleased-only

渲染

以下实现了以下渲染器

  • Markdown

  • RestructuredText

  • 历史Markdown(用于与0.4之前的matyan版本兼容)。

Markdown

generate-changelog --show-releases --renderer=markdown

RestructuredText

generate-changelog --show-releases --renderer=rest

历史Markdown

generate-changelog --show-releases --renderer=historical-markdown

Jira集成

可以从中获取Jira的工单标题和描述。为了使其正常工作,您应该提供fetch-titlefetch-description参数。

以下需要添加到您的.matyan.ini

[Settings]
fetchDataFrom=Jira

除此之外,您还应该将有效的Jira凭据放入您的全局.matyan.ini配置文件中。

要运行的命令

generate-changelog --show-releases --fetch-title --fetch-description

请注意,matyan应该带有jira选项安装。

pip install matyan[jira]

或者,请确保已安装atlassian-python-api

pip install atlassian-python-api

示例

请参阅输出目录中的示例。

此外,请参阅Jupyter笔记本示例

配置

为了自定义名称和文本,在运行generate-changelog命令的项目目录中添加一个.matyan.ini

示例配置

[BranchTypes]
feature: Feature
bugfix: Bugfix
hotfix: Hotfix
deprecation: Deprecation

[OtherBranchType]
other: Other

[Unreleased]
unreleased: Unreleased

[IgnoreCommits]
exact: more
       clean up
       code comments
       more on docs
       repo
       working
       more on
       wip
       commit
prefix: more on
        continue on

请注意,将.matyan.ini放置在主目录中将使该配置对所有项目全局有效。但是,由于本地.matyan.ini文件仅扩展全局配置,因此这可能很有用。例如,您可以使用全局配置来存储Jira凭据。

[Jira]
url:https://barseghyanartur.atlassian.net/
username:user@domain.com
token:abcd1234

然而,请注意,将完全复制部分。

技巧和窍门

写入文件

generate-changelog --show-releases 2>&1 | tee changelog.md

创建初始配置文件

matyan-make-config

测试

只需输入

./runtests.py

或使用tox

tox

或使用tox检查特定环境

tox -e py38

调试

有时检查日志可能会有所帮助。Matyan日志存储在您运行generate-changelog(或任何其他Matyan)命令的目录中。

以下方式更新您的.matyan.ini配置

[Settings]
debug=true
tail -f /path/to/your/project/matyan.log

如果您想修改当前的日志记录,请使用MATYAN_LOGGING_CONFIG环境变量。

默认配置

DEFAULT_LOGGING_CONFIG = {
    'version': 1,
    'disable_existing_loggers': False,
    'root': {
        'level': 'WARNING',
        'handlers': ['file'],
    },
    'formatters': {
        'verbose': {
            'format': '{levelname} {asctime} {module} {process:d} {thread:d} '
                      '{message}',
            'style': '{',
        },
        'simple': {
            'format': '{levelname} {message}',
            'style': '{',
        },
    },
    'handlers': {
        'console': {
            'level': 'WARNING',
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
        'file': {
            'level': 'WARNING',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': os.path.join(os.getcwd(), "matyan.log"),
            'maxBytes': 1048576,
            'backupCount': 99,
            'formatter': 'verbose',
        },
    },
    'loggers': {
        'matyan': {
            'handlers': ['file'],
            'propagate': True,
        },
    },
}

编写文档

请保持以下层次结构。

=====
title
=====

header
======

sub-header
----------

sub-sub-header
~~~~~~~~~~~~~~

sub-sub-sub-header
^^^^^^^^^^^^^^^^^^

sub-sub-sub-sub-header
++++++++++++++++++++++

sub-sub-sub-sub-sub-header
**************************

许可证

GPL-2.0-only OR LGPL-2.1-or-later

支持

有关任何问题,请联系作者部分中给出的电子邮件。

作者

Artur Barseghyan <artur.barseghyan@gmail.com>

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

matyan-0.4.7.tar.gz (52.2 kB 查看哈希值)

上传时间

构建分布

matyan-0.4.7-py2.py3-none-any.whl (52.1 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下组织支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面