Age | Commit message (Collapse) | Author |
|
|
|
Thread safety deserves a minor version bump
|
|
|
|
Make mono.addins thread safe
|
|
|
|
Update to Newtonsoft.Json 13.0.1
|
|
By default Microsoft.Net.Test.Sdk bring in Newtonsoft 9.0.1, but that has a vulnerbility to fix, so explicitly references the updated Newtonsoft with the fix, 13.0.1
|
|
Use Environment.SpecialFolder.UserProfile instead of Personal
|
|
Mono and .NET, before .NET 8, would resolve the
System.Environment.SpecialFolder.Personal enum value to the $HOME
directory. In .NET 8 this is changing. The Personal folder will now
refer to $XDG_DOCUMENTS_DIR if set or $HOME/Documents otherwise.
Replace all uses of Environment.SpecialFolder.Personal with
Environment.SpecialFolder.UserProfile so the code behaves as it did
before. UserProfile still maps to $HOME
dotnet/runtime#68610
|
|
Fix add-in downgrade issue
|
|
|
|
In some cases when add-ins are downgraded the add-in database may be left in
an invalid status. This happened because the add-in scanner did not properly
compare the versions of the old and the new add-in, so it did not uninstall
the old add-in when versions were different. This resulted on the old and
new descriptions of the add-in to be kept in the database, and it might
generate add-in dependency errors.
This also happened when upgrading, but since the engine always loads
add-ins with the highest version it doesn't matter if there is one with
lower version also registered.
The solution is to cache information about the old add-in version, and when
comparing ids, use that information.
Added unit tests.
|
|
|
|
Fix unit tests and run them in CI
|
|
|
|
|
|
Make sure the test repo dir is cleaned for every test run.
|
|
|
|
|
|
|
|
Split the context transaction class in two classes, one for extension context and one
for add-in engine (which is a context by itself). In this was there is no danger of
providing a context transaction to an add-in engine method and expect it to work.
Added method for stating an engine transaction from a context transaction.
Fixes tests.
|
|
Reduce the number of transactions being created by propagating them.
Created a transaction when the engine is initialized, so that the initial
loading of add-in roots is all done using a single transaction.
Fixed unit tests.
|
|
Store extension content data in a snapshot class, so that it is possible
to swap it all at once when committing a transaction.
Propagate transactions to more methods.
Events and virtual methods are now guaranteed to be executed sequentially,
and never concurrently.
Add threading docs.
|
|
|
|
|
|
|
|
And fixed threading issue.
|
|
|
|
|
|
Remove the concept of TreeNodeBuilder, it was getting
too complex. An easier solution is to add a transaction
mode to TreeNode, which when enabled handles children
in a list builder, and which is committed when ending
the context transaction.
Fixed several bugs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bump version
|
|
|
|
|
|
|
|
|
|
Delay add-in assembly load by lazy creating objects
|
|
Delay the lookup of condition and localizer types until the objects
are actually going to be used. Also avoid loading types for
type based extension points. Types were loaded to map them to
corresponding extension paths, but the mapping can be done
using the type name instead of the actual type instance.
|
|
|
|
Add support for nuget packaging format
|
|
|
|
|
|
|