aboutsummaryrefslogtreecommitdiff
path: root/sqitch
Commit message (Expand)AuthorAge
* Add a lookup_builds field to the build_servers table•••This is to allow for build servers where only the substitutes should be queried, and it shouldn't be assumed that they're running Cuirass. Christopher Baines2020-05-24
* Remove odd package derivations with mismatched systems•••This follows on from 79993bfaeff3097d37838bc0636fc20c6fc4283d, disassociating the relevant derivations from the revisions. Christopher Baines2020-04-24
* Fix a missing ; in a Sqitch migrationChristopher Baines2020-03-29
* Make jobs unique by commit•••Given that a commit, regardless of what repository it comes from should contain the same exactly the same data, just track jobs by commit. Christopher Baines2020-03-28
* Create an index on narinfo_fetch_records•••This greatly improves the performance of the derivation-outputs page. Christopher Baines2020-03-25
* Stop using package_versions_by_guix_revision_range•••It's been replaced by the package_derivations_by_guix_revision_range table. Christopher Baines2020-03-24
* Generate and store system test derivations for all supported systems•••Rather than just the native system. I'm not quite sure of the value here, as I guess system tests should behave the same regardless of the way the software is compiled, but this seems like it could be useful, and being explicit about the system the derivation is for is good. Christopher Baines2020-03-20
* Make a constraint deferrable•••To allow for deferring it in a transaction when deleting derivations. Christopher Baines2020-02-16
* Update the build_servers_build_config values•••Change target to '' if it matches system, as this matches the updated way of storing derivations. Christopher Baines2020-02-13
* Start storing channel instance derivations•••These are the ones that relate to Guix pull. Christopher Baines2020-02-11
* Support excluding and including branches from a repository•••So that you can have the Guix Data Service only pay attention to some of the branches. Christopher Baines2020-02-08
* Rework cross derivations support•••Stop using the system values as targets, and remove package derivation entries where this is the case. Switch the non-cross derivation case to have a target of "", rather than matching the system, as this makes more sense, and is more consistent now that the target values no longer match the system values. Hardcode some more correct target values, and use these instead. Hopefully this can be better integrated with Guix in the future. This commit also includes a migration attempting to shrink some indexes. Christopher Baines2020-02-08
* Add missing migrationChristopher Baines2020-02-03
* Store information about system testsChristopher Baines2020-02-03
* Don't hardcode the expected x-git-repo header value•••Rather than expecting it always to be "guix", store the expected value in the database, and use the value of the header to find the relevant repository. Christopher Baines2020-01-11
* Add a table to configure which build servers build whatChristopher Baines2020-01-05
* Create an index on the hash component of the store path•••For derivation_source_files. Christopher Baines2019-12-29
* Add a new table to nars for derivation source files•••This will allow serving the nars for derivation source files. Christopher Baines2019-12-28
* Create an index for the hash component of derivation filenames•••This is to aid rendering of narinfo files. They're requested with the path /HASH.narinfo, so to quickly find the relevant derivation, this index can be used. Christopher Baines2019-12-26
* Add new derivation_output_details_set_id column to the builds table•••As this will hopefully provide a faster way of associating derivations with builds. Christopher Baines2019-12-12
* Start storing and identifying sets of derivation outputs•••Derivations are effectively equivalent if they produce the same set of outputs, which is possible because of the equivalence of fixed output derivations. A fixed output derivation can be different, but equivalent, because it produces the same fixed output. To better allow tracking equivalent derivations, primarily to allow working out what derivations might correspond to a build, store the sets of derivation outputs, and which derivations they relate to. Christopher Baines2019-12-12
* Add some database indexesChristopher Baines2019-12-12
* Deduplicate builds and add a unique index•••Duplicate builds could creep in if the code to create them ran concurrently. I didn't exclude them initially, as I was unsure if there should be such a restriction, but at least for now, Cuirass builds map exactly to a single derivation, so use the same restriction here. Christopher Baines2019-12-12
* Change nar_urls size to bigint•••As some nars can be bigger than the size of an int. Christopher Baines2019-12-12
* Change nars size to bigint•••As some nars can be bigger than the maximum size of an int. Christopher Baines2019-12-12
* Add a table to record where narinfo files were fetched from•••Otherwise it's hard to associated narinfo files to build servers. Christopher Baines2019-12-12
* Add an index on the derivation_file_name field in the builds table•••As this helps when finding builds relating to specific derivations. Christopher Baines2019-12-12
* Begin to add support for importing narinfo files•••This commit adds the tables, as well as code to support extracting data from narinfo files. Christopher Baines2019-11-30
* Rework the builds and build_status tables as well as related code•••Allow for build status information to be submitted by POST request. This required some changes to the builds and build_status tables, as for example, the Cuirass build id may not be available, and the derivation may not be know yet, so just record the derivation file name. Christopher Baines2019-11-24
* Add new table to store token seeds for build serversChristopher Baines2019-11-23
* Add a new channel-news module, along with tables the relevant dataChristopher Baines2019-11-21
* Add a new table to describe the history of derivations•••There's already the package_versions_by_guix_revision_range table, but I think it would be also useful to be able to see how derivations change over time. Christopher Baines2019-11-09
* Remove duplicates from the guix_revisions tableChristopher Baines2019-10-05
* Make it easier to retry jobs•••Add a new event 'retry', and run jobs where the number of retry events is greater or equal to the number of failure events. Also add an index to the git_branches table to make the finding jobs query a bit faster. Christopher Baines2019-10-02
* Fix the 'NULL' values in git_branches for the commits•••The git_branches table had 'NULL' values for some commits where the branch was deleted, importantly this was the string 'NULL', not an actual NULL value. This commit fixes that, migrating the existing values to be '', and changing the relevant code. The primary key is also extended to include the datetime field, as this is important to allow a branch to be deleted twice. Christopher Baines2019-09-29
* Add migration to create an index on load_new_guix_revision_job_events•••To speed up the rendering of the index page. Christopher Baines2019-09-29
* Add a new table to store package versions by revision ranges•••This isn't new information, but derived from information already in the database. It's collected here to make querying faster. The table is updated when each new revision is entered. Christopher Baines2019-09-27
* Add a new table guix_revision_lint_checkers•••To associate a set of lint checkers with a specific revision. While there is the association through the lint warnings, that only works for checkers where there are lint warnings for that revision. Therefore, to allow finding all the checkers for a specific revision, also associate them directly with the revision. Christopher Baines2019-09-01
* Store lint warnings in the database•••This commit adds the relevant tables and code to store lint warnings in the database. Currently, only lint checkers which don't require access to the network will be run, as this allows the processing to happen without network access. Also, this functionality won't work in older versions of Guix which don't expose the lint warnings in a compatible way. Christopher Baines2019-09-01
* Avoid erroring when processing emails again•••These changes allow processing emails again, and just creating job and branch entries where data is missing. Christopher Baines2019-08-05
* Change the git_branches table primary key•••To allow for having branches in multiple git repositories. Christopher Baines2019-08-05
* Fix some duplicated values in tables•••The licenses table, along with the package_metadata table had duplicate values. This could happen as the unique constraints on those tables didn't properly account for the nullable fields. The duplicates in those tables also affected the license_sets, packages, package_derivations tables in a similar way. Finally, the guix_revision_package_derivations table was also affected. This commit adds a migration to fix the data, as well as the constraints. THe code to populate the licenses and package_metadata tables is also updated. Christopher Baines2019-08-04
* Tweak how logs are stored•••Previously, the query for the jobs page was really slow, as it checked the load_new_guix_revision_job_log_parts table for each job, doing a sequential scan through the potentially large table. Adding an index didn't seem to help, as the query planner would belive the query could return loads of rows, where actually, all that needed checking is whether a single row existed with a given job_id. To avoid adding the index to the load_new_guix_revision_job_log_parts table, and fighting with the query planner, this commit changes the load_new_guix_revision_job_logs table to include a blank entry for jobs which are currently being processed. This is inserted at the start of the job, and then updated at the end to combine and replace all the parts. This all means that the jobs page should render quickly now. Christopher Baines2019-07-07
* Record the output from loading new revisions to the database•••So that it can easily be shown through the web interface. There's two tables being used. One which temporarily stores the output as it's output while the job is running, and other which stores the whole log once the job has finished. Christopher Baines2019-06-22
* Add more detailed new revision job handling•••Create a new events table for the new guix revision jobs, and update this when processing a job starts, as well as finished with success or failure. Additionally, remove the dependnency on open-inferior/container, as this functionality isn't merged in to Guix master yet. Christopher Baines2019-06-02
* Record job success without deleting the job record•••Previously, the records for jobs would be deleted. It's useful to know when jobs were inserted in to the database, as well as when they succeeded (if they have). This change also makes it possible to keep track of jobs that have failed, as they won't be deleted. Christopher Baines2019-06-02
* Store license information for packages•••And display this on the package page. This uses a couple of new tables, and an additional field in the package_metadata table. Currently, the order of the licenses in the package definition isn't stored, as I'm not sure the order in the list is significant. Christopher Baines2019-05-15
* Store and display the location of packages•••Store the location a package can be found at, and display this on the package page. If available, link off to the git repository containing the package. Christopher Baines2019-05-13
* Remove the sha1_hash from the package_metadata table•••I'm thinking about adding more fields to this table, and the sha1_hash values will make this tricker. Therefore, remove the value, and adjust the existing code to cope. This commit also adds a new test which coveres some of the changed functionality. Christopher Baines2019-05-12
* Start to handle information about Git branches•••Add some new pages /branches and /branch/... as well as a new git_branches table. Also extend the email processing to enter the branch information in to the database. Christopher Baines2019-05-05