The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Changelog for CPAN-Testers-Schema

0.025     2020-01-13 21:13:16-05:00 America/New_York

    [Added]

    - Added full report fetching to the fetch command. Now you can
      populate an entire local database using the API!
    - Added a resultset method to get recent uploads to CPAN.
    - Added a relationship from a CPAN release to its report metrics
      (pass/fail/na/unknown counts) to make fetching those metrics easy.
    - Added a method to total up all release metrics by dist/version. We
      store metrics based on other criteria (stable/dev perl, for
      example), so we need to be able to collate them.
    - Added accessor methods for common parts of the test report to both
      the TestReport and Stats objects. These two objects have the same
      API now, so one can be substituted for the other with little
      difference (except the Stats object lacks the full text of the
      report).

    [Fixed]

    - Fixed cpantesters-schema command for the initial deploy. The
      workaround for the primary database is no longer necessary.
    - Fixed the "fetch" command script's options parsing and added
      better error checking from the API.
    - Fixed duplicate test summaries being created for the same report.

0.024     2019-04-27 15:58:52+01:00 Europe/London

    [Added]

    - Added 'cpantesters-schema fetch' command to download data from the
      public API to populate a local database. This can be used for
      testing purposes, but also to get a local copy of data for
      reporting purposes.

    [Fixed]

    - 'cpantesters-schema upgrade' command will now try to install the
      database if it is not already installed. This makes it suitable
      for use in an auto-deploy script.

