aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* 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.
* Add a couple of functions around timingChristopher Baines2019-06-21
| | | | That don't rely on timing a single function.
* Log the time loading new revisions takesChristopher Baines2019-06-21
|
* Set #:fallback? to #tChristopher Baines2019-06-21
| | | | If a substitute fails, just build it anyway.
* Remove the revision labels from the linksChristopher Baines2019-06-20
| | | | As that seems neater.
* Remove the compare form from the index pageChristopher Baines2019-06-20
| | | | | It isn't very useful, as you have to know the commits. Now that there's Git branch information, it should be possible to access this in a more useful way.
* Move the derivations off the compare pageChristopher Baines2019-06-20
| | | | | | To the compare/derivations page. Previously, the compare/derivations page was comparing more than the derivations, notably the package metadata. This change avoids that, and also reduces the information overload on the compare page.
* Don't have all the inputs use a monospace fontChristopher Baines2019-06-20
| | | | Only those where it's appropriate for the data, like commit hashes.
* Process jobs starting with the most recentChristopher Baines2019-06-19
| | | | | | | Conventionally, you'd process the oldest job in a queue, but at the moment, it would be more useful to have recent information more promptly, and fill in the historical gaps later. I'm not sure this'll always be the case, but for now, flip the order in which jobs are processed.
* Use revision labels on the index page as wellChristopher Baines2019-06-19
| | | | | Also flip the branch and revision columns around, and add date information to the branch column.
* Add labels to revisions on the branches and branch pagesChristopher Baines2019-06-19
| | | | | And always link to the revision page. Now the label let's you know if you should expect information or not for that revision.
* Improve the Unknown revision pageChristopher Baines2019-06-19
| | | | | Make it similar to the revision page, as some of the information, like the link to the relevant CGit instance might be available.
* Use line buffering for the input and output portsChristopher Baines2019-06-17
| | | | | As these are used for logging, which is done on a line by line basis. Remove the now redundant calls to (force-output).
* Time everywhere a derivation is built when loading a new revisionChristopher Baines2019-06-17
| | | | As this is useful information.
* Add a new page listing jobsChristopher Baines2019-06-17
|
* Fix indicating if a revision is queued for processingChristopher Baines2019-06-17
|
* Remove some peek calls that have crept inChristopher Baines2019-06-16
|
* Link to the latest processed revision for a branch pageChristopher Baines2019-06-16
|
* Make some pages around revisions more genericChristopher Baines2019-06-16
| | | | | | So that they can also be used for the /branch/foo/latest-processed-revision pages. The content is the same, but the title, link, and some of the links on the page are different.
* Improve the error message when a load revision job failsChristopher Baines2019-06-15
| | | | It's useful to know the commit.
* Support accessing the latest processed revision for a branchChristopher Baines2019-06-13
| | | | | | This makes is easier to get the latest data for a branch in a single request, rather than making one request to find the latest revision, then another to get the data.
* Display a backtrace for errors in channel->derivation-file-nameChristopher Baines2019-06-13
| | | | To help with debugging.
* Catch the guix available when builtChristopher Baines2019-06-13
| | | | | | And use it for the hosting the inferiors, rather than computing the guix package at runtime. This simplifies the behaviour when the Guix Data Service is deployed as a Guix package.
* Rework creating /etc when building the derivation for a revisionChristopher Baines2019-06-13
| | | | | Within an inferior. Just use the presence of open-inferior/container directly, as this is more explicit.
* Don't show failing jobs on the index pageChristopher Baines2019-06-13
| | | | | | I'm not sure quite how to treat these yet, but for now, just stick with the previous behaviour of showing revisions which haven't been processed yet, along with the ones that have been successfully processed.
* Display the request in one goChristopher Baines2019-06-13
| | | | Otherwise, concurrent requests can cause the output to be interleaved.
* Add --port and --host as options to the guix-data-serviceChristopher Baines2019-06-13
|
* Add an option to create a pid-fileChristopher Baines2019-06-11
| | | | | This'll help the a service manager (like the shepherd) know when the service is ready, which at the moment, means the database migrations have happened.
* Change to the sqitch directory to run deployChristopher Baines2019-06-11
| | | | As this means it can find the relevant files.
* Pass the --db-client option to sqitch deployChristopher Baines2019-06-11
| | | | So that it can always find psql.
* Pass --plan-file to the sqitch deploy commandChristopher Baines2019-06-08
|
* Add sqitch and asset related config valuesChristopher Baines2019-06-08
|
* Tweak the Makefile.am to install the right thingsChristopher Baines2019-06-08
| | | | | Install the assets and sqitch files, as they are needed. Remove the test related sources.
* Add a --update-database optionChristopher Baines2019-06-07
| | | | | | This runs Sqitch on startup, which should make managing the database easier, as you just have to restart the service with this option, and the database should be updated if necessary.
* Add a healthcheck endpointChristopher Baines2019-06-06
| | | | | | This indicates currently if the database is accessible and a simple query can be performed. I'm mostly looking at using this when writing a system test for this service.
* Extract the database connection handling from the serverChristopher Baines2019-06-06
| | | | | | | | | Previously, one of the first things that happened when responding to a request was a database connection was made, even when serving the CSS. This is unnecessary, so move the database connection handling in to the controller. Also, to allow for separating it out from the assets, separate the assets out from the parts of the controller that require a database connection.
* Add a new test to cover some of the loading new revisions codeChristopher Baines2019-06-02
|
* Add more detailed new revision job handlingChristopher Baines2019-06-02
| | | | | | | | 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.
* Record job success without deleting the job recordChristopher Baines2019-06-02
| | | | | | | 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.
* Add some missing test files to Makefile.amChristopher Baines2019-06-02
|