docs: release process, versioning, breaking changes, public API surface#7706
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.
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 <paul@oshannessy.com>
Co-authored-by: Paul O’Shannessy <paul@oshannessy.com>
Co-authored-by: Joshua Chen <sidachen2003@gmail.com> Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com>
Co-authored-by: Joshua Chen <sidachen2003@gmail.com> Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com>
* 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] <support@github.com> 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