Skip to content

Publish Dev#1621

Merged
EvilBeaver merged 227 commits into
release/previewfrom
feture/publish-dev
Dec 2, 2025
Merged

Publish Dev#1621
EvilBeaver merged 227 commits into
release/previewfrom
feture/publish-dev

Conversation

@EvilBeaver

@EvilBeaver EvilBeaver commented Dec 1, 2025

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • Chores
    • Updated version naming scheme for release candidate builds.
    • Enhanced resource management by ensuring proper cleanup of communication channels when services stop or complete execution.

✏️ Tip: You can customize this high-level summary in your review settings.


Note

Overhauls debugging and symbol binding, adds explicit-import enforcement and deprecation support, refines comparisons and stdlib behavior, upgrades to .NET 8, and removes legacy ASP.NET handler.

  • Core/Compiler/Runtime:
    • Introduce ScopeBindingDescriptor and refactor symbol bindings (ModuleSymbolBinding, JoinedScopes); remove AttachedContext.
    • Add explicit-import policy (ExplicitImportsBehavior) with compile-time checks; PackageInfo + IPackageSymbol wiring.
    • Add deprecation support (DeprecatedName, warnings/errors for methods/properties/enums).
    • Rework comparisons (IBslComparable, ComparisonException); adjust string/date/enum behaviors.
    • Upgrade target framework to .NET 8 and modernize configs.
  • Debugger:
    • Replace old controller with session-based IDebugger/IDebugSession; new TCP server, JSON channel, stream utils.
    • Add attach/launch flows, wait/nowait, protocol reconciliation; improve error handling/disposal.
  • StdLib/Language:
    • Fix StrReplace on empty search; improve ValueList ToString; sorting and comparer updates; timezone handling via IANA.
    • XML: implement ЗаписатьТекущий cases; reader/writer settings tweaks (DTD, declaration handling).
  • VSCode Adapter/CLI:
    • Add waitOnStart, path mapping (pathsMapping), and improved attach; -noWait CLI flag.
  • Removals:
    • Drop legacy ASPNETHandler project and related assets.
  • Tests/Tooling:
    • Extensive new/updated tests (debugger, imports, deprecation, XML, sorting); add cross-platform test runners.

Written by Cursor Bugbot for commit 57a16fe. This will update automatically on new commits. Configure here.

Mr-Rm and others added 30 commits May 29, 2025 12:45
…irective

fixes #1545 Разрешено иметь комментарии в строке с директивами аннотации модуля
V2 fix #1542: точное позиционирование места ошибки
@coderabbitai

coderabbitai Bot commented Dec 1, 2025

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

The Jenkinsfile's VersionSuffix environment variable is simplified to a constant value 'rc.9', removing dynamic BUILD_NUMBER concatenation. Additionally, the DefaultMessageServer protocol channel is now properly disposed when the message loop completes and when the server stops.

Changes

Cohort / File(s) Summary
Version Suffix Simplification
Jenkinsfile
Removed BUILD_NUMBER concatenation from VersionSuffix environment variable, changing from 'rc.9'+BUILD_NUMBER to constant 'rc.9'
Resource Disposal Pattern
src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs
Added explicit disposal of _protocolChannel at the end of RunCommandsLoop thread execution and within Stop() method to ensure proper cleanup

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Verify that the disposal logic in DefaultMessageServer doesn't introduce double-disposal scenarios
  • Confirm thread safety of _protocolChannel.Dispose() when called from different contexts (RunCommandsLoop and Stop())
  • Check whether the removal of BUILD_NUMBER from VersionSuffix aligns with intended build versioning strategy

Possibly related PRs

Poem

🐰 A constant version, now so clean,
No dynamic number jumps between,
The protocol channel bows goodbye,
Disposed with grace as resources fly,
The rabbit hops—all tidy done! 🎉

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check ❓ Inconclusive The title 'Publish Dev' is vague and does not clearly describe the specific changes made. The PR actually modifies build versioning logic in Jenkinsfile and adds resource disposal in a TCP server class, but the title provides no indication of these substantive changes. Use a more descriptive title that reflects the main changes, such as 'Remove dynamic BUILD_NUMBER from version suffix' or 'Fix resource disposal in DefaultMessageServer and update build versioning'.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@EvilBeaver EvilBeaver changed the base branch from develop to release/preview December 1, 2025 16:13

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This PR is being reviewed by Cursor Bugbot

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.


Bug: Double dispose of channel causes race condition

The _protocolChannel.Dispose() call was added in two locations that can both execute during a Stop() scenario. When Stop() interrupts the thread and disposes the channel, the thread catches the ThreadInterruptedException, exits the while loop, and then also tries to dispose the same channel. The channel implementations (JsonDtoChannel, BinaryChannel) lack double-dispose protection, so this will throw ObjectDisposedException. This also contradicts the class documentation which explicitly states the server does not manage channel lifecycle.

src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs#L116-L117

src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs#L138-L139

_messageThread.Interrupt();
_protocolChannel.Dispose();

Fix in Cursor Fix in Web


Comment thread .github/workflows/copilot-setup-steps.yml
@sonar-openbsl-ru-qa-bot

Copy link
Copy Markdown

@EvilBeaver EvilBeaver merged commit 3ef2cfb into release/preview Dec 2, 2025
4 of 5 checks passed
@EvilBeaver EvilBeaver deleted the feture/publish-dev branch December 2, 2025 14:12
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.

7 participants