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

[Initiative] Remove AngularJS as dependency #1560

Closed
tmarkley opened this issue May 6, 2022 · 7 comments · Fixed by #5086
Closed

[Initiative] Remove AngularJS as dependency #1560

tmarkley opened this issue May 6, 2022 · 7 comments · Fixed by #5086
Assignees
Labels
de-angular de-angularize work dependencies Pull requests that update a dependency file help wanted Community development is encouraged refactor Tech debt related tasks that need refactoring technical debt If not paid, jeapardizes long-term success and maintainability of the repository. v2.11.0

Comments

@tmarkley
Copy link
Contributor

tmarkley commented May 6, 2022

We need to track the work required to remove AngularJS from the project. As of January 2022 it is EOL: https://blog.angular.io/discontinued-long-term-support-for-angularjs-cc066b82e65a

#1558 is the first CVE that has been identified, and there is no other option to resolve it (or any other CVEs that are found) other than removing the dependency.

@boktorbb
Copy link
Contributor

boktorbb commented May 6, 2022

Angular in Dashboards:

Overall App

  • Will need to remove actual angular dependency from package.json
  • Will need to update all docs with angular mentions
  • Will need to update markdown files
  • Will need to update examples directory
  • Will likely need to update fonts and bootstrap code

Discover (2.10)

  • Discover angular directory
  • Doc Table needs to be reworked
  • Data Grid needs to be reworked
  • Need to migrate to React Router
  • Doc Views
  • Discover controller will need to be reworked
  • Discover Context view

Discover 2.0 tracking issue: #4216

Dashboards (2.9)

  • /public/plugin.ts
  • application.ts
  • application/_hacks.scss
  • dashboard_app_controller.ts

Dashboards tracking issue: #3365

Timeline (completed)

  • Timeline is written in angular and will need to be reworked

Timeline tracking issue: #3366

Visualizations (completed)

i18n Framework (2.10)

UI Shared Deps Package

OpenSearch Dashboards Legacy

Tile Map & Region Map

  • Remove angular-sanitize from tile_map plugin
  • Clean out opensearch_dashboards_legacy usages in tile map and region map

Data plugin

  • Remove toAngularJSON from data plugin (src/plugins/data)

Clean css files

  • Remove angular (angular-ui-select) specific styles and formats from css files

@joshuarrrr
Copy link
Member

How well do we understand or cover all the functionality of these components? Should part of this conversion process to add enough functional testing to make sure we maintain feature parity, or are there other ways we might be able to validate the conversions?

@tmarkley
Copy link
Contributor Author

How well do we understand or cover all the functionality of these components? Should part of this conversion process to add enough functional testing to make sure we maintain feature parity, or are there other ways we might be able to validate the conversions?

@joshuarrrr great point. I know we have some functional tests for Discover, the Discover Context view, etc. but I'm not confident that the coverage is great. I think investing in functional tests ahead of the migration React is a great step, and we can take that opportunity to write them in Cypress as well (à la #754).

@tmarkley tmarkley added refactor Tech debt related tasks that need refactoring technical debt If not paid, jeapardizes long-term success and maintainability of the repository. labels May 23, 2022
@ananzh ananzh added de-angular de-angularize work and removed needs research labels Aug 2, 2022
@tmarkley
Copy link
Contributor Author

What's the status of this initiative and how much work is left?

@joshuarrrr
Copy link
Member

joshuarrrr commented Dec 9, 2022

@tmarkley - @ananzh is the dev lead of the overall de-angularization initiative. The first phase of work has been a re-write of the vis_type_table plugin: #2139

That work is targeting the 2.5.0 release. You can track the progress of the related tasks via the tableVis table visualization label.

After that, Discover will be the largest remaining project, but we may also tackle the timeline vis and/or dashboards plugin in parallel. Frankly, there's a lot of remaining effort left, and we'd welcome community assistance in this effort.

@joshuarrrr joshuarrrr added the help wanted Community development is encouraged label Dec 9, 2022
@ananzh
Copy link
Member

ananzh commented Dec 25, 2022

Hey @tmarkley, sorry I just notice this message. There are three main blocks for de-angular: visualzations, discover, dashboards.

  • Currently we are working on cleaning visualizations. The two main parts are table and timeline.
  • Discover re-write/replace is in progress. We are trying to make an alignment by collecting more customer usages and feedbacks. Then we will decide what features from Discover we want to keep and what we would like to add. This evaluation work is done by @ahopp .
  • Dashboards: there are some work left here but not a lot.

After these three blocks, we will clean packages and make a final cleaning. I think we still have a lot of work to do. Currently, there is no one working on timeline and dashboards.

@joshuarrrr joshuarrrr added the dependencies Pull requests that update a dependency file label Jan 11, 2023
@joshuarrrr joshuarrrr changed the title Remove AngularJS [Initiative] Remove AngularJS as dependency Feb 9, 2023
@ashwin-pc
Copy link
Member

ashwin-pc commented Jul 19, 2023

Current status:

Plugin Depends on Status Tracking issue
Discover - In progress (2.10) #4216
Dashboards - In progress (Cleanup) #3365
Timeline - Completed #3366
Visualizations - Completed #2137, #2187
i18n Framework Discover In progress (2.10) #4018
UI Shared Deps Package TODO Not started TODO
OpenSearch Dashboards Legacy Discover Not started #4020
Tile Map & Region Map TODO Not started TODO
Data plugin TODO Not started TODO
Clean css files TODO Not started TODO

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
de-angular de-angularize work dependencies Pull requests that update a dependency file help wanted Community development is encouraged refactor Tech debt related tasks that need refactoring technical debt If not paid, jeapardizes long-term success and maintainability of the repository. v2.11.0
Projects
Status: 2.11.0 - (Launched)
Development

Successfully merging a pull request may close this issue.

6 participants