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

fix: Update @microsoft/api-extractor and use their api report resolution #25671

Merged

Conversation

secustor
Copy link
Member

@secustor secustor commented Jul 17, 2024

Hey, I just made a Pull Request!

What

This PR updates @microsoft/api-extractor and @microsoft/api-documenter and removes the .md extension from the reportFileName file name provided to the api extractor.

Why

API extractor changed the behaviour between versions, which leads to different behaviour between the community plugins repo and the core Backstage repo.

The string should not contain a file extension.
Note: previous guidance noted that this should be specified in a form including the .api.md extension.
This is no longer recommended, and support for this will be removed in a future release.
For example, if you were previously specifying Foo.api.md, you should now specify Foo.
The .api.md extension will be added automatically to the resulting filename.

https://github.com/microsoft/rushstack/blame/1f87a3c8c43159a2589dbc7dd2a82e545e367a2a/apps/api-extractor/src/api/IConfigFile.ts#L79-L83

This shows the behaviour change to always attach a .api.md suffix to reportFileName, which leads to file names such as api-report.md.api.md in the returned file path.

In turn this leads to a mismatch between the expected file name and the presented file path.
Additional exports such as /alpha or /client will not be detected by the logic in repo-tools.

And therefore pipelines will never succeed as one part expects api-report.md other api-report.api.md

Considerations

It is possible to move the resulting files to the expected file name, though this would add additional complexity for minimal benefit.

Result

API reports will have now a style like api-report.api.md or api-report-client.api.md

Additional Context:
https://discord.com/channels/687207715902193673/1262770499654516837/1262786453780566100

✔️ Checklist

  • A changeset describing the change and affected packages. (more info)
  • Added or updated documentation
  • Tests for new functionality and regression tests for bug fixes
  • Screenshots attached (for UI changes)
  • All your commits have a Signed-off-by line in the message. (more info)

@secustor secustor requested review from backstage-service and a team as code owners July 17, 2024 10:45
@secustor secustor requested a review from benjdlambert July 17, 2024 10:45
@backstage-goalie
Copy link
Contributor

backstage-goalie bot commented Jul 17, 2024

Missing Changesets

The following package(s) are changed by this PR but do not have a changeset:

  • @backstage/plugin-api-docs
  • @backstage/plugin-org

See CONTRIBUTING.md for more information about how to add changesets.

Changed Packages

Package Name Package Path Changeset Bump Current Version
@backstage/repo-tools packages/repo-tools minor v0.9.7
@backstage/plugin-api-docs plugins/api-docs none v0.11.9
@backstage/plugin-org plugins/org none v0.6.29

jkilzi added a commit to jkilzi/backstage-community-plugins that referenced this pull request Jul 18, 2024
- see: backstage/backstage#25671
Signed-off-by: Jonathan Kilzi <jkilzi@redhat.com>
@secustor secustor requested review from a team, awanlin and pjungermann as code owners July 21, 2024 07:17
@github-actions github-actions bot added area:catalog Related to the Catalog Project Area auth area:techdocs Related to the TechDocs Project Area area:kubernetes Related to the Kubernetes Project Area - not deploying Backstage with k8s. search Things related to Search homepage Features for the composable homepage area:scaffolder Everything and all things related to the scaffolder project area area:permission Related to the Permission Project Area area:discoverability Related to the Discoverability Project Area area:events Related to the Events Project Area labels Jul 21, 2024
Signed-off-by: secustor <sebastian@poxhofer.at>
Signed-off-by: secustor <sebastian@poxhofer.at>
Signed-off-by: secustor <sebastian@poxhofer.at>
Signed-off-by: secustor <sebastian@poxhofer.at>
Signed-off-by: secustor <sebastian@poxhofer.at>
Signed-off-by: secustor <sebastian@poxhofer.at>
Signed-off-by: secustor <sebastian@poxhofer.at>
Signed-off-by: secustor <sebastian@poxhofer.at>
Signed-off-by: secustor <sebastian@poxhofer.at>
@github-actions github-actions bot removed the stale label Sep 23, 2024
Signed-off-by: secustor <sebastian@poxhofer.at>
@secustor secustor force-pushed the feat/fix-problematic-api-extraction-report branch from 076640a to 831571c Compare September 23, 2024 12:55
Signed-off-by: secustor <sebastian@poxhofer.at>
Signed-off-by: secustor <sebastian@poxhofer.at>
@Rugvip
Copy link
Member

Rugvip commented Sep 23, 2024

@secustor a shiet, some conflicts crept in again 😅. If you ping as soon as you do an update I can lock master and get this shipped with prio

