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

Integrated set of Liberty tools for developers downloadable from IntelliJ IDEA's marketplace #14957

Closed
20 tasks done
yeekangc opened this issue Nov 12, 2020 · 8 comments
Closed
20 tasks done
Assignees
Labels
Design Approved dev-ex Epic Used to track Feature Epics that are following the UFO process

Comments

@yeekangc
Copy link
Member

yeekangc commented Nov 12, 2020

Enable developers that use IntelliJ IDEA as their IDE to pull down and install from its marketplace an integrated set of tools to code/build/test/debug their Java applications on top of Liberty easily using APIs like Jakarta EE and MicroProfile.

Solution involves creating an IntelliJ plugin for Liberty that enables developers to easily create and develop cloud-native Java applications with Liberty in IntelliJ IDEA.

Plugin should include:

  • Integration with dev mode (e.g. to start/stop Liberty and make iterative changes with dev mode)
  • Assistance to edit Liberty configuration files (via Assistance for editing Liberty configuration #14054)
  • Pull down language servers (e.g. Language Servers for Jakarta EE and MicroProfile) that provide coding assistance for programming models supported by Liberty that are currently available

When ready, add links to the Upcoming Feature Overview document as well as Feature Test Summary and blog post issues:


List of Steps to complete or get approvals / sign-offs for Onboarding to the Liberty release (GM date)

Instructions:

  • Do the actions below and mark them complete in the checklist when they are done.
  • Make sure all feature readiness approvers put the appropriate tag on the epic to indicate their approval.

Design

Before Development Starts or 8 weeks before Onboarding

  • POC Design / UFO Review Scheduled (David Chang) or N/A.
  • POC Design / UFO Reviewed (Feature Owner) or N/A.
  • Complete any follow-ons from the POC Review.
  • Design / UFO Approval (Alasdair Nottingham) or N/A.
  • [N/A] No Design / No UFO Approval (Arthur De Magalhaes - cloud / Alasdair Nottingham - server) or N/A.
  • SVT Requirements identified. (Epic owner / Feature owner with SVT focal point) SVT epic
  • ID Requirements identified. (Epic owner / Feature owner with ID focal point) Doc issue
  • Create a child task of this epic entitled "FAT Approval Test Summary". Add the link in above.

Beta

If your feature, or portions of it, are going to be included in a beta
Before Onboarding the beta

  • [N/A] Beta Fence the functionality (kind=beta, ibm:beta, ProductInfo.getBetaEdition())

1 week before beta GA

Legal

3 weeks before Onboarding

  • Identify all open source libraries that are changing or are new. Work with Legal Release Services (Cass Tucker or Release PM) to get open source cleared and approved. Or N/A. (Epic Owner). New or changed open source impacts license and Certificate of Originality. ==> Went through initial PTC scan in October. Delta scan will happen 11/25. The license is EPL 2 since this is an open source offering, and there will be no COO.

Translation

3 weeks before Onboarding

  • [N/A] All new or changed PII messages are checked into the integration branch, before the last translation shipment out. (Epic Owner)==> N/A Our initial release will have no translation.

Feature Complete

2 weeks before Onboarding

  • Implementation complete. (Epic owner / Feature owner)
  • All function tests complete. Ready for FAT Approval. (Epic owner / Feature owner)
  • Review all known issues for Stop Ship. (Epic owner / Feature owner / PM)

Focal Point Approvals

2 to 1 week before Onboarding

You MUST have the Design Approved or No Design Approved label before requesting focal point approvals.

All features (both "Design Approved" and "No Design Approved")

  • [N/A] FAT - (Adam Yoho, Martin Holder, or Dave Waddling). SOE FATS are running successfully or N/A . Approver adds label focalApproved:fat to the Epic in Github.
  • Demo - (Tom Evans or Chuck Bridgham). Demo is scheduled for an upcoming EOI. Approver adds label focalApproved:demo to the Epic in Github. ==> Scheduled for 11/29
  • [N/A] Globalization (Sam Wong - Liberty / Simy Cheeran - tWAS). Translation is complete or N/A. TVT - complete or N/A. Approver adds label focalApproved:globalization to the Epic in Github.

"Design Approved" features

  • [N/A] Accessibility - (Steven Zvonek). Accessibility testing is complete or N/A. Approver adds label focalApproved:accessibility to the Epic in Github.
  • ID - (Kareen Deen). Documentation work is complete or N/A . Approver adds label focalApproved:id to the Epic in Github.
  • [N/A] Performance - (Jared Anderson). Performance testing is complete with no high severity defects or N/A . Approver adds label focalApproved:performance to the Epic in Github.
  • [N/A] Serviceability - (Don Bourne). Serviceability has been addressed. ==> This will be supported through the OSS community.
  • [N/A] STE - (Swati Kasundra). STE chart deck is complete or N/A . Approver adds label focalApproved:ste to the Epic in Github.
  • SVT - (Brian Hanczaryk - APS). SVT is complete or N/A . Approver adds label focalApproved:svt to the Epic in Github.

Ready for GA

1 week before Onboarding

  • No Stop Ship issues for the feature. (Epic owner / Feature owner / Release PM)
  • Ship Readiness Review and Release Notes completed (Epic owner / Feature owner / Release PM)
  • Github Epic and Epic's issues are closed / complete. All PRs are committed to the master branch. (Epic owner / Feature owner / Backlog Subtribe PM)

1 week before GA

Other deliverbles

  • OL Guides - (Yee-Kang Chang). Assessment for OL Guides is complete or N/A.
  • [N/A] WDT - (Leonard Theivendra). WDT work complete or N/A.
  • Blog - (Laura Cowen) Blog article writeup (Epic owner / Feature owner / Laura Cowen)
@yeekangc yeekangc added Epic Used to track Feature Epics that are following the UFO process Non-Release labels Nov 12, 2020
@yeekangc yeekangc added the In Progress Items that are in active development. label Mar 16, 2021
@yeekangc yeekangc removed the In Progress Items that are in active development. label Apr 23, 2021
@mbroz2
Copy link
Member

mbroz2 commented Apr 23, 2021

POC Forum UFO feedback:
Consider other, 'easier' shortcuts (Slides 15/16)
Update Serviceability slide with any relevant diagnostics that should be collected.

@kathrynkodama
Copy link

Given the feedback from the POC Forum, the Serviceability and Accessibility Compliance slides have been updated.

@yeekangc yeekangc changed the title Open Liberty Tools for IntelliJ Liberty Dev Tools for IntelliJ Mar 14, 2022
@yeekangc yeekangc changed the title Liberty Dev Tools for IntelliJ Integrated set of Liberty tools for developers downloadable from IntelliJ IDEA marketplace May 10, 2022
@yeekangc yeekangc changed the title Integrated set of Liberty tools for developers downloadable from IntelliJ IDEA marketplace Integrated set of Liberty tools for developers downloadable from IntelliJ IDEA's marketplace May 10, 2022
@malincoln malincoln removed the theme label Aug 25, 2022
@mbroz2
Copy link
Member

mbroz2 commented Oct 18, 2022

UFO Socialization Feedback:
To be: running dev mode (Slide 11): What happens for existing Java projects without the Liberty maven/gradle projects? What is the experiance for a new Liberty project?

Feature Design: Which Projects to List on Dashboard (Slide 22): Discussion regarding improving the maven flow using the fully qualified maven coordinates, for the case where it's not defined in the pom.xml (but a server.xml exists).

Feature Design: Manually adding projects (Slide 23): Clarification that this is configured per project (and persisted to workspace)

Feature Design: LSP Support (Slide 28) - Show where LSP comes from and show how LSP connects to IDE and what each provides. Rework the diagram, explain what is being picked up from intellij-quarkus (and the potential for making it a common component)

Feature Design: MicroProfile & Jakarta EE LS Features (Slide 31): Explain JDT LS and how it will be augmented.

Communication (Slide 34): Add IntelliJ Plugin Marketplace

Performance (Slide 46): How are things like project specific Java SE version set (for use during dev mode)? Are we providing this, or is it already being provided by existing plugin functionality?

@kathrynkodama
Copy link

kathrynkodama commented Oct 27, 2022

Updated the UFO (https://ibm.box.com/s/9nkbfn2knpvy51yu3rjrvyjhibfg2phb) to incorporate the feedback from the design review. Notable key changes:

  • Slide 19 & 20 (Feature Design) The "Start..." action will trigger the run config menu of IntelliJ. "Start..." preferences will be persisted through the new Run/Debug Config.
  • Slides 18, 19 and 20: The "Start..." action will not append the -f build-file parameter. The working directory will be set to the Liberty project's root directory.
  • Slide 22 and 23: Added details on the Run/Debug configuration
  • Slide 26: Added details on which Maven/Gradle/Java are used for starting dev mode
  • Slide 30 (LSP Support): Added a diagram to clarify which language servers are being consume and re-using the LSP for IntelliJ implementation from intellij-quarkus. Also noted that the long term goal will be a common LSP for IntelliJ component.

@kathrynkodama
Copy link

@NottyCode please review the updated design. Thank you

@NottyCode
Copy link
Member

@kathrynkodama

When reviewing one of the things I look to ensure is that feedback from socialization is addressed. In this case there are a few items which I cannot tell if they have been addressed. Note there might be a good reason for something to not result in a UFO update, but in that case a comment to indicate why is a good thing for me when reviewing. The following things appear not yet addressed:

To be: running dev mode (Slide 11): What happens for existing Java projects without the Liberty maven/gradle projects? What is the experiance for a new Liberty project?

Feature Design: Which Projects to List on Dashboard (Slide 22): Discussion regarding improving the maven flow using the fully qualified maven coordinates, for the case where it's not defined in the pom.xml (but a server.xml exists).

Feature Design: Manually adding projects (Slide 23): Clarification that this is configured per project (and persisted to workspace)

Feature Design: LSP Support (Slide 28) - Show where LSP comes from and show how LSP connects to IDE and what each provides. Rework the diagram, explain what is being picked up from intellij-quarkus (and the potential for making it a common component)

I included this because I'm not sure how the current version of the slide addresses the feedback .

Feature Design: MicroProfile & Jakarta EE LS Features (Slide 31): Explain JDT LS and how it will be augmented.

I included this because I'm not sure how the current version of the slide addresses the feedback .

Performance (Slide 46): How are things like project specific Java SE version set (for use during dev mode)? Are we providing this, or is it already being provided by existing plugin functionality?

it isn't clear this is addressed at all

@kathrynkodama
Copy link

@NottyCode Here is a more detailed breakdown of how each socialization comment has been addressed in the design document. I've also made a few minor updates to the design to make these items clearer. https://ibm.box.com/s/9nkbfn2knpvy51yu3rjrvyjhibfg2phb

UFO Socialization Feedback: To be: running dev mode (Slide 11): What happens for existing Java projects without the Liberty maven/gradle projects? What is the experiance for a new Liberty project?

Updated "As-Is/To-Be: Running dev mode" (slides 10 & 11) to clarify that users will have to configure the Liberty Maven/Gradle plugin in the build file if it is not already present. Issue OpenLiberty/liberty-tools-intellij#113 was opened for an enhancement to the plugin to help users configure the Liberty build plugins (post GA).

Feature Design: Which Projects to List on Dashboard (Slide 22): Discussion regarding improving the maven flow using the fully qualified maven coordinates, for the case where it's not defined in the pom.xml (but a server.xml exists).

Updated "Feature Design: Start vs Start..." (slide 19) and "Feature Design: Dev mode support" (slide 20) to indicate that the fully qualified Maven coordinates will run for Maven commands. This will cover the case where the Liberty Maven Plugin is not defined in the pom.xml but a server.xml file exists. There is not an equivalent story for Gradle yet, will be addressed by the future enhancement to help users configure the Liberty build plugins (OpenLiberty/liberty-tools-intellij#113).

Feature Design: Manually adding projects (Slide 23): Clarification that this is configured per project (and persisted to workspace)

Updated "Feature Design: Manually adding projects" (slide 25) to clarify that this is configured per project and persists between IntelliJ sessions.

Feature Design: LSP Support (Slide 28) - Show where LSP comes from and show how LSP connects to IDE and what each provides. Rework the diagram, explain what is being picked up from intellij-quarkus (and the potential for making it a common component)

Updated "Feature Design: LSP Support" (slide 30) to contain a more detailed component diagram. The diagram now indicates that the LSP for IntelliJ implementation is to be reused from intellij-quarkus, and added a note that the long term goal will be a common LSP for IntelliJ component that both projects can consume.

Feature Design: MicroProfile & Jakarta EE LS Features (Slide 31): Explain JDT LS and how it will be augmented.

Updated "Feature Design: MicroProfile & Jakarta EE LS Features" (slide 33) to clarify what the JDT LS is and why it is needed in Eclipse LSP4MP & LSP4Jakarta. Clarified that we will re-implement the JDT LS components using the IntelliJ Java PSI API to deliver the same Java language server capabilities in IntelliJ.

Communication (Slide 34): Add IntelliJ Plugin Marketplace

Updated Communication (slide 36) to call out the IntelliJ Plugin Marketplace.

Performance (Slide 46): How are things like project specific Java SE version set (for use during dev mode)? Are we providing this, or is it already being provided by existing plugin functionality?

Updated "Feature Design: How to configure Maven/Gradle/Java" (slide 26) to clarify that the IntelliJ terminal honours the Maven/Gradle/Java set for the local machine. This setting determines which Java SE version the terminal runs Liberty dev mode with. Users can override the environment for the terminal using IntelliJ "Preferences" -> "Tools" -> "Terminal" settings. Users can also set the Java compiler version for Maven/Gradle projects in their build file. We do not offer additional configuration other than what is already provided by the IntelliJ terminal preferences.

@yeekangc
Copy link
Member Author

yeekangc commented Nov 8, 2022

Thank you, Kathryn, Alasdair!

@yeekangc yeekangc added In Progress Items that are in active development. and removed Non-Release labels Dec 12, 2022
@yeekangc yeekangc added the dev-ex label Jun 9, 2023
@yeekangc yeekangc assigned TrevCraw and unassigned kathrynkodama Jul 14, 2023
@yeekangc yeekangc removed the In Progress Items that are in active development. label Nov 28, 2023
@NottyCode NottyCode moved this to 23.0.0.6 in Open Liberty Roadmap Aug 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Design Approved dev-ex Epic Used to track Feature Epics that are following the UFO process
Projects
Status: 23.0.0.6
Development

No branches or pull requests

7 participants