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

feat: add an enhancement for a Konveyor CLI #82

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

HarikrishnanBalagopal
Copy link

Signed-off-by: Harikrishnan Balagopal harikrishmenon@gmail.com

Signed-off-by: Harikrishnan Balagopal <harikrishmenon@gmail.com>
@ashokponkumar
Copy link
Member

@jwmatthews @rromannissen Here is the enhancement we had talked about. Let us know if more info needs to be put in.

HarikrishnanBalagopal added a commit to HarikrishnanBalagopal/cli that referenced this pull request Sep 22, 2022
See konveyor/enhancements#82

Signed-off-by: Harikrishnan Balagopal <harikrishmenon@gmail.com>
ashokponkumar pushed a commit to konveyor/cli that referenced this pull request Sep 22, 2022
)

See konveyor/enhancements#82

Signed-off-by: Harikrishnan Balagopal <harikrishmenon@gmail.com>
Copy link
Member

@jwmatthews jwmatthews left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for capturing your thoughts in this enhancement, this greatly helps the community to understand and discuss.

I ask that we hold off on moving this to implementation/review, and wait until we have learned more with the Unified Experience and can properly assess the needs we want from a CLI.

The reason I ask to hold on this is because I feel this approach is not yet aligned to the vision of the Unified Experience. I think the technical elements of this can be iterated and we can find alignment in time, but I don't think now is the time to focus on the CLI.

I am not convinced that we want to introduce a CLI focused on unifying all the projects in Konveyor community, I think that is unrelated to the vision of creating a Unified Experience for Konveyor....though I understand this is not obvious, I will explain my thoughts below.

My reasoning for suggesting the delay is I think our primary next step in Konveyor is to establish a Unified Experience for the Konveyor project as a whole. I see the strategy for the Unified Experience being to create a user workflow centered on the Application Inventory delivered by the Hub. We want the Hub to be the central entity. We are not looking to form a collection of disparate tools and apply a light level of discovery/install/porcelain on top..we are looking to create a more unified workflow addressing the workflow of konveyor/methodology.

I see the Unified Experience being focused on:

  1. Surface information about applications to a Decision Maker (static code analysis & assessments), storing info in the Application Inventory
  2. Aid a Decision Maker to make informed decisions about their modernization/migration needs
  3. Help a Decision Maker plan work via Migration Waves
  4. Begin to facilitate the 'work' of modernizing/migration

I see 2 personas being involved for the Unified Experience

  • Decision Maker (Architect): They will ultimately review information Konveyor surfaces and make informed decisions of what work to plan. Additionally, they will seed projects for 'Developers' to work to handle identified issues.
  • Developer: A developer will handle the source code changes to satisfy issues identified and allow the application to take advantage of the given target technology

I see the CLI enhancement as proposed would most likely address the 'Developer' persona for 'Step 4'. i.e. it would help a developer doing the work to discovery tools, install, and use for aiding the work.

I see potential here to consider, but I don't think now is the time to focus on improving the developer persona, as I think the first priority is on the 'Decision Maker' persona. For the 'Decision Maker' in 'Step 4', they will want to execute tools in a prescribed manner to seed many projects for many developers. They are less concerned with a CLI tool for discovery and have a greater need for a non-interactive manner to execute tools as scale, likely via integration as an addon

Copy link
Contributor

@shawn-hurley shawn-hurley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Besides the points that John brings up, we would need to have a much better understanding of:

  1. What a plugin is and how does it interact with the hub?
  2. What is the released artifact, and how do we release them from a community perspective? How does X plugin get in and Y does not? How or who is hosting the repo for artifacts?
  3. How does one upgrade? is there some dependency model that we need to build?

I do think that some of these can be solved after getting some initial thing done, but I think we have too many unanswered questions.


There are three key areas for this tool to work on:

1. First, being one of the main ways users discover the tools. This will require the tools to be made availabe as plugins.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know how this plugin is built/released and/or what the API contract is between the plugins(do we mean Addons?) and the hub is. I believe that we need to solve these sets of problems before writing porcelain commands.

The biggest concern would be designing the API's and interaction models based on a CLI that exists before we have the underlying pieces solved.

Copy link
Author

@HarikrishnanBalagopal HarikrishnanBalagopal Sep 23, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the feedback, I understand that this is a low priority right now while the underlying pieces are being solved.

I believe that we need to solve these sets of problems before writing porcelain commands.

Not entirely sure what you mean by this, can you please clarify the exact change that is required?
The enhancement simply mentions the vague goals of the commands that need to be implemented.

@shawn-hurley
Copy link
Contributor

shawn-hurley commented Sep 23, 2022 via email

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

Successfully merging this pull request may close these issues.

4 participants