-
-
Notifications
You must be signed in to change notification settings - Fork 8.6k
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
docs: release process, versioning, breaking changes, public API surface #7706
Conversation
✅ [V2]
To edit notification comments on pull requests, go to your Netlify site settings. |
⚡️ Lighthouse report for the deploy preview of this PR
|
Size Change: +3.57 kB (0%) Total Size: 805 kB
ℹ️ View Unchanged
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
One question is about TypeScript types. What accounts as "safe"? For example, does changing a type from non-generic to generic count as breaking? Two generic arguments to three? string
to a literal union? Or only removal of types counts? Are all exported types stable? (e.g. we have a lot of types in @docusaurus/plugin-content-docs/lib/sidebars/types
) Should we split @docusaurus/types
into /internal
as well?
I was pretty sure you'll comment on this TS line 😄 Definitively needs a bit more clarification.
I guess it is safe if the new generic types has a retro-compatible default value.
It probably depends if the type is used as an input or output (ie input plugin option vs output attribute used as component className)
Removal, rename...
I think we should only guarantee the stability of the theme props types, and not necessarily mention the types exported by content plugins, which are currently quite messy. I mean: declare module '@theme/DocCard' {
import type {PropSidebarItem} from '@docusaurus/plugin-content-docs';
export interface Props {
readonly item: PropSidebarItem;
}
export default function DocCard(props: Props): JSX.Element;
} We can guarantee the Ideally, we shouldn't refactor all types with a
What I see in practice is that almost all those types are already part of our public API. There are a few exceptions like It should make it clearer think about all those types after that refactor: #7710 It's a bit hard to define what TS retro-compatibility is. Sometimes adding a new attribute to an existing type leads to a subtle breaking change. I think we should see it as a best effort, and try to avoid annoying TS users and plugin authors. If we feel a change is likely to piss off anyone, we just don't backport it and keep it for the next version? |
If the "type stability" is more of a good will than a hard commitment, I'm good. |
Co-authored-by: Paul O’Shannessy <[email protected]>
Co-authored-by: Paul O’Shannessy <[email protected]>
Co-authored-by: Joshua Chen <[email protected]> Co-authored-by: Sébastien Lorber <[email protected]>
Co-authored-by: Joshua Chen <[email protected]> Co-authored-by: Sébastien Lorber <[email protected]>
* chore: upgrade dependencies * fix * reupgrade * downgrade
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.1.14 to 2.1.15. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@41a4ada...3f62b75) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix: bump devcontainer to node 16 * fix: bump devcontainer directly to nodejs 18
Pre-flight checklist
Motivation
Clarify how we handle versioning, breaking changes, semver, public API and all things important for releasing 2.0
Test Plan
preview
Test links
Deploy preview: https://deploy-preview-7706--docusaurus-2.netlify.app/community/release-process
Related issues/PRs
#6113