Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Added sub-dependencies of AspNetWebApi to package #6227

Merged
merged 1 commit into from
Dec 6, 2024

Conversation

valadas
Copy link
Contributor

@valadas valadas commented Nov 29, 2024

This may fix #6222 but I ran out of time to test, a clean install did work fine and that's all I had time to test for now.

I think there are a couple other dlls in the issue we could handle here or elsewhere and we need to test upgrade scenarios from 9.13.4,5,6 to be sure.

Summary

This may fix dnnsoftware#6222 but I ran out of time to test, a clean install did work fine and that's all I had time to test for now.

I think there are a couple other dlls in the issue we could handle here or elsewhere and we need to test upgrade scenarios from 9.13.4,5,6 to be sure.
@valadas valadas added this to the 9.13.7 milestone Nov 29, 2024
@valadas
Copy link
Contributor Author

valadas commented Nov 30, 2024

@bdukes do you think this is the right way or we should have one package per dll? For context those DLLs are all pulled from sub-dependecies of bumping this one, so it looks to me like this way makes sense.

@valadas valadas requested a review from bdukes November 30, 2024 02:16
@valadas
Copy link
Contributor Author

valadas commented Nov 30, 2024

And @iJungleboy does this also make sense to you, can you test the build artifact here and see if that works out https://dev.azure.com/dotnet/DNN/_build/results?buildId=111961&view=artifacts&pathAsName=false&type=publishedArtifacts

@iJungleboy
Copy link
Contributor

@tvatavuk could you test please?

@tvatavuk
Copy link

tvatavuk commented Dec 2, 2024

Thank you very much, @valadas! 👍 This fix is a significant achievement, and we truly appreciate that it was possible to resolve this issue in this way. It's especially commendable that the solution includes aligning other dependencies as part of the library extension under DNN versioning, complete with proper bindings.

Testing Results

I performed extensive testing using the fixed build of DNN (DNN_Platform_9.13.6-pr6227-0013_Install.zip or DNN_Platform_9.13.6-pr6227-0013_Upgrade.zip), and the results were as expected. There were no observed issues with DNN itself, so my primary focus was on assessing 2sxc's behavior across various sequences of DNN installation and upgrades.

Test Case 1

  • Steps:
    1. Clean install DNN_Platform_9.13.6-pr6227-0013_Install.zip
    2. Install ToSic.Sxc.Dnn.18.04.00_Install.zip
  • Result: Everything works as expected.

Test Case 2

  • Steps:
    1. Clean install DNN_Platform_9.13.4_Install.zip
    2. Install ToSic.Sxc.Dnn.18.04.00_Install.zip
    3. Upgrade to DNN_Platform_9.13.6-pr6227-0013_Upgrade.zip
  • Result: Everything works as expected.

Test Case 3

  • Steps:
    1. Clean install DNN_Platform_9.13.5_Install.zip
    2. Install ToSic.Sxc.Dnn.18.04.00_Install.zip
    3. Upgrade to DNN_Platform_9.13.6-pr6227-0013_Upgrade.zip
  • Result: Everything works as expected.

Test Case 4

  • Steps:
    1. Clean install DNN_Platform_9.13.4_Install.zip
    2. Install ToSic.Sxc.Dnn.18.04.00_Install.zip
    3. Upgrade to DNN_Platform_9.13.6_Upgrade.zip (breaks 2sxc)
    4. Upgrade to DNN_Platform_9.13.6-pr6227-0013_Upgrade.zip
  • Result: DNN is functional, but 2sxc remains broken.

Test Case 5

  • Steps:
    1. Clean install DNN_Platform_9.13.4_Install.zip
    2. Install ToSic.Sxc.Dnn.18.04.00_Install.zip
    3. Upgrade to DNN_Platform_9.13.5_Upgrade.zip (breaks 2sxc)
    4. Upgrade to DNN_Platform_9.13.6-pr6227-0013_Upgrade.zip
  • Result: DNN is functional, but 2sxc remains broken.

Summary of Findings

The fix in PR #6227 ensures that future DNN installations or upgrades no longer depend on System.Runtime.CompilerServices.Unsafe.dll. This change prevents breaking any extensions that rely on it, such as 2sxc.

Request for Next Steps

Given that existing upgrade packages for DNN_Platform_9.13.5_Upgrade.zip and DNN_Platform_9.13.6_Upgrade.zip currently break 2sxc and require manual intervention, it would be ideal to release the next minor DNN update as soon as possible. This would provide a resolution for broken extensions and ensure future upgrades remain stable.

</assembly>
<assembly>
<path>bin</path>
<name>Newtonsoft.Json.dll</name>
Copy link
Contributor

Choose a reason for hiding this comment

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

Is it correct that we include this here, as it is already included in another package (

)

I assume this is still ok as this is how third-party modules would behave, but I think this is the first time we have had this question come up.

Copy link
Contributor

Choose a reason for hiding this comment

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

It won't hurt anything to include it twice, though I would recommend removing it since it does have its own package.

Copy link
Contributor

Choose a reason for hiding this comment

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

I guess the right thing would be to add a dependency on the Newtonsoft package, rather than the DLL. But, if we're going to a quick fix here, what's in the PR doesn't break anything, so I'm fine leaving it as is.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hmm, good point on the package dependency, but if this package should try and install first, would it automatically reorder the package install order, anyone has experience with that scenario ? I would see a great benefit in using a package dependency as if the sub-dependency has sub-dependencies of its own, it solves that too.

Copy link
Contributor

@bdukes bdukes left a comment

Choose a reason for hiding this comment

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

Thanks @valadas!

Copy link
Contributor

@donker donker left a comment

Choose a reason for hiding this comment

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

Ultimately I think we need to rethink how we include .net dlls. But good stop gap fix.

@donker donker merged commit 2054203 into dnnsoftware:develop Dec 6, 2024
3 checks passed
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug]: DNN 9.13.6 Upgrade Overwrites Newer DLL, Breaking 2sxc Module
6 participants