-
-
Notifications
You must be signed in to change notification settings - Fork 537
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
release-it v11: the one with the plugins #501
Comments
Thanks for a great piece of software, this is exactly what I needed and the plugin concept expands its capabilities dramatically. It took me very little time to write my own plugin to get a version number from The current design makes writing plugins very easy so I like it. Inheriting from the In terms of improvements, here are a few ideas:
|
Thanks a lot, @brunogirin, this is exactly the kind of feedback I was looking for.
Thanks again for sharing your experiences. |
Hi @webpro, here are answers to your questions:
|
|
👋 Hello! I've just started trying to migrate from As I went through the process I tried to catalogue the pain points that I hit so that we might be able to improve the process:
|
Thanks for the valuable feedback, @rwjblue! Glad you're giving a release-it a spin.
I totally see your point. The history is that release-it had these modules such as "git" and "npm", and these have been refactored into classes. Later on I took the opportunity to refactor them further into "plugins" (inherit from
As long as the
I had exactly the same idea to add such keywords to
This whole plugin thing is new and documentation should definitely be improved. Indeed it should explain the difference between read/write operations and how things can be used/implemented.
This sounds like a generic challenge with testing,
It is. Like I stated above: plugins are not executed one after another. So, e.g.
Plugins can't communicate with each other, and I think that's a good thing. For instance, a plugin can't know where the
Still there's plenty of room for improvements here (the hassle with formatting the Hopefully this clears things up a little bit. Happy to discuss further, and I'm planning to improve docs in the next week. |
Plugin docs have been updated: https://github.com/release-it/release-it/blob/master/docs/plugins/README.md |
Plugins
Recently, I've been evolving release-it into more of a pluggable task runner (in the v11 branch). It was previously limited to Git-based repositories, GitHub/GitLab releases, and npm packages, but this is no longer the case. As long as it can either be written in Node.js, or executed from the shell, it can be integrated in the release-it process.
Plugins allow additional and custom actions in the release process, such as:
scripts.*
).npm publish
in a child process like release-it itself does).Please see docs/plugins/README.md for the documentation on plugins.
npm
Internally, release-it uses its own plugin architecture. Especially for
npm
there are a few improvements: it is only enabled if there's apackage.json
file. Additionally, release-it defers bumping tonpm version
, sopackage-lock.json
is also updated if it's there.conventional-changelog
Another advantage of plugins is that we can get rid of ugly configurations like this:
The new
conventional-changelog
plugin allows to defer the work to a separate plugin and pass options:Breaking changes
increment
values such asconventional:angular
are no longer valid. Use the @release-it/conventional-changelog plugin instead (see above).pkgFiles
option has been removed. If there's a need to bump other files than whatnpm version
bumps, it should be (part of) a plugin.preReleaseId
anduse
options have been removed.scripts.changelog
option has been moved togit.changelog
Try it
Currently, v11 is in alpha state. I'm using it for releases, but depending on your configuration there may still be bugs.
Feedback
So here's looking for feedback about this idea. Please let me know:
The text was updated successfully, but these errors were encountered: