unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Philip McGrath <philip@philipmcgrath.com>
To: 55030@debbugs.gnu.org
Cc: "Ludovic Courtès" <ludo@gnu.org>,
	"Philip McGrath" <philip@philipmcgrath.com>
Subject: [bug#55030] [PATCH v2 23/34] gnu: Add elm-todomvc.
Date: Wed, 18 May 2022 14:11:10 -0400	[thread overview]
Message-ID: <0fa04d278eaf50f57c74bedc128c7a97961d0095.1652890702.git.philip@philipmcgrath.com> (raw)
In-Reply-To: <cover.1652890702.git.philip@philipmcgrath.com>

* gnu/packages/elm.scm (elm-todomvc): New variable.
* doc/guix.texi (Build Systems)[elm-build-system]: Mention it.
---
 doc/guix.texi        |  4 ++--
 gnu/packages/elm.scm | 53 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 55 insertions(+), 2 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 282cddf798..3d7b3b39c1 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -8748,7 +8748,7 @@ Build Systems
 @file{elm.json} files.  Using @code{elm-build-system} to build Elm
 @dfn{applications} (which declare @code{@{ "type": "application" @}}) is
 possible, but requires ad-hoc modifications to the build phases.  For
-an example, see the definition of
+examples, see the definitions of the @code{elm-todomvc} example application and
 the @code{elm} package itself (because the front-end for the
 @samp{elm reactor} command is an Elm application).
 
@@ -8757,7 +8757,7 @@ Build Systems
 @env{ELM_HOME}, but this does not yet work well with @code{elm-build-system}.
 This limitation primarily affects Elm applications, because they specify
 exact versions for their dependencies, whereas Elm packages specify supported
-version ranges.  As a workaround, you can use
+version ranges.  As a workaround, the example applications mentioned above use
 the @code{patch-application-dependencies} procedure provided by
 @code{(guix build elm-build-system)} to rewrite their @file{elm.json} files to
 refer to the package versions actually present in the build environment.
diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm
index d515d68e8f..9d3a58bcb5 100644
--- a/gnu/packages/elm.scm
+++ b/gnu/packages/elm.scm
@@ -487,3 +487,56 @@ (define-public elm-explorations-markdown
 on the @code{marked} project, which focuses on speed.")
     (license license:bsd-3)))
 
+(define-public elm-todomvc
+  (let ((commit "f236e7e56941c7705aba6e42cb020ff515fe3290")
+        (revision "1"))
+    (package
+      (name "elm-todomvc")
+      (version (git-version "1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/evancz/elm-todomvc")
+               (commit commit)))
+         (sha256
+          (base32 "0g37bglzshkf79s4n7aq9ib44h5qn8ng7n72sh2xslgd20h05nfw"))
+         (file-name (git-file-name name version))))
+      (inputs (list elm-browser elm-core elm-html elm-json))
+      (build-system elm-build-system)
+      (arguments
+       (list
+        #:modules
+        `((srfi srfi-26)
+          ,@%elm-default-modules)
+        #:phases
+        #~(modify-phases %standard-phases
+            (delete 'stage)
+            (replace 'configure
+              patch-application-dependencies)
+            (replace 'build
+              (lambda* (#:key native-inputs inputs #:allow-other-keys)
+                (invoke (search-input-file (or native-inputs inputs)
+                                           "/bin/elm")
+                        "make"
+                        "src/Main.elm"
+                        "--output=elm.js")))
+            (replace 'install
+              (lambda args
+                (let* ((out-dir #$output)
+                       (dest-dir
+                        (string-append out-dir
+                                       "/share/"
+                                       (strip-store-file-name out-dir))))
+                  (for-each (cut install-file <> dest-dir)
+                            `("elm.js"
+                              "index.html"
+                              "style.css"
+                              "README.md")))))
+            (delete 'validate-compiled))))
+      (home-page "https://github.com/evancz/elm-todomvc")
+      (synopsis "TodoMVC in Elm")
+      (description "This is the official Elm implementation of
+@url{https://todomvc.com,TodoMVC}, a simple to-do--list application used to
+compare front-end web frameworks.")
+      (license license:bsd-3))))
-- 
2.32.0





  parent reply	other threads:[~2022-05-18 18:15 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-19 23:27 [bug#55030] [PATCH 00/30] gnu: elm: Update to 0.19.1. Add build system & importer Philip McGrath
2022-04-19 23:31 ` [bug#55030] [PATCH 01/30] gnu: elm-compiler: Update to 0.19.1 Philip McGrath
2022-04-19 23:31   ` [bug#55030] [PATCH 02/30] gnu: elm: Rename package to match the command Philip McGrath
2022-05-01 20:22     ` [bug#55030] [PATCH 00/30] gnu: elm: Update to 0.19.1. Add build system & importer Ludovic Courtès
2022-05-01 21:27       ` Philip McGrath
2022-04-19 23:31   ` [bug#55030] [PATCH 03/30] guix: Add elm-build-system and 'guix import elm' Philip McGrath
2022-05-01 20:35     ` [bug#55030] [PATCH 00/30] gnu: elm: Update to 0.19.1. Add build system & importer Ludovic Courtès
2022-05-01 22:03       ` Philip McGrath
2022-04-19 23:31   ` [bug#55030] [PATCH 04/30] gnu: Add elm-core and elm-json Philip McGrath
2022-04-19 23:31   ` [bug#55030] [PATCH 05/30] build-system/elm: Add implicit Elm inputs Philip McGrath
2022-04-19 23:31   ` [bug#55030] [PATCH 06/30] gnu: Add elm-virtual-dom Philip McGrath
2022-05-01 20:37     ` [bug#55030] [PATCH 00/30] gnu: elm: Update to 0.19.1. Add build system & importer Ludovic Courtès
2022-05-01 22:17       ` Philip McGrath
2022-04-19 23:31   ` [bug#55030] [PATCH 07/30] gnu: Add elm-html Philip McGrath
2022-04-19 23:31   ` [bug#55030] [PATCH 08/30] gnu: Add elm-svg Philip McGrath
2022-04-19 23:31   ` [bug#55030] [PATCH 09/30] gnu: Add elm-time Philip McGrath
2022-04-19 23:31   ` [bug#55030] [PATCH 10/30] gnu: Add elm-url Philip McGrath
2022-04-19 23:31   ` [bug#55030] [PATCH 11/30] gnu: Add elm-browser Philip McGrath
2022-04-19 23:31   ` [bug#55030] [PATCH 12/30] gnu: Add elm-bytes Philip McGrath
2022-04-19 23:31   ` [bug#55030] [PATCH 13/30] gnu: Add elm-file Philip McGrath
2022-04-19 23:31   ` [bug#55030] [PATCH 14/30] gnu: Add elm-http Philip McGrath
2022-04-19 23:31   ` [bug#55030] [PATCH 15/30] gnu: Add elm-parser Philip McGrath
2022-04-19 23:32   ` [bug#55030] [PATCH 16/30] gnu: Add elm-project-metadata-utils Philip McGrath
2022-04-19 23:32   ` [bug#55030] [PATCH 17/30] gnu: Add elm-explorations-markdown Philip McGrath
2022-04-19 23:32   ` [bug#55030] [PATCH 18/30] gnu: elm: Support 'elm reactor' Philip McGrath
2022-04-19 23:32   ` [bug#55030] [PATCH 19/30] gnu: Add elm-todomvc Philip McGrath
2022-04-19 23:32   ` [bug#55030] [PATCH 20/30] gnu: Add elm-debois-elm-dom Philip McGrath
2022-04-19 23:32   ` [bug#55030] [PATCH 21/30] gnu: Add elm-random Philip McGrath
2022-04-19 23:32   ` [bug#55030] [PATCH 22/30] gnu: Add elm-explorations-test Philip McGrath
2022-04-19 23:32   ` [bug#55030] [PATCH 23/30] gnu: Add elm-danhandrea-elm-date-format Philip McGrath
2022-04-19 23:32   ` [bug#55030] [PATCH 24/30] gnu: Add elm-danhandrea-elm-time-extra Philip McGrath
2022-04-19 23:32   ` [bug#55030] [PATCH 25/30] gnu: Add elm-justinmimbs-date Philip McGrath
2022-04-19 23:32   ` [bug#55030] [PATCH 26/30] gnu: Add elm-justinmimbs-time-extra Philip McGrath
2022-04-19 23:32   ` [bug#55030] [PATCH 27/30] gnu: Add elm-myrho-elm-round Philip McGrath
2022-04-19 23:32   ` [bug#55030] [PATCH 28/30] gnu: Add elm-ryannhg-date-format Philip McGrath
2022-04-19 23:32   ` [bug#55030] [PATCH 29/30] gnu: Add elm-terezka-intervals Philip McGrath
2022-04-19 23:32   ` [bug#55030] [PATCH 30/30] gnu: Add elm-terezka-elm-charts Philip McGrath
2022-05-01 20:22 ` [bug#55030] [PATCH 00/30] gnu: elm: Update to 0.19.1. Add build system & importer Ludovic Courtès
2022-05-01 20:41   ` Ludovic Courtès
2022-05-01 22:22     ` Philip McGrath
2022-05-01 21:26   ` Philip McGrath
2022-05-08 21:34     ` Ludovic Courtès
2022-05-18 18:10 ` [bug#55030] [PATCH v2 00/34] " Philip McGrath
2022-05-18 18:10   ` [bug#55030] [PATCH v2 01/34] gnu: elm-compiler: Update to 0.19.1 Philip McGrath
2022-05-18 18:10   ` [bug#55030] [PATCH v2 02/34] gnu: elm: Rename package to match the command Philip McGrath
2022-05-18 18:10   ` [bug#55030] [PATCH v2 03/34] guix: Add elm-build-system Philip McGrath
2022-05-18 18:10   ` [bug#55030] [PATCH v2 04/34] gnu: Add elm-core and elm-json Philip McGrath
2022-05-18 18:10   ` [bug#55030] [PATCH v2 05/34] build-system/elm: Add implicit Elm inputs Philip McGrath
2022-05-18 18:10   ` [bug#55030] [PATCH v2 06/34] http-client: Accept '#:headers' in 'http-fetched/cached' Philip McGrath
2022-05-18 18:10   ` [bug#55030] [PATCH v2 07/34] http-client: 'http-fetch/cached' converts strings to URIs Philip McGrath
2022-05-18 18:10   ` [bug#55030] [PATCH v2 08/34] import: json: Accept '#:http-fetch' in 'json-fetch' Philip McGrath
2022-05-18 18:10   ` [bug#55030] [PATCH v2 09/34] import: Add Elm importer Philip McGrath
2022-05-18 18:10   ` [bug#55030] [PATCH v2 10/34] gnu: Add elm-virtual-dom Philip McGrath
2022-05-18 18:10   ` [bug#55030] [PATCH v2 11/34] gnu: Add elm-html Philip McGrath
2022-05-18 18:10   ` [bug#55030] [PATCH v2 12/34] gnu: Add elm-svg Philip McGrath
2022-05-18 18:11   ` [bug#55030] [PATCH v2 13/34] gnu: Add elm-time Philip McGrath
2022-05-18 18:11   ` [bug#55030] [PATCH v2 14/34] gnu: Add elm-url Philip McGrath
2022-05-18 18:11   ` [bug#55030] [PATCH v2 15/34] gnu: Add elm-browser Philip McGrath
2022-05-18 18:11   ` [bug#55030] [PATCH v2 16/34] gnu: Add elm-bytes Philip McGrath
2022-05-18 18:11   ` [bug#55030] [PATCH v2 17/34] gnu: Add elm-file Philip McGrath
2022-05-18 18:11   ` [bug#55030] [PATCH v2 18/34] gnu: Add elm-http Philip McGrath
2022-05-18 18:11   ` [bug#55030] [PATCH v2 19/34] gnu: Add elm-parser Philip McGrath
2022-05-18 18:11   ` [bug#55030] [PATCH v2 20/34] gnu: Add elm-project-metadata-utils Philip McGrath
2022-05-18 18:11   ` [bug#55030] [PATCH v2 21/34] gnu: Add elm-explorations-markdown Philip McGrath
2022-05-18 18:11   ` [bug#55030] [PATCH v2 22/34] gnu: elm: Support 'elm reactor' Philip McGrath
2022-05-18 18:11   ` Philip McGrath [this message]
2022-05-18 18:11   ` [bug#55030] [PATCH v2 24/34] gnu: Add elm-debois-elm-dom Philip McGrath
2022-05-18 18:11   ` [bug#55030] [PATCH v2 25/34] gnu: Add elm-random Philip McGrath
2022-05-18 18:11   ` [bug#55030] [PATCH v2 26/34] gnu: Add elm-explorations-test Philip McGrath
2022-05-18 18:11   ` [bug#55030] [PATCH v2 27/34] gnu: Add elm-danhandrea-elm-date-format Philip McGrath
2022-05-18 18:11   ` [bug#55030] [PATCH v2 28/34] gnu: Add elm-danhandrea-elm-time-extra Philip McGrath
2022-05-18 18:11   ` [bug#55030] [PATCH v2 29/34] gnu: Add elm-justinmimbs-date Philip McGrath
2022-05-18 18:11   ` [bug#55030] [PATCH v2 30/34] gnu: Add elm-justinmimbs-time-extra Philip McGrath
2022-05-18 18:11   ` [bug#55030] [PATCH v2 31/34] gnu: Add elm-myrho-elm-round Philip McGrath
2022-05-18 18:11   ` [bug#55030] [PATCH v2 32/34] gnu: Add elm-ryannhg-date-format Philip McGrath
2022-05-18 18:11   ` [bug#55030] [PATCH v2 33/34] gnu: Add elm-terezka-intervals Philip McGrath
2022-05-18 18:11   ` [bug#55030] [PATCH v2 34/34] gnu: Add elm-terezka-elm-charts Philip McGrath
2022-05-21 23:45   ` bug#55030: [PATCH 00/30] gnu: elm: Update to 0.19.1. Add build system & importer Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0fa04d278eaf50f57c74bedc128c7a97961d0095.1652890702.git.philip@philipmcgrath.com \
    --to=philip@philipmcgrath.com \
    --cc=55030@debbugs.gnu.org \
    --cc=ludo@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).