Loading CHANGES.mddeleted 100644 → 0 +1 −305 Original line number Diff line number Diff line --- title: Changelog doc_title: Fedify changelog nav_order: 9 --- <!-- deno-fmt-ignore-file --> Fedify changelog ================ Version 0.6.0 ------------- To be released. - `DocumentLoader` is now propagated to the loaded remote objects from Activity Vocabulary objects. [[#27]] - Added `options` parameter to Activity Vocabulary constructors. - Added `options` parameter to `clone()` method of Activity Vocabulary objects. - The Activity Vocabulary object passed to `InboxListener` now implicitly loads remote object with an authenticated `DocumentLoader`. - Added `Federation.fetch()` method. - Deprecated `Federation.handle()` method. Use `Federation.fetch()` method instead. - Renamed `FederationHandlerParameters` type to `FederationFetchOptions`. - Added `integrateFetchOptions()` function. - Deprecated `integrateHandlerOptions()` function. - Added `@fedify/fedify/x/hono` module for integrating with [Hono] middleware. [[#25]] - Added `federation()` function. - Added `ContextDataFactory` type. [Hono]: https://hono.dev/ [#25]: https://github.com/dahlia/fedify/issues/25 [#27]: https://github.com/dahlia/fedify/issues/27 Version 0.5.0 ------------- Released on April 2, 2024. - Fedify is now available on npm: [@fedify/fedify]. [[#24]] - Abstract key-value store for caching. - Added `KvStore` interface. - Added `KvStoreSetOptions` interface. - Added `KvKey` type. - Added `DenoKvStore` class. - `KvCacheParameters.kv` option now accepts a `KvStore` instead of `Deno.Kv`. - `KvCacheParameters.prefix` option now accepts a `KvKey` instead of `Deno.KvKey`. - `FederationParameters.kv` option now accepts a `KvStore` instead of `Deno.Kv`. - `FederationKvPrefixes.activityIdempotence` option now accepts a `KvKey` instead of `Deno.KvKey`. - `FederationKvPrefixes.remoteDocument` option now accepts a `KvKey` instead of `Deno.KvKey`. - Abstract message queue for outgoing activities. - Added `MessageQueue` interface. - Added `MessageQueueEnqueueOptions` interface. - Added `InProcessMessageQueue` class. - Added `FederationParameters.queue` option. - Added `@fedify/fedify/x/denokv` module for adapting `Deno.Kv` to `KvStore` and `MessageQueue`. It is only available in Deno runtime. - Added `DenoKvStore` class. - Added `DenoKvMessageQueue` class. - Added `PropertyValue` to Activity Vocabulary API. [[#29]] - Added `PropertyValue` class. - `new Object()` constructor's `attachments` option now accepts `PropertyValue` objects. - `new Object()` constructor's `attachment` option now accepts a `PropertyValue` object. - `Object.getAttachments()` method now yields `PropertyValue` objects besides `Object` and `Link` objects. - `Object.getAttachment()` method now returns a `PropertyValue` object besides an `Object` and a `Link` object. - `Object.clone()` method's `attachments` option now accepts `PropertyValue` objects. - `Object.clone()` method's `attachment` option now accepts a `PropertyValue` object. - Removed dependency on *jose*. - Added `exportSpki()` function. - Added `importSpki()` function. - Fixed a bug that `Application.manuallyApprovesFollowers`, `Group.manuallyApprovesFollowers`, `Organization.manuallyApprovesFollowers`, `Person.manuallyApprovesFollowers`, and `Service.manuallyApprovesFollowers` properties were not properly displayed in Mastodon. [@fedify/fedify]: https://www.npmjs.com/package/@fedify/fedify [#24]: https://github.com/dahlia/fedify/discussions/24 [#29]: https://github.com/dahlia/fedify/issues/29 Version 0.4.0 ------------- Released on March 26, 2024. - Added `@fedify/fedify/x/fresh` module for integrating with [Fresh] middleware. - Added `integrateHandler()` function. - Added `integrateHandlerOptions()` function. - Added `getActorHandle()` function. - Fedify now has authenticated document loader. [[#12]] - Added `Context.getDocumentLoader()` method. - Added `getAuthenticatedDocumentLoader()` function. - Added `AuthenticatedDocumentLoaderFactory` type. - Added `authenticatedDocumentLoaderFactory` option to `new Federation()` constructor. - `Context.documentLoader` property now returns an authenticated document loader in personal inbox listeners. (Note that it's not affected in shared inbox listeners.) - Added singular accessors to `Object`'s `icon` and `image` properties. - `new Object()` constructor now accepts `icon` option. - `new Object()` constructor now accepts `image` option. - Added `Object.getIcon()` method. - Added `Object.getImage()` method. - `Object.clone()` method now accepts `icon` option. - `Object.clone()` method now accepts `image` option. - `Object`'s `icon` and `image` properties no more accept `Link` objects. - `new Object()` constructor's `icons` option no more accepts `Link` objects. - `new Object()` constructor's `images` option no more accepts `Link` objects. - `Object.getIcons()` method no more yields `Link` objects. - `Object.getImages()` method no more yields `Link` objects. - `Object.clone()` method's `icons` option no more accepts `Link` objects. - `Object.clone()` method's `images` option no more accepts `Link` objects. - `Object`'s `attributedTo` property was renamed to `attribution`. - `new Object()` constructor's `attributedTo` option was renamed to `attribution`. - `new Object()` constructor's `attributedTos` option was renamed to `attributions`. - `Object.getAttributedTo()` method is renamed to `Object.getAttribution()`. - `Object.getAttributedTos()` method is renamed to `Object.getAttributions()`. - `Object.clone()` method's `attributedTo` option is renamed to `attribution`. - `Object.clone()` method's `attributedTos` option is renamed to `attributions`. - `Object`'s `attribution` property (was `attributedTo`) now accepts only `Actor` objects. - `new Object()` constructor's `attribution` option (was `attributedTo`) now accepts only an `Actor` object. - `new Object()` constructor's `attributions` option (was `attributedTos`) now accepts only `Actor` objects. - `Object.getAttribution()` method (was `getAttributedTo()`) now returns only an `Actor` object. - `Object.getAttributions()` method (was `getAttributedTos()`) now returns only `Actor` objects. - `Object.clone()` method's `attribution` option (`attributedTo`) now accepts only an `Actor` object. - `Object.clone()` method's `attributions` option (`attributedTos`) now accepts only `Actor` objects. - `Activity`'s `object` property no more accepts `Link` objects. - `new Activity()` constructor's `object` option no more accepts a `Link` object. - `new Activity()` constructor's `objects` option no more accepts `Link` objects. - `Activity.getObject()` method no more returns a `Link` object. - `Activity.getObjects()` method no more returns `Link` objects. - `Activity.clone()` method's `object` option no more accepts a `Link` object. - `Activity.clone()` method's `objects` option no more accepts `Link` objects. - `Activity`'s `actor` property now accepts only `Actor` objects. - `new Activity()` constructor's `actor` option now accepts only an `Actor` object. - `new Activity()` constructor's `actors` option now accepts only `Actor` objects. - `Activity.getActor()` method now returns only an `Actor` object. - `Activity.getActors()` method now returns only `Actor` objects. - `Activity.clone()` method's `actor` option now accepts only an `Actor` object. - `Activity.clone()` method's `actors` option now accepts only `Actor` objects. - Added `sensitive` property to `Object` class. - `new Object()` constructor now accepts `sensitive` option. - Added `Object.sensitive` attribute. - `Object.clone()` method now accepts `sensitive` option. - Now `lookupWebFinger()` follows redirections. - The `http://webfinger.net/rel/profile-page` links in WebFinger responses now omit `type` property. [Fresh]: https://fresh.deno.dev/ [#12]: https://github.com/dahlia/fedify/issues/12 Version 0.3.0 ------------- Released on March 15, 2024. - Added utility functions for responding with an ActivityPub object: - Added `respondWithObject()` function. - Added `respondWithObjectIfAcceptable()` function. - Added `RespondWithObjectOptions` interface. - Added utility functions for generating and exporting cryptographic keys which are compatible with popular ActivityPub software: - Added `generateCryptoKeyPair()` function. - Added `exportJwk()` function. - Added `importJwk()` function. - The following functions and methods now throw `TypeError` if the specified `CryptoKey` is not `extractable`: - `Context.getActorKey()` method - `Context.sendActivity()` method - `Federation.sendActivity()` method - Added `immediate` option to `Context.sendActivity()` and `Federation.sendActivity()` methods. - Added `SendActivityOptions` interface. - Now `onNotFound`/`onNotAcceptable` options are optional for `Federation.handle()` method. [[#9]] [#9]: https://github.com/dahlia/fedify/issues/9 Version 0.2.0 ------------- Released on March 10, 2024. - Implemented [NodeInfo] 2.1 protocol. [[#1]] - Now `Federation.handle()` accepts requests for */.well-known/nodeinfo*. - Added `Federation.setNodeInfoDispatcher()` method. - Added `Context.getNodeInfoUri()` method. - Added `NodeInfo` interface. - Added `Software` interface. - Added `Protocol` type. - Added `Services` interface. - Added `InboundService` type. - Added `OutboundService` type. - Added `Usage` interface. - Added `NodeInfoDispatcher` type. - Added `nodeInfoToJson()` function. - Implemented [WebFinger] client. - Added `lookupObject()` function. - Added `lookupWebFinger()` function. - `Federation.handle()` now responds with `Access-Control-Allow-Origin: *` header for WebFinger requests. - `fetchDocumentLoader()`, the default document loader, now sends `Accept: application/activity+json, application/ld+json` header (was `Accept: application/ld+json` only). [NodeInfo]: https://nodeinfo.diaspora.software/ [WebFinger]: https://datatracker.ietf.org/doc/html/rfc7033 [#1]: https://github.com/dahlia/fedify/issues/1 Version 0.1.0 ------------- Initial release. Released on March 8, 2024. CHANGES.md 0 → 120000 +1 −305 Original line number Diff line number Diff line docs/changelog.md No newline at end of file CONTRIBUTING.mddeleted 100644 → 0 +1 −129 Original line number Diff line number Diff line --- title: Contribute nav_order: 8 --- <!-- deno-fmt-ignore-file --> Contributing guide ================== Thank you for considering contributing to Fedify! This document explains how to contribute to the project. Bug reports ----------- If you find a bug in Fedify, first of all, please search the [GitHub issue tracker] to see if the bug has already been reported. If it hasn't been reported yet, please open a new issue. When you open an issue, please provide the following information: - The version of Fedify you are using. - The version of Deno you are using. - The version of the operating system you are using. - The steps to reproduce the bug. - The expected behavior. - The actual behavior. [GitHub issue tracker]: https://github.com/dahlia/fedify/issues Feature requests ---------------- If you have a feature request for Fedify, please search the [GitHub issue tracker] to see if the feature has already been requested. If it hasn't been requested yet, please open a new issue. When you open an issue, please provide the following information: - The use case of the feature. - The expected behavior. - The reason why you think the feature should be implemented in Fedify, instead of a third-party library or your own project. Pull requests ------------- ### License Fedify is licensed under the [AGPL 3.0]. By opening a pull request, you agree to license your contribution under the AGPL 3.0. If you cannot agree to this license, please do not open a pull request. [AGPL 3.0]: https://www.gnu.org/licenses/agpl-3.0.en.html ### Coding conventions Please run the following commands before opening a pull request: ~~~~ bash deno fmt deno task check deno task test ~~~~ ### Docs If you want to fix a typo or improve the documentation, you can open a pull request without opening an issue. For Markdown, we have the following conventions: - 80 characters at most per line, except for code blocks and URLs. - Prefer [reference links] over [inline links]. - Prefer [setext headings] over [ATX headings]. - Two new lines before opening an H1/H2 heading. - One space before and two spaces after a bullet. - Wrap file paths in asterisks. - Wrap code in backticks. [reference links]: https://spec.commonmark.org/0.31.2/#shortcut-reference-link [inline links]: https://spec.commonmark.org/0.31.2/#inline-link [setext headings]: https://spec.commonmark.org/0.31.2/#setext-headings [ATX headings]: https://spec.commonmark.org/0.31.2/#atx-headings ### Bug fix If you want to fix a bug in Fedify, please search the [GitHub issue tracker] to see if the bug has already been reported. If it hasn't been reported yet, please open a new issue to discuss the bug. When you open a pull request, please provide the he issue number that the pull request is related to. A patch set should include the following: - The regression test that demonstrates the bug. It should fail without the patch and pass with the patch. - The fix for the bug. - The *CHANGES.md* entry. The entry should include the issue number, the pull request number, and your name (unless you want to be anonymous). Bug fix pull requests should target the most oldest maintenance branch that the bug affects. If you are not sure which branch to target, please ask in the issue tracker. ### Feature implementation If you want to contribute to Fedify, please open a new issue in the [GitHub issue tracker] to discuss the change you want to make. If the change is accepted, you can start working on the change. When you open a pull request, please provide the following information: - The issue number that the pull request is related to. - The description of the change. - The reason why the change is needed. - The steps to test the change. A patch set should include the following: - The unit tests that demonstrate the feature. - The implementation of the feature. - If any API change was made, the documentation update for the API. - Check if examples work with the change, and update the examples if needed. - The *CHANGES.md* entry. The entry should include the issue number, the pull request number, and your name (unless you want to be anonymous). Feature pull requests should target the *main* branch. CONTRIBUTING.md 0 → 120000 +1 −129 Original line number Diff line number Diff line docs/contribute.md No newline at end of file docs/.gitignore +4 −1 Original line number Diff line number Diff line _site/ .jsr-cache.json .vitepress/cache/ .vitepress/dist/ node_modules/ Loading
CHANGES.mddeleted 100644 → 0 +1 −305 Original line number Diff line number Diff line --- title: Changelog doc_title: Fedify changelog nav_order: 9 --- <!-- deno-fmt-ignore-file --> Fedify changelog ================ Version 0.6.0 ------------- To be released. - `DocumentLoader` is now propagated to the loaded remote objects from Activity Vocabulary objects. [[#27]] - Added `options` parameter to Activity Vocabulary constructors. - Added `options` parameter to `clone()` method of Activity Vocabulary objects. - The Activity Vocabulary object passed to `InboxListener` now implicitly loads remote object with an authenticated `DocumentLoader`. - Added `Federation.fetch()` method. - Deprecated `Federation.handle()` method. Use `Federation.fetch()` method instead. - Renamed `FederationHandlerParameters` type to `FederationFetchOptions`. - Added `integrateFetchOptions()` function. - Deprecated `integrateHandlerOptions()` function. - Added `@fedify/fedify/x/hono` module for integrating with [Hono] middleware. [[#25]] - Added `federation()` function. - Added `ContextDataFactory` type. [Hono]: https://hono.dev/ [#25]: https://github.com/dahlia/fedify/issues/25 [#27]: https://github.com/dahlia/fedify/issues/27 Version 0.5.0 ------------- Released on April 2, 2024. - Fedify is now available on npm: [@fedify/fedify]. [[#24]] - Abstract key-value store for caching. - Added `KvStore` interface. - Added `KvStoreSetOptions` interface. - Added `KvKey` type. - Added `DenoKvStore` class. - `KvCacheParameters.kv` option now accepts a `KvStore` instead of `Deno.Kv`. - `KvCacheParameters.prefix` option now accepts a `KvKey` instead of `Deno.KvKey`. - `FederationParameters.kv` option now accepts a `KvStore` instead of `Deno.Kv`. - `FederationKvPrefixes.activityIdempotence` option now accepts a `KvKey` instead of `Deno.KvKey`. - `FederationKvPrefixes.remoteDocument` option now accepts a `KvKey` instead of `Deno.KvKey`. - Abstract message queue for outgoing activities. - Added `MessageQueue` interface. - Added `MessageQueueEnqueueOptions` interface. - Added `InProcessMessageQueue` class. - Added `FederationParameters.queue` option. - Added `@fedify/fedify/x/denokv` module for adapting `Deno.Kv` to `KvStore` and `MessageQueue`. It is only available in Deno runtime. - Added `DenoKvStore` class. - Added `DenoKvMessageQueue` class. - Added `PropertyValue` to Activity Vocabulary API. [[#29]] - Added `PropertyValue` class. - `new Object()` constructor's `attachments` option now accepts `PropertyValue` objects. - `new Object()` constructor's `attachment` option now accepts a `PropertyValue` object. - `Object.getAttachments()` method now yields `PropertyValue` objects besides `Object` and `Link` objects. - `Object.getAttachment()` method now returns a `PropertyValue` object besides an `Object` and a `Link` object. - `Object.clone()` method's `attachments` option now accepts `PropertyValue` objects. - `Object.clone()` method's `attachment` option now accepts a `PropertyValue` object. - Removed dependency on *jose*. - Added `exportSpki()` function. - Added `importSpki()` function. - Fixed a bug that `Application.manuallyApprovesFollowers`, `Group.manuallyApprovesFollowers`, `Organization.manuallyApprovesFollowers`, `Person.manuallyApprovesFollowers`, and `Service.manuallyApprovesFollowers` properties were not properly displayed in Mastodon. [@fedify/fedify]: https://www.npmjs.com/package/@fedify/fedify [#24]: https://github.com/dahlia/fedify/discussions/24 [#29]: https://github.com/dahlia/fedify/issues/29 Version 0.4.0 ------------- Released on March 26, 2024. - Added `@fedify/fedify/x/fresh` module for integrating with [Fresh] middleware. - Added `integrateHandler()` function. - Added `integrateHandlerOptions()` function. - Added `getActorHandle()` function. - Fedify now has authenticated document loader. [[#12]] - Added `Context.getDocumentLoader()` method. - Added `getAuthenticatedDocumentLoader()` function. - Added `AuthenticatedDocumentLoaderFactory` type. - Added `authenticatedDocumentLoaderFactory` option to `new Federation()` constructor. - `Context.documentLoader` property now returns an authenticated document loader in personal inbox listeners. (Note that it's not affected in shared inbox listeners.) - Added singular accessors to `Object`'s `icon` and `image` properties. - `new Object()` constructor now accepts `icon` option. - `new Object()` constructor now accepts `image` option. - Added `Object.getIcon()` method. - Added `Object.getImage()` method. - `Object.clone()` method now accepts `icon` option. - `Object.clone()` method now accepts `image` option. - `Object`'s `icon` and `image` properties no more accept `Link` objects. - `new Object()` constructor's `icons` option no more accepts `Link` objects. - `new Object()` constructor's `images` option no more accepts `Link` objects. - `Object.getIcons()` method no more yields `Link` objects. - `Object.getImages()` method no more yields `Link` objects. - `Object.clone()` method's `icons` option no more accepts `Link` objects. - `Object.clone()` method's `images` option no more accepts `Link` objects. - `Object`'s `attributedTo` property was renamed to `attribution`. - `new Object()` constructor's `attributedTo` option was renamed to `attribution`. - `new Object()` constructor's `attributedTos` option was renamed to `attributions`. - `Object.getAttributedTo()` method is renamed to `Object.getAttribution()`. - `Object.getAttributedTos()` method is renamed to `Object.getAttributions()`. - `Object.clone()` method's `attributedTo` option is renamed to `attribution`. - `Object.clone()` method's `attributedTos` option is renamed to `attributions`. - `Object`'s `attribution` property (was `attributedTo`) now accepts only `Actor` objects. - `new Object()` constructor's `attribution` option (was `attributedTo`) now accepts only an `Actor` object. - `new Object()` constructor's `attributions` option (was `attributedTos`) now accepts only `Actor` objects. - `Object.getAttribution()` method (was `getAttributedTo()`) now returns only an `Actor` object. - `Object.getAttributions()` method (was `getAttributedTos()`) now returns only `Actor` objects. - `Object.clone()` method's `attribution` option (`attributedTo`) now accepts only an `Actor` object. - `Object.clone()` method's `attributions` option (`attributedTos`) now accepts only `Actor` objects. - `Activity`'s `object` property no more accepts `Link` objects. - `new Activity()` constructor's `object` option no more accepts a `Link` object. - `new Activity()` constructor's `objects` option no more accepts `Link` objects. - `Activity.getObject()` method no more returns a `Link` object. - `Activity.getObjects()` method no more returns `Link` objects. - `Activity.clone()` method's `object` option no more accepts a `Link` object. - `Activity.clone()` method's `objects` option no more accepts `Link` objects. - `Activity`'s `actor` property now accepts only `Actor` objects. - `new Activity()` constructor's `actor` option now accepts only an `Actor` object. - `new Activity()` constructor's `actors` option now accepts only `Actor` objects. - `Activity.getActor()` method now returns only an `Actor` object. - `Activity.getActors()` method now returns only `Actor` objects. - `Activity.clone()` method's `actor` option now accepts only an `Actor` object. - `Activity.clone()` method's `actors` option now accepts only `Actor` objects. - Added `sensitive` property to `Object` class. - `new Object()` constructor now accepts `sensitive` option. - Added `Object.sensitive` attribute. - `Object.clone()` method now accepts `sensitive` option. - Now `lookupWebFinger()` follows redirections. - The `http://webfinger.net/rel/profile-page` links in WebFinger responses now omit `type` property. [Fresh]: https://fresh.deno.dev/ [#12]: https://github.com/dahlia/fedify/issues/12 Version 0.3.0 ------------- Released on March 15, 2024. - Added utility functions for responding with an ActivityPub object: - Added `respondWithObject()` function. - Added `respondWithObjectIfAcceptable()` function. - Added `RespondWithObjectOptions` interface. - Added utility functions for generating and exporting cryptographic keys which are compatible with popular ActivityPub software: - Added `generateCryptoKeyPair()` function. - Added `exportJwk()` function. - Added `importJwk()` function. - The following functions and methods now throw `TypeError` if the specified `CryptoKey` is not `extractable`: - `Context.getActorKey()` method - `Context.sendActivity()` method - `Federation.sendActivity()` method - Added `immediate` option to `Context.sendActivity()` and `Federation.sendActivity()` methods. - Added `SendActivityOptions` interface. - Now `onNotFound`/`onNotAcceptable` options are optional for `Federation.handle()` method. [[#9]] [#9]: https://github.com/dahlia/fedify/issues/9 Version 0.2.0 ------------- Released on March 10, 2024. - Implemented [NodeInfo] 2.1 protocol. [[#1]] - Now `Federation.handle()` accepts requests for */.well-known/nodeinfo*. - Added `Federation.setNodeInfoDispatcher()` method. - Added `Context.getNodeInfoUri()` method. - Added `NodeInfo` interface. - Added `Software` interface. - Added `Protocol` type. - Added `Services` interface. - Added `InboundService` type. - Added `OutboundService` type. - Added `Usage` interface. - Added `NodeInfoDispatcher` type. - Added `nodeInfoToJson()` function. - Implemented [WebFinger] client. - Added `lookupObject()` function. - Added `lookupWebFinger()` function. - `Federation.handle()` now responds with `Access-Control-Allow-Origin: *` header for WebFinger requests. - `fetchDocumentLoader()`, the default document loader, now sends `Accept: application/activity+json, application/ld+json` header (was `Accept: application/ld+json` only). [NodeInfo]: https://nodeinfo.diaspora.software/ [WebFinger]: https://datatracker.ietf.org/doc/html/rfc7033 [#1]: https://github.com/dahlia/fedify/issues/1 Version 0.1.0 ------------- Initial release. Released on March 8, 2024.
CHANGES.md 0 → 120000 +1 −305 Original line number Diff line number Diff line docs/changelog.md No newline at end of file
CONTRIBUTING.mddeleted 100644 → 0 +1 −129 Original line number Diff line number Diff line --- title: Contribute nav_order: 8 --- <!-- deno-fmt-ignore-file --> Contributing guide ================== Thank you for considering contributing to Fedify! This document explains how to contribute to the project. Bug reports ----------- If you find a bug in Fedify, first of all, please search the [GitHub issue tracker] to see if the bug has already been reported. If it hasn't been reported yet, please open a new issue. When you open an issue, please provide the following information: - The version of Fedify you are using. - The version of Deno you are using. - The version of the operating system you are using. - The steps to reproduce the bug. - The expected behavior. - The actual behavior. [GitHub issue tracker]: https://github.com/dahlia/fedify/issues Feature requests ---------------- If you have a feature request for Fedify, please search the [GitHub issue tracker] to see if the feature has already been requested. If it hasn't been requested yet, please open a new issue. When you open an issue, please provide the following information: - The use case of the feature. - The expected behavior. - The reason why you think the feature should be implemented in Fedify, instead of a third-party library or your own project. Pull requests ------------- ### License Fedify is licensed under the [AGPL 3.0]. By opening a pull request, you agree to license your contribution under the AGPL 3.0. If you cannot agree to this license, please do not open a pull request. [AGPL 3.0]: https://www.gnu.org/licenses/agpl-3.0.en.html ### Coding conventions Please run the following commands before opening a pull request: ~~~~ bash deno fmt deno task check deno task test ~~~~ ### Docs If you want to fix a typo or improve the documentation, you can open a pull request without opening an issue. For Markdown, we have the following conventions: - 80 characters at most per line, except for code blocks and URLs. - Prefer [reference links] over [inline links]. - Prefer [setext headings] over [ATX headings]. - Two new lines before opening an H1/H2 heading. - One space before and two spaces after a bullet. - Wrap file paths in asterisks. - Wrap code in backticks. [reference links]: https://spec.commonmark.org/0.31.2/#shortcut-reference-link [inline links]: https://spec.commonmark.org/0.31.2/#inline-link [setext headings]: https://spec.commonmark.org/0.31.2/#setext-headings [ATX headings]: https://spec.commonmark.org/0.31.2/#atx-headings ### Bug fix If you want to fix a bug in Fedify, please search the [GitHub issue tracker] to see if the bug has already been reported. If it hasn't been reported yet, please open a new issue to discuss the bug. When you open a pull request, please provide the he issue number that the pull request is related to. A patch set should include the following: - The regression test that demonstrates the bug. It should fail without the patch and pass with the patch. - The fix for the bug. - The *CHANGES.md* entry. The entry should include the issue number, the pull request number, and your name (unless you want to be anonymous). Bug fix pull requests should target the most oldest maintenance branch that the bug affects. If you are not sure which branch to target, please ask in the issue tracker. ### Feature implementation If you want to contribute to Fedify, please open a new issue in the [GitHub issue tracker] to discuss the change you want to make. If the change is accepted, you can start working on the change. When you open a pull request, please provide the following information: - The issue number that the pull request is related to. - The description of the change. - The reason why the change is needed. - The steps to test the change. A patch set should include the following: - The unit tests that demonstrate the feature. - The implementation of the feature. - If any API change was made, the documentation update for the API. - Check if examples work with the change, and update the examples if needed. - The *CHANGES.md* entry. The entry should include the issue number, the pull request number, and your name (unless you want to be anonymous). Feature pull requests should target the *main* branch.
CONTRIBUTING.md 0 → 120000 +1 −129 Original line number Diff line number Diff line docs/contribute.md No newline at end of file
docs/.gitignore +4 −1 Original line number Diff line number Diff line _site/ .jsr-cache.json .vitepress/cache/ .vitepress/dist/ node_modules/