aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/jobs
Commit message (Collapse)AuthorAge
* Generate and store system test derivations for all supported systemsChristopher Baines2020-03-20
| | | | | | | 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.
* Fix marking jobs as failed when exceptions are raisedChristopher Baines2020-03-19
| | | | | The switch away from catch broke this, I obviously still don't quite get how with-exception-handler works. Therefore, use it twice as that seems to help.
* Log the time spent in a locked sectionChristopher Baines2020-02-28
|
* Improve the locking around fetching channel instancesChristopher Baines2020-02-28
| | | | | | | I think there's still the potential for a race condition when working with the cached checkout of the repository, but this lock was far too wide. The sensitive section is just the latest-channel-instances call, as it adds the relevant files to the store, and that's what's returned.
* Improve the error reporting within process-load-new-guix-revision-jobChristopher Baines2020-02-27
| | | | By including a backtrace.
* Prevent inlining for a number of proceduresChristopher Baines2020-02-27
| | | | So that the load-new-guix-revision tests work with Guile 3.
* Add a few imports in preparation for Guile 3Christopher Baines2020-02-27
|
* Adapt some license related code to work without mock in the testsChristopher Baines2020-02-24
| | | | | With Guile 3, there's a potential for mock to work in even fewer circumstances. So, adapt the code to enable writing the tests without mock.
* Switch to using some shorter syntax for logging time takenChristopher Baines2020-02-24
| | | | In the load-new-guix-revision module.
* Add missing ROLLBACK for transactionChristopher Baines2020-02-24
|
* Refactor the logging setup out of process-load-new-guix-revision-jobChristopher Baines2020-02-24
| | | | To simplify both procedures.
* Improve the job loggingChristopher Baines2020-02-15
| | | | | | Switch to using a sequence for the ids in the log parts table, and spawn a thread to listen for output from the inferior processes, and enter it in to the database.
* Make deleting the existing log parts optionalChristopher Baines2020-02-15
|
* Define a new parameter for a port used for the inferior error outputChristopher Baines2020-02-15
|
* Fake the store connection in the testsChristopher Baines2020-02-14
| | | | So that the tests don't require a store connection.
* Add temporary roots for channel instance derivationsChristopher Baines2020-02-13
|
* Use a more long lived store connection for loading dataChristopher Baines2020-02-13
| | | | | As this will enable registering temporary roots, to avoid store items being garbage collected.
* Start storing channel instance derivationsChristopher Baines2020-02-11
| | | | These are the ones that relate to Guix pull.
* Switch using set-current-system to parameterizeChristopher Baines2020-02-11
| | | | As this is neater.
* Refactor how channel derivations are handledChristopher Baines2020-02-09
| | | | | | | | Yet again... This makes the channel-derivations for each system accessible within the load-new-guix-revision procedure, in preparation for storing them in the database.
* Collpase store-item-for-channel in to channel->guix-store-itemChristopher Baines2020-02-09
|
* Start computing channel instance derivations for multiple systemsChristopher Baines2020-02-09
| | | | These aren't stored yet, but this is a start.
* Further refactor channel->derivation-file-nameChristopher Baines2020-02-09
| | | | To reduce the line length.
* Refactor channel->derivation-file-name to reduce line lengthChristopher Baines2020-02-09
|
* Shift extracting channel news to later onChristopher Baines2020-02-09
| | | | | To avoid race conditions between jobs, have it happen after the call to extract-information-from.
* Rework cross derivations supportChristopher Baines2020-02-08
| | | | | | | | | | | | | | 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.
* Store information about system testsChristopher Baines2020-02-03
|
* Log the time to lock package_versions_by_guix_revision_rangeChristopher Baines2020-02-02
|
* Log the time to lock load-new-guix-revision-insertsChristopher Baines2020-02-02
|
* Log the time taken to acquire advisory session locksChristopher Baines2020-02-02
|
* Call add-temp-root for the derivation file namesChristopher Baines2020-02-02
| | | | | | In an attempt to stop the derivations from being garbage collected between the time they're generated, and when they're potentially read by the Guix Data Service.
* Refactor processing lint warningsChristopher Baines2020-02-01
| | | | Extract out a function to make the code slightly easier to read.
* Use the line numbers to make the package deduplication more stableChristopher Baines2020-01-21
| | | | | | | | | | Previously this would just compare on the version if the name was the same, but there are package definitions that share the name and version (itstool is one example). To try and make this more stable, to avoid weird errors, and unstable comparisons between revisions, use the line number when deduplicating packages.
* Fail early if a package lookup fails when loading a revisionChristopher Baines2020-01-21
| | | | | | I think this might be happening when packages are filtered out as duplicates (by name and version), but then a reference to a duplicate occurs somewhere, like in a lint warning.
* Fix setting GUIX_LOCPATH when using open-inferior/containerChristopher Baines2020-01-13
|
* Add a small table of recent job eventsChristopher Baines2020-01-12
| | | | To make it easier to see what recently happened.
* Add more timing and debugging output to the load processChristopher Baines2020-01-04
| | | | To help identify what's taking the most time.
* Switch to using package-supported-systems, not the transitive oneChristopher Baines2019-12-31
| | | | | | This seems to work better for both generating the non-cross and cross derivations. Previously, using the package-transitive-supported-systems approach didn't generate some cross derivations.
* Improve generating derivations for foreign architecturesChristopher Baines2019-12-31
| | | | | | | Use the second argument to package-transitive-supported-systems to correctly identify the different bootstrap path for non x86_64 and i686-linux. The previous implementation did work, but only up until a merge of core-updates changed the bootstrap approach.
* Add pagination to the jobs pageChristopher Baines2019-12-26
|
* Add copyright and license headers to a bunch of source filesChristopher Baines2019-12-26
| | | | That were missing them.
* Fix the representation of the fixed output derivation hashesChristopher Baines2019-12-26
| | | | | | | | | | | Previously, they were nix-base32-string encoded, but the representation in the derivations is base16, so it doesn't make sense to use a different representation in the database. Therefore, add some code that runs before the start of each job to convert the data in the database. It was easier to do this in Guile with the existing support for working with these bytevector representations. After some migration period, the code for converting the old hashes can be removed.
* Better handle errors within process-load-new-guix-revision-jobChristopher Baines2019-12-23
|
* Extract management of package_derivations_by_guix_revision_rangeChristopher Baines2019-12-22
| | | | ... entries in to a separate module, to split the code up a little further.
* Fix the use of defined? in relation to channel newsChristopher Baines2019-12-22
| | | | This worked fine in a REPL, but here it seems the module needs to be passed.
* Add new derivation_output_details_set_id column to the builds tableChristopher Baines2019-12-12
| | | | | As this will hopefully provide a faster way of associating derivations with builds.
* Just update the package derivation entries that need updatingChristopher Baines2019-11-24
| | | | | | | Previously, all the entries for the branch were deleted, but not, only the entries for the branch, that are present in the revision that was loaded will be deleted. This is more efficient, as it avoids deleting and recreating entries in the table that shouldn't have changed.
* Insert channel news entries when loading new guix revisionsChristopher Baines2019-11-21
| | | | If the channel-news-for-commit function is present.
* Extract out creating the guix-revision from extract-information-fromChristopher Baines2019-11-21
| | | | To allow for using the guix-revision-id when inserting channel news entries.
* Refactor channel handling in the load-new-guix-revision moduleChristopher Baines2019-11-21
| | | | To allow for passing the channel to channel-news-for-commit.