Skip to content
Success

Changes

Summary

  1. add thread-safe KeyValueCache (commit: 918b0a2) (details)
  2. use new KeyValueCache class as regex cache (commit: 6e6a465) (details)
  3. add test for ProtoUrlConfig (commit: a0c1dfc) (details)
  4. Add name value to applying patch messages (commit: 7271725) (details)
  5. Fix StreamLogger ignoring messages (commit: cfaac6a) (details)
  6. Redo logging interface (commit: d4d0fb7) (details)
  7. Initialize LogMessage from old LogMessage (commit: fc74f1f) (details)
  8. Don't put date on every log message (commit: 07afe29) (details)
  9. Initialize timestamp with log message (commit: 0a2c842) (details)
  10. ModLogger -> PrefixLogger (commit: a8bcad2) (details)
  11. Unnecessary using (commit: 5711994) (details)
  12. Use better assertion (commit: 3650d69) (details)
  13. Mark disposables as sealed (commit: 5f7071d) (details)
  14. Another unnecessary using (commit: 28bd925) (details)
  15. Use custom code to lookup file by url (commit: 5e5314e) (details)
  16. Put extension on cache URLs (commit: ae0d7a7) (details)
  17. Alphabetize .csproj files (commit: 69ab085) (details)
  18. improve file sha generator (commit: e1bed94) (details)
  19. Convert UrlBuilder cfg test to theory (commit: a27cb3d) (details)
  20. Set FileType based on common types (commit: 3d8594d) (details)
  21. unnecessary using (commit: eb3db60) (details)
  22. make StreamLoggerTest.TestLog work on \n platforms (commit: 9795e36) (details)
  23. Improve TestConfigNodeTest (commit: 9311cfb) (details)
  24. Remove redundant parent class (commit: ee5995f) (details)
  25. Fix TestConfigNode's handling of escaped chars (commit: 3e4a9f9) (details)
  26. Clean up test a bit (commit: 8e5c29a) (details)
  27. Fix DeepCopy handling of escaped values (commit: 0feef88) (details)
  28. Fix ModifyNode handling of escaped characters (commit: 96201a7) (details)
  29. Ensure tabs and newlines don't break cache (commit: f2fba86) (details)
  30. v4.0.3 (commit: 3d85ddc) (details)
