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

Add a way to queue releasing shell context from setting display drivers #15875

Merged
merged 26 commits into from May 1, 2024

Conversation

MikeAlhayek
Copy link
Member

@MikeAlhayek MikeAlhayek commented Apr 25, 2024

Fix #15884

Goals

  1. The settings drivers should not release the shell context.
  2. Add a way for the settings display drivers to request reloading the shell.
  3. Only reload the tenant when requested and the model state is validated.

Summary

Reloading Tenants

A new extension was added to SignalReleaseShellContext() extension method HttpContext to allow you to signal the app to release the shell context after the current request finish executing. In most cases, it is better to use the new extension over manually releasing the shell using await _shellHost.ReleaseShellContextAsync(_shellSettings). In you want to suspend the signal or restating the shell before the request is finish executing, you can invoke the HttpContext.ConcealReleaseShellContext() extension which will conceal the signal and the tenant will not be reloaded.

Reloading Tenants Display Drivers

When implementing a site settings display driver, you have the option to reload the shell (restart the tenant). If you choose to do so, manually releasing the shell context using await _shellHost.ReleaseShellContextAsync(_shellSettings) is unnecessary. Instead, you should use the new HttpContext.SignalReleaseShellContext(). This ensures that the shell stays intact until all settings are validated.

Summary by CodeRabbit

  • New Features

    • Introduced new shell context release services in various modules for improved management.
  • Refactor

    • Restructured settings handling in Email, Facebook, Twitter, Azure AI Search, and Security modules to leverage new shell context release services.
  • Bug Fixes

    • Adjusted settings update processes in multiple modules to ensure consistent configuration changes.
  • Documentation

    • Updated release notes and internal documentation to reflect changes in shell context management and settings updates.
  • Chores

    • Streamlined codebase by removing outdated dependencies and methods across modules.

Copy link
Contributor

coderabbitai bot commented Apr 25, 2024

Walkthrough

Walkthrough

The modifications across OrchardCore modules primarily focus on streamlining the management of shell contexts. This includes removing direct dependencies on IShellHost and ShellSettings in various settings display drivers and replacing them with IShellContextReleaseService or IDeferredShellContextReleaseService. This change centralizes the shell context release process, making it more efficient and less prone to errors during multiple settings updates.

Changes

File Path Change Summary
.../Azure/Drivers/AzureEmailSettingsDisplayDriver.cs
.../Smtp/Drivers/SmtpSettingsDisplayDriver.cs
.../Email/Drivers/EmailSettingsDisplayDriver.cs
.../Facebook/Drivers/FacebookSettingsDisplayDriver.cs
.../Facebook/Login/Drivers/FacebookLoginSettingsDisplayDriver.cs
.../Twitter/Drivers/TwitterSettingsDisplayDriver.cs
.../Search.AzureAI/Drivers/AzureAISearchSettingsDisplayDriver.cs
.../Security/Drivers/SecuritySettingsDisplayDriver.cs
.../Settings/Drivers/DefaultSiteSettingsDisplayDriver.cs
.../Sms/Drivers/SmsSettingsDisplayDriver.cs
.../Sms/Drivers/TwilioSettingsDisplayDriver.cs
.../Twitter/Signin/Drivers/TwitterSigninSettingsDisplayDriver.cs
Removed dependencies on IShellHost and ShellSettings, added IShellContextReleaseService or IDeferredShellContextReleaseService. Updated UpdateAsync methods to manage shell context more efficiently.
.../OrchardCore.Modules.Extensions/ServiceCollectionExtensions.cs
.../OrchardCore/Shell/ShellContextReleaseService.cs
.../OrchardCore/Shell/DeferredShellContextReleaseService.cs
Introduced new services and classes for managing shell context release, added necessary registrations and configurations in service collections.
.../OrchardCore.Abstractions/Shell/IShellContextReleaseService.cs
.../OrchardCore.Abstractions/Shell/IDeferredShellContextReleaseService.cs
New interfaces introduced to manage shell context release processes.

Assessment against linked issues

