summaryrefslogtreecommitdiff
path: root/build-farm.el (follow)
Commit message (Expand)AuthorAgeFilesLines
* Update version to 0.2.2HEADmasterAlex Kost2018-12-181-1/+1
* Update Cuirass evaluations for the latest API•••Follow the changes introduced by <https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git/commit/?id=8d40c49170971ad7bbf8b97336934dbb3d949fc1>. * build-farm-evaluation.el: Handle the new 'in-progress' an 'checkouts' parameters. * build-farm.el: Update required BUI version to 1.2.1 as its new feature is used to display 'commit' parameter in the evaluation list buffer. Alex Kost2018-12-181-1/+1
* Update version to 0.2.1•••This should have been done before "v0.2.1" tag was made on the previous commit, but well... Alex Kost2018-09-091-1/+1
* build: Generalize making "latest builds" buttons•••* build-farm-build.el (build-farm-build-button-action): Add optional 'type' argument. (build-farm-define-build-button): New macro. Use it to generate buttons and actions for them for 'system' and 'job'. (build-farm-info-insert-builds-button): Remove. * build-farm-jobset.el (build-farm-cuirass-jobset-args-info-format): Use 'build-farm-system' button instead. * build-farm.el (build-farm-info-job): Inherit 'button' face. Alex Kost2018-09-061-1/+1
* 'build-farm-current-url' returns default URL as a fallback•••* build-farm.el (build-farm-current-url): Return 'build-farm-url' if current buffer is not a "build-farm" buffer. Alex Kost2018-09-061-1/+12
* Add another system supported by Guix ("aarch64-linux")•••* build-farm.el (build-farm-guix-system-types): Add "aarch64-linux". Alex Kost2018-09-051-2/+9
* Fix 'build-farm-job-regexp'•••This is a followup to commit 4fff68f8401a772d92a8698e0391d260fae8ef69. * build-farm.el (build-farm-job-regexp): Construct regexp depending on 'build-farm-guix-system-types' and 'build-farm-nix-system-types' variables. Otherwise job specification may be miss-interpreted. Alex Kost2018-08-271-1/+5
* Update version to 0.2Alex Kost2018-08-261-1/+1
* Add system buttons to Jobset Info•••* build-farm.el (build-farm-info-system): Inherit from 'button' face. * build-farm-build.el (build-farm-system): New button type. (build-farm-build-button-system-action) (build-farm-info-insert-system-button) (build-farm-info-insert-systems): New procedures. * build-farm-jobset.el (build-farm-cuirass-jobset-args-info-format): Use 'build-farm-info-insert-systems'. Alex Kost2018-08-261-1/+1
* Add interface for Cuirass evaluations•••* build-farm-url.el (build-farm-evaluation-url) (build-farm-latest-evaluations-api-url): New procedures. * build-farm-evaluation.el: New file. (build-farm-latest-evaluations): New command. * build-farm-popup.el (build-farm-popup): Add sub-popup for evaluations. (build-farm-evaluation-popup-maybe) (build-farm-popup-format-number-of-evaluations) (build-farm-popup-latest-evaluations): New procedures. Alex Kost2018-08-261-1/+2
* Insert button for Cuirass jobset when needed•••Cuirass and Hydra jobsets are different things, so make a button for Cuirass jobset specifically. * build-farm.el (build-farm-info-insert-cuirass-jobset): New procedure. * build-farm-build.el (build-farm-build-info-insert-jobset): Use it if current build farm type is 'cuirass'. Alex Kost2018-08-261-3/+17
* Cache cuirass jobsets•••* build-farm.el (build-farm-get-entries): Adjust to handle Hydra projects and Cuirass jobsets similarly. (build-farm-get-project-entries-once): Rename to... (build-farm-get-root-entries-once): ... this. (build-farm-project-names, build-farm-jobset-names): Adjust accordingly. Alex Kost2018-08-261-23/+41
* Read project/jobset according to farm type (Hydra or Cuirass)•••* build-farm.el (build-farm-check-project-support): New procedure. (build-farm-read-project, build-farm-read-jobset): Use keyword arguments. * build-farm-build.el (build-farm-build-latest-prompt-args): Prompt for project only for Hydra farm. * build-farm-popup.el (build-farm-popup-read-jobset): Likewise. (build-farm-popup-read-project): New procedure. * build-farm-project.el (build-farm-projects, build-farm-project): Check if current farm type is Hydra. Alex Kost2018-08-261-14/+26
* Rename 'jobset' interface to 'hydra-jobset'•••Cuirass and Hydra jobsets are completely different, so there will be a separate interface for Cuirass jobsets. * build-farm.el: Update Emacs requirement to 24.4 because 'subr-x' library is needed now. (build-farm-info-insert-jobset): Rename to... (build-farm-info-insert-hydra-jobset): ... this. * build-farm-build.el (build-farm-build-info-insert-jobset): Adjust accordingly. * build-farm-project.el (build-farm-project-info-insert-jobset): Likewise. * build-farm-url.el (build-farm-jobset-api-url): Rename to... (build-farm-hydra-jobset-api-url): ... this. * build-farm-jobset.el: Rename 'jobset' to 'hydra-jobset' everywhere. Alex Kost2018-08-261-2/+2
* build: Add "More info" button when needed•••* build-farm.el (build-farm-current-url-type): New procedure. * build-farm-build.el (build-farm-build-info-insert-more-button) (build-farm-build-info-update-build): New procedures. (build-farm-build-info-format): Add 'build-farm-build-info-insert-more-button'. Alex Kost2018-08-171-0/+4
* Modify a message for the 'fake' search type•••* build-farm.el (build-farm-message): Adjust the message. (build-farm-list-describe): Adjust the commentary. Alex Kost2018-07-271-3/+6
* Add popup interface ('build-farm' command)•••* build-farm-popup.el: New file. * build-farm.el: Add 'magit-popup' to package requirements. Alex Kost2018-07-271-3/+7
* Add 'build-farm-build' command•••* build-farm.el (build-farm-get-entries-1): Wrap a single ID entry into a list. * build-farm-build.el (build-farm-build-search-types): Add 'id' search type. (build-farm-build): New command. Alex Kost2018-07-271-0/+7
* Add jobset button•••* build-farm.el (build-farm-info-jobset): Inherit from 'link' face. (build-farm-jobset): New button type. (build-farm-info-insert-jobset): New procedure. * build-farm-build.el (build-farm-build-info-insert-jobset): Use it. * build-farm-project.el (build-farm-project-info-insert-jobset): Use it. Alex Kost2018-07-271-1/+15
* Add project button•••* build-farm.el (build-farm-info-project): Inherit from 'button' face. (build-farm-project-button-action): New procedure. (build-farm-project): New button type. * build-farm-build.el (build-farm-build-info-insert-project): Use it. * build-farm-jobset.el (build-farm-jobset-info-insert-project): Use it. Alex Kost2018-07-271-1/+19
* Add 'build-farm-project' command•••* build-farm.el (build-farm-get-entries): Add 'id'/'name' search types for 'project' entry type. * build-farm-project.el (build-farm-project): New command. Alex Kost2018-07-271-6/+11
* Move and rename some info faces•••* build-farm-build.el (build-farm-build-info-project) (build-farm-build-info-jobset, build-farm-build-info-job) (build-farm-build-info-system): Move and rename to... * build-farm.el (build-farm-info-project) (build-farm-info-jobset, build-farm-info-job) (build-farm-info-system): ... this. Alex Kost2018-07-271-0/+23
* Complete jobset names when possible•••* build-farm.el (build-farm-jobset-names): New function. (build-farm-read-jobset): Add 'project' argument. * build-farm-build.el (build-farm-build-latest-prompt-args): Adjust accordingly. Alex Kost2018-07-271-5/+15
* Do not hardcode project names•••Receive them from a build farm instead. * build-farm.el (build-farm-projects): Remove variable. (build-farm-get-project-entries-once) (build-farm-project-names): New procedures. (build-farm-read-project): Use it. Alex Kost2018-07-271-4/+20
* Cache projects•••* build-farm.el (build-farm-get-entries-1): New procedure. (build-farm-get-entries): Use it. Cache projects if needed. (build-farm-cache): New variable. (build-farm-cache-get, build-farm-cache-set): New procedures. (build-farm-clear-cache): New command. Alex Kost2018-07-271-8/+50
* Fix checkdoc warningsAlex Kost2018-07-271-1/+1
* Factorize defining system types•••* build-farm-url.el (build-farm-url-package-manager): New function. * build-farm.el (build-farm-system-types): Use it. Alex Kost2018-07-271-10/+6
* Use per-buffer build farm URL•••Previously, a single global 'build-farm-url' variable was used everywhere. But this is not correct: when you change this url, it should take effect only for the future requests, and the existing Farm buffers should use the previous url. So this root url should be local for every build/jobset/project list/info, which is accomplished by this commit. * build-farm-url.el (build-farm-url): Add 'root-url' argument. (build-farm-api-url, build-farm-build-url, build-farm-build-log-url) (build-farm-build-latest-api-url, build-farm-build-queue-api-url) (build-farm-jobset-url, build-farm-jobset-api-url) (build-farm-project-url): Add 'root-url' keyword argument. * build-farm.el: Define accessors for entry args. Specifically... (build-farm-current-url): New function. (build-farm-get-entries, build-farm-get-display, build-farm-message) (build-farm-search-url): New 'root-url' argument. * build-farm-build.el: Adjust to use 'root-url' arguments where appropriate. * build-farm-jobset.el: Likewise. * build-farm-project.el: Likewise. Alex Kost2018-07-271-11/+23
* Add and use 'build-farm-get-display'•••Instead of 'build-farm-ENTRY-TYPE-get-display' functions. * build-farm.el (build-farm-get-display): New procedure. * build-farm-build.el (build-farm-build-get-display): Remove. (build-farm-build-info-insert-builds-button) (build-farm-latest-builds, build-farm-queued-builds): Adjust accordingly. * build-farm-jobset.el (build-farm-jobset-get-display): Remove. (build-farm-jobsets): Adjust accordingly. * build-farm-project.el (build-farm-project-get-display): Remove. (build-farm-projects): Adjust accordingly. Alex Kost2018-07-271-0/+8
* Distinguish system types supported by Nix and Guix•••* build-farm.el (build-farm-system-types): Remove variable. (build-farm-guix-system-types, build-farm-nix-system-types): New variables. (build-farm-system-types): New function. (build-farm-read-system): Use it. (build-farm-job-regexp): Adjust to avoid using system types. Alex Kost2018-07-271-5/+29
* Do not require match for system/project readers•••* build-farm.el (build-farm-read-project, build-farm-read-system): Do not require match as the input may not necessarily be one of the completions. Alex Kost2018-07-161-0/+2
* Add interface for projects ('build-farm-projects' command)•••* build-farm-url.el (build-farm-project-url): New function. * build-farm-project.el: New file. Alex Kost2018-07-161-4/+5
* Move all url procedures to "build-farm-url.el"•••* build-farm.el (build-farm-url-alist, build-farm-guess-url) (build-farm-urls, build-farm-url, build-farm-read-url) (build-farm-set-url, build-farm-type-by-url, build-farm-api-url) (build-farm-receive-data): Move to... * build-farm-build.el (build-farm-build-url, build-farm-build-log-url) (build-farm-build-latest-api-url, build-farm-build-queue-api-url): Move to... * build-farm-jobset.el (build-farm-jobset-url) (build-farm-jobset-api-url): Move to... * build-farm-url.el: ... here. New file. Alex Kost2018-07-161-100/+13
* Add 'build-farm-set-url' command•••* build-farm.el (build-farm-read-url): New function. (build-farm-set-url): New command. Alex Kost2018-07-161-0/+14
* Try to guess a package manager and a build farm url•••* build-farm-utils.el (build-farm-preferred-package-manager): New variable. * build-farm.el (build-farm-urls): Rename variable to... (build-farm-url-alist): ... this. (build-farm-guess-url, build-farm-urls, build-farm-type-by-url): New procedures. Alex Kost2018-07-161-8/+29
* Initial commit•••The code has been copied from Emacs-Guix package and renamed from 'guix-hydra-...' to 'build-farm-...'. New files: * build-farm.el * build-farm-build.el * build-farm-jobset.el * build-farm-utils.el * .gitignore Alex Kost2018-07-161-0/+361