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!