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

Release: Prerelease 8.5.0-alpha.23 #30078

Closed

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Dec 16, 2024

This is an automated pull request that bumps the version from 8.5.0-alpha.22 to 8.5.0-alpha.23.
Once this pull request is merged, it will trigger a new release of version 8.5.0-alpha.23.
If you're not a core maintainer with permissions to release you can ignore this pull request.

To do

Before merging the PR, there are a few QA steps to go through:

  • Add the "freeze" label to this PR, to ensure it doesn't get automatically forced pushed by new changes.
  • Add the "ci:daily" label to this PR, to trigger the full test suite to run on this PR.

And for each change below:

  1. Ensure the change is appropriate for the version bump. E.g. patch release should only contain patches, not new or de-stabilizing features. If a change is not appropriate, revert the PR.
  2. Ensure the PR is labeled correctly with one of: "BREAKING CHANGE", "feature request", "bug", "maintenance", "dependencies", "documentation", "build", "unknown".
  3. Ensure the PR title is correct, and follows the format "[Area]: [Summary]", e.g. "React: Fix hooks in CSF3 render functions". If it is not correct, change the title in the PR.
    • Areas include: React, Vue, Core, Docs, Controls, etc.
    • First word of summary indicates the type: “Add”, “Fix”, “Upgrade”, etc.
    • The entire title should fit on a line

This is a list of all the PRs merged and commits pushed directly to next, that will be part of this release:

  • 🔧 Maintenance: Addon A11y: Remove warnings API #30049
  • 🐛 Bug: Addon A11y: Show errors of axe properly #30050
  • 🔧 Maintenance: Telemetry: Add metadata distinguishing "apps" from "design systems" #30070
  • 🐛 Bug: Addon A11y: Add conditional rendering for a11y violation number in Testing Module #30073
  • 🐛 Bug: Next.js: Support v15.1.1 #30068
  • 🐛 Bug: Automigration: Improve setup file transformation and version range handling for a11y migration #30060
  • 🏗️ Build: Build: Fix nx.json to use boolean for legacy cache setting #30074
  • 🏗️ Build: Build: Fix broken Windows Unit Test CI run #30069
  • 🏗️ Build: Build: Refactor e2e test for composition to make it more stable #30067
  • 🏗️ Build: Build: Add text suggestions for incorrect task names #30056
  • 🏗️ Build: Build: Improve waiting detection on E2E to fix flake #30057
  • 📝 Documentation: Docs: Update addon-test coverage exclude details #30059

If you've made any changes doing the above QA (change PR titles, revert PRs), manually trigger a re-generation of this PR with this workflow and wait for it to finish. It will wipe your progress in this to do, which is expected.

Feel free to manually commit any changes necessary to this branch after you've done the last re-generation, following the Make Manual Changes section in the docs, especially if you're making changes to the changelog.

When everything above is done:


Generated changelog

8.5.0-alpha.23

Greptile Summary

Based on the provided files and changes, I'll create a concise summary of this pull request:

Storybook 8.5.0-alpha.23 brings several key improvements to accessibility testing and telemetry:

  • Removed warnings API from A11y addon, simplifying to binary pass/fail model
  • Added conditional rendering of a11y violation counts in Testing Module UI
  • Enhanced telemetry to distinguish between apps and design systems
  • Added support for Next.js v15.1.1
  • Improved automigration handling for a11y setup files

Key bullet points:

  • A11y addon now uses strict pass/fail model instead of configurable warning levels
  • Added application detection via router packages and page/screen file patterns in telemetry
  • Fixed error display formatting in A11y panel for better readability
  • Added filesystem caching with 24h TTL for expensive telemetry operations
  • Improved setup file transformation for a11y migration with better version range handling

The changes represent a significant simplification of the accessibility testing model while adding better telemetry insights into how Storybook is being used.

kasperpeulen and others added 25 commits December 12, 2024 16:09
…s-api

# Conflicts:
#	docs/writing-tests/accessibility-testing.mdx
…-from-status

Addon A11y: Add conditional rendering for a11y violation number in Testing Module
Telemetry: Add metadata distinguishing "apps" from "design systems"
Addon A11y: Show errors of axe properly
@github-actions github-actions bot requested a review from kylegach as a code owner December 16, 2024 14:47
@github-actions github-actions bot added the release For PRs that trigger new releases. Automated label Dec 16, 2024
Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

29 file(s) reviewed, 9 comment(s)
Edit PR Review Bot Settings | Greptile

Comment on lines +18 to +21
type ExecaStreamer = typeof Promise & {
stdout: Transform;
kill: () => void;
};
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logic: ExecaStreamer type extends Promise incorrectly - should use Promise instead of typeof Promise

command: string,
options?: Parameters<typeof execaCommand>[1]
) {
const process = execaCommand(command, { shell: true, buffer: false, ...options });
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logic: shell: true can be dangerous if command is not properly sanitized

Comment on lines +29 to +30
// If the process errors, this will throw
await process;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: process errors should be caught and handled gracefully

);

try {
const command = `git ls-files -- ${globs.join(' ')}`;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logic: git ls-files command is not escaped properly - paths with spaces could cause issues

Comment on lines +23 to +25
} catch {
return undefined;
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: silently returns undefined on any error without logging - could mask real issues

Comment on lines +17 to +28
it('returns false if there is a routing package in package.json dependencies', () => {
expect(
getHasRouterPackage({
dependencies: {
react: '^18',
'react-dom': '^18',
},
devDependencies: {
'react-router': '^6',
},
})
).toBe(false);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: The test description should be 'returns false if there is a routing package in devDependencies' to more accurately describe what is being tested

Comment on lines +6 to +7
const command = `git grep -l composeStor` + (path ? ` -- ${path}` : '');
return await execCommandCountLines(command);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logic: git grep command searches for partial 'composeStor' string which could match unintended files

* NOTE: if the operation returns `undefined` the value will not be cached. Use this to indicate
* that the operation failed.
*/
export const runTelemetryOperation = async <T>(cacheKey: string, operation: () => Promise<T>) => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: Consider adding error handling for failed cache operations

Comment on lines +236 to +250
async function getPackageJsonDetails() {
const packageJsonPath = await findPackagePath(process.cwd());
if (packageJsonPath) {
return {
packageJsonPath,
packageJson: (await findPackage(packageJsonPath)) || {},
};
}

// If we don't find a `package.json`, we assume it "would have" been in the current working directory
return {
packageJsonPath: process.cwd(),
packageJson: {},
};
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logic: getPackageJsonDetails returns empty objects for missing package.json which could mask configuration issues. Consider throwing an error or adding a warning.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release For PRs that trigger new releases. Automated
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants