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

[LFX Fall '24 Mentorship]: Intelli-j IDE plugin integration of analyzer-lsp for real time updates with Konveyor AI #187

Open
hhpatel14 opened this issue Jul 22, 2024 · 16 comments
Labels
needs-kind Indicates an issue or PR lacks a `kind/foo` label and requires one. needs-priority Indicates an issue or PR lacks a `priority/foo` label and requires one. triage/accepted Indicates an issue or PR is ready to be actively worked on.

Comments

@hhpatel14
Copy link

hhpatel14 commented Jul 22, 2024

This is a LFX mentorship project intended to run in Fall 2024

Related to: https://github.com/cncf/mentoring/blob/main/programs/lfx-mentorship/2024/03-Sep-Nov/project_ideas.md#intelli-j-ide-plugin-integration-of-analyzer-lsp-for-real-time-updates-with-konveyor-ai

Description

Konveyor provides a unified experience of tools to help organizations modernize their applications at scale, transitioning them to Kubernetes and cloud-native technologies. Recently the Konveyor community began the development of a Generative AI approach for application modernization called Konveyor-AI. Konveyor AI accelerates application migration by discovering migration incidents in the source code and providing LLM-generated fixes in a diff view presentation. When proposed changes are accepted, it provides real-time updates on the number of incidents. The presentation side for this work is currently serviced via an IDE extension for VSCode.

We would like to expand Konveyor AI to have an Intelli-J plugin. The first step to establishing an Intelli-J plugin for Konveyor AI is to explore how we integrate the static code analysis tool, analyzer-lsp, into an Intelli-J plugin. We would like to create a common module that encapsulates interaction with analyzer-lsp and leverage this common module in multiple IDE plugins, to begin this will focus on VSCode and IntelliJ.

In this project, you will:

  • Learn how the existing Konveyor AI VSCode plugin functions.
  • Learn the code base for an existing Intelli-J plugin the team plans to use for a basis of work
  • Learn the basics of static code analysis in Konveyor, via the analyzer-lsp tool
  • Learn the basic APIs associated with Intelli-J IDE plugin development
  • Define an approach for how to integrate analyzer-lsp into multiple IDE plugins. We are interested in creating a common module for working with analyzer-lsp which will be leveraged in multiple IDE plugins, both VSCode and IntelliJ to start. One of the challenges to overcome is how to bridge the usage of a common module between TypeScript and Java projects.
  • Implement the approach and associated unit tests
  • Provide a demonstration of this common module for using analyzer-lsp. The demonstration will show this module integrated into the Intelli-J plugin and its ability to update analysis info seconds after a file has been modified.
  • Participate in biweekly Konveyor community calls, sharing milestones of progress.

Current Situation:

The IntelliJ platform-based IDE currently uses the Konveyor CLI tool, Kantra (https://github.com/konveyor/kantra), which unifies analysis and transformation capabilities. However, for time optimization in real-time update functionality, we need to replace Kantra with the analyzer-lsp tool.

Expected Outcome:

Define and implement a new module or library to facilitate integration of analyzer-lsp into multiple IDEs. We will start with VSCode and IntelliJ to begin.

This project will not only enhance the functionality of Konveyor-AI across multiple IDEs but also provide a rich learning experience for participating students. By converting analyzer-lsp into a reusable module or library, we can ensure easier maintenance and scalability of the tool.

Related Links:

Konveyor Contributor Guide
Konveyor Unified Experience
Konveyor AI
Kai VScode plugin
Kantra

@konveyor-ci-bot konveyor-ci-bot bot added the needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. label Jul 22, 2024
@konveyor-ci-bot
Copy link

This issue is currently awaiting triage.
If contributors determine this is a relevant issue, they will accept it by applying the triage/accepted label and provide further guidance.
The triage/accepted label can be added by org members.

@konveyor-ci-bot konveyor-ci-bot bot added needs-kind Indicates an issue or PR lacks a `kind/foo` label and requires one. needs-priority Indicates an issue or PR lacks a `priority/foo` label and requires one. labels Jul 22, 2024
@jwmatthews jwmatthews changed the title [LFX Fall '23 Mentorship]: Analyzer-lsp Integration as module for Real-Time Updates [LFX Fall '24 Mentorship]: Analyzer-lsp Integration as module for Real-Time Updates Jul 22, 2024
@hhpatel14 hhpatel14 changed the title [LFX Fall '24 Mentorship]: Analyzer-lsp Integration as module for Real-Time Updates [LFX Fall '24 Mentorship]: Intelli-j IDE plugin integration of analyzer-lsp for real time updates with Konveyor AI Jul 22, 2024
@savitharaghunathan savitharaghunathan added triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Jul 22, 2024
@ayushanand308
Copy link

I am looking forward to participate in the mentorship. Where can i get started to understand this project better?

@varshith257
Copy link

@savitharaghunathan @hhpatel14 Any communication channel to get discuss of this idea? and how to get started?

@soham4abc
Copy link

Hello @savitharaghunathan @hhpatel14

Myself Soham, an Intern at PricewaterhouseCoopers LLP as a Security Operations Center analyst and GSOC 2022 and 2023 mentee is expressing his keen interest to be a part of the CNCF mentorship programme under the Konveyor organisation.

As I have previous experience working with generative AI and developing IDE plugins in my previous internships.
I have a strong foundation and professional experience in Typescript and Java thus this project interests me a lot!

Currently I am looking forward to drafting a detailed proposal for the problem statement mentioning the details and processes that would be involved in order to deliver the expected outcomes.
Looking forward to communicate with you all and be a part of this amazing organisation.

Cheers!

@jwmatthews
Copy link
Member

@savitharaghunathan @hhpatel14 Any communication channel to get discuss of this idea? and how to get started?

To get started with learning about Kai backend you can begin looking at https://github.com/konveyor/kai/blob/main/CONTRIBUTING.md

For learning about the current VSCode plugin for Kai see: https://github.com/konveyor-ecosystem/kai-vscode-plugin/blob/main/docs/user-guide.md

Best :)

@soham4abc
Copy link

@savitharaghunathan @hhpatel14 Any communication channel to get discuss of this idea? and how to get started?

To get started with learning about Kai backend you can begin looking at https://github.com/konveyor/kai/blob/main/CONTRIBUTING.md

For learning about the current VSCode plugin for Kai see: https://github.com/konveyor-ecosystem/kai-vscode-plugin/blob/main/docs/user-guide.md

Best :)

