semantic-release / commit-analyzer

:bulb: semantic-release plugin to analyze commits with conventional-changelog
MIT License
368 stars 73 forks source link

Use the standard `conventional-changelog-preset-loader` to load presets #591

Open 1aron opened 8 months ago

1aron commented 8 months ago

I think using conventional-changelog-preset-loader should be the best solution for #589 and reduce the burden on the @semantic-release/commit-analyzer maintainer.

Import loadPreset function from the package and use it to load the preset:

import { loadPreset } from 'conventional-changelog-preset-loader'

loadPreset('angular').then((config) => {
  // do something with config object
})

https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-preset-loader

travi commented 8 months ago

i agree that there would be benefits to moving in this direction. i believe this package was not available when semantic-release originally implemented this functionality. however, the loader does not support all of the ways that semantic-release currently supports loading. we would need to decide if we want to continue to support those additional ways.

also, this behavior exists in the release-notes-generator, so we need to handle there in a consistent way. we've talked about extracting the duplicated behavior to another package to rely on in both places. depending on the scope of duplication, we've mentioned before that using the loader could be an alternative to that extraction