diff mbox series

[bug#58236] gnu: genie: Add genie.

Message ID QiTVHqkwXeIqQexAgHAJPeHICRw1vrR6zWI5cyt0KqPrEP9z5QTjfHFuEawqsBZih5Rvzsxo7sjykYRpLcQwnmnb6xLXkovXkoesxWnEKsg=@protonmail.com
State Accepted
Headers show
Series [bug#58236] gnu: genie: Add genie. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git-branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

J. Sims Oct. 4, 2022, 7:37 p.m. UTC
On Monday, October 3rd, 2022 at 01:45, Liliana Marie Prikler <liliana.prikler@ist.tugraz.at> wrote:


> Am Samstag, dem 01.10.2022 um 22:15 +0000 schrieb J. Sims:
> 
> > Hello,
> > 
> > This is a patch to add the GENie project generator to Guix. It's a
> > fork of Premake 4.4 that some other projects, notably the Scopes
> > programming language, use.
> > 
> > I'm submitting it independently instead of as part of a patch series
> > with Scopes because I've already packaged it then accidentally
> > deleted that package twice before. Scopes has some rough edges around
> > packaging in a Guix-friendly way and I don't suspect I will have its
> > package ready very soon. All of this together means I'd like to avoid
> > repeating my previous mistakes and go ahead and get it into Guix.
> > 
> > Thanks,
> > Juli
> > 
> > --------------------------BEGIN-PATCH------------------------------
> > 
> > * gnu/packages/build-tools.scm (genie): Add genie.
> > ---
> 
> Usually, adding comments after this line is preferred.
> 
> > gnu/packages/build-tools.scm | 44
> > ++++++++++++++++++++++++++++++++++++
> > 1 file changed, 44 insertions(+)
> > 
> > diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-
> > tools.scm
> > index 84a62d0fd6..55bec5f817 100644
> > --- a/gnu/packages/build-tools.scm
> > +++ b/gnu/packages/build-tools.scm
> > @@ -14,6 +14,7 @@
> > ;;; Copyright © 2020 Efraim Flashner efraim@flashner.co.il
> > ;;; Copyright © 2021 qblade qblade@protonmail.com
> > ;;; Copyright © 2021 Maxim Cournoyer maxim.cournoyer@gmail.com
> > +;;; Copyright © 2022 Juliana Sims jtsims@protonmail.com
> > ;;;
> > ;;; This file is part of GNU Guix.
> > ;;;
> > @@ -763,3 +764,46 @@ (define-public build
> > @item Extensible language/compiler framework.
> > @end itemize")
> > (license license:gpl2+)))
> > +
> > +(define-public genie
> > + (let ((commit "b139103697bbb62db895e4cc7bfe202bcff4ff25")
> > + (ver "1167"))
> > + (package
> > + (name "genie")
> > + (version ver)
> 
> Use git-version.
> 
> > + (home-page "https://github.com/bkaradzic/genie")
> > + (source
> > + (origin
> > + (method git-fetch)
> > + (uri (git-reference
> > + (url home-page)
> > + (commit commit)))
> > + (file-name (git-file-name name version))
> > + (sha256
> > + (base32
> > "16plshzkyjjzpfcxnwjskrs7i4gg0qn92h2k0rbfl4a79fgmwvwv"))))
> > + (build-system gnu-build-system)
> > + (arguments
> > + `(#:phases
> 
> Prefer lists of G-Expressions.
> 
> > + (modify-phases %standard-phases
> > + (delete 'configure)
> > + (replace 'install
> > + (lambda* (#:key outputs #:allow-other-keys)
> > + (let ((out (assoc-ref outputs "out")))
> > + (install-file "bin/linux/genie"
> > + (string-append out "/bin"))))))
> > + #:parallel-build? #t
> 
> I don't think this one's needed. If however it is necessary, look
> towards webkit for how to hack in -j2.
> 
> > + #:tests? #f)) ;; tests have not been updated since Premake
> > fork
> 
> That sounds bad. Do they all fail or are some of them salvagable?
> 
> > + (synopsis "Project generator tool")
> > + (description "GENie (pronounced as Jenny) is project generator
> > tool. It
> 
> I think we can do without pronunciation guides.
> 
> > +automagically generates project from Lua script, making applying the
> > same
> > +settings for multiple projects easy.
> > +
> > +Supported project generators:
> > +@itemize
> > +@item GNU Makefile
> > +@item JSON Compilation Database
> > +@item Ninja (experimental)
> > +@item Visual Studio 2010, 2012, 2013, 2015, 2017, 2019
> > +@item XCode
> > +@end itemize")
> 
> Make sure your description consists of complete sentences.
> 
> > + (license license:bsd-3))))
> > 
> > base-commit: 461b1e490935e720999e78dc29656ae3c9ea2ea3
> 
> 
> Cheers

Thanks for the feedback (and the kick in the pants I needed to finally get my hands dirty with gexps)! I've incorporated all of your comments. I'd like to note, though, that the tests are apparently entirely manual. I asked the developer how tests should be run and the response was essentially, "compile the project and use it." For what it's worth, I have indeed compiled and used this project in the past, so it should work fine.

-Juli

Comments

Liliana Marie Prikler Oct. 5, 2022, 10:34 a.m. UTC | #1
Am Dienstag, dem 04.10.2022 um 19:37 +0000 schrieb J. Sims:

> (define-public genie
> +  (let ((commit "b139103697bbb62db895e4cc7bfe202bcff4ff25")
> +        (version "1167")
> +        (revision "0"))
Do not let-bind version.
> +    (package
> +      (name "genie")
> +      (version (git-version version revision commit))
> +      (home-page "https://github.com/bkaradzic/genie")
home-page comes before synopsis and description...
> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference
> +                      (url home-page)
> +                      (commit commit)))
Don't pull it up so that you can "save" the url argument.  Type url out
explicitly.
> +                (file-name (git-file-name name version))
> +                (sha256
> +                 (base32
> +                 
> "16plshzkyjjzpfcxnwjskrs7i4gg0qn92h2k0rbfl4a79fgmwvwv"))))
> +      (build-system gnu-build-system)
> +      (arguments
> +       (list #:phases #~(modify-phases %standard-phases
> +                          (delete 'configure)
> +                          (replace 'install
> +                            (lambda _
> +                              (install-file "bin/linux/genie"
> +                                            (string-append #$output
> "/bin")))))
Prefer saving horizontal space over vertical space.
> +             #:tests? #f)) ;only manual tests
When it comes to software testing, there is no sequence of instructions
that only a human can carry out.  Tests either exist or they don't and
in the case of GENie there at least formally exists a directory for
them.
> +      (synopsis "Project generator tool")
Note that tool is superfluous here.
> +      (description
> +       "GENie is project generator tool. It generates projects from
> +Lua scripts, making applying the same settings for multiple projects
> easy. It
I'd simply write "GENie generates projects from Lua scripts, making it
easy to apply the same settings to multiple projects."
> +supports generating projects using GNU Makefiles; JSON Compilation
> Database;
> +Visual Studio 2010, 2012, 2013, 2015, 2017, and 2019; XCode; and
> experimentally
> +supports Ninja.")
We're not going to use proprietary software on our FSDG-compliant
system, so it's only Makefiles, JSON compilation databases and
experimental Ninja.
> +      (license license:bsd-3))))

Cheers
diff mbox series

Patch

From fffb22d1a7c7551fd3d7d843663bac0e61bf72fa Mon Sep 17 00:00:00 2001
From: jts <jtsims@protonmail.com>
Date: Sat, 1 Oct 2022 16:30:06 -0500
Subject: [PATCH] gnu: genie: Add genie.

* gnu/packages/build-tools.scm (genie): Add genie.
---
 gnu/packages/build-tools.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 84a62d0fd6..28418c236a 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -14,6 +14,7 @@ 
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2021 qblade <qblade@protonmail.com>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 Juliana Sims <jtsims@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -763,3 +764,38 @@  (define-public build
 @item Extensible language/compiler framework.
 @end itemize")
     (license license:gpl2+)))
+
+(define-public genie
+  (let ((commit "b139103697bbb62db895e4cc7bfe202bcff4ff25")
+        (version "1167")
+        (revision "0"))
+    (package
+      (name "genie")
+      (version (git-version version revision commit))
+      (home-page "https://github.com/bkaradzic/genie")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url home-page)
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "16plshzkyjjzpfcxnwjskrs7i4gg0qn92h2k0rbfl4a79fgmwvwv"))))
+      (build-system gnu-build-system)
+      (arguments
+       (list #:phases #~(modify-phases %standard-phases
+                          (delete 'configure)
+                          (replace 'install
+                            (lambda _
+                              (install-file "bin/linux/genie"
+                                            (string-append #$output "/bin")))))
+             #:tests? #f)) ;only manual tests
+      (synopsis "Project generator tool")
+      (description
+       "GENie is project generator tool. It generates projects from
+Lua scripts, making applying the same settings for multiple projects easy. It
+supports generating projects using GNU Makefiles; JSON Compilation Database;
+Visual Studio 2010, 2012, 2013, 2015, 2017, and 2019; XCode; and experimentally
+supports Ninja.")
+      (license license:bsd-3))))

base-commit: a96ebe47b0686b5dd7ebe5fc133073abce559f4d
-- 
2.37.3