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

Provide interactive mode #50

Open
dgrierso opened this issue Aug 30, 2018 · 5 comments
Open

Provide interactive mode #50

dgrierso opened this issue Aug 30, 2018 · 5 comments

Comments

@dgrierso
Copy link
Collaborator

This might tie in with issue #9 reported by @tmortagne :

It could be a useful mechanism to provide an interactive mode for prompting the user as to whether they want to generate release notes/create a new version/mark a version as released/etc.

@schrepfler
Copy link
Owner

I like interactive modes when I’m doing thing manually (example jgitflow maven plugin, stopping to ask you for a version while offering sane defaults) but it’s painful when said mode can’t be automated somehow (I could not use it for ci tagging/releasing).
Referring to the example with jgitflow, I like how npm encapsulates this in explicit commands which can be executed before the step with npm version https://docs.npmjs.com/cli/version
If we stick with this design, anything which requires input must have an goal which if set would allow skipping the interaction.
Does this make sense?

@dgrierso
Copy link
Collaborator Author

What I've been trying to do is apply default-value=... options to the @parameters wherever possible within the configuration parameters; these could also be used as the basis for those sane defaults that you mention.

@schrepfler
Copy link
Owner

Makes sense to me, are they static or they can call stuff at runtime?

@dgrierso
Copy link
Collaborator Author

dgrierso commented Sep 3, 2018

They're static - and it would make sense that they stay that way as they're default values which can be overridden in the <configuration> sections of the plugin definition in the pom.

I think the trick will be to figure out how we get those default values (which are presently annotations within /** ... */ comment blocks into code so that they are accessible.

Might be worth reviewing the maven-release-plugin code base to see how that goes about operating in an interactive mode.

@schrepfler
Copy link
Owner

For example we can take values inside a file (say .jira-maven-plugin) which is key-value, and we make a goal which modifies those values explicitly. So if you want to do something, you need to explicitly call the goal first with passing in the value. Then these things become easy to script as either drop downs in jenkins or buttons as atomic actions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants