Skip to content
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

Idea: Drop version check feature #883

Closed
neet opened this issue Apr 8, 2023 · 1 comment · Fixed by #885
Closed

Idea: Drop version check feature #883

neet opened this issue Apr 8, 2023 · 1 comment · Fixed by #885
Labels
enhancement New feature or request released
Projects
Milestone

Comments

@neet
Copy link
Owner

neet commented Apr 8, 2023

Currently, Masto.js is including a Node.js package semver for mainly two purposes:

  • To display a helpful message when there is a version incompatibility
  • To provide a more secure way to send access tokens using the sec-websocket-protocol header in the WebSocket API.

However, according to Bundlephobia, semver occupies 19.3% of the bundle size, hence some projects using Masto such as Elk use a mock instead of bundling semver to their product.
https://github.com/elk-zone/elk/blob/921eaae949b660198aa5e3cd17fab2166774fa17/nuxt.config.ts#L56

Also, this feature has been a source of trouble when using Masto with Mastodon-compatible software such as GoToSocial and Akkoma.

Because of this situation, we are considering removing SemVer and version checking from Masto.

As a replacement for these features, we plan to utilize TSDoc as documentation for the version range of each API. We will also use Sec-WebSocket-Protocol by default for setting access tokens to WebSocket APIs, and add an option to opt out of it.

We welcome your comments.

@neet neet added enhancement New feature or request v6 labels Apr 8, 2023
@neet neet added this to the v6.0.0 milestone Apr 8, 2023
@neet neet removed the v6 label Apr 8, 2023
@neet neet mentioned this issue Apr 9, 2023
@neet neet added this to Done in Masto.js v6 Apr 27, 2023
@neet neet closed this as completed in #885 Jul 27, 2023
github-actions bot pushed a commit that referenced this issue Jul 27, 2023
## [6.0.0](v5.11.4...v6.0.0) (2023-07-27)

### ⚠ BREAKING CHANGES

* Drop Node.js 16 support
* Use ts-custom-error
* Change WebSocket to AsyncIterator
* Use Proxy API to reduce bundle size
* Eliminate version check feature Idea: Drop version check feature #883
* Remove SubscriptionPolicy, api.v1.admin.{account, report, domainEmailBlocks}

### Features

* Add `setDirection` and `getDirection` to paginator ([2ad2da7](2ad2da7))
* Add ability to use custom WebSocket implementation ([6e410ce](6e410ce))
* Change WebSocket to AsyncIterator ([fcdc5ec](fcdc5ec))
* Use Proxy API to reduce bundle size ([6e61c3d](6e61c3d))
* **websocket:** Add `retry` option ([4b06ae1](4b06ae1))
* **websocket:** Support auto retry ([fe47102](fe47102))

### Bug Fixes

* Add type guard to Notification ([26e0684](26e0684))
* **build:** Fix releaserc to run only in main branch ([bc3d297](bc3d297))
* Fix /accounts/update_credentials encoding ([31ad84d](31ad84d))
* Fix constructor types ([2864d17](2864d17))
* Fix streaming timelines test ([ddbb022](ddbb022))
* Map app.verifyCredentials action type ([212f4c0](212f4c0))

### Chores

* Add detectOpenHandles option ([d8625b1](d8625b1))
* Add sideEffects: [secure] ([029544c](029544c))
* Add unsubscribe method ([30a0a95](30a0a95))
* Auto-set encoding ([604c3d6](604c3d6))
* **build:** Use ES Module for config files ([d9806ed](d9806ed))
* Bump dependencies ([5d14b67](5d14b67))
* Clean up dependencies ([64b62ba](64b62ba))
* **config:** Segregate ws and rest configs ([fc23e5d](fc23e5d))
* **docs:** Update CONTRIBUTING.md ([c48a03b](c48a03b))
* **docs:** Update example ([da940be](da940be))
* Drop Node.js 16 support ([9cc1286](9cc1286))
* Eliminate version check feature Idea: Drop version check feature [#883](#883) ([68448ff](68448ff))
* Fix events test ([c34a0d0](c34a0d0))
* Fix naming convention ([4c2cf74](4c2cf74))
* Remove qs module ([a00f3b2](a00f3b2))
* Remove SubscriptionPolicy, api.v1.admin.{account, report, domainEmailBlocks} ([a1c727b](a1c727b))
* Rename select to $select ([0aa23ca](0aa23ca))
* **rest:** Restore auto media awaiting ([31e20e4](31e20e4))
* Revert target and module to ES6 ([1bab465](1bab465))
* Segregate rest and streaming directory ([#915](#915)) ([e42295f](e42295f))
* Tag 6.0.0 alpha7 ([a25b80c](a25b80c))
* Tag 6.0.0-alpha.4 ([4fbfde0](4fbfde0))
* Tag Alpha 1 ([0fc1c4b](0fc1c4b))
* Tag alpha 2 ([ba36be1](ba36be1))
* Tag alpha.0 ([1d28068](1d28068))
* **test:** Enable concurrent test ([fd8f203](fd8f203))
* **test:** Improve test readability ([6079201](6079201))
* **test:** Override tsconfig in jest.config ([ac89a3f](ac89a3f))
* **tests:** Add tests for WebSocket and Proxy API ([507fe44](507fe44))
* **tests:** Create token on demand ([cc7e15f](cc7e15f))
* **test:** Set max-workers on CI ([4f370eb](4f370eb))
* **test:** Use --report-unused-disable-directives ([bc4a94a](bc4a94a))
* **test:** Use maxWorkers=1 temporarily ([61759ff](61759ff))
* Use ts-custom-error ([d439af9](d439af9))
@github-actions
Copy link

🎉 This issue has been resolved in version 6.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

This was referenced Apr 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request released
Projects
No open projects
Development

Successfully merging a pull request may close this issue.

1 participant