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

Early release for integrated set of Liberty tools for developers using Eclipse IDE #21055

Closed
20 of 46 tasks
yeekangc opened this issue May 10, 2022 · 8 comments
Closed
20 of 46 tasks
Assignees
Labels
Design Approved Epic Used to track Feature Epics that are following the UFO process

Comments

@yeekangc
Copy link
Member

yeekangc commented May 10, 2022

Description

Enable developers that use Eclipse IDE as their IDE to install an integrated set of tools to code/build/test/debug their Java applications on top of Liberty easily with support to iterative fast (rapid inner loop) using APIs like Jakarta EE and MicroProfile.

This feature request calls for the availability of an early release (e.g., v0.1) of the said set of tools above on GitHub for developers to try and provide feedback.

Solution involves creating an Eclipse IDE plugin and an early release of it that includes:

  • Integration with dev mode (e.g. to start/stop Liberty and make iterative changes via dev mode)
  • Assistance to edit Liberty server.xml (e.g., validation and auto-completion) via an early build of Assistance for editing Liberty configuration #14054
  • Coding assistance for working with MicroProfile APIs via inclusion of the Language Server for MicroProfile (from the Eclipse LSP4MP project)

Documents

When available, add links to required feature documents. Use "N/A" to mark particular documents which are not required by the feature.


Process Overview

General Instructions

The process steps occur roughly in the order as presented. Process steps occasionally overlap.

Each process step has a number of tasks which must be completed or must be marked as not applicable ("N/A").

Unless otherwise indicated, the tasks are the responsibility of the Feature Owner or a Delegate of the Feature Owner.

If you need assistance, reach out to the OpenLiberty/release-architect.

Important: Labels are used to trigger particular steps and must be added as indicated.


Prioritization (Complete Before Development Starts)

The (OpenLiberty/chief-architect) and area leads are responsible for prioritizing the features and determining which features are being actively worked on.

Prioritization

  • Feature added to the "New" column of the Open Liberty project board
    • Epics can be added to the board in one of two ways:
      • From this issue, use the "Projects" section to select the appropriate project board.
      • From the appropriate project board click "Add card" and select your Feature Epic issue
  • Priority assigned
    • Attend the Liberty Backlog Prioritization meeting

Design (Complete Before Development Starts)

Design preliminaries determine whether a formal design, which will be provided by an Upcoming Feature Overview (UFO) document, must be created and reviewed. A formal design is required if the feature requires any of the following: UI, Serviceability, SVT, Performance testing, or non-trivial documentation/ID.

Design Preliminaries

Design

  • POC Design / UFO review requested.
    • Owner adds label Design Review Request
  • POC Design / UFO review scheduled. (David Chang)
  • POC Design / UFO review completed.
  • POC / UFO Review follow-ons completed.
  • Design / UFO approved. (OpenLiberty/chief-architect) or N/A
    • (OpenLiberty/chief-architect) adds label Design Approved
    • Add the public link to the UFO in Box to the Documents section.
    • The UFO must always accurately reflect the final implementation of the feature. Any changes must be first approved. Afterwards, update the UFO by creating a copy of the original approved slide(s) at the end of the deck and prepend "OLD" to the title(s). A single updated copy of the slide(s) should take the original's place, and have its title(s) prepended with "UPDATED".

No Design

  • No Design requested.
    • Owner adds label No Design Approval Request
  • No Design / No UFO approved. (OpenLiberty/chief-architect) or N/A
    • Approver adds label No Design Approved

FAT Documentation


Implementation

A feature must be prioritized and socialized (or No Design Approved) before any implementation work may begin and is the minimum before any beta code may be delivered. All new Liberty content must be inaccessible in our GA releases until it is Feature Complete by either marking it kind=noship or beta fencing it.
Code may not GA until this feature has obtained the "Design Approved" or "No Design Approved" label, along with all other tasks outlines in GA section.

Feature Development Begins

  • Add the In Progress label

Legal and Translation

In order to avoid last minute blockers and significant disruptions to the feature, the legal items need to be done as early in the feature process as possible, either in design or as early into the development as possible. Similarly, translation is to be done concurrently with development. Both MUST be completed before Beta or GA is requested.

Legal (Complete before Feature Complete Date)

  • Changed or new open source libraries are cleared and approved, or N/A. (Legal Release Services/Cass Tucker/Release PM).
  • Licenses and Certificates of Originality (COOs) are updated, or N/A

Translation (Complete 1 week before Feature Complete Date)

  • PII updates are merged, or N/A. Note timing with translation shipments.

Beta

In order to facilitate early feedback from users, all new features and functionality should first be released as part of a beta release.

Beta Code

  • Beta fence the functionality
    • kind=beta, ibm:beta, ProductInfo.getBetaEdition()
  • Beta development complete and feature ready for inclusion in a beta release
    • Add label target:beta and the appropriate target:YY00X-beta (where YY00X is the targeted beta version).
  • Feature delivered into beta