0.023     2018-08-23 20:32:28-05:00 America/Chicago

    [Added]

    - Added a `version` argument to release resultsets to filter
      per-release summary data by dist _and_version.
    - Added classes for the Perl version metadata tables. These classes
      allow access to the `perl_version` table which stores metadata
      about known Perl 5 releases.
    - Added method to search for test summary rows by the Perl maturity

    [Fixed]

    - Fixed "patch" Perls to be considered "development" Perls. This is
      how the existing site and backend treats them, even though the two
      flags are different. "Patch" Perls are changed from the official
      P5P releases, and should therefore be treated differently.
    - Fixed Travis config to use MySQL 5.7. This MySQL version is
      required for the tests to run. Thanks @paultcochrane [Github #21]
    - Fixed "created" date in test reports being set to impossible
      values. We were allowing this to come from reporters, but we want
      this to be the time that we got the report. Later, if we want, we
      can add another field for when the reporter claims to have created
      the report. [Github #19]

0.022     2018-04-19 14:26:24+02:00 Europe/Oslo

    [Added]

    - Added support for `since` in Stats resultset

0.021     2017-11-28 13:43:34-06:00 America/Chicago

    - Implement support for `maturity` search param for Release queries.

0.020     2017-11-18 20:44:13-06:00 America/Chicago

    [Changed]

    - Added some additional logging to some resultset methods to try to
      track down some problems.

    [Fixed]

    - Fixed issue deserializing JSON from MySQL with illegal ASCII
      control characters inside.

0.019     2017-08-18 12:16:21-05:00 America/Chicago

    [Fixed]

    - Fix exception thrown when searching for the right test author
      details while inserting Metabase facts. SQLite supports `-col` to
      sort by `col` descending, but MySQL doesn't. DBIx::Class let
      `-col` through just fine though. Using the proper DBIx::Class
      syntax for descending order fixes the problem.

    - Allow updating test reports from Metabase facts. Metabase
      clients may submit a fact multiple times, so we need to update the
      test report if it already exists.

    - The test report JSON column is now safe for Latin-1-encoded
      tables. Any UTF-8 characters will be transformed into their
      `\u####` escape sequence. This is a stopgap until this data can be
      moved to a proper UTF-8-encoded table.

    - Metabase facts being translated to new test report format no
      longer allow "v" in front of the Perl version. It's not part of
      the Perl version number and all existing data lacks it.

0.018     2017-08-05 12:42:52-05:00 America/Chicago

    [Fixed]

    - Fixed name of "guid" unique constraint on Stats table. By default,
      DBIx::Class uses the name of the table (cpanstats) in the
      constraint name, but this makes it harder for that name to change
      in the future. Now the name of the constraint is just "guid".

    [Added]

    - Allow test reports to be re-processed. If a test report has
      already been processed (based on its guid), the Stats entry will
      be updated.

0.017     2017-08-04 14:06:17-05:00 America/Chicago

    [Fixed]

    - Fixed some POD formatting issues in the Stats result class. Thanks
      @manwar!

    - Added the correct dependency declaration for Data::UUID, which was
      causing Travis tests to fail. Thanks @manwar!

0.016     2017-08-03 21:38:38-05:00 America/Chicago

    [Fixed]

    - Fixed old schema version with incorrect size of field. Since these
      old tables aren't put through an ALTER TABLE process, we can edit
      the original versions without triggering an upgrade. This means we
      can do minor adjustments to match reality without major problems.

0.015     2017-07-08 12:07:35-05:00 America/Chicago

    [Fixed]

    - Fixed test that starts a MySQL server to run JSON pointer tests.
      JSON support was added in MySQL 5.7, and cannot run on any MySQL
      prior to that. Now the tests check that the MySQL is the right
      version before continuing.

0.014     2017-07-06 22:56:21-05:00 America/Chicago

    [Added]

    - Added method to search full test reports for language,
      distribution, and version

0.013     2017-05-26 22:48:55-05:00 America/Chicago

    [Added]

    - Added a method to get the CPAN upload from a test report

0.012     2017-05-14 15:56:39+02:00 Europe/Paris

    [Fixed]

    - Fixed upgrade for brand-new SQLite databases

    [Added]

    - Added a method to translate from test report JSON documents to the
      main Stats table. Thanks @jberger!

0.011     2017-05-14 15:50:18+02:00 Europe/Paris

    [Added]

    - Added cpantesters-schema install to custom DSN. This allows me to
      build a custom SQLite database for local testing.
    - Added a SQLite schema deployment strategy. This should make
      testing a bit easier.

0.010     2017-05-14 10:30:48+02:00 Europe/Paris

    [Fixed]

    - Fixed date/time format handling for TestReport created field. We
      need to make sure that the date/time is formatted correctly for
      the given database engine. The "created" date/time in the report
      is always a full ISO8601 date/time.

0.009     2017-05-13 14:42:38+02:00 Europe/Paris

    [Fixed]

    - Changed Metabase -> TestReport migration for new test report
      format, which moves the test result into a top-level "result" key.

0.008     2017-05-13 10:53:47+02:00 Europe/Paris

    [Fixed]

    - Updated metabase users table to add unique constraint to user
      GUID. The source table has multiple mappings for a single user,
      but as @bingos pointed out: This means that some e-mails for
      a user are completely inaccurate, bordering on malicious (since
      authors cannot get in touch with testers). The new table has only
      one mapping per GUID, and we can then update that mapping if
      a tester complains.

0.007     2017-05-12 17:52:23+02:00 Europe/Paris

    [Added]

    - Add a "created" field to the TestReport table to keep track of
      when the test report was created
    - Auto serialize the TestReport to/from JSON
    - Add the ID and created date/time to the JSON test report
    - Add a table to hold the old Metabase user information so we can
      find name/email for legacy clients
    - Add a conversion method from Metabase::Fact to the new test
      report. This allows legacy clients to send in Metabase reports and
      be updated to the new test report format.


0.006     2017-05-12 10:02:58+02:00 Europe/Paris

    [Added]

    - TestReport table for storing new test reports as JSON documents
    - cpantesters-schema script for deploying the new database schema
      [Github #2]
    - Add `updated` column to raw test reports to keep track of when
      they were updated

    [Fixed]

    - Fixed all the MySQL foreign key constraints. Foreign key columns
      need to be exactly the same column type as their foreign
      counterpart.

0.005     2016-12-11 00:36:54-06:00 America/Chicago

    [Fixed]

    - Fixed dependency declaration for DateTime and
      DateTime::Format::ISO8601

0.004     2016-12-10 02:45:36-06:00 America/Chicago

    [Fixed]

    - Properly inflate CPAN upload `released` column into a DateTime
      object. This makes for a better API so that we can, eventually,
      change the data type from epoch timestamp to ISO8601 date/time.

0.003     2016-12-09 19:55:09-06:00 America/Chicago

    [Added]

    - Added CPAN uploads data query module
      (CPAN::Testers::Schema::ResultSet::Upload) to query data from CPAN
      uploads.

    [Other]

    - Switched to DBIx::Class::Candy for cleaner result classes

0.002     2016-11-19 11:53:54-06:00 America/Chicago

    [Added]

    - Added relationship between report statistics and release
      summaries. This relationship can be used to see when the release
      summary was last updated.

    - Added release data query module
      (CPAN::Testers::Schema::ResultSet::Release) for easier querying of
      release data. This will be used to provide summary data for
      metacpan and various CPAN author dashboards.

    [Fixed]

    - Properly enabled all Perl 5.24 features. Since we're relying on
      it, we should be using it to the fullest!

0.001     2016-11-18 15:06:56-06:00 America/Chicago

 - This initial release contains a schema for some tables in the
   `cpanstats` database, with more tables to come later. This release is
   minimal to enable its use in the new CPAN Testers API, coming later.

   Hello from meta::hack 2016 in Chicago!