Commit 918b0a24de7f604b31a058395e4e2709c7dc8ede by blowfishpro
add thread-safe KeyValueCache
(commit: 918b0a2)
The file was modified ModuleManager/ModuleManager.csproj (diff)
The file was addedModuleManagerTests/Collections/KeyValueCacheTest.cs
The file was addedModuleManager/Collections/KeyValueCache.cs
The file was modified ModuleManagerTests/ModuleManagerTests.csproj (diff)
Commit 6e6a465c4a04578772eb989b9f2132b3dd4b4d56 by blowfishpro
use new KeyValueCache class as regex cache
Makes it thread safe - doesn't matter in production but might matter in
tests which can be run in parallel
(commit: 6e6a465)
The file was modified ModuleManager/MMPatchLoader.cs (diff)
The file was addedModuleManagerTests/ProtoUrlConfigTest.cs
The file was modified ModuleManagerTests/ModuleManagerTests.csproj (diff)
Commit 72717253e9d96fa05a9ca19603b8dbbe3964c444 by joeydwong
Add name value to applying patch messages
Makes debugging patches easier, since multiple root nodes can save the
same url
Resolves #143
(commit: 7271725)
The file was modified ModuleManager/ProtoUrlConfig.cs (diff)
The file was modified ModuleManagerTests/ProtoUrlConfigTest.cs (diff)
Commit cfaac6aa5031db26d8d84216f5e6885314a10306 by joeydwong
Fix StreamLogger ignoring messages
Resolves #145
(commit: cfaac6a)
The file was modified ModuleManager/Logging/StreamLogger.cs (diff)
The file was modified ModuleManagerTests/Logging/StreamLoggerTest.cs (diff)
Commit d4d0fb78126ad4979c7df55f47dd4e9fc1e55b9b by joeydwong
Redo logging interface
* Convert exceptions to strings rather than keeping a separate interface
for exceptions everywhere
* Log messages know how to convert themselves to log strings
* Simplified interface (including assertions) provided by extension
methods
(commit: d4d0fb7)
The file was modified ModuleManager/Logging/QueueLogRunner.cs (diff)
The file was modified ModuleManager/Logging/IBasicLogger.cs (diff)
The file was modified ModuleManagerTests/MMPatchLoaderTest.cs (diff)
The file was addedModuleManagerTests/LoggingAssertionHelpers.cs
The file was modified ModuleManager/Logging/ILogMessage.cs (diff)
The file was modified ModuleManagerTests/Logging/QueueLogRunnerTest.cs (diff)
The file was modified ModuleManagerTests/Logging/LogSplitterTest.cs (diff)
The file was modified ModuleManagerTests/Logging/ModLoggerTest.cs (diff)
The file was modified ModuleManager/ModuleManager.csproj (diff)
The file was removedModuleManager/Logging/ExceptionMessage.cs
The file was modified ModuleManagerTests/Logging/UnityLoggerTest.cs (diff)
The file was modified ModuleManager/Logging/LogSplitter.cs (diff)
The file was modified ModuleManager/Logging/QueueLogger.cs (diff)
The file was removedModuleManagerTests/Logging/ExceptionMessageTest.cs
The file was removedModuleManagerTests/Logging/NormalMessageTest.cs
The file was modified ModuleManager/Extensions/IBasicLoggerExtensions.cs (diff)
The file was modified ModuleManagerTests/Logging/QueueLoggerTest.cs (diff)
The file was modified ModuleManagerTests/Progress/PatchProgressTest.cs (diff)
The file was addedModuleManager/Logging/LogMessage.cs
The file was modified ModuleManagerTests/InGameTestRunnerTest.cs (diff)
The file was modified ModuleManagerTests/PatchApplierTest.cs (diff)
The file was addedModuleManagerTests/Logging/LogMessageTest.cs
The file was modified ModuleManagerTests/ModuleManagerTests.csproj (diff)
The file was modified ModuleManagerTests/Patches/EditPatchTest.cs (diff)
The file was modified ModuleManager/Logging/ModLogger.cs (diff)
The file was modified ModuleManagerTests/Logging/StreamLoggerTest.cs (diff)
The file was modified ModuleManager/Logging/UnityLogger.cs (diff)
The file was modified ModuleManager/Logging/StreamLogger.cs (diff)
The file was removedModuleManager/Logging/NormalMessage.cs
The file was modified ModuleManagerTests/Extensions/IBasicLoggerExtensionsTest.cs (diff)
Commit fc74f1fcda46031eb9b3139c7a56830b6728d01d by joeydwong
Initialize LogMessage from old LogMessage
with new message
only uses LogType from old message for now but more coming
(commit: fc74f1f)
The file was modified ModuleManager/Logging/ModLogger.cs (diff)
The file was modified ModuleManagerTests/Logging/LogMessageTest.cs (diff)
The file was modified ModuleManager/Logging/LogMessage.cs (diff)
Commit 07afe29d79f4260bbc6a3e6f517535ebc6afbba9 by joeydwong
Don't put date on every log message
Instead put it once at the top of the log
(commit: 07afe29)
The file was modified ModuleManagerTests/Logging/LogMessageTest.cs (diff)
The file was modified ModuleManager/Logging/LogMessage.cs (diff)
The file was modified ModuleManager/MMPatchRunner.cs (diff)
The file was modified ModuleManager/MMPatchLoader.cs (diff)
Commit 0a2c842ae3b141416b4a176f0fdb5fc1df438760 by joeydwong
Initialize timestamp with log message
So if it takes some time to actually get to the log it will display the
originating timestamp rather than the timestamp it was logged at
(commit: 0a2c842)
The file was modified ModuleManager/Logging/ILogMessage.cs (diff)
The file was modified ModuleManager/Logging/LogMessage.cs (diff)
The file was modified ModuleManagerTests/Logging/ModLoggerTest.cs (diff)
The file was modified ModuleManagerTests/Logging/LogMessageTest.cs (diff)
Commit a8bcad2adbb10413dd8b3175a0b61ef44390533c by joeydwong
ModLogger -> PrefixLogger
Explains what it does better
(commit: a8bcad2)
The file was addedModuleManager/Logging/PrefixLogger.cs
The file was removedModuleManagerTests/Logging/ModLoggerTest.cs
The file was modified ModuleManager/ModuleManager.csproj (diff)
The file was modified ModuleManager/ModuleManager.cs (diff)
The file was modified ModuleManager/PostPatchLoader.cs (diff)
The file was addedModuleManagerTests/Logging/PrefixLoggerTest.cs
The file was modified ModuleManagerTests/ModuleManagerTests.csproj (diff)
The file was removedModuleManager/Logging/ModLogger.cs
The file was modified ModuleManager/Progress/PatchProgress.cs (diff)
The file was modified ModuleManagerTests/Patches/PatchCompilerTest.cs (diff)
Commit 5f7071d88369e69beb0e2fc5a74d1a8d3305c159 by joeydwong
Mark disposables as sealed
Microsoft seems to recommend this
(commit: 5f7071d)
The file was modified ModuleManager/Logging/StreamLogger.cs (diff)
The file was modified ModuleManager/Collections/MessageQueue.cs (diff)
The file was modified ModuleManager/ModListGenerator.cs (diff)
Commit 5e5314e2d73e4ec237684793ec8975c2a2bc84ca by joeydwong
Use custom code to lookup file by url
Should be less gc-happy and potentially faster, though this step rarely
takes any signicant amount of time.
Allows extensions to be specified optionally.
Doesn't support <ksp_root>/Parts or <ksp_root>/Internals but probably a
bunch of assumptions in ModuleManager about that too.
(commit: 5e5314e)
The file was modified ModuleManager/MMPatchLoader.cs (diff)
The file was modified ModuleManager/ModuleManager.csproj (diff)
The file was modified ModuleManagerTests/ModuleManagerTests.csproj (diff)
The file was addedModuleManagerTests/Extensions/UrlDirExtensionsTest.cs
The file was addedModuleManager/Extensions/UrlDirExtensions.cs
Commit ae0d7a7c50df234e141909eedb2ceb6c5de6f3d2 by joeydwong
Put extension on cache URLs
Makes trailing spaces not break things
Resolves #121
(commit: ae0d7a7)
The file was modified ModuleManager/ModuleManager.cs (diff)
The file was addedModuleManagerTests/Extensions/UrlFileExtensionsTest.cs
The file was modified ModuleManager/ModuleManager.csproj (diff)
The file was modified ModuleManager/MMPatchLoader.cs (diff)
The file was modified ModuleManager/Progress/PatchProgress.cs (diff)
The file was modified ModuleManagerTests/ModuleManagerTests.csproj (diff)
The file was addedModuleManager/Extensions/UrlFileExtensions.cs
The file was modified ModuleManager/ModuleManager.csproj (diff)
The file was modified ModuleManagerTests/ModuleManagerTests.csproj (diff)
Commit e1bed9419ca20a15e04ba24e8bfe7e69563259e4 by blowfishpro
improve file sha generator
* Actually dispose the sha when we're done
* Use a better way of converting bytes to hex strings (hopefully less
gc)
* Test byte array to hex string conversion
(commit: e1bed94)
The file was modified ModuleManager/Utils/FileUtils.cs (diff)
The file was modified ModuleManagerTests/ModuleManagerTests.csproj (diff)
The file was modified ModuleManager/ModuleManager.csproj (diff)
The file was addedModuleManager/Extensions/ByteArrayExtensions.cs
The file was addedModuleManagerTests/Extensions/ByteArrayExtensionsTest.cs
Commit a27cb3df58b5b2218cfff2b0027959ce7332864f by blowfishpro
Convert UrlBuilder cfg test to theory
allows more inline data to be added
(commit: a27cb3d)
The file was modified TestUtilsTests/UrlBuilderTest.cs (diff)
The file was modified TestUtils/UrlBuilder.cs (diff)
Commit 3d8594dd855febd0024a0ac876ad7e8ce03d2848 by blowfishpro
Set FileType based on common types
Makes checking against them easier
(commit: 3d8594d)
The file was modified TestUtilsTests/UrlBuilderTest.cs (diff)
The file was modified TestUtils/UrlBuilder.cs (diff)
The file was modified ModuleManagerTests/Logging/StreamLoggerTest.cs (diff)
Commit 9795e3656b9e73a7ed1622d2b832002ad9b70d38 by blowfishpro
make StreamLoggerTest.TestLog work on \n platforms
line breaks are shorter which causes an extra null character to exist at
the end of the string, meaning that the default Trim() wasn't removing
that and the newline
(commit: 9795e36)
The file was modified ModuleManagerTests/Logging/StreamLoggerTest.cs (diff)
Commit 9311cfb45507323f3f56f315dbda61f5034a31b0 by blowfishpro
Improve TestConfigNodeTest
Strictly assert the structure of the node
(commit: 9311cfb)
The file was modified TestUtilsTests/TestConfigNodeTest.cs (diff)
Commit ee5995f6196cfe58f2f646b1f8f8f847b32b9f0d by blowfishpro
Remove redundant parent class
(commit: ee5995f)
The file was modified TestUtils/TestConfigNode.cs (diff)
Commit 3e4a9f998ecd40118e07bce7c655da6fb15a8442 by blowfishpro
Fix TestConfigNode's handling of escaped chars
KSP removes these automatically, so we want to avoid that by
constructing the Value ourselves
(commit: 3e4a9f9)
The file was modified TestUtilsTests/TestConfigNodeTest.cs (diff)
The file was modified TestUtils/TestConfigNode.cs (diff)
Commit 8e5c29ad0983157c88116085d4745e125941a416 by blowfishpro
Clean up test a bit
Use AssertValue method Use AssertEmpty rather than asserting count zero
(commit: 8e5c29a)
The file was modified ModuleManagerTests/Extensions/ConfigNodeExtensionsTest.cs (diff)
Commit 0feef88557d938ee16b889ba5685db307be2c798 by blowfishpro
Fix DeepCopy handling of escaped values
KSP removes these in AddValue, we can circumvent that by constructing
the Value ourselves
(commit: 0feef88)
The file was modified ModuleManager/Extensions/ConfigNodeExtensions.cs (diff)
The file was modified ModuleManagerTests/Extensions/ConfigNodeExtensionsTest.cs (diff)
Commit 96201a72d6c1037c95dc7f98da8177c25ee867f0 by blowfishpro
Fix ModifyNode handling of escaped characters
new AddValueSafe method to handle this
use safe ShallowCopyFrom rather than ConfigNode's CopyTo as recursion is
not necessary and it handles escaped characters correctly
(commit: 96201a7)
The file was modified ModuleManagerTests/Extensions/ConfigNodeExtensionsTest.cs (diff)
The file was modified ModuleManager/Extensions/ConfigNodeExtensions.cs (diff)
The file was modified ModuleManager/MMPatchLoader.cs (diff)
The file was modified ModuleManagerTests/MMPatchLoaderTest.cs (diff)
Commit f2fba86ce98bcba5ab13b7d3ce6c6fd7e51e74ea by blowfishpro
Ensure tabs and newlines don't break cache
Explicitly escape \n and \t which the localizer unescapes when game
database is initially loaded
(commit: f2fba86)
The file was modified ModuleManager/MMPatchLoader.cs (diff)
The file was modified ModuleManager/Properties/AssemblyInfo.cs (diff)