clproc


Nameclproc JSON
Version 2024.8.12 PyPI version JSON
download
home_pageNone
SummaryGenerate curated changelogs into various formats.
upload_time2024-08-12 06:46:37
maintainerNone
docs_urlNone
authorNone
requires_python>=3.7
licenseMIT License
keywords changelog documentation json markdown pre-commit release notes yaml
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            clproc
======

``clproc`` helps to provide human-readable and user-friendly change-logs for
projects without compromise on git-commit quality.

It uses a *separate* source for log-entries and is also usable for projects
that don't use git.


Why clproc?
-----------

``clproc`` does not depend on specially formatted git commit messages. This has
several *very* important consequences:

- It clearly separates developers from end-users

  - Developers don't need to worry about commit-message content leaking into
    end-user visible change-logs
  - End-Users will only see well-crafted, curated content for changes

- Changelogs are "just content" and they can be easily modified as time goes
  on.
- It is easy to modify old entries in the change-log witout rewriting the git
  history (f.ex. for clarifications and/or typos).

Example alternatives to ``clproc`` that rely on git log-messages:

- https://git-cliff.org/
- https://pypi.org/project/gitchangelog/


Release Information
~~~~~~~~~~~~~~~~~~~

``clproc`` also separates normal "change-log" entries from "release notes"
where "release notes" is prose aimed to explain details of a specific release.
Relase notes are optional and can be added on an "as-needed" basis.


Example Input File
------------------

::

  # -*- changelog-version: 2.0 -*-
  1.1         ; added   ; Added a new feature
  1.0.0       ; support ; Mark as final release
  1.0.0a2     ; fixed   ; Fixed something
  1.0.0a1     ; support ; Initial Development Release



pre-commit integration
----------------------

As of version 1.2.0, ``clproc`` can be integrated with pre-commit_. The
pre-commit hook will ensure that the current project-version also has a matching
entry in the changelog

The *expected* version will be auto-detected. At the time of this writing,
``clproc`` supports only two metadata sources:

- A ``pyproject.toml`` file using setuptools_ as build-backend
- A ``package.json`` file for NPM packages
- A ``cargo.toml`` file for rust crates

The arguments ``--exact`` and ``--release-only`` are of primary interest. Using
"exact" checking, the changelog *must* contain an entry matching the version
number in the metadata file *exactly*. When using ``--release-only``, only the
"release-nodes" ("nodes" with a "d". Not a "t". See the docs for details) are
checked, providing a more lenient check.


Example pre-commit config:

.. code-block:: yaml

    ---
    repos:
      - repo: https://github.com/post-luxembourg/clproc.git
        rev: v1.2.0
        hooks:
          - id: clproc
            args: ["--release-only"]