Beta Blog (Complete 1.5 weeks before beta eGA)


GA

A feature is ready to GA after it is Feature Complete and has obtained all necessary Focal Point Approvals.

Feature Complete

  • Feature implementation and tests completed.
    • All PRs are merged.
    • All epic and child issues are closed.
    • All stop ship issues are completed.
  • Legal: all necessary approvals granted.
  • Translation: All messages translated or sent for translation for upcoming release
  • GA development complete and feature ready for inclusion in a GA release
    • Add label target:ga and the appropriate target:YY00X (where YY00X is the targeted GA version).
    • Inclusion in a release requires the completion of all Focal Point Approvals.

Focal Point Approvals (Complete by Feature Complete Date)

These occur only after GA of this feature is requested (by adding a target:ga label). GA of this feature may not occur until all approvals are obtained.

All Features

Design Approved Features

  • Accessibility Accessibility testing completed or N/A. (OpenLiberty/accessibility-approvers)
    • Approver adds label focalApproved:accessibility.
  • APIs/Externals Externals have been reviewed or N/A. (OpenLiberty/externals-approvers)
    • Approver adds label focalApproved:externals
  • ID Documentation is complete or N/A. (OpenLiberty/id-approvers)
    • Approver adds label focalApproved:id.
    • NOTE: If only trivial documentation changes are required, you may reach out to the ID Feature Focal to request a ID Required - Trivial label. Unlike features with regular ID requirement, those with ID Required - Trivial label do not have a hard requirement for a Design/UFO.

  • Performance Performance testing is complete or N/A. (OpenLiberty/performance-approvers)
    • Approver adds label focalApproved:performance.
  • Serviceability Serviceability has been addressed or N/A. (OpenLiberty/serviceability-approvers)
    • Approver adds label focalApproved:sve.
  • STE Skills Transfer Education chart deck is complete or N/A. (OpenLiberty/ste-approvers)
    • Approver adds label focalApproved:ste.
  • SVT System Verification Test is complete or N/A. (OpenLiberty/svt-approvers)
    • Approver adds label focalApproved:svt.

Remove Beta Fencing (Complete by Feature Complete Date)

  • Beta guards are removed, or N/A
    • Only after all necessary Focal Point Approvals have been granted.

GA Blog (Complete by Feature Complete Date)

Post GA


Other Deliverables

  • OL Guides OL Guides assessment is complete or N/A. (Yee-Kang Chang)
  • Standalone Feature Blog Post A blog post specifically about your feature or N/A. (OpenLiberty/release-architect)
    • This should be strongly considered for larger or more prominent features.
    • Follow instructions in the blogs repo.
  • WDT Liberty Developer Tools work is complete or N/A. (Leonard Theivendra)

@yeekangc yeekangc added Epic Used to track Feature Epics that are following the UFO process Non-Release labels May 10, 2022
@yeekangc
Copy link
Member Author

Cc @scottkurz

@scottkurz
Copy link
Member

Specific follow-ups from UFO review:

  • Need to come up with a new icon and not re-use the WDT one

@scottkurz
Copy link
Member

scottkurz commented Jun 22, 2022

Track icon follow-up with issue: OpenLiberty/liberty-tools-eclipse#96 targeting EOY GA. Doesn't need to be addressed for this issue (Early Release).

@scottkurz
Copy link
Member

We need to make a few small changes from the UFO based on our final round of coding for the Early Release . Updates will come shortly.

@scottkurz
Copy link
Member

scottkurz commented Jul 12, 2022

Updated UFO content making the following small changes:

  1. slide 21 - changed the "start with parameters" command to append user-supplied parms AFTER the dev command, rather than before (opened Forcing a user's command to always start with pre-pended "mvn/mvnw liberty:dev" is too inflexible, prevents running a goal before liberty:dev or overriding LMP version liberty-tools-eclipse#111 to follow-up on how to solve the problem left by this change)
  2. slide 26 - Updated description of how we calculate when to add Liberty nature and display on our dashboard to account for multi-mod Maven projs, and the desire to display only the "top-level" project
  3. slide 34 - Modified idea to use dedicated Early Release install repo and instead note idea to use branch in existing repo
  4. slide 47 - Note the potential issue with WDT/LDT + LT coexistence where server.xml can't be edited in WDT config editor.

@scottkurz
Copy link
Member

@NottyCode can you please approve now?

@NottyCode
Copy link
Member

I have approved the design for the early access, but I have some concerns I think need to be resolved prior to GA. I would like to work through these via a developer experience walkthrough of the tools both now and as they resolve though.

@yeekangc
Copy link
Member Author

@yeekangc yeekangc removed the In Progress Items that are in active development. label Dec 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Design Approved Epic Used to track Feature Epics that are following the UFO process
Projects
Status: 22.0.0.8
Development

No branches or pull requests

4 participants