Use the standard `conventional-changelog-preset-loader` to load presets
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
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