@secustor
Copy link
Member Author

@Rugvip Well than let's try again :P

@Rugvip
Copy link
Member

Rugvip commented Sep 23, 2024

@secustor I've locked it now, push changes and Ill merge asap

Signed-off-by: secustor <sebastian@poxhofer.at>
@secustor
Copy link
Member Author

secustor commented Sep 23, 2024

@Rugvip Your PR seems to have broken the Techdocs E2E test. #26811

But I guess they are not required. So I think this can be fixed after this PR.

@Rugvip Rugvip merged commit 8174ba4 into backstage:master Sep 23, 2024
29 of 31 checks passed
Copy link
Contributor

Thank you for contributing to Backstage! The changes in this pull request will be part of the 1.32.0 release, scheduled for Tue, 15 Oct 2024.

@Rugvip
Copy link
Member

Rugvip commented Sep 23, 2024

Indeed, thank you! :shipit: 🎉

@secustor secustor deleted the feat/fix-problematic-api-extraction-report branch September 23, 2024 17:22
jkilzi added a commit to jkilzi/backstage-community-plugins that referenced this pull request Oct 7, 2024
- (refactor) Adds the new workspace's lockfile
- (refactor) adds the cost-management FE plugin
- (refactor) removes react-dom and react-router-dom from the peerDeps
- (refactor) updates yarn.lock
- (refactor) adds a basic app-config.yaml with untested proxy settings
- (refactor) adds cost-management-client
- (refactor) adds CostManagementIcon.tsx
- (refactor) adds sample packages/app and packages/backend
- (refactor) converts the cost-management client into the recommendations client
- (refactor) Introduces the combined cost-management client
- (fix) fixes issues with overlapping symbols
- (refactor) Refactors the cost-management plugin
- (refactor) Renames the cost-management-client package to cost-management-common
- (refactor) Renames src/api/ApiRefs.ts to src/api/ref.ts
- (refactor) simplifies getting the proxy's baseUrl
- (fix) fixes the client generator script
- (refactor) Adds changeOrigin to the proxy settings
- (refactor) created first page using material UI components
- (refactor) updated config for FE
- (refactor) removed custom webpack config file
- consuming API response in the table
- (refactor) added util method to handle API JSON response
- (refactor) introduces JSONUtils.toCamelCaseObjectKeys
- (refactor) adds new workspace for resource-optimization
- (refactor) adds placeholder for the FE and Common plug-ins
- (refactor) adds app-config.yaml
- (refactor) adds react-related missing peer-deps
- (refactor) adds resource-optimization-common as a dependency to the FE plug-in
- (refactor) adds a sample app and backend for showcase purposes
- (refactor) Adds also a PoC for the plugin icon
- (refactor) migrates the old common package to resource-optimization
- (fix) fixes an eslint issue related to lodash
- (refactor) updates the icon snapshot
- (refactor) updates json.test.ts
- (refactor) adds initial code for the BE plugin
- (fix) fixes the plugin icon
- (refactor) changes the plugin name in the navbar
- (refactor) adds 2 variants for the plugin icon
- (refactor) added UI for the first page of resource optimization plugin & fixed endpoint in config (#2)
- (fix) fixes an issue in toCamelCaseObjectKeys function
- (refactor) introduces the resource-optimization-backend
- (fix) fixes the token renewal mechanism
- (refactor) Improved the keys serialization/deserialization issue (use camelCase when receiving, but snake_case when sending data)
- (refactor) The plugin can read the clientId and clientSecret from the app-config.yaml
- (refactor) Cleans up the ExampleComponent.tsx
- (refactor) makes ssoBaseUrl config optional
- (refactor) cleans up ExampleComponent.tsx a bit more
- (refactor) add assertion to ensure config is defined
- (refactor) replaces json utils with jsr:@y0n1/json
- (fix) : fix missing query params after token expires
- (feat) RHINENG-10603 first page table functionality - Pagination + Sorting (#3)
- (feat) RHINENG-10603 first page table functionality
- (fix) minor fixes
- (refactor) code refactoring for landing page table
- (refactor) handling offset and sorting query params and code cleanup
- (refactor) disable third sort on table component
- (refactor) added unit tests and code cleanup
- (refactor) improved landing page layout
- (fix) fixes unit tests
- (feat) RHINENG-10603 landing page filters functionality (#4)
- (feat) RHINENG-10603 added search filter component and filters functionality
- (fix) fixes the issue with the query params in getRecommendationsList
- (feat) RHINENG-10787 detail page top section and recommendation section (#5)
- (feat) RHINENG-10787 detail page top section and UI
- (refactor) removed memoryUnit & cpuUnit from query
- (refactor) code cleanup
- (fix) fixes cluster filter and detail page values
- (refactor) added util method to handle YAML code generation from API response
- (refactor) ignores dynamic-plugins dist directory globally
- (refactor) adds janus-cli and export-dynamic scripts
- (refactor) removes ExampleFetchComponent
- (refactor) updates apis.ts
- (fix) do not convert the recommendations_id param to snake case
- (fix) fixes tsc, linting and formatting issues
- (fix) fixes some issues related to different types of dependencies
- (fix) pathes PlotDetails model
- (fix) stop depending on @mui/material and remove white bg from search filters
- (refactor) patches all the parameters of getRecommendationById
- (refactor) Applies required refactors for compatibility with dynamic plugins (#6)
- (refactor) adds @backstage/backend-dynamic-feature-service
- (refactor) adds rhdh theme
- (refactor) adds devcontainer config
- (refactor) removes leftovers froms the cost-management workspace
- (refactor) updates resource-optimization frontend
- (refactor) adds configuration files for rhdh
- (refactor) Update workspaces/resource-optimization/plugins/resource-optimization/src/plugin.ts
- (refactor) adds devcontainer config
- (refactor) adds deployment scripts
- (refactor) adds export-dynamic top-level script
- (fix) fixes issues related to dependencies
- (refactor) removes the dynamic-plugins integration from the backend package
- (fix) fixes linting and type-checking issues
- (refactor) exports the icon from the front-end plugin
- (refactor) Updates yarn.lock
- (fix) fixes some type-only import statements
- (chore) sync @backstage-community/plugin-resource-optimization-backend
- (fix) fixes style issues
- (fix) fixes an issue related to the api-report generation, see: backstage/backstage#25671
- (refactor) renames useRhdhTheme.ts to rhdh-theme.ts
- (chore) cleans up devcontainer settings and code-workspace file
- (fix) fixes style issues and generates api-report
- (fix) fixes code style and adds the api-report
- (fix) fixes code style and adds the api-report
- (refactor) Updates resource-optimization-common
- (chore) Patches the generated client code with ts-morph
- (style) The code now complies with the rules of the api-report (via `yarn build:api-reports`)
- (refactor) Adds the api-report
- (refactor) Updates the openapi.yaml
- (refactor) Renames OrchestratorClient to OrchestratorApiClientProxy
- (refactor) Updates resource-optimization
- (refactor) Aligns the code according to the refactor in resource-optimization-common
- (fix) detail page tab routing (#8)
- (fix) detail page tab routing
- (style) yarn fix resource-optimization-common
- (fix) prettier & add prettier format script
- (refactor) Update workspaces/resource-optimization/package.json
- (refactor) updated api-reports.md
- (refactor) updates api-reports
- (fix) fixes the presentation in the last_reported column
- (fix) fixes code style issues
- (fix) code-style
- (refactor) Renames serializer.mjs to yaml.mjs
- (chore) Bumps Backstage to 1.29.2, see https://backstage.io/docs/releases/v1.28.0
- (fix) fixes the "publish check" CI step failure
- (fix) bug fixes
- (fix) Solves an issue related to the recommendation plotData object where the object keys were transformed incorrectly
- (refactor) Bumps @y0n1/json to 2.0.0
- (refactor) Adds msw for writing tests for the client proxy module
- (refactor) RHINENG-10789 added compont for showing box plot charts (#12)
- (refactor) RHINENG-10789 added compont for showing box plot charts
- (refactor) added missing keys for messages
- (style) prettier format and fix
- (fix) fixes types errors
- (fix) minor fixes
- (fix) minor fixes for showing YAML code
- (refactor) added charts for limit and request data, performace section
- (fix) adds yarn.lock
- (fix) fixes types errors
- (fix) styles for chart y axis numbering
- (fix) minor fixes
- (refactor) Adds tests for OptimizationsApiClientProxy.ts
- (docs) Adds READMEs and legal stuff (#15)
- (fix) fixes a typo
- (refactor) updates the readme
- (refactor) adds missing info about the service account role
- (refactor) Updates useRhdhTheme.ts (#16)
- (refactor) Removes the logic involved in enabling the RHDH theme based on an environment variable
- (refactor) updates devcontainer settings
- (refactor) updates the workspace readme
- (refactor) adds the changeset
- (refactor) RHINENG-11783 removed example component and searchFilter component (#17)
- (refactor) renames the plugin to redhat-resource-optimization (#18)
- (refactor) Addresses overlooked code style issues
- (refactor) updates CODEOWNERS
- (refactor) update yarn install stat

Signed-off-by: Jonathan Kilzi <jkilzi@redhat.com>
Co-authored-by: Preeti Wadhwani <pwadhwan@redhat.com>
Signed-off-by: Jonathan Kilzi <jkilzi@redhat.com>
jkilzi added a commit to jkilzi/backstage-community-plugins that referenced this pull request Oct 10, 2024
- (refactor) Adds the new workspace's lockfile
- (refactor) adds the cost-management FE plugin
- (refactor) removes react-dom and react-router-dom from the peerDeps
- (refactor) updates yarn.lock
- (refactor) adds a basic app-config.yaml with untested proxy settings
- (refactor) adds cost-management-client
- (refactor) adds CostManagementIcon.tsx
- (refactor) adds sample packages/app and packages/backend
- (refactor) converts the cost-management client into the recommendations client
- (refactor) Introduces the combined cost-management client
- (fix) fixes issues with overlapping symbols
- (refactor) Refactors the cost-management plugin
- (refactor) Renames the cost-management-client package to cost-management-common
- (refactor) Renames src/api/ApiRefs.ts to src/api/ref.ts
- (refactor) simplifies getting the proxy's baseUrl
- (fix) fixes the client generator script
- (refactor) Adds changeOrigin to the proxy settings
- (refactor) created first page using material UI components
- (refactor) updated config for FE
- (refactor) removed custom webpack config file
- consuming API response in the table
- (refactor) added util method to handle API JSON response
- (refactor) introduces JSONUtils.toCamelCaseObjectKeys
- (refactor) adds new workspace for resource-optimization
- (refactor) adds placeholder for the FE and Common plug-ins
- (refactor) adds app-config.yaml
- (refactor) adds react-related missing peer-deps
- (refactor) adds resource-optimization-common as a dependency to the FE plug-in
- (refactor) adds a sample app and backend for showcase purposes
- (refactor) Adds also a PoC for the plugin icon
- (refactor) migrates the old common package to resource-optimization
- (fix) fixes an eslint issue related to lodash
- (refactor) updates the icon snapshot
- (refactor) updates json.test.ts
- (refactor) adds initial code for the BE plugin
- (fix) fixes the plugin icon
- (refactor) changes the plugin name in the navbar
- (refactor) adds 2 variants for the plugin icon
- (refactor) added UI for the first page of resource optimization plugin & fixed endpoint in config (#2)
- (fix) fixes an issue in toCamelCaseObjectKeys function
- (refactor) introduces the resource-optimization-backend
- (fix) fixes the token renewal mechanism
- (refactor) Improved the keys serialization/deserialization issue (use camelCase when receiving, but snake_case when sending data)
- (refactor) The plugin can read the clientId and clientSecret from the app-config.yaml
- (refactor) Cleans up the ExampleComponent.tsx
- (refactor) makes ssoBaseUrl config optional
- (refactor) cleans up ExampleComponent.tsx a bit more
- (refactor) add assertion to ensure config is defined
- (refactor) replaces json utils with jsr:@y0n1/json
- (fix) : fix missing query params after token expires
- (feat) RHINENG-10603 first page table functionality - Pagination + Sorting (#3)
- (feat) RHINENG-10603 first page table functionality
- (fix) minor fixes
- (refactor) code refactoring for landing page table
- (refactor) handling offset and sorting query params and code cleanup
- (refactor) disable third sort on table component
- (refactor) added unit tests and code cleanup
- (refactor) improved landing page layout
- (fix) fixes unit tests
- (feat) RHINENG-10603 landing page filters functionality (#4)
- (feat) RHINENG-10603 added search filter component and filters functionality
- (fix) fixes the issue with the query params in getRecommendationsList
- (feat) RHINENG-10787 detail page top section and recommendation section (#5)
- (feat) RHINENG-10787 detail page top section and UI
- (refactor) removed memoryUnit & cpuUnit from query
- (refactor) code cleanup
- (fix) fixes cluster filter and detail page values
- (refactor) added util method to handle YAML code generation from API response
- (refactor) ignores dynamic-plugins dist directory globally
- (refactor) adds janus-cli and export-dynamic scripts
- (refactor) removes ExampleFetchComponent
- (refactor) updates apis.ts
- (fix) do not convert the recommendations_id param to snake case
- (fix) fixes tsc, linting and formatting issues
- (fix) fixes some issues related to different types of dependencies
- (fix) pathes PlotDetails model
- (fix) stop depending on @mui/material and remove white bg from search filters
- (refactor) patches all the parameters of getRecommendationById
- (refactor) Applies required refactors for compatibility with dynamic plugins (#6)
- (refactor) adds @backstage/backend-dynamic-feature-service
- (refactor) adds rhdh theme
- (refactor) adds devcontainer config
- (refactor) removes leftovers froms the cost-management workspace
- (refactor) updates resource-optimization frontend
- (refactor) adds configuration files for rhdh
- (refactor) Update workspaces/resource-optimization/plugins/resource-optimization/src/plugin.ts
- (refactor) adds devcontainer config
- (refactor) adds deployment scripts
- (refactor) adds export-dynamic top-level script
- (fix) fixes issues related to dependencies
- (refactor) removes the dynamic-plugins integration from the backend package
- (fix) fixes linting and type-checking issues
- (refactor) exports the icon from the front-end plugin
- (refactor) Updates yarn.lock
- (fix) fixes some type-only import statements
- (chore) sync @backstage-community/plugin-resource-optimization-backend
- (fix) fixes style issues
- (fix) fixes an issue related to the api-report generation, see: backstage/backstage#25671
- (refactor) renames useRhdhTheme.ts to rhdh-theme.ts
- (chore) cleans up devcontainer settings and code-workspace file
- (fix) fixes style issues and generates api-report
- (fix) fixes code style and adds the api-report
- (fix) fixes code style and adds the api-report
- (refactor) Updates resource-optimization-common
- (chore) Patches the generated client code with ts-morph
- (style) The code now complies with the rules of the api-report (via `yarn build:api-reports`)
- (refactor) Adds the api-report
- (refactor) Updates the openapi.yaml
- (refactor) Renames OrchestratorClient to OrchestratorApiClientProxy
- (refactor) Updates resource-optimization
- (refactor) Aligns the code according to the refactor in resource-optimization-common
- (fix) detail page tab routing (#8)
- (fix) detail page tab routing
- (style) yarn fix resource-optimization-common
- (fix) prettier & add prettier format script
- (refactor) Update workspaces/resource-optimization/package.json
- (refactor) updated api-reports.md
- (refactor) updates api-reports
- (fix) fixes the presentation in the last_reported column
- (fix) fixes code style issues
- (fix) code-style
- (refactor) Renames serializer.mjs to yaml.mjs
- (chore) Bumps Backstage to 1.29.2, see https://backstage.io/docs/releases/v1.28.0
- (fix) fixes the "publish check" CI step failure
- (fix) bug fixes
- (fix) Solves an issue related to the recommendation plotData object where the object keys were transformed incorrectly
- (refactor) Bumps @y0n1/json to 2.0.0
- (refactor) Adds msw for writing tests for the client proxy module
- (refactor) RHINENG-10789 added compont for showing box plot charts (#12)
- (refactor) RHINENG-10789 added compont for showing box plot charts
- (refactor) added missing keys for messages
- (style) prettier format and fix
- (fix) fixes types errors
- (fix) minor fixes
- (fix) minor fixes for showing YAML code
- (refactor) added charts for limit and request data, performace section
- (fix) adds yarn.lock
- (fix) fixes types errors
- (fix) styles for chart y axis numbering
- (fix) minor fixes
- (refactor) Adds tests for OptimizationsApiClientProxy.ts
- (docs) Adds READMEs and legal stuff (#15)
- (fix) fixes a typo
- (refactor) updates the readme
- (refactor) adds missing info about the service account role
- (refactor) Updates useRhdhTheme.ts (#16)
- (refactor) Removes the logic involved in enabling the RHDH theme based on an environment variable
- (refactor) updates devcontainer settings
- (refactor) updates the workspace readme
- (refactor) adds the changeset
- (refactor) RHINENG-11783 removed example component and searchFilter component (#17)
- (refactor) renames the plugin to redhat-resource-optimization (#18)
- (refactor) Addresses overlooked code style issues
- (refactor) updates CODEOWNERS
- (refactor) update yarn install stat

Signed-off-by: Jonathan Kilzi <jkilzi@redhat.com>
Co-authored-by: Preeti Wadhwani <pwadhwan@redhat.com>
Signed-off-by: Jonathan Kilzi <jkilzi@redhat.com>
@Rugvip Rugvip mentioned this pull request Oct 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:catalog Related to the Catalog Project Area area:discoverability Related to the Discoverability Project Area area:documentation Improvements or additions to documentation area:events Related to the Events Project Area area:home area:kubernetes Related to the Kubernetes Project Area - not deploying Backstage with k8s. area:permission Related to the Permission Project Area area:scaffolder Everything and all things related to the scaffolder project area area:search area:techdocs Related to the TechDocs Project Area auth homepage Features for the composable homepage search Things related to Search
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants