Skip to content

Conversation

fm3
Copy link
Member

@fm3 fm3 commented Feb 17, 2025

@fm3 fm3 requested a review from normanrz February 17, 2025 13:49
@fm3 fm3 self-assigned this Feb 17, 2025
Copy link
Contributor

coderabbitai bot commented Feb 17, 2025

📝 Walkthrough

Walkthrough

The update releases WEBKNOSSOS version 25.02.0 with extensive enhancements and fixes. Changes include a consolidation of annotation histories into a single, revertible linear timeline and simultaneous layer reversion. New features have been added for neuron inference and dataset handling, while the UI now requires focused slider scrolling and prevents unwanted parent scrolling. In addition, updates in migration guides document configuration option renaming and revised FossilDB migration instructions, along with removal of deprecated features.

Changes

File(s) Change Summary
CHANGELOG.released.md, CHANGELOG.unreleased.md Updated version to 25.02.0; added features such as revertible annotation history, split-merger evaluation, togglable dataset rotation, measurement tools outside annotations, and Blosc-compressed dataset support; improved slider scrolling behavior and increased flood fill bounding box limits; various bug fixes and removal of volume annotation downsampling.
MIGRATIONS.released.md, MIGRATIONS.unreleased.md Introduced a new release section for 25.02.0 with FossilDB content migration instructions; configuration options renamed from proxy settings to aboutPageRedirect settings; removed migration route addSegmentIndex and omitted detailed migration guidance in the unreleased document.
tools/hosting/docker-compose.yml Updated Docker Compose configuration to change the webknossos image version from 24.12.0 to 25.02.0.

Possibly related PRs

  • Update Documentation #8262: Enhancements to the documentation for the Volume and Skeleton Tools, related to the "Restore older Version" feature and annotation layer consolidation.
  • Call triggers/reload with fallback layer name #8298: Modifications to the DatasetSettings component that improve data reloading for segmentation layers, directly related to dataset handling features.
  • Release 25.01.0 #8346: Updates in the changelog for version 25.01.0 that relate to the "Restore older Version" feature and annotation layer consolidation.

Suggested labels

documentation, automerge

Suggested reviewers

  • philippotto

Poem

I’m a rabbit with a code-hop beat,
Celebrating changes both fresh and sweet.
Annotations now dance in one fine line,
Migrations guide a path so fine.
Bugs are chased and features gleam—
Hop along with code, a dream within a dream!


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 58dca52 and 976d5c2.

📒 Files selected for processing (1)
  • tools/hosting/docker-compose.yml (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: circleci_build
🔇 Additional comments (1)
tools/hosting/docker-compose.yml (1)

5-5: Update to WebKnossos Image Version.
The image reference on line 5 has been updated from the default tag 24.12.0 to 25.02.0, which aligns with the new release objectives. Please ensure that the new image version has been thoroughly tested in your environment and that any breaking changes or configuration adjustments required by version 25.02.0 are documented (and addressed in the migration guide).


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (3)
MIGRATIONS.released.md (1)

14-20: Detailed FossilDB Migration Instructions
This section provides a step‐by‐step guide for migrating FossilDB content, including:
• Using the Python tool at tools/migration-unified-annotation-versioning
• Starting a second FossilDB using available options (docker image, jar, or repository checkout)
• Requiring the new FossilDB version 0.1.34 and specifying the new column family set
• Recommending incremental migration steps to avoid downtime

A couple of minor points to consider:
Markdown Formatting: Several list items (especially in this block) show inconsistent indentation according to markdownlint (expected indent of 2 spaces). Adjusting the bullet indentations will improve readability and satisfy style guidelines.
Repeated Phrasing: There is some repetitive language (e.g. the phrase “a second FossilDB needs to be started”). Consider introducing slight variation to enhance clarity.

Otherwise, the instructions are comprehensive.

🧰 Tools
🪛 LanguageTool

[style] ~14-~14: Consider using a different adverb to strengthen your wording.
Context: ...r instructions). Note that it writes to a completely new FossilDB, that must first be opened...

(COMPLETELY_ENTIRELY)


[style] ~15-~15: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... - For the migration, a second FossilDB needs to be started. To do that, either use the ...

(REP_NEED_TO_VB)


[style] ~15-~15: Consider a more expressive alternative.
Context: ...second FossilDB needs to be started. To do that, either use the docker image, a ja...

(DO_ACHIEVE)

🪛 markdownlint-cli2 (0.17.2)

14-14: Unordered list indentation
Expected: 2; Actual: 5

(MD007, ul-indent)


15-15: Inconsistent indentation for list items at the same level
Expected: 5; Actual: 4

(MD005, list-indent)


15-15: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


16-16: Inconsistent indentation for list items at the same level
Expected: 5; Actual: 4

(MD005, list-indent)


16-16: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


17-17: Inconsistent indentation for list items at the same level
Expected: 5; Actual: 4

(MD005, list-indent)


17-17: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


18-18: Inconsistent indentation for list items at the same level
Expected: 5; Actual: 4

(MD005, list-indent)


18-18: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


19-19: Inconsistent indentation for list items at the same level
Expected: 5; Actual: 4

(MD005, list-indent)


19-19: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)

CHANGELOG.released.md (2)

40-41: Empty breaking changes section

The "Breaking Changes" section is empty but present. Consider removing empty sections to keep the changelog concise.

-### Breaking Changes
-

1-1121: Improve changelog formatting

The markdown linting tool indicates an indentation issue with unordered lists. The lists should be indented consistently.

-  - Solution 1 (preferred): Replace the function with the numpy implementation.
-  - Solution 2: Refactor the function to use the in-built `sum` function.
+ - Solution 1 (preferred): Replace the function with the numpy implementation.
+ - Solution 2: Refactor the function to use the in-built `sum` function.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

38-38: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 097bf0d and 58dca52.

📒 Files selected for processing (4)
  • CHANGELOG.released.md (1 hunks)
  • CHANGELOG.unreleased.md (1 hunks)
  • MIGRATIONS.released.md (2 hunks)
  • MIGRATIONS.unreleased.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
MIGRATIONS.released.md

[style] ~14-~14: Consider using a different adverb to strengthen your wording.
Context: ...r instructions). Note that it writes to a completely new FossilDB, that must first be opened...

(COMPLETELY_ENTIRELY)


[style] ~15-~15: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... - For the migration, a second FossilDB needs to be started. To do that, either use the ...

(REP_NEED_TO_VB)


[style] ~15-~15: Consider a more expressive alternative.
Context: ...second FossilDB needs to be started. To do that, either use the docker image, a ja...

(DO_ACHIEVE)

🪛 markdownlint-cli2 (0.17.2)
MIGRATIONS.released.md

14-14: Unordered list indentation
Expected: 2; Actual: 5

(MD007, ul-indent)


15-15: Inconsistent indentation for list items at the same level
Expected: 5; Actual: 4

(MD005, list-indent)


15-15: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


16-16: Inconsistent indentation for list items at the same level
Expected: 5; Actual: 4

(MD005, list-indent)


16-16: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


17-17: Inconsistent indentation for list items at the same level
Expected: 5; Actual: 4

(MD005, list-indent)


17-17: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


18-18: Inconsistent indentation for list items at the same level
Expected: 5; Actual: 4

(MD005, list-indent)


18-18: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


19-19: Inconsistent indentation for list items at the same level
Expected: 5; Actual: 4

(MD005, list-indent)


19-19: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


21-21: Trailing punctuation in heading
Punctuation: ':'

(MD026, no-trailing-punctuation)

CHANGELOG.released.md

38-38: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: circleci_build
🔇 Additional comments (9)
MIGRATIONS.unreleased.md (1)

9-9: Updated Commit Link for Unreleased Migrations
The new commit link (“Commits”) clearly references the changes since version 25.02.0. Please verify that this link correctly reflects the intended range of unreleased changes.

CHANGELOG.unreleased.md (1)

11-11: Updated Commit Link in Unreleased Changelog
The commit link on line 11 (“Commits”) has been updated to reference the changes since v25.02.0. This is consistent with the other documentation; please ensure that the link remains current as new changes are made.

MIGRATIONS.released.md (2)

9-10: New Release Header for Version 25.02.0
The release header now clearly shows version 25.02.0 along with the release date and a commit link comparing “25.01.0...25.02.0”. This update ensures that readers can easily identify the changes in this release. Please double-check that the compare link is correct and references the intended range.


11-13: Migration Configuration Updates
These lines document important changes:
• Renaming of the configuration options from proxy.prefix and proxy.routes to aboutPageRedirect.prefix and aboutPageRedirect.routes.
• Removal of the migration route addSegmentIndex.
• Changes to the annotation versioning scheme requiring a larger FossilDB migration.

The instructions are clear and well detailed. Ensure that all related documentation and migration scripts are updated accordingly.

CHANGELOG.released.md (5)

10-11: New version entry added correctly

The new version 25.02.0 is properly added at the top of the changelog with the correct release date and link format.


13-15: Major changes highlighted appropriately

The highlights section effectively summarizes the key changes in this release, focusing on:

  1. Consolidation of annotation histories
  2. Revertible linear timeline
  3. Simultaneous layer reversion

17-24: Well-structured additions section

The "Added" section properly documents new features including:

  • Split-merger evaluation during neuron inference
  • Dataset rotation configuration
  • Merger mode for volume data annotation
  • Measurement tools accessibility
  • Support for Blosc-compressed datasets

30-36: Fixed critical bugs

Important bug fixes for:

  • Dashboard dataset list refresh
  • Tree merging functionality
  • Onboarding screen display
  • Segment registration in coarser mags
  • Flood fill tool in 2D mode

26-29:

❓ Verification inconclusive

UI improvements need verification

The changes to slider scrolling behavior and parent scrolling prevention should be tested to ensure they don't negatively impact usability.


🌐 Web query:

Are there any known issues with slider scrolling behavior in web applications when preventing parent scrolling?

💡 Result:

Several known issues can affect slider scrolling behavior when attempting to prevent parent scrolling in web applications, often related to CSS configurations, JavaScript interactions, or browser-specific quirks. Here are the key challenges and solutions:


Common Issues & Solutions

1. Scroll Chaining & Overscroll Effects

  • Problem: Slider interactions (e.g., horizontal swipes) trigger unintended parent page scrolling ("scroll chaining")[2][4].
  • Solution: Use overscroll-behavior: contain or none on the slider container:
    .slider-container {
      overscroll-behavior: contain; /* Prevents scroll bleed */
    }
    This blocks scroll propagation to parent elements while retaining native bounce effects within the slider[2][4].

2. CSS Overflow Conflicts

  • Problem: Sliders using overflow-x: hidden or height: 100% on html/body elements can break vertical scrolling or cause double scrollbars[1][3][9].
  • Fix:
    • Avoid height: 100% on html/body if using full-width sliders[1][9].
    • Disable conflicting overflow-x settings in slider configurations[1][3].
    • For mobile, apply overflow-y: hidden !important to sliders intercepting vertical touch events[3][5].

3. Touch Event Conflicts

  • Problem: Mobile browsers may prioritize slider touch gestures over vertical page scrolling[3][5].
  • Mitigation:
    • Use touch-action: pan-y on non-slider page elements to preserve vertical scroll[4].
    • For sliders requiring horizontal swipes:
      .slider {
        touch-action: pan-x;
      }

4. JavaScript Interference

  • Problem: Slider libraries often override default scroll behavior (e.g., auto-scrolling to the slider on interaction)[1][9].
  • Adjustments:
    • Disable "Scroll to slider" options in slider settings[1].
    • Avoid event.preventDefault() on slider touch events unless explicitly needed for horizontal swipes[3].

Platform-Specific Considerations

  • Mobile Browsers: iOS Safari and Chrome for Android handle touch/scroll inertia differently; test -webkit-overflow-scrolling for smoother behavior[4][7].
  • Shopify/Dawn Theme: Sliders in CMS platforms may require CSS overrides (e.g., overflow-y: hidden) due to template constraints[3].
  • Third-Party Plugins: Outdated slider plugins (e.g., "Aitasi Coming Soon") can inject conflicting styles/scripts; update or replace them[9].

Debugging Tips

  1. Use browser DevTools to identify conflicting CSS rules (e.g., outline: 1px solid red on all elements)[4].
  2. Test with overscroll-behavior and touch-action properties first, as they resolve ~70% of cases[2][4].
  3. Validate fixes across devices—trackpad vs. mouse vs. touchscreen behaviors vary significantly[8][10].

For persistent issues, prioritize lightweight libraries like Splide.js or Swiper.js with built-in scroll containment features[3][7].

Citations:


UI Behavior Verification Required

Based on the known issues with slider scrolling behavior—such as scroll chaining, CSS overflow conflicts, and touch event interference—it is imperative that the changes documented in the changelog (lines 26–29) be thoroughly tested across a variety of browsers and devices. Verify that:

  • The slider becomes scrollable only when focused and that parent scrolling is effectively prevented.
  • CSS properties (e.g., overscroll-behavior and related overflow settings) are correctly applied without causing unintended side effects.
  • Touch interactions on mobile devices do not lead to unexpected scroll behavior or usability issues.

Please ensure that these UI improvements meet the intended functionality without negatively impacting the overall user experience.

Comment on lines +37 to +38
### Removed
- Removed the feature to downsample existing volume annotations. All new volume annotations had a whole mag stack since [#4755](https://github.com/scalableminds/webknossos/pull/4755) (four years ago). [#7917](https://github.com/scalableminds/webknossos/pull/7917)
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

❓ Verification inconclusive

Breaking change needs documentation update

The removal of the feature to downsample existing volume annotations is a breaking change that should be documented in the migration guide.

Let's check if this is properly documented:


🏁 Script executed:

#!/bin/bash
# Check if the migration guide mentions this breaking change
grep -A 5 "downsample" MIGRATIONS.released.md

Length of output: 45


Documentation Update Required: Breaking Change

The migration guide (MIGRATIONS.released.md) does not include any reference to the removal of downsampling for existing volume annotations. Since this change is breaking, please update the migration guide to document the removal of the downsampling feature (referencing #4755 and #7917).

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

38-38: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)

@fm3 fm3 enabled auto-merge (squash) February 17, 2025 14:40
@fm3 fm3 merged commit fa8d10f into master Feb 17, 2025
3 checks passed
@fm3 fm3 deleted the release-25.02.0 branch February 17, 2025 14:52
@coderabbitai coderabbitai bot mentioned this pull request Feb 26, 2025
2 tasks
@coderabbitai coderabbitai bot mentioned this pull request Apr 2, 2025
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants