Repository navigation
chore: bring the dev docs and tooling up to date - #5995
Merged
norman-abramovitz merged 18 commits intoOct 8, 2026
Merged
norman-abramovitz merged 18 commits into
norman-abramovitz merged 18 commits into
Conversation
The frontend tests page still told contributors to run npm scripts, called the linter tslint, and described a Jenkins, Snyk and Code Climate pipeline that no longer runs. Point it at the make targets and bun scripts the repo uses today, document the PROJECT/SCOPE and E2E variables, and list the GitHub Actions checks a PR actually gets.
Code Climate no longer reports on pull requests, and its project page now redirects to a Qlty sign-in. Remove .codeclimate.yml (unchanged since 2020), the climate package script and the docs pointer to the project page.
main.scss.backup was committed with the Material-to-Tailwind conversion and nothing reads it; main.scss is the live stylesheet.
The make e2e recipes and the tiered runner launched Playwright with npx, the version stamp ran tsc with npx, ngbuild.sh built the devkit with npm, and the STB workflow ran its checks with npm. Use bun run everywhere, as the rest of the Makefile and CI already do. Playwright lists the same 713 chromium tests either way, and tsc reports the same version. ngbuild.sh keeps npm for publish, unpublish and link, which act on the npm registry.
e2e:dev pointed Playwright at https://localhost:4200, the Angular CLI default; the dev frontend serves on 5440 (angular.json, make dev frontend). RequestHelper and EndpointManagementHelper defaulted to https://127.0.0.1:4200 and the cfApi fixture fell back to http://localhost:4200, but all 9 call sites pass a URL. Make baseURL required so a missing one fails loudly instead of hitting a wrong host.
The developer introduction, frontend and backend guides still taught the pre-v5 workflow: npm install/start/build, a global Angular CLI, Node 12 and Go 1.12 minimums, a jetstream binary in src/jetstream, port 4200 and Angular Material theming. Point them at make install, make dev frontend/backend, make build frontend/backend, dist/bin, port 5440, the Required Runtimes table and the theming docs. Also replace the remaining npm, npx and node commands in the extension guides, the issue template, TESTING.md, the lockdiff instructions and the plugin build diagram with their bun or make equivalents.
npm run e2e-dev no longer exists and assumed port 4200. Document make test e2e, E2E_BASE_URL for an already running Stratos, the bun run Playwright scripts and make e2e clean for leftover CF resources. Remove the BrowserStack section: nothing in e2e/ or playwright.config.ts reads the BROWSERSTACK_* variables; the support went with the Protractor suite.
Deploy from source checked out the stable tag (a 2021 v4 commit) and pushed the source tree, and Pre-building the UI described the custom buildpack that compiled the UI during staging. manifest.yml now pushes dist/cf-package with the binary_buildpack, so a bare cf push from a fresh clone has nothing to push. Check out a release tag, run make build release cf, then cf push.
The README told contributors to run make dev-frontend and make build-frontend (renamed to make dev frontend and make build frontend), make bootstrap and bun run bootstrap (no such target; the script only prints that bootstrap is no longer needed), bun test (Bun's own runner, not Vitest) and bin/package (removed). Replace the setup, command and packaging sections with the current make targets and link the contributor guide for backend configuration. Also remove the link to a CLAUDE.md that is not in the repository, fix the theming link (the extensions/theming page no longer exists), and drop the "Tested with Browserstack" acknowledgement and its logo: BrowserStack testing ended with the Protractor suite.
Nothing in e2e/, playwright.config.ts or scripts/ loads it; it served the Protractor suite. Removing it drops browserstack-local and its exclusive dependencies (agent-base@6, https-proxy-agent@5, is-running, tree-kill) from bun.lock and nothing else.
bootstrap ran extension-generator.mjs and dev-setup.cjs with node; the postinstall step already runs both with bun. The devkit steps keep npm, because the devkit has its own package-lock.json.
The guide said frontend packages declare their backend plugins in package.json (none do; src/jetstream/plugin-config.yaml is the list), that removing a package drops its plugins, that prepare-backend and npm install in the buildpack handle it, and that STRATOS_BUILD_REMOVE works from manifest.yml. A release push uses binary_buildpack and builds nothing during staging. Describe the stratos.yaml packages.exclude list, STRATOS_YAML, STRATOS_BUILD_REMOVE at build time and plugin-config.yaml for backend plugins. Checked with the extension generator: both stratos.yaml and STRATOS_BUILD_REMOVE drop @stratosui/kubernetes from the generated _custom-import.module.ts.
pagination-architecture.md still described NgRx selectors, reducers, LocalListController and the global page-size session, all removed with NgRx. Rewrite it from the current code: client-side page draining (drainCfPages and CnsiEntitySource), per-endpoint sources, the EndpointDataService registry and its caching and staleness rules, MergeOrchestrator, ViewPipeline paging/sorting/filtering, list state, signal-list rendering and the app wall's stats polling.
AppPaginatorComponent and PageSizeSessionService have no importers: app-signal-list has its own pager and keeps page size per list. Both were left behind when the lists moved off NgRx.
The prebuild-application builder spawned its four steps (clean symlinks, git metadata, custom imports, prepare backend) with node, so a production build mixed node and bun processes. Each script runs unchanged under bun; prepare backend writes a byte-identical extra_plugins.go either way, and make build frontend runs all four steps under bun.
goToAppsPage waited for app-paginator, which the app wall no longer renders, so the wait always timed out and all 9 tests skipped on every run. Rewrite the suite for the signal-list wall: seed 3 apps with withTestApps, filter by one app's unique name, and assert that every rendered row or card matches and the other seeded apps are gone, in table view, card view and across view switches. Live on a CF lab (chromium, 2 workers): 9 passed, 0 skipped. With the ViewPipeline filter disabled, the table filter test fails.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brings the contributor docs and repo tooling in line with how Stratos is built today (make targets, bun, ports 5440/5443, the release package), and removes leftovers from the Protractor, Code Climate and NgRx eras. Each item was checked against the code before it was changed.
What changes
docs/developer/frontend-tests.mdnow gives themakeandbuncommands. The PR checks it lists are the ones that actually report on develop: Jenkins, Snyk and Code Climate are gone.src/jetstream/jetstreamand Angular Material theming.make dev-frontend),make bootstrap(no such target),bun test(Bun's runner, not Vitest) andbin/package(removed). It now uses the current targets. A link to aCLAUDE.mdthat is not in the repo is removed, and the theming link points at a page that exists.docs/deploy/cloud-foundry/cloud-foundry.md): it checked out thestabletag (a 2021 v4 commit) and described the custom buildpack that built the UI during staging.manifest.ymlnow pushesdist/cf-packagewithbinary_buildpack, so the section now says to check out a release tag, runmake build release cf, thencf push.docs/extensions/disable-packages.md): backend plugins come fromsrc/jetstream/plugin-config.yaml, not package.json, andSTRATOS_BUILD_REMOVEacts at build time, not frommanifest.yml. Both thestratos.yamlpackages.excluderoute and the env var were checked against the extension generator: each drops@stratosui/kubernetesfrom the generated module.docs/pagination-architecture.md): rewritten from the current code. The old version described NgRx selectors, reducers andLocalListController.tscversion stamp,scripts/e2e-run.mjs, the e2e-impact hint,ngbuild.sh's devkit build,./bootstrapand the STB workflow usednpx,npmornode.bun run.package-lock.json. So dongbuild.sh's publish and link steps, which act on the npm registry.angular.json): the prebuild-application builder spawned its four steps withnode. Each runs unchanged under bun; prepare backend writes a byte-identicalextra_plugins.go, andmake build frontendruns all four steps under bun.e2e/tests/core/list-filter.spec.ts): it waited for the removedapp-paginator, so all 9 tests skipped on every run. It is rewritten for the signal-list wall on seeded apps: table, card and cross-view filtering. Live on a CF lab: 9 passed, 0 skipped; with the ViewPipeline filter disabled, the table filter test fails.e2e:devpointed Playwright athttps://localhost:4200, where nothing listens; it now targets 5440.RequestHelper,EndpointManagementHelperand thecfApifixture defaulted to 4200, but all nine call sites pass a URL, so the parameter is now required and a missing URL fails loudly..codeclimate.ymland theclimatescript; Code Climate no longer reports on PRs.theme/styles/main.scss.backup.browserstack-localdevDependency. That dependency and its four exclusive dependencies leavebun.lock, and nothing else changes there.AppPaginatorComponentandPageSizeSessionService, which have no importers.Verification
make check gategreen on the branch, including after the follow-up commits.bun run typecheck,bun run lintandbun run test(61 files, 601 tests) pass intools/stb.makecommand was dry-run withmake -n.AI disclosure (RFC-0047): prepared with AI coding assistance; reviewed by the author.