Skip to content

Conversation

@dahlia
Copy link
Member

@dahlia dahlia commented Jan 31, 2026

Summary

Restores the @fedify/fedify/vocab module as a deprecated re-export of @fedify/vocab to maintain backward compatibility after the vocabulary split in #517.

The @fedify/vocab package was split out from @fedify/fedify in #517, but the original @fedify/fedify/vocab module was completely removed. This broke existing code that imports from @fedify/fedify/vocab.

This PR adds back the module as a deprecated wrapper that re-exports everything from @fedify/vocab, allowing existing code to continue working while users migrate to the new package.

Related issues

Changes

  • Created packages/fedify/src/vocab/mod.ts that re-exports all exports from @fedify/vocab with @deprecated JSDoc tags
  • Added ./vocab export to packages/fedify/deno.json for Deno environment
  • Added ./vocab export to packages/fedify/package.json for Node.js/Bun environments
  • Added ./src/vocab/mod.ts to packages/fedify/tsdown.config.ts build entry points
  • Updated CHANGES.md to document the deprecation in both @fedify/fedify and @fedify/vocab sections

Benefits

  • Backward Compatibility: Existing code using @fedify/fedify/vocab continues to work without breaking
  • Smooth Migration Path: Users can gradually migrate to @fedify/vocab at their own pace
  • Clear Deprecation Warnings: JSDoc @deprecated tags guide users toward the new package
  • Cross-Runtime Support: Works in all environments (Deno, Node.js, Bun)

Migration guide (for users)

Users are encouraged to migrate from:

// Old (deprecated)
import { Note, Create } from "@fedify/fedify/vocab";

To:

// New (recommended)
import { Note, Create } from "@fedify/vocab";

The old import path will continue to work but will show deprecation warnings in IDEs and documentation.

Checklist

  • Did you add a changelog entry to the CHANGES.md?
  • Did you write some relevant docs about this change (if it's a new feature)?
  • Did you run deno task test-all on your machine?

The @fedify/vocab package was split out from @fedify/fedify in
fedify-dev#517, but the original
@fedify/fedify/vocab module was completely removed, breaking
existing code.

This change restores the @fedify/fedify/vocab module as a
deprecated re-export of @fedify/vocab, allowing existing code
to continue working while users gradually migrate to importing
from @fedify/vocab directly. The module is marked with @deprecated
JSDoc tags to guide users toward the migration.

Changes include:
- Created packages/fedify/src/vocab/mod.ts that re-exports all
  exports from @fedify/vocab with deprecation notice
- Added ./vocab export to deno.json for Deno environment
- Added ./vocab export to package.json for Node.js/Bun
- Added ./src/vocab/mod.ts to tsdown build entry points
- Updated CHANGES.md to document the deprecation

Related to fedify-dev#437 and
fedify-dev#517.
@issues-auto-labeler issues-auto-labeler bot added activitypub/interop Interoperability issues breaking change Breaking change component/build Build system and packaging component/federation Federation object related labels Jan 31, 2026
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @dahlia, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a breaking change introduced by the previous split of the vocabulary module into a standalone @fedify/vocab package. It re-establishes the @fedify/fedify/vocab module as a deprecated re-export of the new package, ensuring that applications relying on the old import path continue to function. This approach provides a critical backward compatibility layer, allowing users ample time to update their imports while receiving clear deprecation warnings, thus facilitating a controlled and smooth transition to the new module structure.

Highlights

  • Backward Compatibility Restoration: The @fedify/fedify/vocab module has been restored as a deprecated re-export of @fedify/vocab to prevent breaking existing code that relied on the original import path.
  • Smooth Migration Path: Users can now gradually migrate their imports to the new @fedify/vocab package, as the old import path will continue to function, providing a seamless transition.
  • Clear Deprecation Guidance: JSDoc @deprecated tags are included in the re-exported module, offering clear warnings and instructions to users about the deprecation and guiding them towards the recommended new import path.
  • Cross-Runtime Support: The backward compatibility solution has been implemented to ensure functionality across various JavaScript runtimes, including Deno, Node.js, and Bun environments.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@dahlia dahlia added this to the Fedify 2.0 milestone Jan 31, 2026
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request effectively restores backward compatibility for the @fedify/fedify/vocab module by re-introducing it as a deprecated re-export of the new @fedify/vocab package. The implementation is clean and thorough. The new module correctly re-exports from @fedify/vocab and is well-documented with a @deprecated JSDoc tag to guide users. All necessary configuration files (deno.json, package.json, tsdown.config.ts) have been updated correctly, and the changelog (CHANGES.md) clearly communicates the change. The pull request is well-executed and I have no suggestions for improvement.

@codecov
Copy link

codecov bot commented Jan 31, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.
see 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

@2chanhaeng 2chanhaeng left a comment

Choose a reason for hiding this comment

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

LGTM!

@dahlia dahlia merged commit e4f8233 into fedify-dev:main Feb 1, 2026
44 of 46 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

activitypub/interop Interoperability issues breaking change Breaking change component/build Build system and packaging component/federation Federation object related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants