summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-04-09utils: Implement with-packages using with-manifest.Arun Isaac
* guix/forge/utils.scm (profile-with-packages, environment-with-packages): Delete functions. (with-packages): Implement in terms of with-manifest.
2022-04-09utils: Add with-manifest.Arun Isaac
* guix/forge/utils.scm: Import (guix modules). (with-manifest): New function.
2022-04-09forge: Do not try to trigger CI jobs when there are none.Arun Isaac
* guix/forge/forge.scm (ci-jobs-trigger-gexp): Import (ice-9 match). Do not try to trigger CI jobs when there are none to be triggered. (forge-service-type): Do not set up cron jobs and webhooks when there are no CI jobs to be triggered.
2022-04-09manifest.scm: Add font-charter and font-fira-code.Arun Isaac
* manifest.scm: Import (gnu packages fonts) and (guix utils). (font-charter, font-fira-code): New variables. Add font-charter and font-fira-code to manifest.
2022-04-09manifest.scm: Use a later unreleased version of skribilo.Arun Isaac
* manifest.scm: Import (gnu packages autotools), (gnu packages gettext), (gnu packages guile), (gnu packages skribilo), (guix git-download) and (guix packages). (skribilo): New variable. List guile-3.0 and skribilo in the manifest.
2022-04-08doc: Link to ci-jobs-trigger-gexp definition.Arun Isaac
* doc/forge.skb (Tutorial): Link mention of post-receive-hook script to the in-source definition of ci-jobs-trigger-gexp.
2022-04-08doc: Create dummy G-expression reader.Arun Isaac
* doc/skribilo.scm: Extend the reader with a dummy G-expression reader.
2022-03-28forge: Add trigger? field to forge-laminar-job.Arun Isaac
* guix/forge/laminar.scm (<forge-laminar-job>)[trigger?]: New field. * guix/forge/forge.scm (ci-jobs-trigger-gexp): Only trigger jobs for which trigger? is #t. * doc/forge.skb (Reference)[<forge-laminar-job>]: Document trigger?.
2022-03-28laminar: Suffix .run and .after in script names.Arun Isaac
* guix/forge/laminar.scm (forge-laminar-activation): Suffix .run and .after in script names.
2022-03-28webhook: Suffix -webhook in script name.Arun Isaac
* guix/forge/webhook.scm (hooks-json-gexp): Suffix -webhook in script name.
2022-03-28forge: Suffix -cron-job in script name.Arun Isaac
* guix/forge/forge.scm (forge-service-type): Suffix -cron-job in script name.
2022-03-28forge: Suffix -post-receive-hook in script name.Arun Isaac
* guix/forge/forge.scm (forge-activation): Suffix -post-receive-hook in script name.
2022-03-28forge: Import only laminar from (gnu packages ci).Arun Isaac
* guix/forge/forge.scm: Import only laminar from (gnu packages ci).
2022-03-21doc: Explain what a post-receive-hook is and how it is set up.Arun Isaac
* doc/forge.skb (Tutorial): Explain what a post-receive-hook is and how it is set up.
2022-03-21doc: Clarify double reference of (guix build utils).Arun Isaac
* doc/forge.skb (Tutorial): Clarify double reference of (guix build utils).
2022-03-20doc: Link to G-expressions in the Guix manual.Arun Isaac
* doc/forge.skb (Tutorial): Link to G-expressions in the Guix manual.
2022-03-20README: Add links to constituent software components.Arun Isaac
* README.org: Add links to constituent software components.
2022-03-20website: Use Fira Code for code blocks.Arun Isaac
* Makefile (fonts): Add FiraCode-Regular.woff2 and FiraCode-SemiBold.woff2. * website/style.css (@font-face: FiraCode-Regular, @font-face: FiraCode-SemiBold): New font faces. (pre, code, samp): Set font-family to 'Fira Code'; (pre): Set font-size to 0.9em. (code, samp): Set font-size to 600 (semi-bold).
2022-03-20website: Use Charter as main body font.Arun Isaac
* Makefile (fonts): New variable. (website/fonts): New target. (website): Depend on website/fonts. (clean): Clean website/fonts. * website/style.css (@font-face: Charter): New font face. (body): Set font-family to Charter. Set font-size to 20px. * .gitignore: Add website/fonts.
2022-03-20Makefile: Clean website files.Arun Isaac
* Makefile (clean): Clean website files.
2022-03-20README: Link to manual from the home page.Arun Isaac
* README.org (Documentation): New section.
2022-03-19doc: Mention minimum configurability to philosophy.Arun Isaac
* README.org (Philosophy), doc/forge.skb (Introduction)[Philosophy]: Mention minimum configurability.
2022-03-19doc: List software components used by guix-forge.Arun Isaac
* README.org, doc/forge.skb (Introduction): List software components used by guix-forge.
2022-03-19forge: Change ownership of parent directory of website directory.Arun Isaac
* guix/forge/forge.scm (forge-activation): Change ownership of parent directory of website directory, instead of changing the ownership of the website directory itself. * doc/forge.skb (Reference)[<forge-project>]: Document it.
2022-03-15forge: Fix showing only first commit on shallow cloned repos.Arun Isaac
HEAD~1..HEAD fails on shallow cloned repos. * guix/forge/build/git.scm (download-git-to-store): Use `--max-count 1' instead of HEAD~1..HEAD to show only the first commit.
2022-03-14forge: Allow deep clone on derivation jobs.Arun Isaac
* guix/forge/forge.scm (derivation-job-gexp): Accept #:deep-clone? argument and pass on to latest-git-checkout. * guix/forge/build/git.scm (download-git-to-store): Accept #:deep-clone? argument, and deep clone the git repository if it is #t. Explicitly specify the first commit to `git log' so that only the first commit message is displayed.
2022-03-08forge: Add with-profile utility.Arun Isaac
* guix/forge/build/utils.scm: New file.
2022-03-08doc: Reference source files inside guix directory.Arun Isaac
The source files are now nested one level deeper in the guix directory, and the references to the source files in the documentation need to be updated. * doc/forge.skb (Reference): Reference source files inside guix directory.
2022-03-02Move channel modules into subdirectory.Arun Isaac
We don't want the scm files in doc to be picked up on `guix pull'. * .guix-channel: New file. * forge: Move to guix/forge.
2022-02-28website: Use reduced font size to indicate code and samp.Arun Isaac
Use a slightly reduced font size instead of background color to indicate code. This is the style used by the skribilo documentation, and is much less in your face. * website/style.css (code): Unset background-color, padding-left and padding-right. (code, samp): Set font-size to 0.8em.
2022-02-28forge: Require laminar service for forge-laminar service.Arun Isaac
The forge-laminar service should require the laminar service, and transparently set it up even if the user has not explicitly specified it. * forge/laminar.scm: Import (gnu services ci). (forge-laminar-service-type): Extend laminar-service-type with a dummy value, thus requiring it.
2022-02-28forge: Specify default value for webhook-service-type.Arun Isaac
* forge/webhook.scm (webhook-service-type): Specify default value.
2022-02-28forge: Remove unnecessary (guix gexp) import.Arun Isaac
* forge/forge.scm: Remove (guix gexp) import.
2022-02-28doc: Add Tutorial.Arun Isaac
* Makefile (doc_snippets): New variable. ($(doc_html)): Depend on $(doc_snippets). * doc/forge.skb: Import (skribilo source lisp). (Tutorial): New chapter. * doc/snippets/tutorial.scm: New file.
2022-02-28doc: Add table of contents.Arun Isaac
* doc/forge.skb: Add table of contents.
2022-02-28forge: Append file:// to local git repository URLs before cloning.Arun Isaac
Shallow clone works on local git repositories only with a file:// URL. * forge/build/git.scm (download-git-to-store): Append file:// to local git repository URLs.
2022-02-28forge: Do not use use-modules in with-packages.Arun Isaac
This composes better. * forge/utils.scm (with-packages): Do not use use-modules.
2022-02-28forge: Clone the default branch, not any specific branch.Arun Isaac
* forge/build/git.scm (download-git-to-store): Demote branch to optional keyword argument. * forge/forge.scm (derivation-job-gexp): Do not pass the branch argument to download-git-to-store. * doc/forge.skb (Reference)[<forge-project>]: Document that the repository-branch field is unused.
2022-02-28forge: Do not use use-modules in derivation-job-gexp.Arun Isaac
This composes better. * forge/forge.scm (derivation-job-gexp): Do not use use-modules.
2022-02-28forge: Rename gexp-producer->derivation-output to derivation-job-gexp.Arun Isaac
derivation-job-gexp is less verbose. Besides, this function accepts forge projects and forge laminar jobs. So, there is no point pretending that this is a generic gexp function. * forge/forge.scm (gexp-producer->derivation-output): Rename to derivation-job-gexp.
2022-02-28doc: Add Reference chapter.Arun Isaac
* doc/forge.skb (Reference): New chapter.
2022-02-28doc: Add reference documentation machinery.Arun Isaac
* doc/skribilo.scm: Import (srfi srfi-1), (srfi srfi-9), (srfi srfi-26) and (srfi srfi-171). (<record>, <no-default>, <record-field>): New record types. (field-sexp->record-field, record-sexp->record, find-record-definition, expression->string): New functions. (record-documentation, record-field): New public functions.
2022-02-28forge: Rename <forge-project-configuration> to <forge-project>.Arun Isaac
We need not suffix every record name with "configuration". Besides, <forge-project> is not directly a service configuration record. * forge/forge.scm (forge)[<forge-project-configuration>]: Rename to <forge-project>. Update all invocations of <forge-project> accessors.
2022-02-28forge: Deprecate <forge-derivation-job>.Arun Isaac
* forge/forge.scm (<forge-derivation-job>): Delete record type. (<forge-configuration>)[guix-daemon-uri]: Delete field. (forge-project-configuration-laminar-jobs): Delete function. (forge-activation, forge-service-type): Use forge-project-configuration-ci-jobs instead of forge-project-configuration-laminar-jobs. (gexp-producer->job-script): Delete function.
2022-02-28forge: Introduce gexp-producer->derivation-output.Arun Isaac
gexp-producer->derivation-output will allow us to deprecate <forge-derivation-job> and enable users to construct laminar jobs that build derivations with just <forge-laminar-job>. * forge/forge.scm (gexp-producer->derivation-output): New public function.
2022-02-28forge: Thunk ci-jobs and run fields.Arun Isaac
These fields need to be thunked to allow the user access to this-record accessors when describing jobs. * forge/forge.scm (<forge-project-configuration>)[ci-jobs]: Thunk field. * forge/laminar.scm (<forge-laminar-job>)[run]: Thunk field.
2022-02-28forge: Export record type predicates.Arun Isaac
Predicates are also a part of the public interface of a record type and are sometimes required. * forge/forge.scm: Export predicates forge-configuration?, forge-project-configuration? and forge-derivation-job?. * forge/laminar.scm: Export predicate forge-laminar-configuration?.
2022-02-28forge: Export forge-project-configuration-name.Arun Isaac
* forge/forge.scm: Export forge-project-configuration-name.
2022-02-28forge: Add this-record accessors.Arun Isaac
These this-record accessors will be required in thunked fields. * forge/forge.scm (<forge-project-configuration>): Add this-forge-project-configuration accessor and export it. Use it instead of this-record in the default value of the ci-jobs-trigger field. * forge/laminar.scm (<forge-laminar-job>): Add this-forge-laminar-job accessor and export it.
2022-02-28manifest: Add manifest.Arun Isaac
* manifest.scm: New file.