├── .gitignore
├── .release-notes
├── 2.0.5
│ ├── release.md
│ └── release.html
├── 2.4.2
│ ├── release.md
│ └── release.html
├── 2.0.7
│ ├── release.md
│ └── release.html
├── 2.5.1
│ ├── release.md
│ └── release.html
├── 2.5.2
│ ├── release.md
│ └── release.html
├── 2.5.3
│ ├── release.md
│ └── release.html
├── 2.5.4
│ ├── release.md
│ └── release.html
├── 2.5.0
│ ├── release.md
│ └── release.html
├── 2.6.1
│ ├── release.md
│ └── release.html
├── 2.7.3
│ ├── release.md
│ └── release.html
├── 1.0.2
│ ├── release.md
│ └── release.html
├── 2.4.3
│ ├── release.md
│ └── release.html
├── 2.0.6
│ ├── release.md
│ └── release.html
├── 2.2.8
│ ├── release.md
│ └── release.html
├── 2.6.2
│ ├── release.md
│ └── release.html
├── 2.7.2
│ ├── release.md
│ └── release.html
├── 2.2.7
│ └── release.md
├── 2.7.1
│ ├── release.md
│ └── release.html
├── 2.7.0
│ ├── release.md
│ └── release.html
├── 2.4.0
│ ├── release.md
│ └── release.html
├── 1.0.3
│ └── release.md
├── 2.2.10
│ └── release.md
├── 2.0.4
│ └── release.md
├── 2.5.5
│ └── release.md
├── 2.2.9
│ └── release.md
├── 2.8.0
│ └── release.md
├── 2.9.0
│ └── release.md
├── 2.4.1
│ └── release.md
├── 2.3.0
│ └── release.md
├── 2.6.0
│ └── release.md
├── 2.9.1
│ └── release.md
├── 2.1.7
│ └── release.md
└── 1.0.4
│ └── release.md
├── assets
└── logo.png
├── light-release.config.json
├── .github
└── workflows
│ └── stale.yml
├── LICENSE.md
├── package.json
├── lib
├── git-extractor.js
├── versioning.js
├── badge-utils.js
├── config.js
└── git-utils.js
├── code_of_conduct.md
├── bin
└── release.js
├── tests
└── test.js
└── CHANGELOG.md
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | /package-lock.json
3 | .DS_Store
4 |
--------------------------------------------------------------------------------
/.release-notes/2.0.5/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.0.5 - October 20, 2024
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.release-notes/2.4.2/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.4.2 - December 5, 2024
2 |
3 |
4 |
--------------------------------------------------------------------------------
/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VincenzoManto/light-release/HEAD/assets/logo.png
--------------------------------------------------------------------------------
/.release-notes/2.0.7/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.0.7 - October 20, 2024
2 |
3 |
4 | ### fix: fix the avatar image size in release-notes.js. 
5 | - **Author:** [vincmanto](https://github.com/vincmanto) 
6 | - **Date:** Sun Oct 20 15:31:46 2024 +0200
7 | - **Files Modified:** 2
8 |
9 |
--------------------------------------------------------------------------------
/.release-notes/2.5.1/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.5.1 - December 5, 2024
2 |
3 |
4 | ### fix: escape newlines in release notes for tagging command 
5 | - **Author:** [vincmanto](https://github.com/vincmanto) 
6 | - **Date:** Thu Dec 5 08:35:45 2024 +0100
7 | - **Files Modified:** 1
8 |
9 |
--------------------------------------------------------------------------------
/.release-notes/2.5.2/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.5.2 - December 5, 2024
2 |
3 |
4 | ### fix: escape newlines in release notes for tagging command 
5 | - **Author:** [vincmanto](https://github.com/vincmanto) 
6 | - **Date:** Thu Dec 5 08:36:21 2024 +0100
7 | - **Files Modified:** 1
8 |
9 |
--------------------------------------------------------------------------------
/.release-notes/2.5.3/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.5.3 - December 5, 2024
2 |
3 |
4 | ### fix: update release notes formatting and improve tag creation command 
5 | - **Author:** [vincmanto](https://github.com/vincmanto) 
6 | - **Date:** Thu Dec 5 08:42:27 2024 +0100
7 | - **Files Modified:** 1
8 |
9 |
--------------------------------------------------------------------------------
/.release-notes/2.5.4/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.5.4 - December 5, 2024
2 |
3 |
4 | ### fix: simplify release note handling and improve tag creation command 
5 | - **Author:** [vincmanto](https://github.com/vincmanto) 
6 | - **Date:** Thu Dec 5 08:43:22 2024 +0100
7 | - **Files Modified:** 1
8 |
9 |
--------------------------------------------------------------------------------
/.release-notes/2.5.0/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.5.0 - December 5, 2024
2 |
3 |
4 | ### feat: add console logging for release notes and git commands in release script 
5 | - **Author:** [vincmanto](https://github.com/vincmanto) 
6 | - **Date:** Thu Dec 5 08:35:12 2024 +0100
7 | - **Files Modified:** 1
8 |
9 |
--------------------------------------------------------------------------------
/.release-notes/2.6.1/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.6.1 - February 7, 2025
2 |
3 |
4 | ### issue #10 - update commit log command to use custom section delimiter for parsing
5 |
6 | 
7 | - **Author:** [vincmanto](https://github.com/vincmanto) 
8 | - **Date:** Fri Feb 7 14:48:45 2025 +0100
9 | - **Files Modified:** 3
10 |
11 |
--------------------------------------------------------------------------------
/.release-notes/2.7.3/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.7.3 - February 24, 2025
2 |
3 |
4 | ### Merge pull request #14 from VincenzoManto/bug-fix/minor-wordsBug fix/minor words
5 |
6 | 
7 | - **Author:** [VincenzoManto](https://github.com/64726971+VincenzoManto) 
8 | - **Date:** Mon Feb 24 19:36:23 2025 +0100
9 | - **Files Modified:** 0
10 |
11 |
--------------------------------------------------------------------------------
/light-release.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "generateMarkdown": true,
3 | "generateHTML": true,
4 | "releaseNotesDir": ".release-notes",
5 | "badgeStyle": "flat-square",
6 | "dateFormat": "YYYY-MM-DD",
7 | "showCommitImpact": true,
8 | "blockIfChangesExist": false,
9 | "autoCommit": false,
10 | "aiComment": {
11 | "enabled": true,
12 | "openAIKey": "",
13 | "additionalPrompt": "Be funny"
14 | },
15 | "versionFileName": "package.json",
16 | "squashIntoSingleVersioning": true,
17 | "showAuthorLinks": true,
18 | "defaultImpactThresholds": {
19 | "low": 1,
20 | "medium": 5,
21 | "high": 10
22 | }
23 | }
--------------------------------------------------------------------------------
/.release-notes/1.0.2/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v1.0.2 - October 20, 2024
2 |
3 |
4 | ### feature added readme 
5 | - **Author:** [vincenzo.manto](https://github.com/vincenzo.manto) 
6 | - **Date:** Sun Oct 20 14:30:08 2024 +0200
7 | - **Files Modified:** 1
8 |
9 | ### first commit 
10 | - **Author:** [vincenzo.manto](https://github.com/vincenzo.manto) 
11 | - **Date:** Sun Oct 20 14:26:05 2024 +0200
12 | - **Files Modified:** 9
13 |
14 |
--------------------------------------------------------------------------------
/.release-notes/2.4.3/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.4.3 - December 5, 2024
2 |
3 |
4 | ### fix: enhance release notes generation to return content for tagging 
5 | - **Author:** [vincmanto](https://github.com/vincmanto) 
6 | - **Date:** Thu Dec 5 08:33:08 2024 +0100
7 | - **Files Modified:** 2
8 |
9 | ### chore: release v2.4.2 
10 | - **Author:** [vincmanto](https://github.com/vincmanto) 
11 | - **Date:** Thu Dec 5 08:24:25 2024 +0100
12 | - **Files Modified:** 3
13 |
14 |
--------------------------------------------------------------------------------
/.release-notes/2.0.6/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.0.6 - October 20, 2024
2 |
3 |
4 | ### fix: Update git-utils.js to handle missing lastCommitHash 
5 | - **Author:** [vincmanto](https://github.com/vincmanto) 
6 | - **Date:** Sun Oct 20 15:29:56 2024 +0200
7 | - **Files Modified:** 1
8 |
9 | ### docs: Update README.md with instructions for including Light Release in package scripts 
10 | - **Author:** [vincmanto](https://github.com/vincmanto) 
11 | - **Date:** Sun Oct 20 15:09:08 2024 +0200
12 | - **Files Modified:** 1
13 |
14 |
--------------------------------------------------------------------------------
/.release-notes/2.2.8/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.2.8 - October 23, 2024
2 |
3 |
4 | ### Refactor release-notes.js to conditionally show impact badges 
5 | - **Author:** [vincmanto](https://github.com/vincmanto) 
6 | - **Date:** Wed Oct 23 13:34:56 2024 +0200
7 | - **Files Modified:** 1
8 |
9 | ### Refactor release-notes.js to conditionally generate HTML and Markdown release notes 
10 | - **Author:** [vincmanto](https://github.com/vincmanto) 
11 | - **Date:** Wed Oct 23 13:33:33 2024 +0200
12 | - **Files Modified:** 1
13 |
14 |
--------------------------------------------------------------------------------
/.release-notes/2.6.2/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.6.2 - February 7, 2025
2 |
3 |
4 | ### chore: update release notes and changelog for version 2.6.1
5 |
6 | 
7 | - **Author:** [vincmanto](https://github.com/vincmanto) 
8 | - **Date:** Fri Feb 7 14:49:53 2025 +0100
9 | - **Files Modified:** 6
10 |
11 | ### issue #10 - update commit log command to use custom section delimiter for parsing
12 |
13 | 
14 | - **Author:** [vincmanto](https://github.com/vincmanto) 
15 | - **Date:** Fri Feb 7 14:48:45 2025 +0100
16 | - **Files Modified:** 3
17 |
18 |
--------------------------------------------------------------------------------
/.release-notes/2.7.2/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.7.2 - February 18, 2025
2 |
3 |
4 | ### fix: update delimiter in commit log parsing for consistency (#10)
5 |
6 | 
7 | - **Author:** [vincmanto](https://github.com/vincmanto) 
8 | - **Date:** Tue Feb 18 10:29:15 2025 +0100
9 | - **Files Modified:** 5
10 |
11 | ### test: added rapid test function for git logs and implement commit log parser to extract commit details and modified files
12 |
13 | 
14 | - **Author:** [vincmanto](https://github.com/vincmanto) 
15 | - **Date:** Thu Feb 13 20:55:42 2025 +0100
16 | - **Files Modified:** 3
17 |
18 |
--------------------------------------------------------------------------------
/.release-notes/2.2.7/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.2.7 - October 23, 2024
2 |
3 |
4 | ### feat(versioning): Update versioning logic in release.js and versioning.jsIf something went wrong, it doesn't update package.json 
5 | - **Author:** [](#) 
6 | - **Date:** undefined
7 | - **Files Modified:** 0
8 |
9 | ### vincmanto@gmail.com 
10 | - **Author:** [VincenzoManto](https://github.com/VincenzoManto) 
11 | - **Date:** undefined
12 | - **Files Modified:** 2
13 |
14 | ### chore: colorful messages 
15 | - **Author:** [vincmanto](https://github.com/vincmanto) 
16 | - **Date:** Wed Oct 23 11:39:01 2024 +0200
17 | - **Files Modified:** 1
18 |
19 |
--------------------------------------------------------------------------------
/.github/workflows/stale.yml:
--------------------------------------------------------------------------------
1 | # This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time.
2 | #
3 | # You can adjust the behavior by modifying this file.
4 | # For more information, see:
5 | # https://github.com/actions/stale
6 | name: Mark stale issues and pull requests
7 |
8 | on:
9 | workflow_dispatch:
10 | schedule:
11 | - cron: '34 0 * * *'
12 |
13 | jobs:
14 | stale:
15 |
16 | runs-on: ubuntu-latest
17 | permissions:
18 | issues: write
19 | pull-requests: write
20 |
21 | steps:
22 | - uses: actions/stale@v5
23 | with:
24 | days-before-issue-stale: 12
25 | days-before-issue-close: 2
26 | stale-issue-label: "stale"
27 | stale-issue-message: "This issue is stale because it has been open for 30 days with no activity."
28 | close-issue-message: "This issue was closed because it has been inactive for 2 days since being marked as stale."
29 | days-before-pr-stale: -1
30 | days-before-pr-close: -1
31 | repo-token: ${{ secrets.GITHUB_TOKEN }}
32 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) [2024] [Vincenzo Manto]
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/.release-notes/2.7.1/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.7.1 - February 12, 2025
2 |
3 |
4 | ### Merge branch 'main' of https://github.com/VincenzoManto/light-release
5 |
6 | 
7 | - **Author:** [vincmanto](https://github.com/vincmanto) 
8 | - **Date:** Wed Feb 12 18:53:47 2025 +0100
9 | - **Files Modified:** 0
10 |
11 | ### fix: correct formatting in git log command for consistent output
12 |
13 | 
14 | - **Author:** [vincmanto](https://github.com/vincmanto) 
15 | - **Date:** Wed Feb 12 18:53:45 2025 +0100
16 | - **Files Modified:** 4
17 |
18 | ### Update README.md
19 |
20 | 
21 | - **Author:** [VincenzoManto](https://github.com/64726971+VincenzoManto) 
22 | - **Date:** Tue Feb 11 13:33:44 2025 +0100
23 | - **Files Modified:** 3
24 |
25 |
--------------------------------------------------------------------------------
/.release-notes/2.7.0/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.7.0 - February 9, 2025
2 |
3 |
4 | ### refactor: enhance committer info function to include author parameter
5 |
6 | 
7 | - **Author:** [vincmanto](https://github.com/vincmanto) 
8 | - **Date:** Sun Feb 9 12:51:13 2025 +0100
9 | - **Files Modified:** 4
10 |
11 | ### refactor: enhance committer info retrieval to include author parameter
12 |
13 | 
14 | - **Author:** [vincmanto](https://github.com/vincmanto) 
15 | - **Date:** Sun Feb 9 12:50:19 2025 +0100
16 | - **Files Modified:** 5
17 |
18 | ### docs: update README to link npm version and downloads badges
19 |
20 | 
21 | - **Author:** [vincmanto](https://github.com/vincmanto) 
22 | - **Date:** Fri Feb 7 14:51:37 2025 +0100
23 | - **Files Modified:** 3
24 |
25 |
--------------------------------------------------------------------------------
/.release-notes/2.4.0/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.4.0 - November 17, 2024
2 |
3 |
4 | ### Merge pull request #8 from VincenzoManto/feat/prereleasesFeat/prereleases 
5 | - **Author:** [VincenzoManto](https://github.com/64726971+VincenzoManto) 
6 | - **Date:** Sun Nov 3 11:16:47 2024 +0100
7 | - **Files Modified:** 0
8 |
9 | ### Merge branch 'main' into feat/prereleases 
10 | - **Author:** [VincenzoManto](https://github.com/64726971+VincenzoManto) 
11 | - **Date:** Sun Nov 3 11:14:45 2024 +0100
12 | - **Files Modified:** 0
13 |
14 | ### Merge pull request #7 from VincenzoManto/feat/testingtest: Update getNewVersion function to accept an optional passed version 
15 | - **Author:** [VincenzoManto](https://github.com/64726971+VincenzoManto) 
16 | - **Date:** Thu Oct 31 12:42:33 2024 +0100
17 | - **Files Modified:** 0
18 |
19 |
--------------------------------------------------------------------------------
/.release-notes/1.0.3/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v1.0.3 - October 20, 2024
2 |
3 |
4 | ### fix(md notes): release notes in md 
5 | - **Author:** [vincenzo.manto](https://github.com/vincenzo.manto) 
6 | - **Date:** Sun Oct 20 14:33:26 2024 +0200
7 | - **Files Modified:** 1
8 |
9 | ### added release notes 
10 | - **Author:** [vincenzo.manto](https://github.com/vincenzo.manto) 
11 | - **Date:** Sun Oct 20 14:32:41 2024 +0200
12 | - **Files Modified:** 7
13 |
14 | ### feature added readme 
15 | - **Author:** [vincenzo.manto](https://github.com/vincenzo.manto) 
16 | - **Date:** Sun Oct 20 14:30:08 2024 +0200
17 | - **Files Modified:** 1
18 |
19 | ### first commit 
20 | - **Author:** [vincenzo.manto](https://github.com/vincenzo.manto) 
21 | - **Date:** Sun Oct 20 14:26:05 2024 +0200
22 | - **Files Modified:** 9
23 |
24 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "light-release",
3 | "version": "2.9.1",
4 | "description": "A lightweight tool to automate your release process, compatible with conventional commit messages. It reads your commit history, determines the release type, and generates release notes without unnecessary dependencies.",
5 | "bin": {
6 | "light-release": "./bin/release.js"
7 | },
8 | "scripts": {
9 | "release": "light-release",
10 | "publish:npm": "light-release && npm publish",
11 | "test": "mocha tests/test.js",
12 | "run": "node bin/release.js"
13 | },
14 | "keywords": [
15 | "release",
16 | "automation",
17 | "conventional-commits",
18 | "changelog",
19 | "release-notes",
20 | "config",
21 | "npm",
22 | "js",
23 | "simple",
24 | "version-control",
25 | "versioning",
26 | "package-json",
27 | "version",
28 | "release",
29 | "semantic-release",
30 | "versioning-semantics"
31 | ],
32 | "repository": {
33 | "type": "git",
34 | "url": "https://github.com/VincenzoManto/light-release.git"
35 | },
36 | "bugs": {
37 | "url": "https://github.com/VincenzoManto/light-release/issues"
38 | },
39 | "homepage": "https://github.com/VincenzoManto/light-release#readme",
40 | "dependencies": {
41 | "fs-extra": "^10.0.0"
42 | },
43 | "author": "Vincenzo Manto",
44 | "license": "MIT",
45 | "devDependencies": {
46 | "expect.js": "^0.3.1"
47 | }
48 | }
--------------------------------------------------------------------------------
/.release-notes/2.2.10/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.2.10 - October 28, 2024
2 |
3 |
4 | ### Merge branch 'main' of https://github.com/VincenzoManto/light-release 
5 | - **Author:** [vincmanto](https://github.com/vincmanto) 
6 | - **Date:** Mon Oct 28 10:45:43 2024 +0100
7 | - **Files Modified:** 0
8 |
9 | ### fix release.js to handle existing tags 
10 | - **Author:** [vincmanto](https://github.com/vincmanto) 
11 | - **Date:** Mon Oct 28 10:45:40 2024 +0100
12 | - **Files Modified:** 1
13 |
14 | ### Update README.md 
15 | - **Author:** [VincenzoManto](https://github.com/64726971+VincenzoManto) 
16 | - **Date:** Mon Oct 28 09:36:52 2024 +0100
17 | - **Files Modified:** 1
18 |
19 | ### Update README.md 
20 | - **Author:** [VincenzoManto](https://github.com/64726971+VincenzoManto) 
21 | - **Date:** Mon Oct 28 09:36:01 2024 +0100
22 | - **Files Modified:** 1
23 |
24 |
--------------------------------------------------------------------------------
/.release-notes/2.0.4/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.0.4 - October 20, 2024
2 |
3 |
4 | ### minor: added autocommit in this repo 
5 | - **Author:** [vincmanto](https://github.com/vincmanto) 
6 | - **Date:** Sun Oct 20 14:59:40 2024 +0200
7 | - **Files Modified:** 2
8 |
9 | ### feat(heading)!: added commit.head by blaming package.json 
10 | - **Author:** [vincmanto](https://github.com/vincmanto) 
11 | - **Date:** Sun Oct 20 14:58:19 2024 +0200
12 | - **Files Modified:** 1
13 |
14 | ### minor: added keywords in commits 
15 | - **Author:** [vincmanto](https://github.com/vincmanto) 
16 | - **Date:** Sun Oct 20 14:53:23 2024 +0200
17 | - **Files Modified:** 2
18 |
19 | ### BREAKING CHANGE: added autocommit that allows user to commit versioning changes all in one 
20 | - **Author:** [vincmanto](https://github.com/vincmanto) 
21 | - **Date:** Sun Oct 20 14:49:08 2024 +0200
22 | - **Files Modified:** 2
23 |
24 |
--------------------------------------------------------------------------------
/.release-notes/2.5.5/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.5.5 - January 5, 2025
2 |
3 |
4 | ### Merge branch 'main' of https://github.com/VincenzoManto/light-release 
5 | - **Author:** [vincmanto](https://github.com/vincmanto) 
6 | - **Date:** Sun Jan 5 17:14:10 2025 +0100
7 | - **Files Modified:** 0
8 |
9 | ### close #9 - update patchWords array for improved keyword handling 
10 | - **Author:** [vincmanto](https://github.com/vincmanto) 
11 | - **Date:** Sun Jan 5 17:14:06 2025 +0100
12 | - **Files Modified:** 1
13 |
14 | ### Create stale.yml 
15 | - **Author:** [VincenzoManto](https://github.com/64726971+VincenzoManto) 
16 | - **Date:** Sun Dec 22 11:30:36 2024 +0100
17 | - **Files Modified:** 1
18 |
19 | ### Update README.md 
20 | - **Author:** [VincenzoManto](https://github.com/64726971+VincenzoManto) 
21 | - **Date:** Thu Dec 5 12:33:01 2024 +0100
22 | - **Files Modified:** 1
23 |
24 |
--------------------------------------------------------------------------------
/.release-notes/2.2.9/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.2.9 - October 23, 2024
2 |
3 |
4 | ### fixes tag creation when it already exists 
5 | - **Author:** [vincmanto](https://github.com/vincmanto) 
6 | - **Date:** Wed Oct 23 13:38:32 2024 +0200
7 | - **Files Modified:** 1
8 |
9 | ### chore: release v2.2.8 
10 | - **Author:** [vincmanto](https://github.com/vincmanto) 
11 | - **Date:** Wed Oct 23 13:35:30 2024 +0200
12 | - **Files Modified:** 3
13 |
14 | ### Refactor release-notes.js to conditionally show impact badges 
15 | - **Author:** [vincmanto](https://github.com/vincmanto) 
16 | - **Date:** Wed Oct 23 13:34:56 2024 +0200
17 | - **Files Modified:** 1
18 |
19 | ### Refactor release-notes.js to conditionally generate HTML and Markdown release notes 
20 | - **Author:** [vincmanto](https://github.com/vincmanto) 
21 | - **Date:** Wed Oct 23 13:33:33 2024 +0200
22 | - **Files Modified:** 1
23 |
24 |
--------------------------------------------------------------------------------
/lib/git-extractor.js:
--------------------------------------------------------------------------------
1 | function getCommits(commitLog) {
2 | try {
3 | const commits = [];
4 | let currentCommit = null;
5 |
6 | commitLog.split('££££').forEach((line) => {
7 | if (line.includes('§§§§')) {
8 | const [hash, message, email, author, date] = line.split('|');
9 | currentCommit = { hash: hash.replace('§§§§', ''), message: message.replace(/\n/g, ' '), email, author, date, modifiedFiles: 0 };
10 | commits.push(currentCommit);
11 | } else if (line.trim() !== '') {
12 | line.split('\n').forEach((l) => {
13 | // const [added, deleted, file] = l.split(/\s+/);
14 | currentCommit.modifiedFiles++;
15 | });
16 | }
17 | });
18 |
19 | return commits;
20 | } catch (error) {
21 | console.error('Error: Git is not installed or not accessible in this environment.');
22 | process.exit(1);
23 | }
24 | }
25 | console.log(getCommits(
26 | `\$\$\$\$§§§§af6c5b0bd91786fd0009cbb897c216318995603c|chore: release v2.0.1|vincmanto@gmail.com|VincenzoManto|Thu Feb 13 20:46:19 2025 +0100\$\$\$\$
27 | 5 63 .release-notes/2.0.1/release.html
28 | 1 15 .release-notes/2.0.1/release.md
29 | 5 0 CHANGELOG.md
30 |
31 | \$\$\$\$§§§§871a2f8b86af9a90eafb93960591695d12e20ae6|chore: update light-release dependency to version 2.7.1|vincmanto@gmail.com|VincenzoManto|Thu Feb 13 20:46:14 2025 +0100\$\$\$\$
32 | 1 1 package.json
33 | 4 4 pnpm-lock.yaml
34 | `
35 |
36 | ))
--------------------------------------------------------------------------------
/.release-notes/2.8.0/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.8.0 - February 28, 2025
2 |
3 |
4 | ### fix: correct release notes path in changelog entry
5 |
6 | 
7 | - **Author:** [vincmanto](https://github.com/vincmanto) 
8 | - **Date:** Fri Feb 28 09:40:48 2025 +0100
9 | - **Files Modified:** 4
10 |
11 | ### docs: update README to include baseUrl configuration option
12 |
13 | 
14 | - **Author:** [vincmanto](https://github.com/vincmanto) 
15 | - **Date:** Fri Feb 28 09:39:56 2025 +0100
16 | - **Files Modified:** 4
17 |
18 | ### feat: add baseUrl configuration option and update release notes path generation - #15
19 |
20 | 
21 | - **Author:** [vincmanto](https://github.com/vincmanto) 
22 | - **Date:** Fri Feb 28 09:38:40 2025 +0100
23 | - **Files Modified:** 5
24 |
25 | ### fix: enhance config creation check to prevent blocking on uncommitted changes - closes #12
26 |
27 | 
28 | - **Author:** [vincmanto](https://github.com/vincmanto) 
29 | - **Date:** Mon Feb 24 19:46:13 2025 +0100
30 | - **Files Modified:** 4
31 |
32 |
--------------------------------------------------------------------------------
/.release-notes/2.9.0/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.9.0 - March 30, 2025
2 |
3 |
4 | ### feat: add AI comment generation feature to release notes in README
5 |
6 | 
7 | - **Author:** [vincmanto](https://github.com/vincmanto) 
8 | - **Date:** Sun Mar 30 13:11:36 2025 +0200
9 | - **Files Modified:** 4
10 |
11 | ### feat: improve error handling for AI comment generation in release notes
12 |
13 | 
14 | - **Author:** [vincmanto](https://github.com/vincmanto) 
15 | - **Date:** Sun Mar 30 13:09:03 2025 +0200
16 | - **Files Modified:** 4
17 |
18 | ### fix: handle errors in AI comment generation for release notes
19 |
20 | 
21 | - **Author:** [vincmanto](https://github.com/vincmanto) 
22 | - **Date:** Sun Mar 30 13:01:37 2025 +0200
23 | - **Files Modified:** 3
24 |
25 |
26 | ### Summary
27 | "Release Note Commentary:
28 | - We've added a fancy new AI comment generation feature to our release notes! Watch out, Shakespeare!
29 | - Our AI now handles errors like a pro when generating comments for release notes. It's like having a personal assistant, but cooler.
30 | - We fixed the bugs in our AI comment generation. No more rogue comments causing chaos! Our AI is now on its best behavior. Or is it...? 🤖🔧 #ReleaseNoteDrama"
31 |
32 |
33 |
--------------------------------------------------------------------------------
/.release-notes/2.4.1/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.4.1 - November 18, 2024
2 |
3 |
4 | ### fix: change committer declaration to let for consistency in release notes generation 
5 | - **Author:** [vincmanto](https://github.com/vincmanto) 
6 | - **Date:** Mon Nov 18 12:52:48 2024 +0100
7 | - **Files Modified:** 1
8 |
9 | ### chore: release v2.4.0 
10 | - **Author:** [vincmanto](https://github.com/vincmanto) 
11 | - **Date:** Sun Nov 17 18:44:50 2024 +0100
12 | - **Files Modified:** 3
13 |
14 | ### Merge pull request #8 from VincenzoManto/feat/prereleasesFeat/prereleases 
15 | - **Author:** [VincenzoManto](https://github.com/64726971+VincenzoManto) 
16 | - **Date:** Sun Nov 3 11:16:47 2024 +0100
17 | - **Files Modified:** 0
18 |
19 | ### Merge branch 'main' into feat/prereleases 
20 | - **Author:** [VincenzoManto](https://github.com/64726971+VincenzoManto) 
21 | - **Date:** Sun Nov 3 11:14:45 2024 +0100
22 | - **Files Modified:** 0
23 |
24 | ### Merge pull request #7 from VincenzoManto/feat/testingtest: Update getNewVersion function to accept an optional passed version 
25 | - **Author:** [VincenzoManto](https://github.com/64726971+VincenzoManto) 
26 | - **Date:** Thu Oct 31 12:42:33 2024 +0100
27 | - **Files Modified:** 0
28 |
29 |
--------------------------------------------------------------------------------
/lib/versioning.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 | const path = require('path');
3 |
4 | /**
5 | * Update the version in the package.json file. Uses package.json unless there is an override in the `versionFileName` config field.
6 | * @param {*} version new version changes (major, minor, patch)
7 | * @param {*} config
8 | * @returns
9 | */
10 | function updateVersion(version, config) {
11 | const packageJsonPath = path.resolve(process.cwd(), config.versionFileName);
12 | const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
13 |
14 | packageJson.version = version;
15 | fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf8');
16 | return packageJson.version;
17 | }
18 |
19 | /**
20 | * Get the new version based on the current version and the changes. Uses package.json unless there is an override in the `versionFileName` config field.
21 | * @param {*} newVersion
22 | * @param {*} config
23 | * @param {*} _passedVersion external version to use instead of the one in the package.json
24 | * @returns
25 | */
26 | function getNewVersion(newVersion, config, _passedVersion = null) {
27 | const packageJsonPath = path.resolve(process.cwd(), config.versionFileName);
28 | const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
29 |
30 | let [major, minor, patch, prerelease] = _passedVersion || packageJson.version.split(/[\.\-]/).map(Number);
31 | if (config.squashIntoSingleVersioning) {
32 | if (newVersion.major > 0) {
33 | major++;
34 | minor = 0;
35 | patch = 0;
36 | } else if (newVersion.minor > 0) {
37 | minor++;
38 | patch = 0;
39 | } else if (newVersion.patch > 0) {
40 | patch++;
41 | }
42 | if (newVersion.prerelease) {
43 | prerelease++;
44 | }
45 | } else {
46 | major += newVersion.major;
47 | minor += newVersion.minor;
48 | patch += newVersion.patch;
49 | prerelease += newVersion.prerelease;
50 | }
51 |
52 | return prerelease ? `${major}.${minor}.${patch}-${prerelease}` : `${major}.${minor}.${patch}`;
53 | }
54 |
55 | module.exports = { updateVersion, getNewVersion };
56 |
--------------------------------------------------------------------------------
/.release-notes/2.3.0/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.3.0 - October 29, 2024
2 |
3 |
4 | ### Merge pull request #3 from eturino/feature/non-package-json-supportfeat: config.versionFileName to support Deno and other non package.json scenarios 
5 | - **Author:** [VincenzoManto](https://github.com/64726971+VincenzoManto) 
6 | - **Date:** Tue Oct 29 10:14:33 2024 +0100
7 | - **Files Modified:** 0
8 |
9 | ### Merge branch 'main' into feature/non-package-json-support 
10 | - **Author:** [VincenzoManto](https://github.com/64726971+VincenzoManto) 
11 | - **Date:** Tue Oct 29 08:30:05 2024 +0100
12 | - **Files Modified:** 0
13 |
14 | ### fix: prevent multiple jumps of version when `squashIntoSingleVersioning` is enabled.fixes #4 
15 | - **Author:** [](#) 
16 | - **Date:** undefined
17 | - **Files Modified:** 0
18 |
19 | ### eturino@eturino.com 
20 | - **Author:** [Eduardo Turiño](https://github.com/Eduardo Turiño) 
21 | - **Date:** undefined
22 | - **Files Modified:** 1
23 |
24 | ### fix: release.json executable 
25 | - **Author:** [eturino](https://github.com/eturino) 
26 | - **Date:** Sun Oct 27 22:10:01 2024 +0000
27 | - **Files Modified:** 1
28 |
29 | ### feat: config.versionFileName to support Deno and other non package.json scenarios 
30 | - **Author:** [eturino](https://github.com/eturino) 
31 | - **Date:** Sun Oct 27 21:58:54 2024 +0000
32 | - **Files Modified:** 8
33 |
34 |
--------------------------------------------------------------------------------
/.release-notes/2.6.0/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.6.0 - February 3, 2025
2 |
3 |
4 | ### Merge pull request #11 from VincenzoManto/bug-fix/omitAuthor-fixingBug fix/omit author fixing
5 |
6 | 
7 | - **Author:** [VincenzoManto](https://github.com/64726971+VincenzoManto) 
8 | - **Date:** Mon Feb 3 17:20:48 2025 +0100
9 | - **Files Modified:** 0
10 |
11 | ### refactor: clean up code formatting and improve readability in release notes generation
12 |
13 | 
14 | - **Author:** [vincmanto](https://github.com/vincmanto) 
15 | - **Date:** Mon Feb 3 17:17:37 2025 +0100
16 | - **Files Modified:** 1
17 |
18 | ### fix: issue #10 - conditionally display author information in release notes
19 |
20 | 
21 | - **Author:** [vincmanto](https://github.com/vincmanto) 
22 | - **Date:** Mon Feb 3 17:16:02 2025 +0100
23 | - **Files Modified:** 1
24 |
25 | ### Update README.md
26 |
27 | 
28 | - **Author:** [VincenzoManto](https://github.com/64726971+VincenzoManto) 
29 | - **Date:** Mon Jan 13 12:23:33 2025 +0100
30 | - **Files Modified:** 1
31 |
32 | ### Update stale.yml
33 |
34 | 
35 | - **Author:** [VincenzoManto](https://github.com/64726971+VincenzoManto) 
36 | - **Date:** Thu Jan 9 10:32:58 2025 +0100
37 | - **Files Modified:** 1
38 |
39 | ### Update stale.yml
40 |
41 | 
42 | - **Author:** [VincenzoManto](https://github.com/64726971+VincenzoManto) 
43 | - **Date:** Mon Jan 6 16:49:44 2025 +0100
44 | - **Files Modified:** 1
45 |
46 |
--------------------------------------------------------------------------------
/lib/badge-utils.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Create a badge with the given label, value, and color
3 | * @param {*} label label for the badge
4 | * @param {*} value value for the badge
5 | * @param {*} color color of the badge
6 | * @param {*} style style of the badge (flat, flat-square, plastic)
7 | * @param {*} type type of the badge (html, md)
8 | * @returns
9 | */
10 | function generateBadge(label, value, color, style = 'flat-square', type = 'md') {
11 | if (type === 'html') {
12 | return ``;
13 | } else if (type === 'md') {
14 | return ``;
15 | }
16 | }
17 |
18 | /**
19 | * Generate a badge based on the number of modified files
20 | * @param {*} modifiedFiles modified files in the commit
21 | * @param {*} config configuration object
22 | * @param {*} type type of the badge (html, md)
23 | * @returns
24 | */
25 | function getImpactBadge(modifiedFiles, config, type = 'md') {
26 | const thresholds = config.defaultImpactThresholds || { low: 1, medium: 5, high: 10 };
27 |
28 | if (modifiedFiles <= thresholds.low) {
29 | return generateBadge('impact', 'low', 'green', config.badgeStyle, type);
30 | } else if (modifiedFiles <= thresholds.medium) {
31 | return generateBadge('impact', 'medium', 'yellow', config.badgeStyle, type);
32 | } else {
33 | return generateBadge('impact', 'high', 'red', config.badgeStyle, type);
34 | }
35 | }
36 |
37 | /**
38 | * Get committer information from the email
39 | * @param {string} email email of the committer
40 | * @param {string?} author author of the committer
41 | * @returns
42 | */
43 | function getCommitterInfo(email, author) {
44 | const emailParts = email?.split('@') || [''];
45 | const username = author || emailParts[0];
46 |
47 | let profileLink = `https://github.com/${author || username}`;
48 |
49 | if (!username) {
50 | profileLink = '#';
51 | }
52 |
53 | return {
54 | name: username,
55 | profileLink: profileLink,
56 | image: getCommitterImage(username),
57 | };
58 | }
59 |
60 | /**
61 | * Get the committer image from the username
62 | * @deprecated
63 | * @param {*} username username of the committer
64 | * @returns
65 | */
66 | function getCommitterImage(username) {
67 | return `https://cdn-icons-png.flaticon.com/512/25/25231.png`;
68 | }
69 |
70 | module.exports = { generateBadge, getImpactBadge, getCommitterInfo, getCommitterImage };
71 |
--------------------------------------------------------------------------------
/lib/config.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 | const path = require('path');
3 |
4 | /**
5 | * Check if the configuration file exists, if not create it
6 | * @returns true if the configuration file was created
7 | */
8 | function checkAndCreateConfig() {
9 | const configPath = path.join(process.cwd(), 'light-release.config.json');
10 | if (!fs.existsSync(configPath)) {
11 | createDefaultConfig();
12 | console.log('Default configuration file created: light-release.config.json');
13 | return true;
14 | }
15 | return false;
16 | }
17 |
18 | /**
19 | * Load the configuration from the configuration
20 | * @returns
21 | */
22 | function loadConfig() {
23 | const configPath = path.join(process.cwd(), 'light-release.config.json');
24 | if (fs.existsSync(configPath)) {
25 | const found = JSON.parse(fs.readFileSync(configPath, 'utf8'));
26 | return _validateConfig(found);
27 | } else {
28 | return _buildDefaultConfig();
29 | }
30 | }
31 |
32 | /**
33 | * Create a default configuration file
34 | * @returns default configuration object
35 | */
36 | function createDefaultConfig() {
37 | const defaultConfig = _buildDefaultConfig();
38 |
39 | const configPath = path.join(process.cwd(), 'light-release.config.json');
40 | fs.writeFileSync(configPath, JSON.stringify(defaultConfig, null, 2), 'utf8');
41 | return defaultConfig;
42 | }
43 |
44 | // PRIVATE HELPERS
45 |
46 | function _validateConfig(config) {
47 | config.versionFileName = _validateVersionFileName(config.versionFileName);
48 | return config;
49 | }
50 |
51 | const DEFAULT_VERSION_FILENAME = "package.json";
52 | const VALID_VERSION_FILENAMES = [DEFAULT_VERSION_FILENAME, "deno.json", "jsr.json"];
53 |
54 | function _validateVersionFileName(given) {
55 | if (!given) return DEFAULT_VERSION_FILENAME;
56 |
57 | if (VALID_VERSION_FILENAMES.includes(given)) {
58 | return given;
59 | }
60 |
61 | const errorMessage = `The versionFileName is invalid. Choose one of the following: ${JSON.stringify(VALID_VERSION_FILENAMES)}`;
62 | console.error(errorMessage);
63 | throw new Error(errorMessage);
64 | }
65 |
66 | function _buildDefaultConfig() {
67 | return {
68 | generateMarkdown: true,
69 | generateHTML: true,
70 | releaseNotesDir: '.release-notes',
71 | badgeStyle: 'flat-square',
72 | dateFormat: 'YYYY-MM-DD',
73 | autoCommit: false,
74 | baseUrl: '.',
75 | omitAuthor: false,
76 | blockIfChangesExist: true,
77 | aiComment: {
78 | enabled: false,
79 | openAIKey: null,
80 | prompt: 'Generate a release note for the following changes:',
81 | },
82 | squashIntoSingleVersioning: true,
83 | showCommitImpact: true,
84 | showAuthorLinks: true,
85 | versionFileName: DEFAULT_VERSION_FILENAME,
86 | defaultImpactThresholds: {
87 | low: 1,
88 | medium: 5,
89 | high: 10,
90 | },
91 | };
92 | }
93 |
94 | module.exports = { loadConfig, createDefaultConfig, checkAndCreateConfig };
95 |
--------------------------------------------------------------------------------
/code_of_conduct.md:
--------------------------------------------------------------------------------
1 | # Light Release Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
6 |
7 | ## Our Standards
8 |
9 | Examples of behavior that contributes to creating a positive environment include:
10 |
11 | - Using welcoming and inclusive language
12 | - Being respectful of differing viewpoints and experiences
13 | - Gracefully accepting constructive criticism
14 | - Focusing on what is best for the community
15 | - Showing empathy towards other community members
16 |
17 | Examples of unacceptable behavior by participants include:
18 |
19 | - The use of sexualized language or imagery and unwelcome sexual attention or advances
20 | - Trolling, insulting/derogatory comments, and personal or political attacks
21 | - Public or private harassment
22 | - Publishing others' private information, such as a physical or electronic address, without explicit permission
23 | - Other conduct which could reasonably be considered inappropriate in a professional setting
24 |
25 | ## Our Responsibilities
26 |
27 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
28 |
29 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned with this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
30 |
31 | ## Scope
32 |
33 | This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project email address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
34 |
35 | ## Enforcement
36 |
37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [INSERT EMAIL ADDRESS]. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
38 |
39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40 |
41 | ## Attribution
42 |
43 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version].
44 |
45 | [homepage]: http://contributor-covenant.org
46 | [version]: http://contributor-covenant.org/version/1/4/
--------------------------------------------------------------------------------
/bin/release.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | const { loadConfig, checkAndCreateConfig } = require('../lib/config');
3 | const { getCommits, classifyVersion, checkIfChangesExist } = require('../lib/git-utils');
4 | const { generateReleaseNotes } = require('../lib/release-notes');
5 | const { updateVersion, getNewVersion } = require('../lib/versioning');
6 |
7 | /**
8 | * @file release.js
9 | * @description This script automates the release process by loading configuration,
10 | * retrieving commits, classifying the version type, updating the version,
11 | * and generating release notes.
12 | * @module release
13 | */
14 |
15 | /**
16 | * Loads the configuration file and checks if it needs to be created.
17 | * @function checkAndCreateConfig
18 | */
19 |
20 | /**
21 | * Loads the configuration settings.
22 | * @function loadConfig
23 | * @returns {Object} The configuration settings.
24 | */
25 |
26 | /**
27 | * Retrieves the list of commits.
28 | * @function getCommits
29 | * @returns {Array} The list of commits.
30 | */
31 |
32 | /**
33 | * Classifies the version type based on the commits.
34 | * @function classifyVersion
35 | * @param {Array} commits - The list of commits.
36 | * @returns {string} The type of the new version (e.g., 'major', 'minor', 'patch').
37 | */
38 |
39 | /**
40 | * Updates the version based on the version type.
41 | * @function updateVersion
42 | * @param {string} versionType - The type of the new version.
43 | * @returns {string} The new version number.
44 | */
45 |
46 | /**
47 | * Generates release notes for the new version.
48 | * @function generateReleaseNotes
49 | * @param {string} newVersion - The new version number.
50 | * @param {Object} config - The configuration settings.
51 | */
52 |
53 | const created = checkAndCreateConfig();
54 |
55 | const config = loadConfig();
56 |
57 | if ((config.blockIfChangesExist && !created) && checkIfChangesExist()) {
58 | console.log('\x1b[31m%s\x1b[0m', 'Error: There are uncommitted changes in the repository. Please commit or stash them before proceeding or change blockIfChangesExist config');
59 | process.exit(1);
60 | }
61 |
62 | const commits = getCommits(config);
63 |
64 | const newVersionType = classifyVersion(commits, config);
65 |
66 | const newVersion = getNewVersion(newVersionType, config);
67 |
68 | const releaseNotes = generateReleaseNotes(newVersion, config);
69 |
70 | updateVersion(newVersion, config);
71 |
72 | console.log(`New release version: ${newVersion} of type ${newVersionType.type}`);
73 |
74 | if (config.autoCommit) {
75 | console.log('\x1b[36m%s\x1b[0m', '\nAuto commit is enabled. Committing the changes to the repository...\n');
76 | const execSync = require('child_process').execSync;
77 |
78 | // Verifica se il tag esiste controllando l'output di `git tag -l`
79 | const tagExists = execSync(`git tag -l v${newVersion}`).toString().trim() === `v${newVersion}`;
80 |
81 | try {
82 | if (tagExists) {
83 | console.warn(`\n\x1b[33mWarning: Tag v${newVersion} already exists. Skipping tag creation.\x1b[0m\n`);
84 | execSync(`git add . && git commit -m "chore: release v${newVersion}" && git push`, { stdio: 'inherit' });
85 | } else {
86 | execSync(`git add . && git commit -m "chore: release v${newVersion}" && git tag -a v${newVersion} -m "Release note v${newVersion}" && git push --follow-tags`, { stdio: 'inherit' });
87 | }
88 | } catch (err) {
89 | console.error('\x1b[31m%s\x1b[0m', 'Error: Unable to commit the changes to the repository.');
90 | process.exit(0);
91 | }
92 | }
93 |
--------------------------------------------------------------------------------
/.release-notes/2.9.1/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.9.1 - May 16, 2025
2 |
3 |
4 | ### fix: enhance getLastCommit function to accurately identify the last commit that modified the package.json version - #19
5 |
6 | 
7 | - **Author:** [vincmanto](https://github.com/vincmanto) 
8 | - **Date:** Thu May 8 13:37:01 2025 +0200
9 | - **Files Modified:** 4
10 |
11 | ### test: update getLastCommit tests and fix expected version in lightRelease tests
12 |
13 | 
14 | - **Author:** [vincmanto](https://github.com/vincmanto) 
15 | - **Date:** Thu May 8 13:36:52 2025 +0200
16 | - **Files Modified:** 4
17 |
18 | ### fix: update devDependencies to replace chai with expect.js in package.json
19 |
20 | 
21 | - **Author:** [vincmanto](https://github.com/vincmanto) 
22 | - **Date:** Thu May 8 13:36:32 2025 +0200
23 | - **Files Modified:** 4
24 |
25 | ### fix: add devDependencies section for chai in package.json
26 |
27 | 
28 | - **Author:** [vincmanto](https://github.com/vincmanto) 
29 | - **Date:** Thu May 8 13:18:13 2025 +0200
30 | - **Files Modified:** 4
31 |
32 | ### fix: improve getLastCommit function to accurately retrieve the last commit affecting package.json version
33 |
34 | 
35 | - **Author:** [vincmanto](https://github.com/vincmanto) 
36 | - **Date:** Thu May 8 12:51:41 2025 +0200
37 | - **Files Modified:** 4
38 |
39 | ### fix: enhance getLastCommit function to retrieve commit hash based on version changes in package.json - #19
40 |
41 | 
42 | - **Author:** [vincmanto](https://github.com/vincmanto) 
43 | - **Date:** Thu May 8 12:39:41 2025 +0200
44 | - **Files Modified:** 4
45 |
46 | ### Merge pull request #18 from VincenzoManto/feature/2025-03-30Feature/2025 03 30
47 |
48 | 
49 | - **Author:** [VincenzoManto](https://github.com/64726971+VincenzoManto) 
50 | - **Date:** Tue Apr 1 11:26:00 2025 +0200
51 | - **Files Modified:** 0
52 |
53 | ### docs: add instructions for setting OpenAI API key as an environment variable in README
54 |
55 | 
56 | - **Author:** [vincmanto](https://github.com/vincmanto) 
57 | - **Date:** Sun Mar 30 13:15:25 2025 +0200
58 | - **Files Modified:** 4
59 |
60 | ### Merge pull request #16 from VincenzoManto/feature/2025-02-28Feature/2025 02 28
61 |
62 | 
63 | - **Author:** [VincenzoManto](https://github.com/64726971+VincenzoManto) 
64 | - **Date:** Mon Mar 3 09:56:15 2025 +0100
65 | - **Files Modified:** 0
66 |
67 |
--------------------------------------------------------------------------------
/.release-notes/2.1.7/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v2.1.7 - October 23, 2024
2 |
3 |
4 | ### chore(versions): enable squashIntoSingleVersioning option in light-release.config.json 
5 | - **Author:** [vincmanto](https://github.com/vincmanto) 
6 | - **Date:** Wed Oct 23 11:37:04 2024 +0200
7 | - **Files Modified:** 1
8 |
9 | ### fix(badge-utils): handle null email in getCommitterInfo function 
10 | - **Author:** [vincmanto](https://github.com/vincmanto) 
11 | - **Date:** Wed Oct 23 11:36:49 2024 +0200
12 | - **Files Modified:** 2
13 |
14 | ### fix(git-utils): update minorWords regex pattern 
15 | - **Author:** [vincmanto](https://github.com/vincmanto) 
16 | - **Date:** Wed Oct 23 11:33:03 2024 +0200
17 | - **Files Modified:** 1
18 |
19 | ### feat(git-utils): add support for additional commit message keywordsAdded support for additional commit message keywords in the git-utils.js file. The patchWords array now includes the keywords "style", "docs", "test", and "chore" in addition to the existing keywords for fixing and closing issues. This change enhances the classification of commit messages in the versioning logic. 
20 | - **Author:** [](#) 
21 | - **Date:** undefined
22 | - **Files Modified:** 1
23 |
24 | ### vincmanto@gmail.com 
25 | - **Author:** [VincenzoManto](https://github.com/VincenzoManto) 
26 | - **Date:** undefined
27 | - **Files Modified:** 1
28 |
29 | ### feat(versioning): update versioning logic to support squashIntoSingleVersioning option 
30 | - **Author:** [vincmanto](https://github.com/vincmanto) 
31 | - **Date:** Wed Oct 23 11:29:48 2024 +0200
32 | - **Files Modified:** 4
33 |
34 | ### fix(git-utils): add support for multi-line commit messagesThe code changes in this commit modify the `commitLogCommand` in the `getCommits` function of `git-utils.js`. The changes include adding support for multi-line commit messages by appending `%b` to the format string. This allows the commit messages to include line breaks and additional information. 
35 | - **Author:** [](#) 
36 | - **Date:** undefined
37 | - **Files Modified:** 1
38 |
39 | ### vincmanto@gmail.com 
40 | - **Author:** [VincenzoManto](https://github.com/VincenzoManto) 
41 | - **Date:** undefined
42 | - **Files Modified:** 1
43 |
44 | ### feat(added refactor keywords): added case insensitivity to keywords introduced github-colpilot keyword "refactor" 
45 | - **Author:** [vincmanto](https://github.com/vincmanto) 
46 | - **Date:** Wed Oct 23 11:09:18 2024 +0200
47 | - **Files Modified:** 1
48 |
49 |
--------------------------------------------------------------------------------
/.release-notes/1.0.4/release.md:
--------------------------------------------------------------------------------
1 | # Release Note v1.0.4 - October 20, 2024
2 |
3 |
4 | ### added code of conduct 
5 | - **Author:** [vincmanto](https://github.com/vincmanto) 
6 | - **Date:** Sun Oct 20 14:41:32 2024 +0200
7 | - **Files Modified:** 1
8 |
9 | ### fix(readme): image size 
10 | - **Author:** [vincmanto](https://github.com/vincmanto) 
11 | - **Date:** Sun Oct 20 14:40:13 2024 +0200
12 | - **Files Modified:** 1
13 |
14 | ### fix(readme): image size 
15 | - **Author:** [vincmanto](https://github.com/vincmanto) 
16 | - **Date:** Sun Oct 20 14:38:45 2024 +0200
17 | - **Files Modified:** 1
18 |
19 | ### fix(readme): image size 
20 | - **Author:** [vincmanto](https://github.com/vincmanto) 
21 | - **Date:** Sun Oct 20 14:37:31 2024 +0200
22 | - **Files Modified:** 1
23 |
24 | ### fix(readme): image size 
25 | - **Author:** [vincmanto](https://github.com/vincmanto) 
26 | - **Date:** Sun Oct 20 14:36:03 2024 +0200
27 | - **Files Modified:** 1
28 |
29 | ### fix(readme) 
30 | - **Author:** [vincmanto](https://github.com/vincmanto) 
31 | - **Date:** Sun Oct 20 14:35:35 2024 +0200
32 | - **Files Modified:** 1
33 |
34 | ### added license 
35 | - **Author:** [vincmanto](https://github.com/vincmanto) 
36 | - **Date:** Sun Oct 20 14:35:07 2024 +0200
37 | - **Files Modified:** 2
38 |
39 | ### new version 
40 | - **Author:** [vincenzo.manto](https://github.com/vincenzo.manto) 
41 | - **Date:** Sun Oct 20 14:33:34 2024 +0200
42 | - **Files Modified:** 4
43 |
44 | ### fix(md notes): release notes in md 
45 | - **Author:** [vincenzo.manto](https://github.com/vincenzo.manto) 
46 | - **Date:** Sun Oct 20 14:33:26 2024 +0200
47 | - **Files Modified:** 1
48 |
49 | ### added release notes 
50 | - **Author:** [vincenzo.manto](https://github.com/vincenzo.manto) 
51 | - **Date:** Sun Oct 20 14:32:41 2024 +0200
52 | - **Files Modified:** 7
53 |
54 | ### feature added readme 
55 | - **Author:** [vincenzo.manto](https://github.com/vincenzo.manto) 
56 | - **Date:** Sun Oct 20 14:30:08 2024 +0200
57 | - **Files Modified:** 1
58 |
59 | ### first commit 
60 | - **Author:** [vincenzo.manto](https://github.com/vincenzo.manto) 
61 | - **Date:** Sun Oct 20 14:26:05 2024 +0200
62 | - **Files Modified:** 9
63 |
64 |
--------------------------------------------------------------------------------
/.release-notes/2.0.5/release.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
16 |
17 |
18 | Release note for version 2.0.5
32 |October 20, 2024
33 |Get notified when we release new features.
55 |
16 |
17 |
18 | Release note for version 2.4.2
32 |December 5, 2024
33 |Get notified when we release new features.
56 |
16 |
17 |
18 | Release note for version 2.0.7
32 |October 20, 2024
33 |70 | fix: fix the avatar image size in release-notes.js. 71 |
72 |Get notified when we release new features.
86 |
16 |
17 |
18 | Release note for version 2.5.1
32 |December 5, 2024
33 |70 | fix: escape newlines in release notes for tagging command 71 |
72 |Get notified when we release new features.
87 |
16 |
17 |
18 | Release note for version 2.5.2
32 |December 5, 2024
33 |70 | fix: escape newlines in release notes for tagging command 71 |
72 |Get notified when we release new features.
87 |
16 |
17 |
18 | Release note for version 2.5.3
32 |December 5, 2024
33 |70 | fix: update release notes formatting and improve tag creation command 71 |
72 |Get notified when we release new features.
87 |
16 |
17 |
18 | Release note for version 2.5.4
32 |December 5, 2024
33 |70 | fix: simplify release note handling and improve tag creation command 71 |
72 |Get notified when we release new features.
87 |
16 |
17 |
18 | Release note for version 2.5.0
32 |December 5, 2024
33 |70 | feat: add console logging for release notes and git commands in release script 71 |
72 |Get notified when we release new features.
87 |
16 |
17 |
18 | Release note for version 2.6.1
32 |February 7, 2025
33 |70 | issue #10 - update commit log command to use custom section delimiter for parsing 71 |
72 |Get notified when we release new features.
87 |
16 |
17 |
18 | Release note for version 2.7.3
32 |February 24, 2025
33 |70 | Merge pull request #14 from VincenzoManto/bug-fix/minor-wordsBug fix/minor words 71 |
72 |Get notified when we release new features.
87 |
16 |
17 |
18 | Release note for version 1.0.2
32 |October 20, 2024
33 |70 | feature added readme 71 |
72 |97 | first commit 98 |
99 |Get notified when we release new features.
113 |
16 |
17 |
18 | Release note for version 2.0.6
32 |October 20, 2024
33 |70 | fix: Update git-utils.js to handle missing lastCommitHash 71 |
72 |97 | docs: Update README.md with instructions for including Light Release in package scripts 98 |
99 |Get notified when we release new features.
113 |
16 |
17 |
18 | Release note for version 2.2.8
32 |October 23, 2024
33 |70 | Refactor release-notes.js to conditionally show impact badges 71 |
72 |97 | Refactor release-notes.js to conditionally generate HTML and Markdown release notes 98 |
99 |Get notified when we release new features.
113 |
16 |
17 |
18 | Release note for version 2.4.3
32 |December 5, 2024
33 |70 | fix: enhance release notes generation to return content for tagging 71 |
72 |97 | chore: release v2.4.2 98 |
99 |Get notified when we release new features.
114 |
16 |
17 |
18 | Release note for version 2.6.2
32 |February 7, 2025
33 |70 | chore: update release notes and changelog for version 2.6.1 71 |
72 |97 | issue #10 - update commit log command to use custom section delimiter for parsing 98 |
99 |Get notified when we release new features.
114 |
16 |
17 |
18 | Release note for version 2.7.2
32 |February 18, 2025
33 |70 | fix: update delimiter in commit log parsing for consistency (#10) 71 |
72 |97 | test: added rapid test function for git logs and implement commit log parser to extract commit details and modified files 98 |
99 |Get notified when we release new features.
114 |
16 |
17 |
18 | Release note for version 2.7.0
32 |February 9, 2025
33 |70 | refactor: enhance committer info function to include author parameter 71 |
72 |97 | refactor: enhance committer info retrieval to include author parameter 98 |
99 |124 | docs: update README to link npm version and downloads badges 125 |
126 |Get notified when we release new features.
141 |
16 |
17 |
18 | Release note for version 2.4.0
32 |November 17, 2024
33 |70 | Merge pull request #8 from VincenzoManto/feat/prereleasesFeat/prereleases 71 |
72 |97 | Merge branch 'main' into feat/prereleases 98 |
99 |124 | Merge pull request #7 from VincenzoManto/feat/testingtest: Update getNewVersion function to accept an optional passed version 125 |
126 |Get notified when we release new features.
140 |
16 |
17 |
18 | Release note for version 2.7.1
32 |February 12, 2025
33 |74 | Merge branch 'main' of https://github.com/VincenzoManto/light-release 75 |
76 |101 | fix: correct formatting in git log command for consistent output 102 |
103 |128 | Update README.md 129 |
130 |Get notified when we release new features.
145 |