Skip to content

Deprecate @fedify/fedify/x/* modules and extract them into separate packages#388

Merged
dahlia merged 30 commits intofedify-dev:mainfrom
2chanhaeng:main
Aug 27, 2025
Merged

Deprecate @fedify/fedify/x/* modules and extract them into separate packages#388
dahlia merged 30 commits intofedify-dev:mainfrom
2chanhaeng:main

Conversation

@2chanhaeng
Copy link
Contributor

@2chanhaeng 2chanhaeng commented Aug 25, 2025

Summary

Deprecate @fedify/fedify/x/* modules and extract them into separate packages.

Related Issue

Changes

  • Separated modules from @fedify/fedify/x into dedicated packages.
  • Added JSDoc for packages/fedify/x/* is deprecated and will be gone at v2.
  • Added docs and warnings for the changes.

Benefits

By the separation, @fedify/fedify will improve modularity and reduce bundle size.

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 write a regression test to reproduce the bug (if it's a bug fix)?
  • Did you write some tests for this change (if it's a new feature)?
  • Did you run deno task test-all on your machine?

Additional Notes

The added package has not been released yet, so it has not been applied to the code in the example. A sub-issue is needed to modify this after the package is released.

Please modify the following code and documentation (there may be more):

  • README.md
  • docs/manual/deploy.md
  • docs/manual/inbox.md
  • docs/manual/integration.md
  • docs/manual/kv.md
  • docs/manual/log.md
  • docs/manual/mq.md
  • docs/manual/send.md
  • examples/blog
    • federation/mod.ts
    • routes/_middleware.ts
    • packages.json and other files related to package
  • examples/cloudflare-workers
    • /src/index.ts
    • packages.json and other files related to package
  • examples/hono-sample
    • main.ts
    • packages.json and other files related to package
  • packages/cli/src/init.ts

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.

Summary of Changes

Hello @2chanhaeng, 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 significantly refactors the Fedify project by deprecating tightly coupled framework integrations and storage adapters within the core @fedify/fedify package. These functionalities have been extracted into new, standalone packages, such as @fedify/cfworkers, @fedify/denokv, @fedify/hono, and @fedify/sveltekit. This strategic move aims to enhance the overall modularity of the Fedify ecosystem, allowing for more flexible dependency management and a reduced bundle size for the core library, ultimately improving performance and maintainability. Comprehensive documentation updates accompany these changes, guiding users through the transition to the new package structure.

Highlights

  • Deprecation of Internal Modules: The @fedify/fedify/x/* modules, which previously contained framework integrations and KV/message queue adapters, have been deprecated. Users are advised to migrate to new, dedicated packages for these functionalities.
  • Extraction into Separate Packages: Key integrations and adapters, including Cloudflare Workers (@fedify/cfworkers), Deno KV (@fedify/denokv), Hono (@fedify/hono), and SvelteKit (@fedify/sveltekit), have been extracted into their own independent packages. This improves modularity and reduces the core bundle size of @fedify/fedify.
  • Comprehensive Documentation Updates: All relevant documentation files, including AGENTS.md, CHANGES.md, CONTRIBUTING.md, and specific integration/KV/MQ manuals, have been updated to reflect the new package structure and provide clear deprecation warnings and migration guidance.
  • New Package Infrastructure: New package directories have been added for @fedify/cfworkers, @fedify/denokv, @fedify/hono, and @fedify/sveltekit, each complete with their own deno.json, package.json, source files, and tests, ensuring independent development and release cycles.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

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 issue 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.

@github-actions github-actions bot added breaking change Breaking change component/integration Web framework integration help wanted Extra attention is needed priority/high High priority issues type/chore Build, configuration, and maintenance tasks labels Aug 25, 2025
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 deprecates the @fedify/fedify/x/* modules by extracting them into separate packages, which is a great move for modularity and reducing bundle size. The changes are comprehensive, covering documentation, configuration, and the creation of new packages. The implementation of the new packages and the deprecation notices are well-executed. I have a few minor suggestions to improve documentation clarity and consistency.

Copy link
Contributor Author

@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.

Support for multi-package managers is still difficult for me. There are too many things to care about. 🥲

  • Added descriptions to @fedify/cfworkers, @fedify/hono, @fedify/sveltekit and replaced Deno.test with node:test in test code of them.
  • Deleted configuration file to publish @fedify/denokv to NPM and removed from pnpm workspace.

@github-actions
Copy link
Contributor

github-actions bot commented Aug 26, 2025

The docs for this pull request have been published:

https://582974ad.fedify.pages.dev

Copy link
Member

@dahlia dahlia left a comment

Choose a reason for hiding this comment

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

  • It would be great if each package has its own README.md. The contents could be copied from docs/manual/integration/md.
  • Could you add deprecation warnings using LogTape? See also the following pattern:
    logger.warn(
    "The documentLoader option is deprecated; use documentLoaderFactory " +
    "option instead.",
    );

Copy link
Contributor Author

@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.

  • Added README.md for new packages and fixed since
  • Log warning for deprecated modules

@2chanhaeng
Copy link
Contributor Author

  • Replaced @fedify/fedify/x/* modules with @fedify/* packages in docs.
  • Replaced links for archived repository with links for packages/*

dahlia
dahlia previously approved these changes Aug 27, 2025
Copy link
Member

@dahlia dahlia left a comment

Choose a reason for hiding this comment

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

Huge thanks!

@github-actions
Copy link
Contributor

The latest push to this pull request has been published to JSR and npm as a pre-release:

Package Version JSR npm
@fedify/fedify 1.9.0-pr.388.1460+533f75f1 JSR npm
@fedify/cli 1.9.0-pr.388.1460+533f75f1 JSR
@fedify/amqp 1.9.0-pr.388.1460+533f75f1 JSR npm
@fedify/elysia 1.9.0-pr.388.1460+533f75f1 npm
@fedify/express 1.9.0-pr.388.1460+533f75f1 JSR npm
@fedify/h3 1.9.0-pr.388.1460+533f75f1 JSR npm
@fedify/nestjs 1.9.0-pr.388.1460+533f75f1 npm
@fedify/next 1.9.0-pr.388.1460+533f75f1 npm
@fedify/postgres 1.9.0-pr.388.1460+533f75f1 JSR npm
@fedify/redis 1.9.0-pr.388.1460+533f75f1 JSR npm
@fedify/sqlite 1.9.0-pr.388.1460+533f75f1 JSR npm
@fedify/testing 1.9.0-pr.388.1460+533f75f1 JSR npm

@dahlia dahlia merged commit 7957aaf into fedify-dev:main Aug 27, 2025
10 checks passed
@dahlia dahlia added the type/deprecation Deprecation notices and migration label Jan 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking change Breaking change component/integration Web framework integration help wanted Extra attention is needed priority/high High priority issues type/chore Build, configuration, and maintenance tasks type/deprecation Deprecation notices and migration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Deprecate @fedify/fedify/x/* modules and extract them into separate packages

2 participants