-
-
Notifications
You must be signed in to change notification settings - Fork 345
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
pyRevit 5 #2087
Comments
@jmcouffin @sanzoghenzo @dosymep @dosymep
|
@eirannejad, I created draft-pr #2088 |
I just fixed dependabot to work against the develop-4 branch for now |
RevitNet8UpgradeTips.pdf |
For reference, assembly load contexts A way to prevent Dll conflicts that is partially implemented in some edge cases in dynamo https://devblogs.microsoft.com/powershell/resolving-powershell-module-assembly-dependency-conflicts/ |
further reference jeremytammik/RevitLookup#210 |
#2088 for reference to ilpack. |
for reference, pages 20+ and pages 35+ https://thebuildingcoder.typepad.com/files/migrating_to_net_core_8_webinar.pdf and https://thebuildingcoder.typepad.com/files/migrating_to_net_core_8.pdf |
for reference |
"👋 Hi there! It looks like there hasn't been any activity on this issue for the past 60 days. We understand that things can get busy. |
I realize I ignored most of the links @jmcouffin posted here, but some of them are very valuable for trying to fix the DLL hell! What I've learned so far: On revit < 2025, where we can't use any kind of isolation, the plugin loading order matters because if the plugin that is loaded first uses the latest version of a dependency, this is loaded fine and used by the other add-ins. On our part, we should worry about the dependency versions of the "built-in add-ins" such as dynamo, and stick to that version - but this means that we would need to use different versions for each Revit version! With revit 2025 / .Net8 we can use the AssemblyContext; RevitLookup solved this, by leveraging RevitToolkit by Nice3point that handles isolation from version 2025.0.1 RevitToolkit is versioned following Revit versions, and its objects are compatible with revit 2019+; so we can use this library for all the versions (but the AssemblyContext feature is obviously available only on 2025). One note: since RevitToolkit itself needs to be loaded in the main Revit context, it is subject by the dll hell, so we have to coordinate the version, at least with the one used by RevitLookup. For versions < 2025, RevitToolkit has a PS: I may start to use the RevitAddinManager, how come I didn't know of it? 😅 |
this is the reason why I wanted to get Nice3Point in the conversation. Maybe you could continue with your remarks on Telegram in the common conversation with @dosymep and Roman Karpovich |
I think it would be good if we had our own release, and if possible not to depend on other people's implementations, so as not to have problems with them in the future |
What's up with you .net developers always wanting to reinvent the wheel? 🤣 jokes aside, if you think the code we need is simple enough to implement ourselves, then by any means we should do it.
Oh, I didn't make the connection... 😅 but the library is well documented, so it shouldn't be too hard to adapt out code... or do you want him to do the work for us? |
because someone else's falls off without support, as we see even on our pyRevit project and RevitPythonShell and etc, the developer stopped updating it |
if he is willing to |
it was done |
Maybe it's my impostor syndrome, but my tendency to use third party libraries is because I think I'm not good enough at coding and maintaining that part of code (and because I'm too lazy). |
Unless this really is an issue of dll hell with potentially revitlookup, then yes, we should build our own, but in general, we would loose less energy reusing IMHO, Roman is not gone yet 😄 |
Wait, the preview version of RevitToolkit removed the AssemblyLoadContext Nice3point/RevitToolkit@239af2f I didn't manage to follow the link in the changelog, but I believe this is good news for us 😉 |
I don't even pull my dependencies into pyRevit, so that if anything happens, all the code is available here, etc. |
I finally got access to the autodesk feedback platform, and indeed Revit will add add-in isolation by setting some tags in the addin manifest, so it will ensure a "DLL paradise" from the start (no assembly will be shared unless you specify the same context name in the manifest); Analyzing the purged RevitToolkit code, I must agree with you @dosymep, it would be easier to only implement the things we need directly in pyRevit. Apologies for today's noise. But at this point, I would wait till april and forget all of this 🙈 |
You got me laughing! |
Priority 1:
main-4
anddevelop-4
for pyRevit 4* andmain
anddevelop
for pyRevit 5 @eirannejadnetcore
(try to keep compatibility withnetfx
- maybe compile pyRevit tonetstandard2
) @dosymepPriority 2:
The text was updated successfully, but these errors were encountered: