Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adjust changelog generator for monorepo #7207

Closed
pomek opened this issue Mar 27, 2020 · 0 comments · Fixed by ckeditor/ckeditor5-dev#640
Closed

Adjust changelog generator for monorepo #7207

pomek opened this issue Mar 27, 2020 · 0 comments · Fixed by ckeditor/ckeditor5-dev#640
Assignees
Labels
package:dev squad:platform Issue to be handled by the Platform team. type:task This issue reports a chore (non-production change) and other types of "todos".

Comments

@pomek
Copy link
Member

pomek commented Mar 27, 2020

We'll have to adjust the way changelogs are generated in case of a single repo.

Subissue of #6466.

@pomek pomek self-assigned this Mar 27, 2020
@mlewand mlewand transferred this issue from ckeditor/ckeditor5-dev May 18, 2020
@mlewand mlewand added this to the iteration 32 milestone May 18, 2020
@mlewand mlewand added squad:platform Issue to be handled by the Platform team. type:task This issue reports a chore (non-production change) and other types of "todos". package:dev labels May 18, 2020
mlewand added a commit to ckeditor/ckeditor5-dev that referenced this issue May 20, 2020
Feature (env): Support for multi-entries messages in the single commit and scoped changes. Closes [ckeditor/ckeditor5#7207](ckeditor/ckeditor5#7207). Closes [ckeditor/ckeditor5#7171](ckeditor/ckeditor5#7171). See https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/git-commit-message-convention.html.

Feature (env): Added new utils that help to collect commits, parsing them, and generating the changelog.

*   The util for generating changelog from commits (those must be specified as an argument). See `/lib/release-tools/utils/generatechangelog.js`
*   The util for collecting commits. See `/lib/release-tools/utils/getcommits.js`
*   The util for suggesting new version based on commits. See `/lib/release-tools/utils/getnewversiontype.js`

Feature (env): Task `generateChangelogForSinglePackage()` supports new options: `from` - a commit or tag for collecting commits since the last release, `highlightsPlaceholder` - whether to add "Release highlights" placeholder in the changelog, `collaborationFeatures` - whether to add a URL to collaboration features changelog.

Fix (env): The `getChangedFilesForCommit()` util filters files returned by the Git command. It won't return an empty string anymore.

Other (env): Commits in the changelog will display the word `commit` instead of the first 7 characters from the commit's hash. In big repositories (the number of commits is huge), 7 characters are not unique anymore.

Other (env): `Closes` references will be merged into a single entry. Github does not support such references (`Closes x, y`) but it can be simplified during the commit's transformation.

Other (env): The `provideVersion()` util from `lib/release-tools/utils/cli.js` allows disabling returning `skip` version by setting its option `disableSkipVersion` to `true`.

Other: Removed `lerna` and all its files from the project. Now the release process is handled by our tools. The entire repository will follow the same rules as `ckeditor5.` Read more: https://ckeditor.com/docs/ckeditor5/latest/framework/guides/support/versioning-policy.html.

MAJOR BREAKING CHANGES (env): Removed `generateChangelogForSubPackages()` task. Use `generateChangelogForMonoRepository()` instead.

MAJOR BREAKING CHANGES (env): Removed `generateChangelogForSubRepositories()` task. Use `generateChangelogForMonoRepository()` instead if your repository is a monorepository.

MINOR BREAKING CHANGES (env): The util `getPackagesPaths()` does not check whether packages are defined as `dependencies` in `package.json` in the main repository.

MINOR BREAKING CHANGES (env): Task `generateChangelogForSinglePackage()` does not accept options: `newVersion`, `disableMajorBump`, `isInternalRelease`, `indentLevel`, `useExplicitBreakingChangeGroups` anymore. The task should be used for generating the changelog for the single repository.

MAJOR BREAKING CHANGES (env): Removed `generateSummaryChangelog()` task.

MINOR BREAKING CHANGES (env): Removed `hasMajorBreakingChanges()` and `hasMinorBreakingChanges()` utils from `/lib/release-tools/utils/changelog.js` helper.

MINOR BREAKING CHANGES (env): Removed `getSubPackagesPaths()` util.

MINOR BREAKING CHANGES (env): Removed the `getNewReleaseType()` util. Use `getCommits()` and `getNewVersionType()` instead.

MINOR BREAKING CHANGES (env): Removed support for the `NOTE` type of commit's notes.

MINOR BREAKING CHANGES (env): Moved all utils from `/lib/release-tools/utils/transform-commit` to `/lib/release-tools/utils`.

MINOR BREAKING CHANGES (env): Renamed `getSubRepositoriesPaths()` util to `getPackagesPaths()`.
mlewand added a commit that referenced this issue May 20, 2020
Internal (ckeditor5): Adjusted the changelog generator script to the new API of `ckeditor5-dev-env`. See #7207.

Docs (ckeditor5): Adjusted git commit message convention, breaking changes could also be marked with a scope.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
package:dev squad:platform Issue to be handled by the Platform team. type:task This issue reports a chore (non-production change) and other types of "todos".
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants