Releases: rubberduck-vba/Rubberduck
Rubberduck v2.5.0.5249-pre
AppVeyor build on [next] - https://ci.appveyor.com/project/rubberduck-vba/rubberduck/build/2.5.0.5249
Rubberduck v2.5.0.5244
Built with ❤️ by AppVeyor CI on [master] - https://ci.appveyor.com/project/rubberduck-vba/rubberduck/build/2.5.0.5244
VBA6 | VBA7 x86/x64
Installs without administrator privileges for the current Windows user login.
Local admin users should install for all users and register the add-in for their login at the end of the installation - add-in will need to be manually registered for other users on the same machine.
VB6
If Visual Studio 6.0 is executed with administrator privileges, Rubberduck should be installed for all users.
Changes
This version fixes 229 bugs, 74 of which were known issues at the time of the release of v2.4.1.0; 114 enhancement issues were closed in this development cycle, in 1,264 commits.
See the release announcement post on the project's blog for more details.
Rubberduck v2.4.1
Built with ❤️ by AppVeyor CI on [master] - https://ci.appveyor.com/project/rubberduck-vba/rubberduck/build/2.4.1.4627
VBA6 | VBA7 x86/x64
Installs without administrator privileges for the current Windows user login.
Local admin users should install for all users and register the add-in for their login at the end of the installation - add-in will need to be manually registered for other users on the same machine.
VB6
If Visual Studio 6.0 is executed with administrator privileges, Rubberduck should be installed for all users.
In this release 47 bugs and 45 other issues have been closed, 504 files have been changed in 315 commits.
Changeset:
- There were significant changes to how Rubberduck internally handles Refactoring Dialogs. (#4072)
- The parser now attempts to recover member attributes (#4686) and the selection (#4777)
- Parser performance when using bang notation should have improved. (#4760)
- Multiple bugs in Self-Closing Pairs have been fixed. (#4792)
- Bugs were fixed... lots of them
- Rubberduck now has a Spanish localization! (#4825)
- Reporting a bug has gotten easier thanks to issue templates (thanks GitHub) and a minor change to the About Window (#4850)
- The Test Explorer has gotten a makeover and is now more in line with Inspections and Code Explorer. (#4769)
- Navigating large numbers of inspections should feel a lot better. (#4717)
Huge thanks go to our translators @SonGokussj4 (Czech), @D3vlin (Spanish), @MDoerner (German) and @retailcoder (French).
More huge thanks go to @MDoerner, @comintern and @bclothier for stemming the bulk of the larger changes to our Ducky.
We also want to take a moment to remember @ThunderFrame, who found and fixed a lot of really tricky edge-cases with the duck.
A handful of inspections have been added in his memory and this release of Rubberduck is dedicated to him.
Rubberduck v2.4.0
Built with ❤️ by AppVeyor CI on [master] - https://ci.appveyor.com/project/rubberduck-vba/rubberduck/build/2.4.0.4488
Installation instructions
Announcement post on the project's blog
VBA6 | VBA7 x86/x64
Installs without administrator privileges for the current Windows user login. Local admin users should install for all users and register the add-in for their login at the end of the installation - add-in will need to be manually registered for other users on the same machine.
VB6
If Visual Studio 6.0 is executed with administrator privileges, Rubberduck should be installed for all users.
Known Issues
- Memory leak on unload: repeatedly unloading+reloading Rubberduck via the VBE's add-ins manager dialog results in increased RAM usage in the host process. Process usually shuts down normally regardless.
Features
This version introduces a new major feature, the Reference Explorer, which provides a rather welcome replacement to the VBE's "Project References" dialog, complete with searching, pinning, and remembering recently used references - altogether a massive departure from the well-outdated, painful way VBA/VB6 developers have been adding type library references to their VBA/VB6 projects since the dawn of time. The Code Explorer toolwindow has been enhanced with new features, related to project references.
It also re-introduces a set of annotations, inspections and quickfixes that facilitate controlling module and member attributes, a powerful feature of VBA/VB6 that isn't meaningfully exposed by the IDE... and at this point in the project we've got the plumbing ready to handle it.
Bug fixes
46 issues labelled 'bug' were closed; 240 commits were made, affecting 360 source files.
- Code Explorer has received quite a lot of love. The search bar is subtly more visible than before, usability of the toolwindow as a whole is dramatically improved all around.
- Inspection bugs fixed include #4659, #4655, and #4680.
See closed bug issues for an exhaustive list of issues closed since release 2.3.1.
Rubberduck v2.3.1.4308
Rubberduck version 2.3.1.4308 was built with ❤️ by AppVeyor CI on [master] - https://ci.appveyor.com/project/rubberduck-vba/rubberduck/build/2.3.1.4308
Installation instructions
VBA6 | VBA7 x86/x64
Installs without administrator privileges for the current Windows user login. Local admin users should install for all users and register the add-in for their login at the end of the installation - add-in will need to be manually registered for other users on the same machine.
VB6
If Visual Studio 6.0 is executed with administrator privileges, Rubberduck should be installed for all users.
Known Issues
- Memory leak on unload: repeatedly unloading+reloading Rubberduck via the VBE's add-ins manager dialog results in increased RAM usage in the host process. Process usually shuts down normally regardless.
Features
No new features; this is a hotfix release.
Bug fixes
30 issues labelled 'bug' were closed; 95 commits were made, affecting 166 source files.
- #4553 "Add unit test" command now works correctly.
- #4393 "Open Designer" menu in Code Explorer now appears correctly.
- #4552 "Extract Interface" now works correctly.
- #4548 VB6 menu bar no longer duplicates RD menu on startup.
- #4556 Fixed possible crash at startup.
- #4591 Fixed grammar bug with multiple 'WithEvents' variables declared in the same instruction.
- #4545, #3770, #1388 Fixed false positive for ByRef assignment
- #4230, #4555, high-DPI displays should no longer glitch.
- #4579, #4587, "Ignore Once" quickfix bugs fixed.
- #4256, #4594 "Illegal Annotation" inspection false positives fixed.
- #4037, #4318; false positives for "Object variable not set" inspection, fixed.
- #4530, #4531 "Use 'Set' keyword" quickfix now correctly positions the 'Set' token given a member call.
- #4543 Self-closing pairs now correctly accounts for VBE autocompletion of '?' token expanding to 'Print'.
- #4611 Self-closing pairs now correctly bail out of
Call Something(
andRaiseEvent Something(
calls (closing parenthesis cannot be automatically added, VBE eats it). - #4621 Autocompletion handlers now catch and log exceptions, and bail out on error... instead of crashing the host application.
See closed bug issues for an exhaustive list of issues closed since release 2.3.0.
Rubberduck v2.3.0
Built with ❤️ by AppVeyor CI on [master] - https://ci.appveyor.com/project/rubberduck-vba/rubberduck/build/2.3.0.4221
This release introduces Rubberduck to the Visual Basic 6.0 editor. It adds automatic completion and smart concatenation, as well as a number of Inspections.
Additionally this release even further improves the stability of Rubberduck and makes use of the streamlined automatic release pipeline.
For a more comprehensive overview of what's changing for users, check out the announcement on our blog.
If you want to know all about the nitty-gritty details, you may want to take a look at the release pull request containing all the commits that went into this release :)
Rubberduck v2.2.0
AppVeyor build on [master] - https://ci.appveyor.com/project/retailcoder/rubberduck/build/2.2.0.3086
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.
Features
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
locatesDef[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
locatesFor
loop statements with an implicitStep
clause. Disabled by default.StepOneIsRedundant
locatesFor
loop statements with an explicitStep 1
clause.UnhandledOnErrorResumeNext
warns about suppressed run-time errors that aren't restored by anOn Error GoTo 0
statement.UnreachableCase
inspection evaluatesCase
expressions and is able to determine when aCase
block is semantically unreachable.
Rubberduck v2.1.1
Running Rubberduck as a non-admin user
This release is the second release of the 2.1 cycle. We're about to do some really difficult and possibly messy work on the internals of Rubberduck, that should help us stabilize and simplify development.
Known Issues
- Still possible silent crash on exit. Current theories point to "trusted documents", toolbar setup and a handful of other issues.
- Unloading and then reloading the add-in from the IDE's "addIns manager" will still not re-load correctly. Don't do that. We told you not to. Again :) (if you do this by accident, immediately kill the host process via Task Manager; the VBE should recover next time it's loaded).
- Please see our reported bugs for the complete backlog. Note that we also use critical and edge-case labels for known issues.
New Features
This release "just" contains 200 commits, which changed 317 Files. A lot of this is improvements to the codebase and the process. @MDoerner singlehandedly ported all the "setup code" for the addin to a new IoC Container and fixed our issues when running tests.
We had some awesome first-time-contributions to the duck, some coming from the hacktoberfest event that github hosted. These include:
- Updated CodeInspectionTypes for a ton of inspections, hat tip to @IpshitaC
- An update to the git-library that Rubberduck uses, getting us to the latest version, hat tip to @NelsonVides
- Some nice bug fixes, courtesy of @AnnaVel
- Some German translations
We also added the whole-new feature of "Code Metrics". You can now analyze your modules and members for three quality metrics: Lines of Code, Nesting Level and "Cyclomatic Complexity". Additional Code Metrics could be coming in the next releases:
What did you always need to know about your codebase?
Last but not least, this release also includes bugfixes for some longstanding issues as well as some less longstanding ones.
You can get a comprehensive overview of which changes went into the release from here
Rubberduck v2.1.0
Running Rubberduck as a non-admin user
This release kicks off the v2.1 cycle, with some very exciting things coming up.
Known Issues
-
Google Chrome may flag the download. Windows Security Essentials and/or Symantec may flag the installer. This is not something we have control over. Our installer is provided free of charge, as-is, as a mere convenience. Alternatively, you can clone the project's repository and build the solution yourself (see Building in the project's wiki).
Just to be clear: we do not package viruses, malware, crapware, bloatware, adware, or any other unwanted software in our installers. All Rubberduck installers on this page are packaged by AppVeyor, per this InnoSetup script.
-
Possible silent crash on exit. We can't rule it out entirely still (although significant progress has been made), so when you close the host application make sure the process is no longer running in Task Manager.
-
Unloading, and then re-loading the add-in from the IDE's "addins manager" will not re-load correctly. Don't do that. We told you not to.
-
When adding a module through Rubberduck, a
@Folder
annotation will be automatically inserted, but it will be inserted 1 line under where it should be. This makes the annotation illegal when a procedure is added to the module. -
MissingAnnotation
andMissingAttribute
inspections are disabled by default, as theirSynchronizeModuleAttributes
quick-fix will break your code. The fix didn't make it into this release because of significant required changes in the parsing process, which will be implemented shortly. -
Please see our reported bugs for the complete backlog. Note that we also use critical and edge-case labels for known issues.
New Features
Over 1,300 commits were made to Rubberduck since v2.0.13 was released. There are now over 60 implemented code inspections; some changed category, there's a new "Rubberduck Opportunities" category, and we've completely overhauled how we're rewriting code, using tokens instead of manipulating strings directly in the code pane. As a result, you can now undo any Rubberduck operation by pressing Ctrl+Z twice, because Rubberduck now rewrites whole modules; this means you can now undo operations that would otherwise overwhelm the VBE's undo stack.
The Code Explorer now includes a nifty search bar. Source Control is slowly getting back on track and pushing to a remote repository now works correctly.
Nobody is going to read this anyway, and there would be so much to say about these 1.3K commits, ...so instead of putting you to sleep with a wall of text, I'll simply say - download the thing, try it, see for yourself.
RD 2.0.13 (hotfix)
Running Rubberduck as a non-admin user
This release addresses a number of urgent patches to serious bugs found in the previous 2.0.12 release.
Known Issues
- Possible crash on exit. We can't rule it out entirely still, so when you close the host application make sure the process is no longer running in Task Manager.
- Unloading, and then re-loading the add-in from the IDE's "addins manager" will no longer wreck the IDE and its host, but still won't re-load correctly. Don't do that.
- Source Control can work, but its use isn't as user-friendly as it could be, and it tends to throw all kinds of exceptions for unintuitive reasons. We've made it a project of its own to git it up and running smoothly.
- Please see our issues list for the complete backlog, or review the Maintenance project for a more digestible view of [bug] and [technical-debt] issues, and review the Features project for the feature backlog - inspections have their own backlog, too.
New Features
- Indent Project; the original Smart Indenter had that feature, and we had removed it last year for performance reasons... however preliminary testing shows the Rubberduck port can now actually indent a 112-module VBA project in less than 15ms - so we added it back.. and didn't bother reinstating the indent progress window.
- Option Base 0 inspection; a simple inspection that locates
Option Base 0
statements, which are redundant (it's the default setting in VBA); a quick-fix removes them effortlessly. - New WPF UI for several refactoring dialogs:
- Rename
- Remove Parameters (includes a preview of affected signature(s))
- Reorder Parameters (includes a preview of affected signature(s))
- #2805 Context status label now displays the containing scope instead of the containing module when the selection isn't on a declaration or identifier reference, inside a procedure body. The lookups have also been optimized, they're now pretty much instant.
Fixes
- #2727 refactor/rename no longer incorrectly warns about name clashes.
- #2737
DeclarationFinder
now correctly handles multiple classes implementing the same interface. - #2773 Introduced a small delay before launching the initial parse; this prevents a race condition where Rubberduck could start parsing modules that the VBE hasn't finished loading.
- #2802 Concurrent file I/O was possibly causing a parser error; fixed, and we now generate the temp files under
%temp%\Rubberduck
instead of under the install folder. - #2814 Fixed race condition (?) possibly causing a hard crash when the module of the
ActiveCodePane
gets removed. - #2849
ParameterCanBeByVal
false positive with object parameter, fixed. - Several fixes in the
DeclarationFinder
, which was throwing a number of exceptions - all fixed. - Full commit log here