itemsapi / itemsjs

Extremely fast faceted search engine in JavaScript - lightweight, flexible, and simple to use
Apache License 2.0
346 stars 41 forks source link

[Chore] Changelog #90

Closed noraj closed 2 years ago

noraj commented 3 years ago

Issue

The project has no changelog.

Example of context

I updated from v1 to v2 and my search form broke (as expected there are breaking changes in major versions)

-    "itemsjs": "^1.0.49",
+    "itemsjs": "^2.1.10",

Now I have to fix my code but since there is no changelog I have no clue in which version a breaking change was introduced nor what or where it is.

Solution

Document all changes in a changelog.

cigolpl commented 2 years ago

@noraj could you advise what is the best practice here ? I see there are even tools for auto generating changelog like https://github.com/cookpete/auto-changelog

noraj commented 2 years ago

I'm writing them manually eg. https://github.com/noraj/haiti/blob/master/docs/CHANGELOG.md

Usually only massive projects with hundreds of contributors are using automated changelog because they have dozens of commit per hour so doing it manually would be too much.

Automatic chagelog requires to have a strict commit convention.

Big projects are more using https://www.conventionalcommits.org and https://github.com/conventional-changelog/standard-version rather than https://keepachangelog.com and https://github.com/cookpete/auto-changelog.

Example of workflow: https://www.mokkapps.de/blog/how-to-automatically-generate-a-helpful-changelog-from-your-git-commit-messages/

In my opinion, it's less work to write the chagelog manually for small projects.

cigolpl commented 2 years ago

I've added a historical releases. They work like a changelog also.