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

Assistance for editing Liberty configuration #14054

Open
13 of 17 tasks
yeekangc opened this issue Sep 21, 2020 · 6 comments
Open
13 of 17 tasks

Assistance for editing Liberty configuration #14054

yeekangc opened this issue Sep 21, 2020 · 6 comments
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 Sep 21, 2020

Provide developers with assistance like validations, auto completion and quick fixes when they work with Liberty configuration files particularly the server.xml file. Enable developers to do so from any editor or IDE of their choice that Liberty will support.

A solution is to develop a language server for Liberty configuration files (server.xml, bootstrap.properties, server.env). The language server can in turn be made available in the various editors/IDEs through Open Liberty Tools.

See a prototype here: https://github.com/OpenLiberty/liberty-language-server

An early release of the Liberty Config LS, e.g., for inclusion in #21055, may be scoped to editing support like validation and auto-completion for server.xml only.

When ready, add links to the Upcoming Feature Overview document and Feature Test Summary issue:


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.

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 2022. Delta scan happened again in November 2022. Another delta scan was completed in mid-April 2023. The license is EPL 2 since this is an open source offering, and there will be no COO.

Translation

3 weeks before Onboarding

  • 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 - (Kevin Smith). SOE FATS are running successfully or N/A . Approver adds label focalApproved:fat to the Epic in Github. ==> N/A
  • 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 (demo through the IDE extensions for Eclipse, IntelliJ and VS Code)
  • [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. ==> N/A

"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. ==> N/A
  • [N/A ] ID - (Kareen Deen). Documentation work is complete or N/A . Approver adds label focalApproved:id to the Epic in Github. The Liberty Config Language Server is a component that is used by Liberty Tools for Eclipse, VS Code and IntelliJ. Since this is open source, the functionality has been documented in the GH repo and reviewed by David Mueller. No additional documentation is needed for the language server. Liberty Tools for the various IDEs have their own epics that would have documentation in OL.
  • [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
  • [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. ==> N/A
  • 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)

Other deliverbles

  • [N/A] 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.
  • [N/A] Blog - (Laura Cowen) Blog article writeup (Epic owner / Feature owner / Laura Cowen) - Blogs will be written for the IDE extensions (Liberty Tools for Eclipse, IntelliJ and VS Code) which consume this language server.
@yeekangc yeekangc added the Epic Used to track Feature Epics that are following the UFO process label Sep 21, 2020
@yeekangc
Copy link
Member Author

Assigning to @rzgry @kathrynkodama. Cc @ericglau.

@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
@tevans78
Copy link
Member

tevans78 commented Apr 30, 2021

UFO review comments & follow-on items:

  • Slide 22: Questions about which features may be configured. Can you configure incompatible features together? Can a feature be configured which is not installed in the runtime? There are a variety of error paths than need to be considered. Follow up with Alasdair.

  • Slide 28: Will there be completion support for using property references in server.xml? Only well known properties or any defined in server.env or bootstrap.properties? Then, as a secondary item, where properties have been referenced in server.xml, provide content assist to help define those properties in server.env/bootstrap.properties.

  • Slide 34: Need to have an issue open to support config overrides. Also need to consider supporting when the config dir itself has been overridden (server.xml etc in a non-standard folder).

  • Slide 36: Issue required to cover providing feature suggestions when config element is used but the feature is not currently listed.

  • Slide 45: Will the language server be made available as a beta?

  • What is the actual deliverable (jar, war etc)? What does it run on? Can we run it on Liberty? (We should run it on Liberty if we can)

@cherylking
Copy link
Member

@NottyCode I have updated the UFO at the Box link for the review comments. Each updated slide includes (updated) in the title.

  • Slide 22: Questions about which features may be configured. Can you configure incompatible features together? Can a feature be configured which is not installed in the runtime? There are a variety of error paths than need to be considered. Follow up with Alasdair.

Features can be configured that are not installed. The main user scenario is using dev mode which will handle installing the configured features.

Incompatible features can also be detected by dev mode, and we will look into a future enhancement in the language server to display a diagnostic to the user for those features. Opened issue 70 to track that.

  • Slide 28: Will there be completion support for using property references in server.xml? Only well known properties or any defined in server.env or bootstrap.properties? Then, as a secondary item, where properties have been referenced in server.xml, provide content assist to help define those properties in server.env/bootstrap.properties.

Adding completion support for property references in server.xml will be a future enhancement. It should include any property/variable defined in server.xml, bootstrap.properties or server.env. Issue 68 for tracking.

If a property reference in server.xml does not match a defined property/variable, a future enhancement would provide a quick fix to create a variable by that name in server.xml. Issue 69 for tracking.

  • Slide 34: Need to have an issue open to support config overrides. Also need to consider supporting when the config dir itself has been overridden (server.xml etc in a non-standard folder).

The slide has been updated to indicate config overrides are supported. Issue 66 has been opened for a future enhancement to support an alternate configDirectory or file (Maven/Gradle allow serverXmlFile, bootstrapPropertiesFile and serverEnvFile to be overridden).

  • Slide 36: Issue required to cover providing feature suggestions when config element is used but the feature is not currently listed.

Issue 67 has been opened to track this as a future enhancement. The slide has been updated.

  • Slide 45: Will the language server be made available as a beta?

Slide has been updated to indicate the language server will be included in an early release of the Liberty Developer Tools v2 Eclipse IDE.

  • What is the actual deliverable (jar, war etc)? What does it run on? Can we run it on Liberty? (We should run it on Liberty if we can)

There are two jar files that will be delivered. The lemminx-liberty jar is placed on the classpath of the IDE and is loaded by the lemminx extension. The language-server jar will be pulled in by whichever IDE extension we (IBM) has provided for Liberty, whether it be Eclipse, IntelliJ or MS VSCode. I don't understand why it is being asked if it can run on Liberty.

@cherylking
Copy link
Member

Noting here that we plan to release a 1.0 version of the Liberty Config Language Server that is compatible with Eclipse LemMinX 0.22.0 through 0.24.0 and will be utilized by Liberty Tools for Eclipse, and a 2.0 version that is compatible with Eclipse LemMinX 0.25.0 and will be utilized by Liberty Tools for IntelliJ IDEA and Liberty Tools for Visual Studio Code. Both the 1.0 and 2.0 artifacts need to be published by the end of May in order to get pulled into the three IDE releases that will happen between June 2nd and June 9th. We are waiting for SVT to complete and add their approval.

@yeekangc yeekangc added the dev-ex label Jun 9, 2023
@cherylking
Copy link
Member

Status of remaining issues that were not part of MVP:

  • Issue 66 - completed in LCLS and VS Code. Work remains in Eclipse and IntelliJ to enable it.
  • Issue 67 - done
  • Issue 68 - minimal work started in a branch
  • Issue 69 - not started
  • Issue 70 - not started (but becomes somewhat moot once auto feature generation is turned on by default). Also, we added the Enables and Enabled by information when hovering over features in our most recent LCLS release 2.1.2, which will be included in upcoming fix releases for Liberty Tools.

Those issues that are not done will not be worked on in the near future. Our priorities have shifted.

@NottyCode @yeekangc Should this epic be closed for the work that has been completed and a separate one opened for the remaining items? Or should the current epic remain open and get marked as not "In Progress" until we pick it back up?

@yeekangc yeekangc removed the In Progress Items that are in active development. label Jun 17, 2024
@yeekangc
Copy link
Member Author

Status of remaining issues that were not part of MVP:

  • Issue 66 - completed in LCLS and VS Code. Work remains in Eclipse and IntelliJ to enable it.
  • Issue 67 - done
  • Issue 68 - minimal work started in a branch
  • Issue 69 - not started
  • Issue 70 - not started (but becomes somewhat moot once auto feature generation is turned on by default). Also, we added the Enables and Enabled by information when hovering over features in our most recent LCLS release 2.1.2, which will be included in upcoming fix releases for Liberty Tools.

Those issues that are not done will not be worked on in the near future. Our priorities have shifted.

@NottyCode @yeekangc Should this epic be closed for the work that has been completed and a separate one opened for the remaining items? Or should the current epic remain open and get marked as not "In Progress" until we pick it back up?

Ref Cheryl's update and question, @NottyCode, thoughts on how this epic should be best handled? Thank you.

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: Developer Experience
Development

No branches or pull requests

6 participants