.. _pre-commit: https://pre-commit.com
.. _setuptools: https://setuptools.pypa.io

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "clproc",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "changelog, documentation, json, markdown, pre-commit, release notes, yaml",
    "author": null,
    "author_email": "Michel Albert <michel.albert@post.lu>",
    "download_url": "https://files.pythonhosted.org/packages/03/d9/6a3e216fd7c8bab812afab324321d8b7e5694c918450171a9699545764d2/clproc-2024.8.12.tar.gz",
    "platform": null,
    "description": "clproc\n======\n\n``clproc`` helps to provide human-readable and user-friendly change-logs for\nprojects without compromise on git-commit quality.\n\nIt uses a *separate* source for log-entries and is also usable for projects\nthat don't use git.\n\n\nWhy clproc?\n-----------\n\n``clproc`` does not depend on specially formatted git commit messages. This has\nseveral *very* important consequences:\n\n- It clearly separates developers from end-users\n\n  - Developers don't need to worry about commit-message content leaking into\n    end-user visible change-logs\n  - End-Users will only see well-crafted, curated content for changes\n\n- Changelogs are \"just content\" and they can be easily modified as time goes\n  on.\n- It is easy to modify old entries in the change-log witout rewriting the git\n  history (f.ex. for clarifications and/or typos).\n\nExample alternatives to ``clproc`` that rely on git log-messages:\n\n- https://git-cliff.org/\n- https://pypi.org/project/gitchangelog/\n\n\nRelease Information\n~~~~~~~~~~~~~~~~~~~\n\n``clproc`` also separates normal \"change-log\" entries from \"release notes\"\nwhere \"release notes\" is prose aimed to explain details of a specific release.\nRelase notes are optional and can be added on an \"as-needed\" basis.\n\n\nExample Input File\n------------------\n\n::\n\n  # -*- changelog-version: 2.0 -*-\n  1.1         ; added   ; Added a new feature\n  1.0.0       ; support ; Mark as final release\n  1.0.0a2     ; fixed   ; Fixed something\n  1.0.0a1     ; support ; Initial Development Release\n\n\n\npre-commit integration\n----------------------\n\nAs of version 1.2.0, ``clproc`` can be integrated with pre-commit_. The\npre-commit hook will ensure that the current project-version also has a matching\nentry in the changelog\n\nThe *expected* version will be auto-detected. At the time of this writing,\n``clproc`` supports only two metadata sources:\n\n- A ``pyproject.toml`` file using setuptools_ as build-backend\n- A ``package.json`` file for NPM packages\n- A ``cargo.toml`` file for rust crates\n\nThe arguments ``--exact`` and ``--release-only`` are of primary interest. Using\n\"exact\" checking, the changelog *must* contain an entry matching the version\nnumber in the metadata file *exactly*. When using ``--release-only``, only the\n\"release-nodes\" (\"nodes\" with a \"d\". Not a \"t\". See the docs for details) are\nchecked, providing a more lenient check.\n\n\nExample pre-commit config:\n\n.. code-block:: yaml\n\n    ---\n    repos:\n      - repo: https://github.com/post-luxembourg/clproc.git\n        rev: v1.2.0\n        hooks:\n          - id: clproc\n            args: [\"--release-only\"]\n\n\n.. _pre-commit: https://pre-commit.com\n.. _setuptools: https://setuptools.pypa.io\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "Generate curated changelogs into various formats.",
    "version": "2024.8.12",
    "project_urls": {
        "Issues": "https://github.com/post-luxembourg/clproc/issues",
        "Source": "https://github.com/post-luxembourg/clproc"
    },
    "split_keywords": [
        "changelog",
        " documentation",
        " json",
        " markdown",
        " pre-commit",
        " release notes",
        " yaml"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1e8862a083ce7b7e3b8158bde4ae81fa0aa63696e6875e5f6c14685e0514b560",
                "md5": "dcf3483de104ed96151d810eff766eae",
                "sha256": "3303c02cdf42b9eb59878713f981f1d21fed5d93bc0461ac4f39440c4e6925c9"
            },
            "downloads": -1,
            "filename": "clproc-2024.8.12-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "dcf3483de104ed96151d810eff766eae",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 25328,
            "upload_time": "2024-08-12T06:46:31",
            "upload_time_iso_8601": "2024-08-12T06:46:31.977558Z",
            "url": "https://files.pythonhosted.org/packages/1e/88/62a083ce7b7e3b8158bde4ae81fa0aa63696e6875e5f6c14685e0514b560/clproc-2024.8.12-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "03d96a3e216fd7c8bab812afab324321d8b7e5694c918450171a9699545764d2",
                "md5": "1ecd007769ab9dc50de2c0bfe2753dc3",
                "sha256": "8f740279e78aa2c3b56ab6e65c8fdab1c23e5a9c49c4c869e0b1f496ca50c973"
            },
            "downloads": -1,
            "filename": "clproc-2024.8.12.tar.gz",
            "has_sig": false,
            "md5_digest": "1ecd007769ab9dc50de2c0bfe2753dc3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 25647,
            "upload_time": "2024-08-12T06:46:37",
            "upload_time_iso_8601": "2024-08-12T06:46:37.244899Z",
            "url": "https://files.pythonhosted.org/packages/03/d9/6a3e216fd7c8bab812afab324321d8b7e5694c918450171a9699545764d2/clproc-2024.8.12.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-12 06:46:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "post-luxembourg",
    "github_project": "clproc",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "clproc"
}
        
Elapsed time: 3.18523s