0.0.4 • Published 2 years ago

release-it-free-changelog v0.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

An extension based on @release-it/conventional-changelog that allows users to rewrite log content and provides a log topic by default

🏠 Homepage

Prerequisites

  • node >=14

Install

yarn add release-it-free-changelog -D

Usage

In the release-it config, for example:

"plugins": {
  "release-it-free-changelog": {}
}

Configuration

preset

The default configuration:

{
  "preset": {
    "name": "conventionalcommits",
    "types": [
      {
        "type": "feat",
        "section": "✨ Features | 新功能"
      },
      {
        "type": "fix",
        "section": "🐛 Bug Fixes | Bug 修复"
      },
      {
        "type": "chore",
        "section": "🚀 Chore | 构建/工程依赖/工具",
        "hidden": true
      },
      {
        "type": "docs",
        "section": "📝 Documentation | 文档"
      },
      {
        "type": "style",
        "section": "💄 Styles | 样式"
      },
      {
        "type": "refactor",
        "section": "♻️ Code Refactoring | 代码重构"
      },
      {
        "type": "perf",
        "section": "⚡ Performance Improvements | 性能优化"
      },
      {
        "type": "test",
        "section": "✅ Tests | 测试",
        "hidden": true
      },
      {
        "type": "revert",
        "section": "⏪ Revert | 回退",
        "hidden": true
      },
      {
        "type": "build",
        "section": "📦‍ Build System | 打包构建"
      },
      {
        "type": "ci",
        "section": "👷 Continuous Integration | CI 配置"
      }
    ]
  }
}

Or you can also use one of:

  • angular
  • atom
  • codemirror
  • conventionalcommits
  • ember
  • eslint
  • express
  • jquery
  • jscs
  • jshintOr you can also

If you want to customize the configuration, you can refer to Conventional Changelog Configuration Spec (v2.1.0) for the configuration object to pass as preset.

changelogFile

Default value: CHANGELOG.md

Set a filename as changelogFile to write the changelog to.

header

Set the main header for the changelog document:

"plugins": {
  "release-it-free-changelog": {
    "header": "# Changelog",
  }
}

rewriteChangelog

Default value: false

If set to true, you can rewrite the log content,as shown below:

authorName

Default value: true

If set to false, the submitter of each commit will not be displayed

context

Default value: undefined

This option will be passed as the second argument (context) to conventional-changelog-core, for example:

"plugins": {
  "release-it-free-changelog": {
    "context": {
      "data": {
        "name": "eric"
      }
    }
  }
}

gitRawCommitsOpts

Default value: undefined

Options for git-raw-commits. For example, you can use the following option to include merge commits into changelog:

{
  "plugins": {
    "release-it-free-changelog": {
      "gitRawCommitsOpts": {
        "merges": null
      }
    }
  }
}

parserOpts

Default value: undefined

Options for conventional-commits-parser. For example, you can use the following option to set the merge pattern during parsing the commit message:

{
  "plugins": {
    "release-it-free-changelog": {
      "parserOpts": {
        "mergePattern": "^Merge pull request #(\\d+) from (.*)$"
      }
    }
  }
}

writerOpts

Default value: undefined

Options for conventional-changelog-writer. For example, you can use the following option to group the commits by 'scope' instead of 'type' by default.

{
  "plugins": {
     "release-it-free-changelog": {
      "writerOpts": {
        "groupBy:" "scope"
      }
    }
  }
}

If you want to customize the templates used to write the changelog, you can do it like in a .release-it.js file like so:

const fs = require('fs')

const commitTemplate = fs.readFileSync('commit.hbs').toString()

module.exports = {
  plugins: {
    'release-it-free-changelog': {
      writerOpts: {
        commitPartial: commitTemplate
      }
    }
  }
}

🌸 Thanks

This project is heavily inspired by the following awesome projects.

🤝 Contributing

Contributions, issues and feature requests are welcome!Feel free to check issues page. You can also take a look at the contributing guide.

Show your support

Give a ⭐️ if this project helped you!

📝 License

Copyright © 2022 ericwan <ericwan2021@163.com>. This project is MIT licensed.