@retailcoder retailcoder released this Apr 8, 2018

Assets 3

Installation instructions.

AppVeyor build on [master] - https://ci.appveyor.com/project/retailcoder/rubberduck/build/

This is our most stable release to date. Crash-on-exit problems are resolved, although the teardown process is still not 100% where it needs to be.

Known Issues

  • Unloading, and then re-loading Rubberduck from the VBE's Add-Ins Manager will no longer crash the host application and brick the VBE, however despite the MASSIVE improvements we are still somehow not fully unloading everything, which means memory consumption will not drop as much as it should upon unloading - and then re-loading will work, but the leaked objects will remain in memory. Unload+Reload via Add-Ins Manager therefore remains a not-recommended thing to do.
  • Some hosts may not be able to load Rubberduck. This needs to be investigated & resolved, but at least one instance of a per-user install cause Sage 300 ERP to no longer load Rubberduck, while Office hosts worked as expected on the same machine.
  • Please see our reported bugs for the complete backlog. Note that we also use critical and edge-case labels for known issues.


This release includes over 1K commits since the December 2017 v2.1; not a lot of these are visible, user-facing changes, but our internal API has had a little revolution, and upcoming releases will reap the benefits.

  • Per-user installation! Starting with this release, Rubberduck no longer requires administrative privileges to install. If you are already running a previous version, please manually uninstall before proceeding - the installer will know what to do and walk you through it. See Installation instructions for all the details.
  • Source Control Integration is gone! Given the sheer amount of issues this side-feature was causing, we have taken the decision to remove the Source Control panel. You can still easily export all the code files and use your favorite source control technology, but we've removed VBE-integrated Git support for now.
  • Code Metrics still needs some UI love, but this release enhances how the feature computes nesting levels.
  • Compile before Parse is also a new feature. Since forever, Rubberduck needed to be assuming to be working against compilable code. Starting with this release, you have the option to trigger a compilation on reparse, and Rubberduck won't try to parse a project that doesn't compile.
  • Host-independent Unit Testing. Also since forever, Rubberduck needed a reference to the host application's interop library, and that library needed to provide a way for us to invoke the test methods (e.g. Application.Run) - starting with this release, we can run unit tests in any VBA host.
  • New Inspections. Of course a Rubberduck release without a handful of new code inspections would be disappointing. We're not letting you down - there are now 66 implemented inspections in total!
    • DefTypeStatement locates Def[Type] statements and warns you about implicit typing happening in a module. Future enhancements will include a quick-fix to replace implicit declarations with explicit ones.
    • StepIsNotSpeciifed locates For loop statements with an implicit Step clause. Disabled by default.
    • StepOneIsRedundant locates For loop statements with an explicit Step 1 clause.
    • UnhandledOnErrorResumeNext warns about suppressed run-time errors that aren't restored by an On Error GoTo 0 statement.
    • UnreachableCase inspection evaluates Case expressions and is able to determine when a Case block is semantically unreachable.