You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The v0.10.0 release of BlockSuite includes a total of 246 PRs and welcomes 10 new contributors. Besides the continuous enhancement of the framework and more product features for the prebuilt AFFiNE editors, with an increased number of bug fixes and broader usage in production environments, we believe BlockSuite has been very close to its beta stage. This signifies:
For first-party editors based on BlockSuite, their stability is now sufficient for production environment usage, and common functionalities are covered by E2E tests. Notably, about 20% of the BlockSuite codebase are test cases, ensuring a robust and reliable experience. Except for a few edge cases, interactions like selection and shortcuts should mostly align with intuition during typical operations.
The architecture of the block-editing framework is now established, with best practices for operation data flow and event stream determined. Some legacy logic will be gradually refactored and removed, such as the _legacy directory in the @blocksuite/blocks package. Documentation about the relevant API surface is being continuously improved. However, understanding the usage for customizing blocks and extending selections may still require code consultation at this point.
Subsequent releases may still feature API breaking changes, but data will continue to be forward compatible.
We plan to enter the beta phase of BlockSuite in the next upcoming release. Exciting updates are on the way!
Below is a brief overview of the framework improvements and editor features in 0.10.0:
Framework Refinements
Enhanced Documentation (docs: add API typedoc #5263): Added comprehensive API documentation for key packages and updated getting started guides to align with new API designs. The BlockSuite documentation site has also been vastly updated.
Partial Update Support in Store (refactor(store): rewrite page event to support partial update #5396): Refactored the store event stream to support incremental updates to nested object structures, removing events that could lead to leakage of underlying Yjs abstractions.
Optimized Batch Drag Update Size (feat(edgeless): optimize batch drag update size #5272): Optimized the batch drag update size to reduce redundant ydoc writes, minimizing the update patch sizes in collaborative edits.
Garbage Collection in Blob Manager (feat(store): add gc in blob manager #5196): The BlobManager now actively removes unlinked resources, enhancing efficiency in resource management.
Surface Reference Block (feat(edgeless): add surface ref block #5013): The new affine:surface-ref block enables embedding whiteboard frames or groups into the document mode.
Grouping Capability in Edgeless (feat(edgeless): group #5069): Enhanced ability to group edgeless elements, with support for nested groupings.
Per-Element Selected Box in Edgeless (feat(edgeless): per-element selected box #5322): Multi-selection now shows individual selection boxes for each selected element, enhancing clarity in grouped selections.
New Connector Addition Method (feat(edgeless): new way to add connectors #5161): Introduces a new way to add connectors by dragging with an auto-complete button, along with widgets for easy connector shape selection.
Extended Font Support in Canvas Text (feat(edgeless): support more fonts in canvas text #5339): Introduced new preset fonts like Satoshi, Lora, and Bebas Nene, alongside an updated toolbar UI for easier font adjustments.
Revamped Text Highlighting (feat(page): revamped text highlight #5434): Enhanced text highlighting now allows setting the text color itself, not just the background color.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
v0.10.0 - Almost Beta!
The v0.10.0 release of BlockSuite includes a total of 246 PRs and welcomes 10 new contributors. Besides the continuous enhancement of the framework and more product features for the prebuilt AFFiNE editors, with an increased number of bug fixes and broader usage in production environments, we believe BlockSuite has been very close to its beta stage. This signifies:
_legacy
directory in the@blocksuite/blocks
package. Documentation about the relevant API surface is being continuously improved. However, understanding the usage for customizing blocks and extending selections may still require code consultation at this point.We plan to enter the beta phase of BlockSuite in the next upcoming release. Exciting updates are on the way!
Below is a brief overview of the framework improvements and editor features in 0.10.0:
Framework Refinements
page.load(callback)
#5325): The newpage.load
API distinguishes between creating and loading documents, offering more precise control. Details are provided in the BlockSuite Data Persistence Tutorial.deleteBlock
(fix(store):deleteBlock
should delete children recursively by default #5224): ModifieddeleteBlock
to allow recursive deletion of child nodes by default, with configurable behavior.BlobManager
now actively removes unlinked resources, enhancing efficiency in resource management.Editor Features
affine:surface-ref
block enables embedding whiteboard frames or groups into the document mode.Bugfixes
PageMeta.title
withPageBlockModel.title
while importing markdown files @hyf0 (fix: syncPageMeta.title
withPageBlockModel.title
while importing markdown files #5297)copyAsPng
not work @zqran (fix(edgeless): fixcopyAsPng
not work #5062)getPreviousBlock
not works as expected when there are several notes @Flrande (fix(page):getPreviousBlock
not works as expected when there are several notes #5131)try
@Flrande (fix(std): should not re-execute previous commands in the chain beforetry
#5278)tryAll
should share same context @Flrande (fix(std): commands intryAll
should share same context #5293)deleteBlock
should delete children recursively by default @Flrande (fix(store):deleteBlock
should delete children recursively by default #5224)New Contributors
enable_bookmark_operation
flag #5447Full Changelog: v0.9.0...v0.10.0
This discussion was created from the release v0.10.0 - Almost Beta!.
Beta Was this translation helpful? Give feedback.
All reactions