Sure!

Thanks for the resources...will have a look asap! 😊

@Ytemiloluwa
Copy link

Attention: @hhpatel14 The two projects for Konveyor AI are pointing to the same issue #187 but they are two different projects. I have intentions to work on

Enhancing Kai with Data Querying for Fine-Tuning and Potential InstructLab Integration

CNCF - Konveyor AI: Data Querying for Kai & InstructLab Integration Potential (2024 Term 3)

@jwmatthews
Copy link
Member

Attention: @hhpatel14 The two projects for Konveyor AI are pointing to the same issue #187 but they are two different projects. I have intentions to work on

Enhancing Kai with Data Querying for Fine-Tuning and Potential InstructLab Integration

CNCF - Konveyor AI: Data Querying for Kai & InstructLab Integration Potential (2024 Term 3)

cc @JonahSussman

Thank you @Ytemiloluwa I will work with team to correct the mistake in

https://github.com/cncf/mentoring/blob/main/programs/lfx-mentorship/2024/03-Sep-Nov/README.md?plain=1#L478

That should point to
#191

@Ytemiloluwa
Copy link

Ytemiloluwa commented Aug 2, 2024

Attention: @hhpatel14 The two projects for Konveyor AI are pointing to the same issue #187 but they are two different projects. I have intentions to work on
Enhancing Kai with Data Querying for Fine-Tuning and Potential InstructLab Integration
CNCF - Konveyor AI: Data Querying for Kai & InstructLab Integration Potential (2024 Term 3)

cc @JonahSussman

Thank you @Ytemiloluwa I will work with team to correct the mistake in

https://github.com/cncf/mentoring/blob/main/programs/lfx-mentorship/2024/03-Sep-Nov/README.md?plain=1#L478

That should point to #191

You are welcome @jwmatthews . Yes it should point to #191

Are mentees required to submit a PR or Proposal on how they intend to approach their projects? @jwmatthews

@yashpandey06
Copy link

Hey @jwmatthews I am looking forward to communication channel can you help me find that !.

Looking foward to healthy contribution this fall LFX

@jwmatthews
Copy link
Member

Are mentees required to submit a PR or Proposal on how they intend to approach their projects? @jwmatthews

No, not required by us. You will need to follow all of the LFX rules and guidance for applying but we do not have any special requirements on top of that process

I believe there is a cover letter which may be submitted with your LFX application, you may share any thoughts you have there for project approach but this is not required.

@jwmatthews
Copy link
Member

Hey @jwmatthews I am looking forward to communication channel can you help me find that !.

Slack and or GitHub issues are good places to communicate with the team.

Please see: https://github.com/konveyor/kai/blob/main/CONTRIBUTING.md#slack

Looking foward to healthy contribution this fall LFX

@yashpandey06
Copy link

Appreciate it 👍

@Ytemiloluwa
Copy link

Are mentees required to submit a PR or Proposal on how they intend to approach their projects? @jwmatthews

No, not required by us. You will need to follow all of the LFX rules and guidance for applying but we do not have any special requirements on top of that process

I believe there is a cover letter which may be submitted with your LFX application, you may share any thoughts you have there for project approach but this is not required.

Yes there is a cover letter. Thank you for the feedback.

@riyaa14
Copy link

riyaa14 commented Aug 8, 2024

Hello @savitharaghunathan @hhpatel14 @jwmatthews
I am Riya, an undergraduate student looking forward to making meaningful contributions to this project. I have previous software development experience through an internship as a software engineer at Google and through multiple hackathons.

I have experience working with Java and JavaScript. I am comfortable with developer workflow tools like Git, GitHub and have worked with IntelliJ as well as VScode. This project aligns well with my experience and interests and thus I am highly interested in working on this.

I am getting more familiar with the project and its details and going through the resources provided. I will start working on a proof of concept once I am done with the ramp-up. Looking forward to making some impactful contributions! Thanks!

@yashpandey06
Copy link

Hey thats looking cool , looking forward to healthy contribution under LFX Mentorship

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs-kind Indicates an issue or PR lacks a `kind/foo` label and requires one. needs-priority Indicates an issue or PR lacks a `priority/foo` label and requires one. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
Status: 🆕 New
Development

No branches or pull requests

9 participants