Files
Jack Westbrook f96e4e9ad2 Frontend: Remove Angular (#99760)
* chore(angularsupport): delete feature toggle to disable angular

* feat(angular-support): remove config.angularSupportEnabled

* chore(jest): remove angular from setup file

* chore(angular): delete angular deprecation ui components

* refactor(angular): move migration featureflags into migration notice

* chore(dashboard): remove angular deprecation notices

* chore(annotations): remove angular editor loader

* feat(appwrapper): no more angular app loading

* feat(pluginscatalog): clean up angular plugin warnings and logic

* chore(angular): delete angular app and associated files

* feat(plugins): delete old angular graph plugin

* feat(plugins): delete old angular table panel

* feat(frontend): remove unused appEvent type

* feat(dashboards): clean up angular from panel options and menu

* feat(plugins): remove graph and table-old from built in plugins and delete sdk

* feat(frontend): remove angular related imports in routes and explore graph

* feat(theme): remove angular panel styles from global styles

* chore(i18n): run make i18n-extract

* test(api_plugins_test): refresh snapshot due to deleting old graph and table plugins

* chore(angulardeprecation): delete angular migration notice components and usage

* test(frontend): clean up tests that assert rendering angular deprecation notices

* chore(backend): remove autoMigrateOldPanels feature flag

* chore(config): remove angularSupportEnabled from config preventing loading angular plugins

* chore(graphpanel): remove autoMigrateGraphPanel from feature toggles

* chore(tablepanel): delete autoMigrateTablePanel feature flag

* chore(piechart): delete autoMigratePiechartPanel feature flag

* chore(worldmappanel): remove autoMigrateWorldmapPanel feature toggle

* chore(statpanel): remove autoMigrateStatPanel feature flag

* feat(dashboards): remove automigrate feature flags and always auto migrate angular panels

* test(pluginsintegration): fix failing loader test

* test(frontend): wip: fix failures and skip erroring migration tests

* chore(codeowners): remove deleted angular related files and directories

* test(graphite): remove angular mock from test file

* test(dashboards): skip failing exporter test, remove angularSupportEnabled flags

* test(dashbaord): skip another failing panel menu test

* Tests: fixes pkg/services/pluginsintegration/loader/loader_test.go (#100505)

* Tests: fixes pkg/services/pluginsintegration/plugins_integration_test.go

* Trigger Build

* chore(dashboards): remove angularComponent from getPanelMenu, update test

* feat(dashboards): remove all usage of AngularComponent and getAngularLoader

* chore(betterer): refresh results file

* feat(plugins): remove PluginAngularBadge component and usage

* feat(datasource_srv): remove usage of getLegacyAngularInjector

* feat(queryeditor): delete AngularQueryComponentScope type

* Chore: removes Angular from plugin_loader

* Chore: remove angular from getPlugin

* Chore: fix i18n

* Trigger Build

* Chore: remove more Angular from importPanelPlugin

* Chore: remove search options warning

* Chore: remove and deprecate Angular related

* chore(angular): remove angular dependencies from core and runtime

* chore(runtime): delete angular injector

* chore(data): delete angular scope from event bus

* chore(plugin-catalog): remove code pushing app plugins angular config page

* chore(yarn): refresh lock file

* chore(frontend): remove ng-loader from webpack configs, remove systemjs cjs plugin

* chore(navigation): remove tether-drop cleanup from GrafanaRouter, delete dependency

* chore(runtime): delete AngularLoader

* chore(betterer): refresh results file

* chore(betterer): fix out of sync results file

* feat(query): fix type and import errors in QueryEditorRow

* test(dashboards): delete skipped angular related tests

* Tests: add back tests and fix betterer

* Tests: fix broken test

* Trigger build

* chore(i18n): remove angular deprecation related strings

* test: clean up connections and plugins catalog tests

* chore(betterer): update results file

---------

Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
2025-04-04 11:31:35 +02:00
..
2025-04-04 11:31:35 +02:00
2025-03-07 10:38:11 +00:00
2025-03-07 10:38:11 +00:00
2025-03-06 13:59:08 +01:00

Building the docs locally

When you contribute to documentation, it's a good practice to build the docs on your local machine to make sure your changes appear as you expect. This README explains the process for doing that.

To build a local version, you need to run a process in a Docker container. Grafana periodically updates the Docker image, docs-base, to update the styling of the Docs.

Requirements

  • Docker >= 2.1.0.3
  • Yarn >= 1.22.4

Build the doc site

First, make sure the Docker daemon is running on your machine. Then, follow these steps:

  1. On the command line, first change to the docs folder: cd docs.
  2. Run make docs. This launches a preview of the website with the current grafana docs at http://localhost:3002/docs/grafana/latest/ which will refresh automatically when changes are made to content in the sources directory.

If you have the grafana/website repo checked out in the same directory as the grafana repo, then you can run make docs-local-static to use local assets (such as images).

Deploy preview

When you open a PR that changes files in the docs/sources/ directory, CI builds a deploy preview. After the deploy preview has been built, the Deploy pr preview workflow comments a link to the preview URL and adds a commit status check .


Content guidelines

Generally, one can edit content in the sources directory.

The following paths are built instead from a typescript file and are auto-generated. Please do not edit these files directly. Instead, navigate to the appropriate typescript source file and edit the content there, then follow the build instructions to generate the markdown files.

Transformations

Auto-generated markdown location:

  • docs/sources/panels-visualizations/query-transform-data/transform-data/index.md

Typescript location for editing and instructions:

  • scripts/docs/generate-transformations.ts - Includes all content not specific to a transformation.
  • public/app/features/transformers/docs/content.ts - Transformation-specific content.

Only use reference style links in the content.ts file or else link text will be visible in the UI.

Contributing

Managing redirects

When moving content around or removing pages it's important that users following old links are properly redirected to the new location. We do this using the aliases feature in Hugo.

If you are moving a page, add an aliases entry in the front matter referencing the old location of the page which will redirect the old url to the new location.

If you are removing a page, add an aliases entry in the front matter of the most-applicable page referencing the location of the page being removed.

If you are copying an existing page as the basis for a new one, be sure to remove any aliases entries in the front matter in your copy to avoid conflicting redirects.

Edit the side menu

The side menu is automatically build from the file structure. Use the weight front matter parameter to order pages.

To specify different menu text from the page title, use the front matter parameter menuTitle.

Add images

Please see our help documentation on Image, diagram, and screenshot guidelines for comprehensive information.


Deploy changes to grafana.com

When a PR is merged with changes in the docs/sources directory, those changes are automatically synced by a GitHub action (.github/workflows/publish.yml) to the grafana/website repo.

  • A PR that targets the main branch syncs to the content/docs/grafana/next directory in the website repository, and publishes to https://grafana.com/docs/grafana/next/.
  • A PR targeting the latest/current release branch syncs to the content/docs/grafana/latest directory in the website repository, and publishes to https://grafana.com/docs/grafana/latest/.

Once the sync is complete, the website will automatically publish to production - no further action is needed.