feat(global-header): Promote global-header NFS plugin from /alpha to … - #3413
feat(global-header): Promote global-header NFS plugin from /alpha to …#3413rohitratannagar wants to merge 4 commits into
Conversation
|
This pull request adds a new top-level directory under |
|
Important This PR includes changes that affect public-facing API. Please ensure you are adding/updating documentation for new features or behavior. Changed Packages
|
…stable Signed-off-by: rohitratannagar <rohitratannagar2003@gmail.com>
1bd4724 to
94f0809
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #3413 +/- ##
=======================================
Coverage 54.00% 54.00%
=======================================
Files 2403 2404 +1
Lines 87620 87631 +11
Branches 24260 24263 +3
=======================================
+ Hits 47315 47322 +7
- Misses 38752 38755 +3
- Partials 1553 1554 +1
*This pull request uses carry forward flags. Click here to find out more. Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
|
This PR has been automatically marked as stale because it has not had recent activity from the author. It will be closed if no further activity occurs. If the PR was closed and you want it re-opened, let us know and we'll re-open the PR so that you can continue the contribution! |
Signed-off-by: rohitratannagar <rohitratannagar2003@gmail.com>
94f0809 to
d60b316
Compare
Signed-off-by: rohitratannagar <rohitratannagar2003@gmail.com>
debsmita1
left a comment
There was a problem hiding this comment.
Tested the changes on RHDH NFS shell (redhat-developer/rhdh#5115)
Screen.Recording.2026-07-20.at.4.09.39.PM.mov
/lgtm
ciiay
left a comment
There was a problem hiding this comment.
Thanks for the pr 👏
It looks mostly good. Just looking at the graduation pattern from #3530 : NFS → root, OFS → /legacy, translations remain at /alpha. The code here matches that, but the PR description/changeset still say existing /alpha NFS imports keep working as re-exports — that doesn’t match the code or #3530.
Please align the description/changeset with the #3530 wording (“translations remain at /alpha”), and update in-repo consumers that still import NFS APIs from global-header/alpha (e.g. quickstart, app-defaults) to use the stable root export.
Signed-off-by: rohitratannagar <rohitratannagar2003@gmail.com>
|
New changes are detected. LGTM label has been removed. |
|
updated!! |
its-mitesh-kumar
left a comment
There was a problem hiding this comment.
Approving based on #3413
There was a problem hiding this comment.
@rohitratannagar please move all the files under alpha to src as we are removing the ./alpha subpath and moving the apis to main . entry point as you already know so it doesnt make sense to keep the files under alpha sub-folder. Please refer - #3530. cc: @rohitkrai03
There was a problem hiding this comment.
@divyanshiGupta Thanks for review,
Components are being exported from the index.ts only (that is . entry point), so moving out these components from alpha will create mess, as there is already components folder inside src. If it is regarding the code-readability / conventions, please let me know. I will update it 🙂.
There was a problem hiding this comment.
It is about making the code ready in a way that it can just be removed easily in the next release. So the NFS related code should go into components and anything OFS can go into /legacy. Global Header is a bit unique in that respect because it creates a lot of dynamic plugin extensions and components that only work in old scalprum based system. And the alpha folder has all new components related to NFS. Some of the components will still be relevant in NFS because it uses them as base but anything only used for OFS should go into legacy.



Summary
Jira: https://redhat.atlassian.net/browse/RHIDP-14169
after changes
Screen.Recording.2026-07-06.at.12.39.32.AM.mov
Promotes the global-header NFS (New Frontend System) plugin from /alpha to stable exports.
Restructures the Global Header plugin so the New Frontend System (NFS) becomes the default entry point. Old Frontend System (OFS) APIs move to a dedicated
./legacyexport (deprecated). Translations remain at/alpha.Previously, NFS lived under
src/alphaand was imported via:while OFS was the default package export.
This PR flips that relationship:
./legacysubpath (deprecated)./alpharetains only translation exports; NFS APIs are no longer available from/alpha.@alphato@public.dynamicFrontendFeaturesLoader().fix
nameparameter to theTranslationBlueprint.make()call in thestable (non-alpha) global-header plugin export. Without it, the extension ID is
ambiguous and can collide with other unnamed translation extensions at runtime. And with the name they can be optionally disabled in the app.
Test plan
yarn tsc:fullpasses in the global-header workspaceyarn build:api-reports:only --cipassesyarn start)Key Changes
src/alpha/index.ts→src/index.tssrc/legacy.ts/legacy/alpharetains only translations/alphaper graduation pattern; NFS APIs removedPluginRootScalprum exposed modulemodule: Legacyto OFS mount points@alphato@publicglobalHeaderModuleExport.tsglobalHeaderModuleas a default export for Module FederationglobalHeaderTranslationsModuleExport.tsappuses the root package,app-legacyimports from/legacyMigration Guide
NFS (Recommended)
Before
After
OFS (Legacy)
Before
After
Testing
NFS Mode
Enable the local plugin in
dynamic-plugins.override.yaml.Configure extensions:
Expected:
GlobalHeaderModuleExportGlobalHeaderTranslationsModuleExportOFS Mode
Configure every Global Header mount point using:
Then start RHDH Local:
Checklist