diff --git a/.changeset/README.md b/.changeset/README.md index 01db11a9..a59252ce 100644 --- a/.changeset/README.md +++ b/.changeset/README.md @@ -2,6 +2,7 @@ - Run `deno task release-wasm` to build the WASM - Run `pnpm changeset` in the root of the repository. The generated markdown files in the .changeset directory should be committed to the repository. +- Run `git cliff -u | pbcopy` to generate the changelog and copy it. Then edit the new changelog file. - Run `pnpm changeset version`. This will bump the versions of the packages previously specified with pnpm changeset (and any dependents of those) and update the changelog files. - Run `pnpm install`. This will update the lockfile and rebuild packages. - Commit the changes. diff --git a/.changeset/config.json b/.changeset/config.json index 21f906c8..291458ff 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -1,6 +1,6 @@ { "$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json", - "changelog": "@changesets/cli/changelog", + "changelog": "@changesets/changelog-git", "commit": false, "fixed": [], "linked": [ diff --git a/cliff.toml b/cliff.toml new file mode 100644 index 00000000..b0f88b23 --- /dev/null +++ b/cliff.toml @@ -0,0 +1,89 @@ +# git-cliff ~ default configuration file +# https://git-cliff.org/docs/configuration +# +# Lines starting with "#" are comments. +# Configuration options are organized into tables and keys. +# See documentation for more information on available options. + +[changelog] +# changelog header +header = """ +# Changelog\n +All notable changes to this project will be documented in this file.\n +""" +# template for the changelog body +# https://keats.github.io/tera/docs/#introduction +body = """ +{% if version %}\ + ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }} +{% else %}\ + ## [unreleased] +{% endif %}\ +{% for group, commits in commits | group_by(attribute="group") %} + ### {{ group | striptags | trim | upper_first }} + {% for commit in commits %} + - {% if commit.scope %}*({{ commit.scope }})* {% endif %}\ + {% if commit.breaking %}[**breaking**] {% endif %}\ + {{ commit.message | upper_first }}\ + {% endfor %} +{% endfor %}\n +""" +# template for the changelog footer +footer = """ + +""" +# remove the leading and trailing s +trim = true +# postprocessors +postprocessors = [ + # { pattern = '', replace = "https://github.com/orhun/git-cliff" }, # replace repository URL +] + +[git] +# parse the commits based on https://www.conventionalcommits.org +conventional_commits = true +# filter out the commits that are not conventional +filter_unconventional = true +# process each line of a commit as an individual commit +split_commits = false +# regex for preprocessing the commit messages +commit_preprocessors = [ + # Replace issue numbers + #{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](/issues/${2}))"}, + # Check spelling of the commit with https://github.com/crate-ci/typos + # If the spelling is incorrect, it will be automatically fixed. + #{ pattern = '.*', replace_command = 'typos --write-changes -' }, +] +# regex for parsing and grouping commits +commit_parsers = [ + { message = "^feat", group = "๐Ÿš€ Features" }, + { message = "^fix", group = "๐Ÿ› Bug Fixes" }, + { message = "^doc", group = "๐Ÿ“š Documentation" }, + { message = "^perf", group = "โšก Performance" }, + { message = "^refactor", group = "๐Ÿšœ Refactor" }, + { message = "^style", group = "๐ŸŽจ Styling" }, + { message = "^test", group = "๐Ÿงช Testing" }, + { message = "^chore\\(release\\): prepare for", skip = true }, + { message = "^chore\\(deps.*\\)", skip = true }, + { message = "^chore\\(pr\\)", skip = true }, + { message = "^chore\\(pull\\)", skip = true }, + { message = "^chore|^ci", group = "โš™๏ธ Miscellaneous Tasks" }, + { body = ".*security", group = "๐Ÿ›ก๏ธ Security" }, + { message = "^revert", group = "โ—€๏ธ Revert" }, +] +# protect breaking changes from being skipped due to matching a skipping commit_parser +protect_breaking_commits = false +# filter out the commits that are not matched by commit parsers +filter_commits = false +# regex for matching git tags +# tag_pattern = "v[0-9].*" +# regex for skipping tags +# skip_tags = "" +# regex for ignoring tags +# ignore_tags = "" +# sort the tags topologically +topo_order = false +# sort the commits inside sections by oldest/newest order +sort_commits = "oldest" +# limit the number of commits included in the changelog. +# limit_commits = 42 diff --git a/crates/loro-wasm/CHANGELOG.md b/crates/loro-wasm/CHANGELOG.md index 9fe7c8ce..d364cc1f 100644 --- a/crates/loro-wasm/CHANGELOG.md +++ b/crates/loro-wasm/CHANGELOG.md @@ -1,5 +1,35 @@ # Changelog +## 0.14.0 + +### Minor Changes + +- Improved API + + ### ๐Ÿš€ Features + + - Access value/container by path (#308) + - Decode import blob meta (#307) + + ### ๐Ÿ› Bug Fixes + + - Decode iter return result by updating columnar to 0.3.4 (#309) + + ### ๐Ÿšœ Refactor + + - Replace "local" and "fromCheckout" in event with "triggeredBy" (#312) + - Add concrete type for each different container (#313) + - _(ts)_ Make types better (#315) + + ### ๐Ÿ“š Documentation + + - Refine wasm docs (#304) + - Clarify that peer id should be convertible to a u64 (#306) + + ### โš™๏ธ Miscellaneous Tasks + + - Add coverage report cli (#311) + ## 0.13.1 ### Patch Changes diff --git a/crates/loro-wasm/package.json b/crates/loro-wasm/package.json index f28ba924..979eb169 100644 --- a/crates/loro-wasm/package.json +++ b/crates/loro-wasm/package.json @@ -1,6 +1,6 @@ { "name": "loro-wasm", - "version": "0.13.1", + "version": "0.14.0", "description": "Loro CRDTs is a high-performance CRDT framework that makes your app state synchronized, collaborative and maintainable effortlessly.", "keywords": [ "crdt", diff --git a/loro-js/CHANGELOG.md b/loro-js/CHANGELOG.md index 75b92516..84c6bc25 100644 --- a/loro-js/CHANGELOG.md +++ b/loro-js/CHANGELOG.md @@ -1,5 +1,40 @@ # Changelog +## 0.14.0 + +### Minor Changes + +- Improved API + + ### ๐Ÿš€ Features + + - Access value/container by path (#308) + - Decode import blob meta (#307) + + ### ๐Ÿ› Bug Fixes + + - Decode iter return result by updating columnar to 0.3.4 (#309) + + ### ๐Ÿšœ Refactor + + - Replace "local" and "fromCheckout" in event with "triggeredBy" (#312) + - Add concrete type for each different container (#313) + - _(ts)_ Make types better (#315) + + ### ๐Ÿ“š Documentation + + - Refine wasm docs (#304) + - Clarify that peer id should be convertible to a u64 (#306) + + ### โš™๏ธ Miscellaneous Tasks + + - Add coverage report cli (#311) + +### Patch Changes + +- Updated dependencies + - loro-wasm@0.14.0 + ## 0.13.1 ### Patch Changes diff --git a/loro-js/package.json b/loro-js/package.json index 5c45f7a7..9f25d0db 100644 --- a/loro-js/package.json +++ b/loro-js/package.json @@ -1,8 +1,15 @@ { "name": "loro-crdt", - "version": "0.13.1", + "version": "0.14.0", "description": "Loro CRDTs is a high-performance CRDT framework that makes your app state synchronized, collaborative and maintainable effortlessly.", - "keywords": ["crdt", "CRDTs", "realtime", "collaboration", "sync", "p2p"], + "keywords": [ + "crdt", + "CRDTs", + "realtime", + "collaboration", + "sync", + "p2p" + ], "main": "dist/loro.js", "module": "dist/loro.mjs", "typings": "dist/loro.d.ts", diff --git a/package.json b/package.json index 415d6aed..a1bff95e 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "author": "", "license": "ISC", "devDependencies": { + "@changesets/changelog-git": "^0.2.0", "@changesets/cli": "^2.27.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6fd7f42b..bb11c25a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,9 @@ importers: .: devDependencies: + '@changesets/changelog-git': + specifier: ^0.2.0 + version: 0.2.0 '@changesets/cli': specifier: ^2.27.1 version: 2.27.1