aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Change the git_branches table primary keyChristopher Baines2019-08-05
| | | | To allow for having branches in multiple git repositories.
* 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.
* Remove localhost from the Sqitch configChristopher Baines2019-07-16
| | | | This means it'll connect over the socket, like the application.
* 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.
* Add a process-job commandChristopher Baines2019-07-12
| | | | | | This allows easily processing an individual job by id. This may be useful to use manually, but also when processing jobs in parallel, as forking doesn't work well with the libpq library used by squee.
* 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.
* Fix the name for the jobs-load-new-guix-revision test moduleChristopher Baines2019-07-12
|
* 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.
* Direct the build output to the logging-portChristopher Baines2019-06-22
| | | | So that this is logged.
* Stop closing the log-port portChristopher Baines2019-06-22
| | | | | This part of the soft-port seems to be called, but I don't know why, and trying to close the output port causes issues.
* Add a job pageChristopher Baines2019-06-22
| | | | Which shows the output for that job.
* Record the output from loading new revisions to the databaseChristopher Baines2019-06-22
| | | | | | | 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.
* Re-arrange some of the load new revision codeChristopher Baines2019-06-21
| | | | | Try to isolate the code that inserts in to the database, so that the relevant tables can be locked during this time.