Skip to content

Releases: TetronIO/MIMSyncScheduler

v2.0.0

24 Nov 09:45
f3181a4

Choose a tag to compare

🎉 v2.0.0 - Major Modernization Release

A complete architectural modernization of the battle-tested MIMSyncScheduler while maintaining full backwards compatibility. This release brings modern development practices, comprehensive testing, and extensive documentation to the proven MIM synchronization scheduler.

🌟 Highlights

  • 37 comprehensive tests with 100% pass rate
  • A+ code quality grade with all review issues resolved
  • Dependency injection architecture for better testability
  • GitHub Actions CI/CD with automated testing
  • Comprehensive documentation with examples and troubleshooting
  • Configurable log file modes (Daily or PerExecution)
  • 100% backwards compatible with existing schedules

✨ What's New

Configurable Log File Mode

New LogFileMode configuration option with two modes:

  • Daily (default) - One log file per day: YYYYMMDD-scheduler.log
  • PerExecution - One log file per execution: YYYYMMDDHHmmss-scheduler.log

Add to your App.config:

<add key="LogFileMode" value="Daily" />

Modern Architecture

  • Complete refactoring to dependency injection pattern
  • Five service interfaces for clean separation of concerns
  • All external dependencies abstracted and mockable
  • Test coverage across ProcessExecutor, TaskExecutor, ScheduleExecutor, and Models

Comprehensive Documentation

  • 📚 Extensively rewritten README.md with modern standards
  • 📖 Development guide with Architecture Decision Records (ADRs)
  • 🧪 Test strategy documentation with coverage details
  • 🔍 Code review findings and resolutions
  • 📝 AI session logs for transparency

Quality Improvements

  • GitHub Actions CI/CD with automated build and test
  • Modern SDK-style project format
  • Proper src/tests directory structure
  • All linting warnings resolved

📦 What's Included

All battle-tested features from the original 2013 implementation:

Task Types:

  • ManagementAgent (MIM run profiles)
  • PowerShell scripts
  • VBScripts
  • Executables
  • SQL Server commands
  • Block (parallel execution)
  • ContinuationCondition (conditional execution)

Execution Features:

  • Parallel execution for optimal performance
  • Conditional execution based on detected changes
  • Smart export triggering
  • Automatic retry on SQL deadlocks
  • What-If mode for safe testing
  • Configurable logging with Serilog

🔄 Migration Notes

Upgrading from v1.0.x is seamless:

  1. Schedule files - No changes required (fully backwards compatible)
  2. App.config - Add optional LogFileMode setting (defaults to Daily)
  3. ℹ️ Log file naming - Daily mode now uses date-first format (YYYYMMDD-scheduler.log)
  4. No breaking changes to functionality or API

📊 Technical Details

  • Test Coverage: 45 tests (37 original + 8 new logging tests)
  • Code Quality: A+ grade
  • Architecture: Service-oriented with dependency injection
  • .NET Framework: 4.8.1
  • Platform: Windows Server 2016+
  • MIM Compatibility: MIM 2016 / MIM 2019

⚠️ Known Limitations

  • Requires local administrator privileges for WMI access to MIM
  • Parallel execution should not be used for synchronisation run profiles (FS/DS)
  • PowerShell scripts must use Write-Output instead of Write-Host

📝 Full Changelog

See CHANGELOG.md for complete details.

🙏 Acknowledgments

Originally developed in 2013 and battle-tested across multiple large-scale MIM deployments. This modernization brings the codebase up to current standards while preserving all the reliability and functionality that users depend on.


Full Changelog: v1.0.9104.28823...v2.0.0

v1.0.9104.28823

04 Dec 16:15

Choose a tag to compare

Full Changelog: v1.0.9097.36898...v1.0.9104.28823

Main change: Built for x64 platforms to enable PowerShell modules to be imported in scripts.

Note: PowerShell scripts needing to import third-party modules must use the following approach:

Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Install-Module -Name $module_name -AllowClobber -Scope CurrentUser -Force
Import-Module $module_name

v1.0.9091.28389

21 Nov 16:25

Choose a tag to compare

MIMSyncScheduler v1.0.7761.19659

01 Apr 10:02

Choose a tag to compare

Spaces in VBS task paths are now supported.
Default logging level set to Debug.

MIMSyncScheduler v1.0.7759.21022

30 Mar 10:59

Choose a tag to compare

Executable tasks now log executable output at Debug and Error levels. Also removed executable timeout functionality as this was problematic.

MIMSyncScheduler v1.0.7755.30985

26 Mar 17:15

Choose a tag to compare

Adding support for scheduling .vbs scripts.
Fixed a PowerShell script run issue.

MIMSyncScheduler v1.0.7720.19396

19 Feb 10:56

Choose a tag to compare

Minor updates, main reason for release is to zip up the files to make it easy to download :)

MIMSyncScheduler v1.0.7717.19958

16 Feb 11:11

Choose a tag to compare

Initial GitHub release.

Building on eight years of proven production use against some of the largest MIM Sync solutions.