Changelog ========= All notable changes to this project will be documented in this file. The format is based on `Keep a Changelog `__, and this project adheres to `Semantic Versioning `__. Please mark backwards incompatible changes with an exclamation mark at the start. [Unreleased] ------------ [5.3.1] - 2024-12-13 -------------------- Fixed ~~~~~ - Dragnet no longer crashes when generating an HTML report for a repository hosted on Github. .. _section-1: [5.3.0] - 2024-12-03 -------------------- Added ~~~~~ - The JSON export now includes the path to the MTR files. Changed ~~~~~~~ - The ``description`` field will now be rendered as Markdown in the HTML report. .. _section-2: [5.2.1] - 2024-11-13 -------------------- .. _fixed-1: Fixed ~~~~~ - Made the date/time format used for the ``started_at`` and ``finished_at`` attributes in the exported JSON files stable. .. _section-3: [5.2.0] - 2024-04-16 -------------------- .. _added-1: Added ~~~~~ - The JSON file produced when the ``-e`` CLI switch is given now includes: - The ``started_at``, ``finished_at`` and ``runtime`` attributes under the ``verification_result`` structure. - A copy of the ``started_at`` and ``finished_at`` attributes directly in each of the exported objects (This is being added temporarily for backwards-compatibility reasons and will be removed later). .. _section-4: [5.1.2] - 2023-12-11 -------------------- .. _fixed-2: Fixed ~~~~~ - Fixed the rendering of array-type Test Record IDs in the HTML report. They are no longer directly rendered with the extra characters added by Ruby’s default ``#to_s`` method. - Fixed a ``NoMethodError`` that appeared after the release of ActiveSupport 7.1. .. _section-5: [5.1.1] - 2023-07-14 -------------------- .. _fixed-3: Fixed ~~~~~ - Fixed an issue that caused the validation to fail when the listed files or glob patterns had a ``/`` at the beginning. .. _section-6: [5.1.0] - 2023-07-13 -------------------- .. _added-2: Added ~~~~~ - The ``Explorer`` class will now log all the found MTR files. .. _section-7: [5.0.1] - 2023-06-05 -------------------- .. _fixed-4: Fixed ~~~~~ - Fixed a bug where the validated and transformed meta-data did not get assigned to the TestRecord. This, in turn, caused issues when rendering the HTML report since it assumes that these attributes will be arrays. .. _section-8: [5.0.0] - 2023-05-26 -------------------- .. _changed-1: Changed ~~~~~~~ - ! Updated ``activesupport`` from ``~> 6`` to ``~> 7`` - ! Set the minimum Ruby version for the project to ``2.7.0`` .. _section-9: [4.0.0] - 2023-05-24 -------------------- .. _changed-2: Changed ~~~~~~~ - The “Tester name” attribute will only be visible in the HTML report when the MTR has a value in the ``name`` field. - The ``name`` attribute of the MTRs will now be validated, only strings and arrays of strings are allowed now. .. _added-3: Added ~~~~~ - Added the ``test_method`` and ``tc_derivation_method`` fields to the JSON and HTML exports. - Added the ``MetaDataFieldValidator`` class. - Added the ``test_method`` and ``tc_derivation_method`` attributes to the ``TestRecord`` class. - Added validation for the ``test_method`` and ``tc_derivation_method`` attributes of the MTRs, they can only have strings or arrays of strings. .. _section-10: [3.0.0] - 2023-04-05 -------------------- .. _added-4: Added ~~~~~ - Added the ``Exporters::IDGenerator`` class. - Added the ``DescriptionValidator`` class. .. _changed-3: Changed ~~~~~~~ - Changed the ``JSONExporter`` class. It now makes use of the ``IDGenerator`` class to attach a unique ID to each of the exported MTRs. - Added validation for the ``descriptionn`` field of the MTRs. Only Strings are allowed now. .. _section-11: [2.3.0] - 2023-03-31 -------------------- .. _added-5: Added ~~~~~ - Added a ``rescue`` to the ``software_branches`` method in the ``HTMLExporter`` class to keep it from crashing when it cannot read the branches from one of the repositories. .. _section-12: [2.2.0] - 2023-03-08 -------------------- .. _changed-4: Changed ~~~~~~~ - Moved the ``repo_base`` and ``relative_to_repo`` methods from the ``HTMLExporter`` class to the ``RepositoryHelper`` module. - Moved the ``initialize`` method from the ``HTMLExporter`` class down to the parent ``Exporter`` class. - Changed the ``Exporter`` class to allow it to export results to JSON format. .. _section-13: [2.1.2] - 2023-01-12 -------------------- .. _fixed-5: Fixed ~~~~~ - Fixed a bug that caused the verification to pass in multi-repo set-ups even when there were changes in the listed files when ``.`` was given as a path to the ``check`` command. .. _section-14: [2.1.1] - 2022-12-22 -------------------- .. _fixed-6: Fixed ~~~~~ - Fixed an issue with how the file names were being displayed in the HTML report when the repository’s path was the current working directory: (``.``). .. _section-15: [2.1.0] - 2022-12-19 -------------------- .. _added-6: Added ~~~~~ - Added the ``--multi-repo`` command line switch. This switch tells Dragnet that it is running in a multi-repo environment and will prevent it from assuming that the given path is a Git repository. - Dragnet can now recognize and validate MTR files that include the ``repos`` attribute (to reference files from multiple repositories). - Added the ``branches_with`` and ``branches_with_head`` methods to the ``Repository`` class. .. _section-16: [2.0.0] - 2022-09-13 -------------------- .. _changed-5: Changed ~~~~~~~ - Updated ``activesupport`` to version 6.x - Updated ``jay_api`` to version 15.x - Changed the minimum Ruby version requirement for the gem to 2.5.0 .. _section-17: [1.0.0] - 2021-07-02 -------------------- .. _changed-6: Changed ~~~~~~~ - Two new entity objects were introduced ``Dragnet::TestRecord`` and ``Dragnet::VerificationResult`` these will be used instead of the previously used Hashes. This allows the logic of validation and value evaluation to be centralized. - The validation code for the Test Records was moved from ``Dragnet::Validators::DataValidator`` to the ``Dragnet::Validators::Entities::TestRecordValidator`` class and to a series of field validation classes inside the ``Dragnet::Validators::Fields`` module. .. _added-7: Added ~~~~~ - Introduced the ``Dragnet::Exporter`` class which handles exporting the results of the verification process to different formats (for the moment only HTML is available, via ``Dragnet::Exporters::HTMLExporter``) - Changed the CLI to receive the ``--export`` option. (Which can be given multiple times). - Added the ``Repository`` class. A thin wrapper around the Git class. It just houses some utilitarian methods. .. _section-18: [0.1.1] - 2021-06-10 -------------------- Removed ~~~~~~~ - Removed a stray “require ‘pry’” from a file. .. _added-8: Added ~~~~~ - Added “require ‘colorize’” for validator and verifier classes. .. _section-19: [0.1.0] - 2021-05-27 -------------------- .. _added-9: Added ~~~~~ - Basic structure of the gem - Added the basic classes for the Gem’s CLI - Added the ``Explorer`` class. The class searches for Manual Test Record files on a given path with a set of glob patterns. - Added the ``check`` command to the CLI. - Implemented the ``Validator`` class. - Added ``jay_api`` to the development dependencies in order to be able to use the ``TestDataCollector`` class. - Adds configuration for the ``TestDataCollector`` class. - Enables the collection of Test Data for releases. - Added the ``Verifier`` class. The class verifies the actual test records and checks if there have been any changes since the commit specified in the MTR.