aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service
Commit message (Collapse)AuthorAge
* Use $STR$ for better quoting in quote-stringChristopher Baines2019-08-31
|
* Add value->sql-boolean to (guix-data-service model utils)Christopher Baines2019-08-31
|
* Fix insert-guix-revision to return an idChristopher Baines2019-08-31
| | | | Rather than an id wrapped in a list.
* Alphabetically order the derivation comparison pageChristopher Baines2019-08-06
|
* Remove the build status filter from the compare derivations pageChristopher Baines2019-08-06
| | | | As there isn't sufficient data to make this work yet.
* Support filtering by systems and targets when comparing derivationsChristopher Baines2019-08-06
|
* Improve derivation comparison to show more changesChristopher Baines2019-08-06
| | | | | In cases where the version is changed for example, the relevant derivations will now show up, whereas previously they did not.
* Only show the Compare button when it'll workChristopher Baines2019-08-05
| | | | On the branch page.
* Avoid erroring when processing emails againChristopher Baines2019-08-05
| | | | | These changes allow processing emails again, and just creating job and branch entries where data is missing.
* Properly handle not finding a matching derivationChristopher Baines2019-08-05
|
* Set the Vary header to a sensible default valueChristopher Baines2019-08-05
| | | | As most pages vary based on the Accept header.
* Tweak the branch table layoutChristopher Baines2019-08-05
|
* Clear the previous log entry when starting a jobChristopher Baines2019-08-04
|
* Fix some duplicated values in tablesChristopher Baines2019-08-04
| | | | | | | | | | | | | 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.
* Link to the comparison page from the branch pageChristopher Baines2019-07-29
| | | | To allow easily comparing revisions.
* Link to the package pages from the comparison pageChristopher Baines2019-07-29
|
* Link to cgit on the comparison pageChristopher Baines2019-07-29
|
* Add a function to get the cgit URL bases for revisionsChristopher Baines2019-07-29
| | | | To enable adding a link to cgit to the comparison page.
* Fix the JSON compare outputChristopher Baines2019-07-29
|
* Neaten up how branches in Git repositories are linked toChristopher Baines2019-07-27
|
* Link to the Statistics and Jobs pages from the index pageChristopher Baines2019-07-27
|
* Fix the latest-processed-revision pagesChristopher Baines2019-07-27
|
* Show links to the cgit pages for repositories on the index pageChristopher Baines2019-07-22
|
* Switch the index page to show branches for a repositoryChristopher Baines2019-07-22
| | | | As that's probably more useful than recent revisions and jobs.
* Extract out the branches with most recent commits tableChristopher Baines2019-07-22
| | | | As I'm thinking about using this on the index page.
* Extract out view-revision/jobs-and-eventsChristopher Baines2019-07-22
| | | | This is common to both view-revision and unknown-revision.
* Extract out view-revision/git-repositoriesChristopher Baines2019-07-22
| | | | | As this was duplicated in the functions for viewing known and unknown revisions.
* Display the jobs related to a revision on the revision pageChristopher Baines2019-07-22
|
* Link from a revision to the git repository pageChristopher Baines2019-07-19
|
* Improve how repositories and branches are handledChristopher Baines2019-07-19
| | | | | Make the link between repositories and branches clearer, replacing the /branches and /branch pages by /repository/ and /repository/*/branch/* pages.
* Remove restrictions in select-job-for-updateChristopher Baines2019-07-19
| | | | This allows running jobs manually that have failed.
* Close the logging port once it's been usedChristopher Baines2019-07-19
|
* Fix match expressionChristopher Baines2019-07-19
| | | | | Specify 'GET rather than GET, to actually match the method, rather than binding it to GET.
* Prioritise processing the latest revisions for branchesChristopher Baines2019-07-16
| | | | | | Reserve some capacity to process revisions which are the tip of a branch. This should reduce the time between new revisions appearing, and then being processed.
* Record jobs as failed when they are killedChristopher Baines2019-07-14
| | | | So that they aren't retried again and again.
* Kill long running load new revision jobsChristopher Baines2019-07-12
| | | | | | There are some revisions of Guix which take forever to process (or days at least). To avoid jobs being processed forever, kill them after they've been running for a while (default 24 hours).
* Switch to processing jobs in parallelChristopher Baines2019-07-12
| | | | | | This should speed up processing new revisions, reduce latency between finding out about new revisions and processing them, as well as help manage memory usage, by processing each job in a process that then exits.
* Obtain a lock when inserting the data for a new revisionChristopher Baines2019-07-12
| | | | | | | | | | | | This is working towards running the jobs in parallel. Each job looks at the records in the database, and adds missing ones. If other jobs, running in different transactions insert the same missing records at the same time, this could cause an error. Therefore, to just avoid this problem, lock before inserting the data. This will allow the jobs to be processed in parallel, and it shouldn't have too much of an effect on performance, as the slow bit is outside of the transaction.
* Lock around the channel fetch when loading new revisionsChristopher Baines2019-07-12
| | | | | | | This is in preparation for running jobs in parallel. The channels code in Guix uses a cached copy of the Git repository. Multiple jobs can't concurrently access this without causing issues, so use an advisory lock to ensure that only one job is using the repository at a time.
* Add a couple of functions for PostgreSQL advisory locksChristopher Baines2019-07-12
| | | | | Use symbol-hash to convert a symbol to the number for the lock. I'm hoping this is OK, and it seems to be stable.
* Fix a bug where the list of 0 licenses wasn't handled correctlyChristopher Baines2019-07-12
| | | | | This happened for a package with #f as the licenses. That's incorrect, but try to handle it without erroring.
* Associate a name with database connectionsChristopher Baines2019-07-12
| | | | This helps when working out which connection to the database is doing what.
* Fix using defined? to check for the open-inferior/container functionChristopher Baines2019-07-09
| | | | It doesn't work as intended unless the module is also specified, so do that.
* Fix issue inserting the empty log rowChristopher Baines2019-07-09
| | | | | If the job started, and then was restarted, the row will already exist. So don't error on a conflict.
* Move around some of the load new revision codeChristopher Baines2019-07-07
| | | | | | To better separate the code that needs to happen after a lock has been acquired to allow concurrently loading revisions without concurrent insertion issues.
* Tweak how logs are storedChristopher Baines2019-07-07
| | | | | | | | | | | | | | | | | | 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.
* Add some missing arguments to view-revision-packagesChristopher Baines2019-07-07
|
* Add buttons to scroll the page on the job pageChristopher Baines2019-06-24
| | | | | As the page can be quite long, so jumping to the top and bottom is really useful.
* Iterate the log viewingChristopher Baines2019-06-24
| | | | | | | | Replace the Guile-side HTML escaping with a less complete, but hopefully faster PostgreSQL side HTML escaping approach. Also, allow reading part of the log, by default, the last 1,000,000 characters, as this should render quickly.
* Add a parse-number function to the query-parameters moduleChristopher Baines2019-06-24
| | | | | Which does the same thing as parse-result-limit, which may have an overly specific name.