Objective Addressed Explanation
Settings driver should not directly release the shell settings (#15884) The changes made in various settings display drivers ensure that the shell context is not directly released by them but managed through IShellContextReleaseService or IDeferredShellContextReleaseService, aligning with the objective of reducing unnecessary tenant reloading.

Recent Review Details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits Files that changed from the base of the PR and between 04087a0 and a2b75a5.
Files selected for processing (1)
  • src/OrchardCore.Modules/OrchardCore.Settings/Controllers/AdminController.cs (5 hunks)
Files skipped from review as they are similar to previous changes (1)
  • src/OrchardCore.Modules/OrchardCore.Settings/Controllers/AdminController.cs

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>.
    • 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 generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @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.

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 as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration 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.

@MikeAlhayek
Copy link
Member Author

@Skrypt it seems that some of the display drivers were not updated in #15488. I made the changes here along with adding Queue site.QueueReleaseShellContext()

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: 8

Out of diff range and nitpick comments (13)
src/OrchardCore.Modules/OrchardCore.Search.Elasticsearch/Drivers/ElasticSettingsDisplayDriver.cs (1)

Line range hint 136-138: Queue shell context release only after changes.

Consider queuing the release of the shell context only after confirming that changes have been made to the settings. This avoids unnecessary operations if no settings were altered.

src/docs/releases/1.9.0.md (12)

Line range hint 7-7: Add a space between sentences for better readability.


Line range hint 9-9: Add a space between sentences for better readability.


Line range hint 25-25: Correct the typo: change "nodep" to "node".

- services.AddSingleton<IAdminNodeProviderFactory>(new AdminNodeProviderFactory<PlaceholderAdminNode>());
+ services.AddSingleton<IAdminNodeProviderFactory>(new AdminNodeProviderFactory<PlaceholderAdminNode>());

Line range hint 39-39: The phrase "sub-classes" is normally spelled as one word: "subclasses".


Line range hint 84-84: Consider adding a comma after "work" for better readability.

- The `OrchardCore_Twitter` key continues to work but will be deprecated in a future release.
+ The `OrchardCore_Twitter` key continues to work, but will be deprecated in a future release.

Line range hint 195-195: Add a space between sentences for better readability.


Line range hint 197-197: Add a space between sentences for better readability.


Line range hint 199-199: Add a space between sentences for better readability.


Line range hint 238-238: Add a space between sentences for better readability.


Line range hint 238-238: Add a space between sentences for better readability.


398-398: Add a space between sentences for better readability.


398-398: Add a space between sentences for better readability.

@Piedone
Copy link
Member

Piedone commented Apr 26, 2024

When there's no corresponding issue, and especially if dozens of files are changed in non-trivial ways, please always add a description to the PR. What's the goal and why? What's the context? Otherwise, the first step for the reviewer is to try to reverse-engineer these from the changes, which makes it much harder. A lot more of my brain capacity remains for the actual review if I don't have to deplete it on step zero :).

@MikeAlhayek
Copy link
Member Author

@Piedone start by looking at the release file where I document the change. I'll copy and paste it in the description

@MikeAlhayek MikeAlhayek changed the title Add a way to queue releasing shell cotext from setting display drivers Add a way to queue releasing shell context from setting display drivers Apr 26, 2024
@Piedone
Copy link
Member

Piedone commented Apr 26, 2024

Much better, thanks!

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: 0

Out of diff range and nitpick comments (8)
src/docs/releases/1.9.0.md (8)

Line range hint 7-7: Add a space between sentences for better readability.

- Release date: Not yet released  ## Breaking Changes
+ Release date: Not yet released. ## Breaking Changes

Line range hint 9-9: Correct the spelling mistake.

