Changelog¶
The authoritative changelog for v1.0.0 onwards lives at
https://github.com/twobeass/VBAlidator/releases — regenerated on
every main push by python-semantic-release from the Conventional
Commit history.
This page keeps the pre-release Phase 0–5 milestone history so the project's lineage stays visible.
v1.x highlights (full detail in GitHub Releases)¶
- v1.4.x — auto-layer 4 COM library stubs (
scripting,vbscript_regexp,wscript_shell,shell_application); default-propertyItemresolution closes the last analyzer FP inawesome_vba(VBAlidator's FP surface is now zero). - v1.3.x — Iter-6 + Iter-7 false-positive sweep:
As Any/As Any()ByRef sentinels, MSComCtl host model with.frmauto-layering, MSForms 2.0 host model with namespace auto-layering, suppressing Sub-style implicit-call inside expressions, Enum↔Long ByRef bidirectional compat (drops 62 false-positives across stdLambda alone),Erase/ReDimmember- chain support,erroras identifier, lexer trailing-whitespace before_line continuation, Enum members asEnumItemconstants (valid asConst X = MyEnum.MemberRHS). Drives awesome_vba from 203 → 4 hard errors, all four remaining are genuine upstream bugs. - v1.1.x — v1.2.x — full-fidelity Excel/Word/Access/Visio host
models (1–3 MB each, ~5000 globals/classes total) replace the
earlier hand-curated stubs; awesome_vba host-aware regression
runner;
stdError.clsfixture completion + parser hang fix on standaloneEndinside If/With/Select blocks; semantic-release pipeline activated.
Pre-release: Phase 0–5 milestones¶
Phase 4.5–4.6 (PR #7)¶
--roundtripOffice-COM cross-check (Windows + pywin32).src/rules.pysingle source of truth for every emitted finding.- Auto-generated rule catalogue at
docs/rules/. - CI gate:
tools/generate_rule_docs.pymust produce a clean diff.
Phase 4.1–4.4 (PR #6)¶
from vbalidator import precheckpublic API.- 0–100 confidence score with severity weights (error=20, warning=3, info=1, compile_verified=30).
- JSON v2 report schema with stable rule IDs.
- Bundled host models for Excel / Word / Access / Outlook.
Phase 3.1–3.6 (PR #5)¶
Implements-interface contract (VBA330).Event+RaiseEvent(VBA340 / VBA341).PtrSaferequirement on 64-bit Office (VBA300).- Enum-member uniqueness (VBA310).
Option Explicitwarning (VBA320).- Preprocessor case-insensitive define lookup; modern Office defaults.
Phase 2.4–2.9 (PR #4)¶
- Operator-type literal check (VBA240).
- Const-expression validation (VBA230, VBA231).
- Structural date-literal parser (VBA_LEX002).
- Fixed-length-string scope check (VBA250).
DefInt/DefStr/… implicit typing.
Phase 2.1–2.3 (PR #3)¶
- Label registry & jump validation (VBA201).
- Set-vs-Let on bare-identifier LHS (VBA210, VBA211).
- Property Get/Let/Set arity & semantic checks (VBA221–VBA224).
Phase 1 (PR #2)¶
- Real control-flow body parsing (For / Do / While / Select).
- ReDim / Erase validation (VBA101–VBA106).
- Lexer legacy-token support (
$/%/@suffixes,[A1]brackets). std_model.jsonbackfill (~80 missing built-ins).
Phase 0 (PR #1)¶
- Single-line-If parser bug fix.
- Lexer MISMATCH hardening (VBA_LEX001).
- Pytest migration, CI matrix, awesome-VBA regression baseline.