- The utilization of [Newtonsoft.Json](https://www.nuget.org/packages/Newtonsoft.Json) has been discontinued in both **YesSql** and **OrchardCore**.
+ The utilization of [Newtonsoft.Json](https://www.nuget.org/packages/Newtonsoft.Json) has been discontinued in both **YesSQL** and **OrchardCore**.

Line range hint 9-9: Add a space between sentences for better readability.

- Instead, we have transitioned to utilize `System.Text.Json` due to its enhanced performance capabilities.
+ Instead, we have transitioned to utilize `System.Text.Json` due to its enhanced performance capabilities. 

Line range hint 84-84: Correct the spelling mistake.

- The `Twitter` module has been rebranded to `X`.
+ The `Twitter` module has been rebranded to `X`. 

Line range hint 203-203: Correct the spelling mistake.

- In the past, we utilized the injection of `ISmsProvider` for sending SMS messages.
+ In the past, we utilized the injection of `ISmsProvider` for sending SMS messages. 

Line range hint 209-209: Correct the spelling mistake.

- Previously, these signatures accepted the `BuildEditorContext` parameter.
+ Previously, these signatures accepted the `BuildEditorContext` parameter. 

Line range hint 286-286: Add a space between sentences for better readability.

- When incorporating `INavigationProvider` in your project, you can now utilize `NavigationHelper.IsAdminMenu(name)` instead of the previous approach using `string.Equals(name, "admin", StringComparison.OrdinalIgnoreCase)`.
+ When incorporating `INavigationProvider` in your project, you can now utilize `NavigationHelper.IsAdminMenu(name)` instead of the previous approach using `string.Equals(name, "admin", StringComparison.OrdinalIgnoreCase)`. 

Line range hint 346-346: Correct the spelling mistake.

- You can reach Create at `~/Admin/Person/Create` (route name `PersonCreate`) and Edit for the person whose identifier string is "john-doe" at `~/Admin/Person/john-doe` (route name `PersonEdit`).
+ You can reach Create at `~/Admin/Person/Create` (route name `PersonCreate`) and edit for the person whose identifier string is "john-doe" at `~/Admin/Person/john-doe` (route name `PersonEdit`).

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: 2

Out of diff range and nitpick comments (5)
src/docs/releases/1.9.0.md (5)

Line range hint 7-9: Add a space between sentences for better readability.

- released  ## Breaking Changes  ### Drop `Newtonsoft.Json` Support  The utilization of [Newtonsoft.Json](https://www.nuget.org/packages/Newtonsoft.Json) has been discontinued in both **YesSql** and **OrchardCore**. Instead, we have transitioned to utilize `System.Text.Json` due to its enhanced performance capabilities. To ensure compatibility with `System.Text.Json` during the serialization or deserialization of objects, the following steps need to be undertaken:
+ released
+
+ ## Breaking Changes
+
+ ### Drop `Newtonsoft.Json` Support
+
+ The utilization of [Newtonsoft.Json](https://www.nuget.org/packages/Newtonsoft.Json) has been discontinued in both **YesSql** and **OrchardCore**. Instead, we have transitioned to utilize `System.Text.Json` due to its enhanced performance capabilities. To ensure compatibility with `System.Text.Json` during the serialization or deserialization of objects, the following steps need to be undertaken:

Line range hint 25-25: Correct the typo in "admin menu nodep".

- services.AddSingleton<IAdminNodeProviderFactory>(new AdminNodeProviderFactory<PlaceholderAdminNode>());
+ services.AddSingleton<IAdminNodeProviderFactory>(new AdminNodeProviderFactory<PlaceholderAdminNodeProvider>());

Line range hint 39-39: The term "sub-classes" is normally spelled as one word: "subclasses".

- services.AddJsonDerivedTypeInfo<UrlCondition, Condition>();
+ services.AddJsonDerivedTypeInfo<UrlCondition, ConditionSubclass>();

Line range hint 84-84: Add a comma before "but" when it connects two independent clauses.

- The `OrchardCore_Twitter` key continues to work but will be deprecated in a future release.
+ The `OrchardCore_Twitter` key continues to work, but will be deprecated in a future release.

Line range hint 197-197: Correct the grammatical number: "text file" should be plural "text files".

- Additionally, if you need to enable indexing for text file with `.txt`, `.md` extensions, you will need the `OrchardCore.Media.Indexing.Text` feature.
+ Additionally, if you need to enable indexing for text files with `.txt`, `.md` extensions, you will need the `OrchardCore.Media.Indexing.Text` feature.

src/docs/releases/1.9.0.md Outdated Show resolved Hide resolved
MikeAlhayek and others added 2 commits April 28, 2024 15:32
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@Piedone
Copy link
Member

Piedone commented Apr 29, 2024

Is the PR ready for another review?

@MikeAlhayek
Copy link
Member Author

Is the PR ready for another review?

@Piedone yes

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: 0

Out of diff range and nitpick comments (4)
src/docs/releases/1.9.0.md (4)

Line range hint 7-9: Add a space after the period in the sentence about Newtonsoft.Json support.

- The utilization of [Newtonsoft.Json](https://www.nuget.org/packages/Newtonsoft.Json) has been discontinued in both **YesSql** and **OrchardCore**.Instead, we have transitioned to utilize `System.Text.Json` due to its enhanced performance capabilities.
+ The utilization of [Newtonsoft.Json](https://www.nuget.org/packages/Newtonsoft.Json) has been discontinued in both **YesSql** and **OrchardCore**. Instead, we have transitioned to utilize `System.Text.Json` due to its enhanced performance capabilities.

Line range hint 88-90: Consider adding a comma before "which" in the description of the Login.cshtml changes for clarity.

- The previous `AfterLogin` zone, which allowed filters for injecting shapes has been replaced.
+ The previous `AfterLogin` zone, which allowed filters for injecting shapes, has been replaced.

Line range hint 203-205: Clarify the necessity of enabling the Twilio provider in the SMS Module section to avoid confusion.

- Additionally, `Twilio` provider is no longer enabled by default. If you want to use Twilio SMS provider, you must enable the provider by visiting the email settings `Configuration` > `Settings` > `Email` and see the `Twilio` tab.
+ Additionally, the `Twilio` provider is no longer enabled by default. If you want to use the Twilio SMS provider, you must explicitly enable it by visiting the email settings under `Configuration` > `Settings` > `Email` and selecting the `Twilio` tab.

Line range hint 195-199: Add a space after the period in the sentence about enabling the .PDF file indexing.

- Now, if you want to continue to index `.PDF` file you'll need to enable the `OrchardCore.Media.Indexing.Pdf` feature.
+ Now, if you want to continue to index `.PDF` file, you'll need to enable the `OrchardCore.Media.Indexing.Pdf` feature.

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

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: 2

Out of diff range and nitpick comments (9)
src/OrchardCore/OrchardCore.Abstractions/Shell/IDeferredShellContextReleaseService.cs (2)

8-10: Ensure the method RequestRelease is adequately documented to explain its effects and any side conditions.


13-15: Clarify the documentation for SuspendReleaseRequest to specify what happens if called multiple times or after RequestRelease.

src/docs/releases/1.9.0.md (7)

Line range hint 192-192: Ensure fenced code blocks are surrounded by blank lines for proper markdown rendering.


Line range hint 193-193: Headings should be surrounded by blank lines to maintain consistency and readability in markdown files.


Line range hint 250-250: Remove trailing spaces to clean up the markdown file and adhere to best practices.


Line range hint 261-261: Avoid multiple consecutive blank lines to maintain a clean and professional appearance in the markdown file.


Line range hint 358-358: Specify a language for code blocks to enable syntax highlighting and improve readability.


Line range hint 360-360: Ensure fenced code blocks are surrounded by blank lines for proper markdown rendering.


Line range hint 361-361: Lists should be surrounded by blank lines to maintain consistency and readability in markdown files.

Piedone

This comment was marked as outdated.

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

Out of diff range and nitpick comments (4)
src/docs/releases/1.9.0.md (4)

Line range hint 7-9: Add a space after periods to separate sentences for better readability.

- released  ## Breaking Changes  ### Drop `Newtonsoft.Json` Support  The utilization of [Newtonsoft.Json](https://www.nuget.org/packages/Newtonsoft.Json) has been discontinued in both **YesSql** and **OrchardCore**. Instead, we have transitioned to utilize `System.Text.Json` due to its enhanced performance capabilities. To ensure compatibility with `System.Text.Json` during the serialization or deserialization of objects, the following steps need to be undertaken:
+ released. ## Breaking Changes  ### Drop `Newtonsoft.Json` Support  The utilization of [Newtonsoft.Json](https://www.nuget.org/packages/Newtonsoft.Json) has been discontinued in both **YesSql** and **OrchardCore**. Instead, we have transitioned to utilize `System.Text.Json` due to its enhanced performance capabilities. To ensure compatibility with `System.Text.Json` during the serialization or deserialization of objects, the following steps need to be undertaken:

Line range hint 25-25: Correct the typo in "nodep" to "node".

- services.AddSingleton<IAdminNodeProviderFactory>(new AdminNodeProviderFactory<PlaceholderAdminNode>());
+ services.AddSingleton<IAdminNodeProviderFactory>(new AdminNodeProviderFactory<PlaceholderAdminNode>());

Line range hint 39-39: The phrase "sub-classes" is typically written as one word: "subclasses".

- services.AddJsonDerivedTypeInfo<UrlCondition, Condition>();
+ services.AddJsonDerivedTypeInfo<UrlCondition, Condition>();

Line range hint 195-195: Add a comma after ".PDF" for better readability.

- Now, if you want to continue to index `.PDF` file you'll need to enable the `OrchardCore.Media.Indexing.Pdf` feature.
+ Now, if you want to continue to index `.PDF` file, you'll need to enable the `OrchardCore.Media.Indexing.Pdf` feature.

src/docs/releases/1.9.0.md Outdated Show resolved Hide resolved
@MikeAlhayek
Copy link
Member Author

@Piedone I like to do one last rename here. What do you think of IShellReleaseManager instead of IDeferredShellContextReleaseService.

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: 4

Out of diff range and nitpick comments (5)
src/OrchardCore.Modules/OrchardCore.Security/Drivers/SecuritySettingsDisplayDriver.cs (1)

Line range hint 77-102: Consider making the shell release request conditional on the model state's validity to avoid unnecessary operations.

- _shellReleaseManager.RequestRelease();
+ if (context.Updater.ModelState.IsValid) {
+     _shellReleaseManager.RequestRelease();
+ }
src/docs/releases/1.9.0.md (4)

Line range hint 7-9: Add a space between sentences for better readability.

- The utilization of [Newtonsoft.Json](https://www.nuget.org/packages/Newtonsoft.Json) has been discontinued in both **YesSql** and **OrchardCore**.Instead, we have transitioned to utilize `System.Text.Json` due to its enhanced performance capabilities.
+ The utilization of [Newtonsoft.Json](https://www.nuget.org/packages/Newtonsoft.Json) has been discontinued in both **YesSql** and **OrchardCore**. Instead, we have transitioned to utilize `System.Text.Json` due to its enhanced performance capabilities.

Line range hint 9-9: Correct the spelling of "YesSql" to "YesSQL" for consistency with common naming conventions.

- The utilization of [Newtonsoft.Json](https://www.nuget.org/packages/Newtonsoft.Json) has been discontinued in both **YesSql** and **OrchardCore**.
+ The utilization of [Newtonsoft.Json](https://www.nuget.org/packages/Newtonsoft.Json) has been discontinued in both **YesSQL** and **OrchardCore**.

Line range hint 25-25: Correct the typo in "nodep" to "node".

- services.AddSingleton<IAdminNodeProviderFactory>(new AdminNodeProviderFactory<PlaceholderAdminNode>());
+ services.AddSingleton<IAdminNodeProviderFactory>(new AdminNodeProviderFactory<PlaceholderAdminNode>());

Line range hint 39-39: Combine "sub-classes" into one word: "subclasses".

- services.AddJsonDerivedTypeInfo<UrlCondition, Condition>();
+ services.AddJsonDerivedTypeInfo<UrlCondition, Condition>();

@MikeAlhayek
Copy link
Member Author

@Piedone anything else you like to add here, or should we merge it?

@Piedone
Copy link
Member

Piedone commented May 1, 2024

As you've seen, I'm quite responsive with reviews, so rest assured that if you requested review, or asked something, I'll be there shortly :).

@Piedone Piedone merged commit f0bc6d3 into main May 1, 2024
7 checks passed
@Piedone Piedone deleted the ma/queue-release-settings branch May 1, 2024 22:27

ShellScope.AddDeferredTask(async scope =>
{
if (!_release)
Copy link
Member

Choose a reason for hiding this comment

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

Does it work? The closure is not obvious here, it's ambiguous if this will be the value when the lambda is added or if it will evaluate the boolean once it is executed (what you want here).

A more robust option could be to set a flag in ShellScope, with ShellScope.Set/Get.

Copy link
Member

Choose a reason for hiding this comment

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

I tried and it did work, though perhaps not in an exhaustive way.

Copy link
Member

Choose a reason for hiding this comment

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

I was sure it works and you tried it, but reading the code I wondered how the value was copied. Which is why we usually have to copy it in closures to be sure it's not changed from the outside. I think the current implementation is fine, we could add a comment to disambiguate. I will definitely have the same question next time I see it.

Copy link
Member Author

Choose a reason for hiding this comment

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

Indeed it works @sebastienros I also thought it is very weird to get that value with in the deferred call back.

Copy link
Member Author

Choose a reason for hiding this comment

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

@sebastienros I made the changes you requested here #15960

MikeAlhayek added a commit that referenced this pull request May 2, 2024
…rs (#15875)

Co-authored-by: Zoltán Lehóczky <zoltan.lehoczky@lombiq.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
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.

Settings driver should not directly release the shell settings
3 participants