projects/guix·blob javascript-team · refs

1372 lines · 45.7 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2023 Pierre-Henry Fröhring <[email protected]>
3;;; Copyright © 2024 Igor Goryachev <[email protected]>
4;;; Copyright © 2025, 2026 Giacomo Leidi <[email protected]>
5;;;
6;;; This file is part of GNU Guix.
7;;;
8;;; GNU Guix is free software; you can redistribute it and/or modify it
9;;; under the terms of the GNU General Public License as published by
10;;; the Free Software Foundation; either version 3 of the License, or (at
11;;; your option) any later version.
12;;;
13;;; GNU Guix is distributed in the hope that it will be useful, but
14;;; WITHOUT ANY WARRANTY; without even the implied warranty of
15;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16;;; GNU General Public License for more details.
17;;;
18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20
21(define-module (gnu packages elixir-xyz)
22 #:use-module ((guix licenses) #:prefix license:)
23 #:use-module (gnu packages elixir)
24 #:use-module (gnu packages linux)
25 #:use-module (gnu packages compression)
26 #:use-module (gnu packages base)
27 #:use-module (gnu packages erlang-xyz)
28 #:use-module (gnu packages gettext)
29 #:use-module (gnu packages)
30 #:use-module (guix build mix-build-system)
31 #:use-module (guix build utils)
32 #:use-module (guix build-system gnu)
33 #:use-module (guix build-system mix)
34 #:use-module (guix download)
35 #:use-module (guix git-download)
36 #:use-module (guix gexp)
37 #:use-module (guix utils)
38 #:use-module (guix packages)
39 #:use-module (srfi srfi-1)
40 #:use-module (srfi srfi-26))
41
42(define-public elixir-cc-precompiler
43 (package
44 (name "elixir-cc-precompiler")
45 (version "0.1.11")
46 (source
47 (origin
48 (method url-fetch)
49 (uri (hexpm-uri "cc_precompiler" version))
50 (sha256
51 (base32 "1fbml3rskgm3085mqpwass5b8w4a821g1g75h13gjd88mwn269rl"))))
52 (build-system mix-build-system)
53 (inputs (list elixir-elixir-make))
54 (synopsis "Precompiler module for @code{elixir_make}")
55 (description "This package provides a library that supports
56@code{elixir_make}'s precompilation feature for C/C++ (cross) compilation. It's
57customisble and easy to extend.")
58 (home-page "https://cc-precompiler.hexdocs.pm/")
59 (license license:asl2.0)))
60
61(define-public elixir-elixir-make
62 (package
63 (name "elixir-elixir-make")
64 (version "0.10.0")
65 (source
66 (origin
67 (method url-fetch)
68 (uri (hexpm-uri "elixir_make" version))
69 (sha256
70 (base32 "10hrnfripbwjks4rldajkahv2lrmr3rz1mdbhsw6d256gzxhj7yw"))))
71 (build-system mix-build-system)
72 (synopsis "Make compiler for Mix")
73 (description "This package provides @code{elixir_make}, a Make compiler for
74Mix.")
75 (home-page "https://elixir-make.hexdocs.pm/")
76 (license license:asl2.0)))
77
78(define-public elixir-fine
79 (package
80 (name "elixir-fine")
81 (version "0.1.6")
82 (source
83 (origin
84 (method url-fetch)
85 (uri (hexpm-uri "fine" version))
86 (sha256
87 (base32 "04iv9qffr43ccsvlwd0clphkap1yjxbzlry1prg8i3j8jm2fnf2n"))))
88 (build-system mix-build-system)
89 (arguments
90 (list
91 #:phases
92 #~(modify-phases %standard-phases
93 (add-after 'unpack 'resolve-include-dir-at-runtime
94 (lambda _
95 ;; @include_dir is expanded at compile time and would point
96 ;; to the temporary build directory.
97 (substitute* "lib/fine.ex"
98 (("def include_dir\\(\\), do: @include_dir")
99 "def include_dir(), do: Application.app_dir(:fine, \"c_include\")"))))
100 (add-after 'install 'install-c-include
101 (lambda _
102 (let ((ebin (dirname (car (find-files #$output "^fine\\.app$")))))
103 (copy-recursively "c_include"
104 (string-append (dirname ebin)
105 "/c_include"))))))))
106 (synopsis "C++ library enabling more ergonomic NIFs")
107 (description
108 "Fine is a C++ library enabling more ergonomic NIFs, tailored to Elixir.
109
110Erlang provides C API for implementing native functions (@code{erl_nif}). Fine
111is not a replacement of the C API, instead it is designed as a complementary
112API, enhancing the developer experience when implementing NIFs in C++.")
113 (home-page "https://fine.hexdocs.pm/")
114 (license license:asl2.0)))
115
116(define-public elixir-nimble-parsec
117 (package
118 (name "elixir-nimble-parsec")
119 (version "1.4.2")
120 (source
121 (origin
122 (method url-fetch)
123 (uri (hexpm-uri name version))
124 (sha256
125 (base32 "0wy917z0wklczd9ps54dcr9s00yd3jcxmqdv0fs5586x8a4kj8ab"))))
126 (build-system mix-build-system)
127 (arguments (list #:tests? #f)) ; no tests
128 (synopsis "Text-based parser combinators")
129 (description
130 "This library provides primitives for efficient parser combinators, allowing
131for higher-level combinators through composition.")
132 (home-page "https://hexdocs.pm/nimble_parsec/")
133 (license license:asl2.0)))
134
135(define-public elixir-makeup
136 (package
137 (name "elixir-makeup")
138 (version "1.2.2")
139 (source
140 (origin
141 (method url-fetch)
142 (uri (hexpm-uri name version))
143 (sha256
144 (base32 "1yncpxwpa7r5lnnh5a3zmwkxlxbg1b0j427amcbaxf23ngjj86ls"))))
145 (build-system mix-build-system)
146 (propagated-inputs (list elixir-nimble-parsec))
147 (arguments
148 `(#:tests? #f ; no tests
149 #:phases
150 (modify-phases %standard-phases
151 (add-after 'unpack 'make-reproducible
152 (lambda _
153 (substitute* "lib/makeup/token/utils.ex"
154 (("@precedence Hierarchy.hierarchy_to_precedence\\(@hierarchy\\)")
155 ""))
156 (substitute* "lib/makeup/token/utils.ex"
157 (("@token_to_class_map Hierarchy.style_to_class_map\\(@hierarchy\\)")
158 ""))
159 (substitute* "lib/makeup/token/utils.ex"
160 (("@standard_token_types Map.keys\\(@token_to_class_map\\)")
161 ""))
162 (substitute* "lib/makeup/token/utils.ex"
163 (("@precedence")
164 "Hierarchy.hierarchy_to_precedence(@hierarchy)"))
165 (substitute* "lib/makeup/token/utils.ex"
166 (("@token_to_class_map")
167 "Hierarchy.style_to_class_map(@hierarchy)"))
168 (substitute* "lib/makeup/token/utils.ex"
169 (("@standard_token_types")
170 "Map.keys(token_to_class_map())")))))))
171 (synopsis "Syntax highlighter for source code")
172 (description
173 "Makeup is a generic syntax highlighter in the style of Pygments suitable
174for use in code hosting, forums, wikis or other applications that need to prettify
175source code.")
176 (home-page "https://hexdocs.pm/makeup/")
177 (license license:bsd-2)))
178
179(define-public elixir-jason
180 (package
181 (name "elixir-jason")
182 (version "1.4.1")
183 (source
184 (origin
185 (method url-fetch)
186 (uri (hexpm-uri name version))
187 (sha256
188 (base32 "18d70i31bz11nr6vgsjn5prvhkvwqbyf3xq22ck5cnsnzp6ixc7v"))))
189 (build-system mix-build-system)
190 (arguments (list #:tests? #f)) ; no tests
191 (synopsis "JSON parser and generator")
192 (description
193 "Parser and generator are written in pure Elixir and optimized for speed. They
194are at least twice as fast as other Elixir/Erlang libraries (e.g. Poison). The
195performance is comparable to jiffy, which is implemented in C as a NIF.")
196 (home-page "https://hexdocs.pm/jason/")
197 (license license:asl2.0)))
198
199(define-public elixir-file-system
200 (package
201 (name "elixir-file-system")
202 (version "1.1.1")
203 (source
204 (origin
205 (method url-fetch)
206 (uri (hexpm-uri name version))
207 (sha256
208 (base32 "0pbsz3w7hsvlyzwa0qp203hhga9ss39sk9whn3psw9p5vybzy5bs"))
209 (snippet #~(begin
210 (use-modules (guix build utils) (ice-9 ftw))
211 (mkdir "source")
212 (for-each (lambda (file)
213 (when (not (member file '("." ".." "source")))
214 (rename-file file (string-append "source/" file))))
215 (scandir "."))
216 (with-directory-excursion "source"
217 (invoke (string-append #+gzip "/bin/gunzip") "-v" "contents.tar.gz")
218 (invoke (string-append #+tar "/bin/tar") "-xvf" "contents.tar")
219 (delete-file "contents.tar")
220 (delete-file "priv/inotifywait.exe"))))))
221 (build-system mix-build-system)
222 (propagated-inputs (list inotify-tools))
223 (arguments (list #:tests? #f)) ; no tests
224 (synopsis "File system change watcher")
225 (description "Provides a file system change watcher wrapper based on
226https://github.com/synrc/fs.")
227 (home-page "https://hexdocs.pm/file_system/")
228 (license license:wtfpl2)))
229
230(define-public elixir-accessible
231 (package
232 (name "elixir-accessible")
233 (version "0.3.0")
234 (source
235 (origin
236 (method url-fetch)
237 (uri (hexpm-uri "accessible" version))
238 (sha256
239 (base32 "15pjj1gwc8y18di224yn5g02kxvlardld24a16wzg0mb2431p88k"))))
240 (build-system mix-build-system)
241 (native-inputs
242 (list elixir-excoveralls))
243 (synopsis "Dead-simple Access behaviour for custom structs")
244 (description "This package-provides @code{elixir-accessible}, a library
245providing @code{Access} behaviour for custom structs.")
246 (home-page "https://hexdocs.pm/accessible/")
247 (license license:expat)))
248
249(define-public elixir-arrows
250 (package
251 (name "elixir-arrows")
252 (version "0.2.1")
253 (source
254 (origin
255 (method url-fetch)
256 (uri (hexpm-uri "arrows" version))
257 (sha256
258 (base32 "17gv9xlf6kysa678b421gsvbrlfymvk03mk6rqmphygxyal1ppn3"))))
259 (build-system mix-build-system)
260 (synopsis "Handful of (mostly) arrow macros for Elixir")
261 (description "This package provides @code{elixir-arrows}, a library
262implementing a handful of (mostly) arrow macros.")
263 (home-page "https://hexdocs.pm/arrows/")
264 (license license:asl2.0)))
265
266(define-public elixir-assert-value
267 (package
268 (name "elixir-assert-value")
269 (version "0.10.5")
270 (source
271 (origin
272 (method url-fetch)
273 (uri (hexpm-uri "assert_value" version))
274 (sha256
275 (base32 "1rkxnbgp86yll8gr62nimfr7d2c3afhp76ggqyr5avl85v5sx2ds"))))
276 (build-system mix-build-system)
277 (synopsis
278 "Writes and updates tests for you")
279 (description
280 "This packag provides @{assert_value, an @code{ExUnit} assert
281that writes and updates tests for you.")
282 (home-page "https://hexdocs.pm/assert_value/")
283 (license license:expat)))
284
285(define-public elixir-beam-file
286 (package
287 (name "elixir-beam-file")
288 (version "0.6.4")
289 (source
290 (origin
291 (method url-fetch)
292 (uri (hexpm-uri "beam_file" version))
293 (sha256
294 (base32 "0ca497m27pld8dvf2zp35rv0zdvz7lc4zgl67s8610x612x5sa9z"))))
295 (build-system mix-build-system)
296 (native-inputs
297 (list elixir-excoveralls elixir-recode))
298 (synopsis "Interface to the BEAM file format and a decompiler")
299 (description "This package implements an interface to the BEAM file format
300and a decompiler.")
301 (home-page "https://hexdocs.pm/beam_file/")
302 (license license:expat)))
303
304(define-public elixir-brex-result
305 (package
306 (name "elixir-brex-result")
307 (version "0.4.0")
308 (source
309 (origin
310 (method url-fetch)
311 (uri (hexpm-uri "brex_result" version))
312 (sha256
313 (base32 "1y243rg5kc4fhq62hr45agdy2m1afx2zhv65bpspwwj83k3sl8f2"))))
314 (build-system mix-build-system)
315 (native-inputs
316 (list elixir-excoveralls))
317 (synopsis
318 "Handle common return values")
319 (description
320 "This package provides tools to handle common return values in Elixir.")
321 (home-page "https://hexdocs.pm/brex_result/")
322 (license license:expat)))
323
324(define-public elixir-bunt
325 (package
326 (name "elixir-bunt")
327 (version "1.0.0")
328 (source
329 (origin
330 (method url-fetch)
331 (uri (hexpm-uri name version))
332 (sha256
333 (base32 "1ddnkg6w3iqzb8z18b7sr7jlmmbn9rf77w4nh1mzmxm512m8cpyw"))))
334 (build-system mix-build-system)
335 (arguments (list #:tests? #f)) ; no tests
336 (synopsis "256 color ANSI coloring in the terminal")
337 (description "Bunt is an Elixir package that enables 256 color ANSI
338coloring in the terminal and allows users to alias colors to more semantic and
339application-specific names1.")
340 (home-page "https://hexdocs.pm/bunt/")
341 (license license:expat)))
342
343(define-public elixir-inch-ex
344 (package
345 (name "elixir-inch-ex")
346 (version "2.0.0")
347 (source
348 (origin
349 (method url-fetch)
350 (uri (hexpm-uri name version))
351 (sha256
352 (base32 "1a4rjcy3hn5pc40si1d1y7qg0b0mnxx6pw825la67ky8r9gfrl4n"))))
353 (build-system mix-build-system)
354 (arguments (list #:tests? #f)) ; no tests
355 (propagated-inputs (list elixir-bunt elixir-jason))
356 (synopsis
357 "Suggest enhancements for inline documentation")
358 (description
359 "This package provides a Mix task that gives you hints where to improve your
360inline docs.")
361 (home-page "https://hex.pm/packages/inch_ex")
362 (license license:expat)))
363
364(define-public elixir-castore
365 (package
366 (name "elixir-castore")
367 (version "1.0.20")
368 (source
369 (origin
370 (method url-fetch)
371 (uri (hexpm-uri name version))
372 (sha256
373 (base32 "044wwgzgc7rm2f1fmr63aidmbv2l7cdw2fq8kxjfwjxiv2zsy3ll"))))
374 (build-system mix-build-system)
375 (arguments (list #:tests? #f)) ; no tests
376 (synopsis "Up-to-date CA certificate store")
377 (description "The Elixir castore package is a micro-library that provides
378an up-to-date CA certificate store file for Elixir applications.")
379 (home-page "https://hexdocs.pm/castore/")
380 (license license:asl2.0)))
381
382(define-public elixir-calendar-interval
383 (package
384 (name "elixir-calendar-interval")
385 (version "0.2.0")
386 (source
387 (origin
388 (method url-fetch)
389 (uri (hexpm-uri "calendar_interval" version))
390 (sha256
391 (base32 "1c57ig10dpg6xz9i6lll51nxk0g8qphqfab2iyihh676100mwgf1"))))
392 (build-system mix-build-system)
393 (synopsis "Work with calendar intervals")
394 (description
395 "This package provides functions for working with calendar intervals.")
396 (home-page "https://hexdocs.pm/calendar_interval/")
397 (license license:asl2.0)))
398
399(define-public elixir-excoveralls
400 (package
401 (name "elixir-excoveralls")
402 (version "0.18.5")
403 (source
404 (origin
405 (method url-fetch)
406 (uri (hexpm-uri name version))
407 (sha256
408 (base32 "0qhmw3mcbb2zfsp2b1cwaxl8xmyvinz2marahmj6vy03ashyhgsj"))))
409 (build-system mix-build-system)
410 (propagated-inputs (list elixir-castore elixir-jason))
411 (arguments (list #:tests? #f)) ; no tests
412 (synopsis "Coverage report tool with coveralls.io integration")
413 (description
414 "Library that reports test coverage statistics, with the option to
415post to coveralls.io service. It uses Erlang's cover to generate coverage
416information, and posts the test coverage results to coveralls.io through the
417JSON API.")
418 (home-page "https://hexdocs.pm/excoveralls/")
419 (license license:expat)))
420
421(define-public elixir-combine
422 (package
423 (name "elixir-combine")
424 (version "0.10.0")
425 (source
426 (origin
427 (method url-fetch)
428 (uri (hexpm-uri "combine" version))
429 (sha256
430 (base32 "06s5y8b0snr1s5ax9v3s7rc6c8xf5vj6878d1mc7cc07j0bvq78v"))))
431 (build-system mix-build-system)
432 (synopsis "Parser combinator library for Elixir projects")
433 (description
434 "This package provides a parser combinator library for Elixir projects.")
435 (home-page "https://hexdocs.pm/combine/")
436 (license license:expat)))
437
438(define-public elixir-credo
439 (package
440 (name "elixir-credo")
441 (version "1.7.19")
442 (source
443 (origin
444 (method url-fetch)
445 (uri (hexpm-uri name version))
446 (sha256
447 (base32 "1f2plm90644anjifcqjbzp1padbaikqd889nc799vfbvb9fwk2rd"))))
448 (build-system mix-build-system)
449 (arguments (list #:tests? #f)) ; no tests
450 (propagated-inputs (list elixir-bunt elixir-file-system elixir-jason))
451 (native-inputs (list elixir-excoveralls elixir-inch-ex))
452 (synopsis "Static code analysis tool")
453 (description
454 "Credo is a static code analysis tool for the Elixir language with a focus on
455teaching and code consistency. Credo can show you refactoring opportunities in
456your code, complex code fragments, warn you about common mistakes, show
457inconsistencies in your naming scheme and - if needed - help you enforce a
458desired coding style.")
459 (home-page "https://hexdocs.pm/credo/")
460 (license license:expat)))
461
462(define-public elixir-decimal
463 (package
464 (name "elixir-decimal")
465 (version "3.1.1")
466 (source
467 (origin
468 (method url-fetch)
469 (uri (hexpm-uri "decimal" version))
470 (sha256
471 (base32 "1xpiii4w9pwyzn7qqb4jsg4j9sdqbmcky0p60dymi83lxln5zwn5"))))
472 (build-system mix-build-system)
473 (native-inputs
474 (list elixir-stream-data))
475 (synopsis "Arbitrary precision decimal arithmetic")
476 (description "This package provides @code{elixir-decimal}, a library that
477represents values internally using three integers: a sign, a coefficient, and an
478exponent. In this way, numbers of any size and with any number of decimal
479places can be represented exactly.")
480 (home-page "https://hexdocs.pm/decimal/")
481 (license license:asl2.0)))
482
483(define-public elixir-decorator
484 (package
485 (name "elixir-decorator")
486 (version "1.4.0")
487 (source
488 (origin
489 (method url-fetch)
490 (uri (hexpm-uri "decorator" version))
491 (sha256
492 (base32 "0zsrasbf6z3g7xs1s8gk5g7rf49ng1dskphqfif8gnl3j3fww1qa"))))
493 (build-system mix-build-system)
494 (synopsis "Function decorators for Elixir")
495 (description "This package provides @code{elixir-decorator}, a library
496implementing function decorators for Elixir.")
497 (home-page "https://hexdocs.pm/decorator/")
498 (license license:expat)))
499
500(define-public elixir-erlex
501 (package
502 (name "elixir-erlex")
503 (version "0.2.9")
504 (source
505 (origin
506 (method url-fetch)
507 (uri (hexpm-uri name version))
508 (sha256
509 (base32 "12qp031bnb28wk5xb617igw81pk4h1c8mciavrrnv7hmqw7grzwc"))))
510 (build-system mix-build-system)
511 (arguments (list #:tests? #f)) ; no tests
512 (synopsis
513 "Convert Erlang style structs and error messages to equivalent Elixir")
514 (description
515 "Converted structs and error messages are useful for pretty printing
516things like Dialyzer errors and Observer.")
517 (home-page "https://hexdocs.pm/erlex/")
518 (license license:asl2.0)))
519
520(define-public elixir-escape
521 (package
522 (name "elixir-escape")
523 (version "0.4.1")
524 (source
525 (origin
526 (method url-fetch)
527 (uri (hexpm-uri "escape" version))
528 (sha256
529 (base32 "0n214hgabvdmn4b1kln3zs8azc917kzjx1yz3jxszcgzcqfn8zc6"))))
530 (build-system mix-build-system)
531 (native-inputs
532 (list elixir-prove))
533 (synopsis "ANSI escape tool")
534 (description "This package provides an ANSI escape tool in Elixir.")
535 (home-page "https://hexdocs.pm/escape/")
536 (license license:expat)))
537
538(define-public elixir-ex-ulid
539 (package
540 (name "elixir-ex-ulid")
541 (version "0.1.0")
542 (source
543 (origin
544 (method url-fetch)
545 (uri (hexpm-uri "ex_ulid" version))
546 (sha256
547 (base32 "0q08y8xw2q4dr1w6g3rcyjlgib2w2wz26znycfan7i7bg93zvgm2"))))
548 (build-system mix-build-system)
549 (synopsis
550 "Provides an ULID implementation in Elixir")
551 (description
552 "This package provides @code{elixir-ex-ulid} an implementation of
553Universally Unique Lexicographically Sortable Identifier (ULID).")
554 (home-page "https://hexdocs.pm/ex_ulid/")
555 (license license:asl2.0)))
556
557(define-public elixir-expo
558 (package
559 (name "elixir-expo")
560 (version "1.1.1")
561 (source
562 (origin
563 (method url-fetch)
564 (uri (hexpm-uri "expo" version))
565 (sha256
566 (base32 "0h0nh72i5khlv1sk0avfn2hklrvqd73kfgg2nw0f56imrfwhicsz"))))
567 (build-system mix-build-system)
568 (synopsis
569 "Low-level Gettext file handling")
570 (description
571 "This package implements low-level Gettext file handling (.po/.pot/.mo file
572writer and parser).")
573 (home-page "https://hexdocs.pm/expo/")
574 (license license:asl2.0)))
575
576(define-public elixir-faker
577 (package
578 (name "elixir-faker")
579 (version "0.18.0")
580 (source
581 (origin
582 (method url-fetch)
583 (uri (hexpm-uri "faker" version))
584 (sha256
585 (base32 "15qpx2rvapffjq8zsk720nnm3rhn91y33jcyx642g3npb0wxigdz"))))
586 (build-system mix-build-system)
587 (synopsis "Generate fake data")
588 (description "Faker is a pure Elixir library for generating fake data.")
589 (home-page "https://hexdocs.pm/faker/")
590 (license license:expat)))
591
592(define-public elixir-dialyxir
593 (package
594 (name "elixir-dialyxir")
595 (version "1.4.7")
596 (source
597 (origin
598 (method url-fetch)
599 (uri (hexpm-uri name version))
600 (sha256
601 (base32 "1zlygpr2i3bz2pgr8h1syjc5hp62jq4i3v7gk3hwxf3f5qh2fidk"))))
602 (build-system mix-build-system)
603 (arguments (list #:tests? #f)) ; no tests
604 (propagated-inputs (list elixir-erlex))
605 (synopsis "Mix tasks to simplify use of Dialyzer")
606 (description
607 "Mix Tasks are usable from the directory of the mix project you want to analyze.")
608 (home-page "https://hexdocs.pm/dialyxir/")
609 (license license:asl2.0)))
610
611(define-public elixir-geo
612 (package
613 (name "elixir-geo")
614 (version "4.1.0")
615 (source
616 (origin
617 (method url-fetch)
618 (uri (hexpm-uri "geo" version))
619 (sha256
620 (base32 "0d19k98bwnpk3fyhd2zicjyix5chph8zpcbknl0zgacc76rv5v8r"))))
621 (build-system mix-build-system)
622 (propagated-inputs (list elixir-jason))
623 (synopsis "Encodes and decodes WKB, WKT, and GeoJSON formats")
624 (description "This package provides @code{elixir-geo}, a library to encode
625and decode WKB, WKT, and @code{GeoJSON} formats.")
626 (home-page "https://hexdocs.pm/geo/")
627 (license license:expat)))
628
629(define-public elixir-gettext
630 (package
631 (name "elixir-gettext")
632 (version "1.0.2")
633 (source
634 (origin
635 (method url-fetch)
636 (uri (hexpm-uri "gettext" version))
637 (sha256
638 (base32 "1czy3gxqbjh6kpy5lvm7dqcifjlcbi8i81r9mmqj10463180bf7a"))))
639 (build-system mix-build-system)
640 (native-inputs
641 (list elixir-castore
642 elixir-excoveralls
643 elixir-jason))
644 (inputs
645 (list gnu-gettext))
646 (propagated-inputs (list elixir-expo))
647 (synopsis "Internationalization and localization through gettext")
648 (description "This package implements internationalization and localization
649through gettext.")
650 (home-page "https://hexdocs.pm/gettext/")
651 (license license:asl2.0)))
652
653(define-public elixir-git-diff
654 (package
655 (name "elixir-git-diff")
656 (version "0.6.4")
657 (source
658 (origin
659 (method url-fetch)
660 (uri (hexpm-uri "git_diff" version))
661 (sha256
662 (base32 "0prs08cf2dlswrhhkrja557dgs5jarhjkz86ldhfk4bc2cy5c1cy"))))
663 (build-system mix-build-system)
664 (native-inputs
665 (list elixir-excoveralls))
666 (synopsis "Simple parser for output from @command{git diff}")
667 (description
668 "This package provides a simple parser for output from @command{git diff}.")
669 (home-page "https://hexdocs.pm/git_diff/")
670 (license license:expat)))
671
672(define-public elixir-glob-ex
673 (package
674 (name "elixir-glob-ex")
675 (version "0.1.11")
676 (source
677 (origin
678 (method url-fetch)
679 (uri (hexpm-uri "glob_ex" version))
680 (sha256
681 (base32 "1r2xa8h10d1ynrcdbwbq8fg34k4qd5kl2svnc5g19qsn60v2j9rl"))))
682 (build-system mix-build-system)
683 (native-inputs
684 (list elixir-prove))
685 (synopsis "Library for glob expressions")
686 (description "This package provides a library for glob expressions.")
687 (home-page "https://hexdocs.pm/glob_ex/")
688 (license license:expat)))
689
690(define-public elixir-json-serde
691 (package
692 (name "elixir-json-serde")
693 (version "1.1.1")
694 (source
695 (origin
696 (method url-fetch)
697 (uri (hexpm-uri "json_serde" version))
698 (sha256
699 (base32 "08irad6l6v6rblxmzh5vcv087q1xim0rhzjl6x9ypz3fq7xcsyha"))))
700 (build-system mix-build-system)
701 (propagated-inputs (list elixir-brex-result elixir-decimal elixir-jason))
702 (synopsis
703 "Serializes and deserializes nested datastructures")
704 (description
705 "@code{JsonSerde} serializes and deserializes nested Elixir datastructures,
706including custom structs.")
707 (home-page "https://hexdocs.pm/json_serde/")
708 (license license:asl2.0)))
709
710(define-public elixir-ham
711 (package
712 (name "elixir-ham")
713 (version "0.3.2")
714 (source
715 (origin
716 (method url-fetch)
717 (uri (hexpm-uri "ham" version))
718 (sha256
719 (base32 "16m6yvr00dri38fcli5fm69rwl2i0mvqdcclbwmx78z5q22cc75p"))))
720 (build-system mix-build-system)
721 (synopsis "Runtime Type checking")
722 (description "This package provides @code{ham}, a library to validate
723function arguments and return values against their typespecs.")
724 (home-page "https://hexdocs.pm/ham/")
725 (license license:asl2.0)))
726
727(define-public elixir-igniter
728 (package
729 (name "elixir-igniter")
730 (version "0.8.2")
731 (source
732 (origin
733 (method url-fetch)
734 (uri (hexpm-uri "igniter" version))
735 (sha256
736 (base32 "03x3599x37csj8ilg3jpshiqcqb0qygm1bkk12hkw7x2zg9nl549"))))
737 (build-system mix-build-system)
738 (arguments
739 ;; FIXME: Tests depend on elixir-eflame, which is not yet packaged.
740 (list #:tests? #f))
741 (propagated-inputs
742 (list elixir-glob-ex
743 elixir-jason
744 elixir-rewrite
745 elixir-sourceror
746 elixir-spitfire))
747 (synopsis "Code generation and project patching framework")
748 (description
749 "This package provides a code generation and project patching framework.")
750 (home-page "https://hexdocs.pm/igniter/")
751 (license license:expat)))
752
753(define-public elixir-machete
754 (package
755 (name "elixir-machete")
756 (version "0.3.12")
757 (source
758 (origin
759 (method url-fetch)
760 (uri (hexpm-uri name version))
761 (sha256
762 (base32 "17i4rwggvyazmgk4mxgzdprhgzx87ibaayd6bnh55y088w95yv8x"))))
763 (build-system mix-build-system)
764 (native-inputs (list elixir-credo elixir-dialyxir))
765 (synopsis "Literate test matchers for ExUnit")
766 (description
767 "Machete provides ergonomic match operators that act as building blocks to let
768you define test expectations that can match data against any combination of
769literals, variables, or parametrically defined matchers.")
770 (home-page "https://hexdocs.pm/machete/")
771 (license license:expat)))
772
773(define-public elixir-mime
774 (package
775 (name "elixir-mime")
776 (version "2.0.7")
777 (source
778 (origin
779 (method url-fetch)
780 (uri (hexpm-uri "mime" version))
781 (sha256
782 (base32 "1k8cx1qwgwshc3gx4hg2w9r9cvgb8pj6rdy5zwin1qcy7671hwb1"))))
783 (build-system mix-build-system)
784 (synopsis "MIME types module")
785 (description "This package provides @code{elixir-mime}, a MIME type module
786for Elixir.")
787 (home-page "https://hexdocs.pm/mime/")
788 (license license:asl2.0)))
789
790(define-public elixir-mimic
791 (package
792 (name "elixir-mimic")
793 (version "2.3.0")
794 (source
795 (origin
796 (method url-fetch)
797 (uri (hexpm-uri "mimic" version))
798 (sha256
799 (base32 "1lshd3j3abmhm06g915pfgr0vq985hffj1bx3kacb64kd0iiyxsj"))))
800 (build-system mix-build-system)
801 (propagated-inputs (list elixir-ham))
802 (synopsis "Mocks for Elixir functions")
803 (description "This package provides @code{mimic} a mocking library for
804Elixir.")
805 (home-page "https://hexdocs.pm/mimic/")
806 (license license:asl2.0)))
807
808(define-public elixir-mox
809 (package
810 (name "elixir-mox")
811 (version "1.2.0")
812 (source
813 (origin
814 (method url-fetch)
815 (uri (hexpm-uri "mox" version))
816 (sha256
817 (base32 "16h84745x12h7zrw305mzi93q092pvblr55gxrz4mqlyqqy2pff7"))))
818 (build-system mix-build-system)
819 (native-inputs
820 (list elixir-castore
821 elixir-excoveralls))
822 (propagated-inputs (list elixir-nimble-ownership))
823 (synopsis "Mocks and explicit contracts")
824 (description "This package provides @code{mox}, a library to mock and
825explicit contracts for Elixir.")
826 (home-page "https://hexdocs.pm/mox/")
827 (license license:asl2.0)))
828
829(define-public elixir-nebulex
830 (package
831 (name "elixir-nebulex")
832 (version "3.0.4")
833 (source
834 (origin
835 (method url-fetch)
836 (uri (hexpm-uri "nebulex" version))
837 (sha256
838 (base32 "1dmabzb0lj08nf00zwsj1r9qiy00qqvfw3pvy68sj6vh7xnzqsj4"))))
839 (build-system mix-build-system)
840 (arguments
841 ;;Tests depend on elixir-ex2ms which is not packaged yet.
842 (list #:tests? #f))
843 (propagated-inputs
844 (list elixir-decorator elixir-nimble-options erlang-shards
845 erlang-telemetry))
846 (synopsis "In-memory and distributed caching toolkit for Elixir")
847 (description "In-memory and distributed caching toolkit for Elixir.")
848 (home-page "https://hexdocs.pm/nebulex/")
849 (license license:expat)))
850
851(define-public elixir-nimble-options
852 (package
853 (name "elixir-nimble-options")
854 (version "1.1.1")
855 (source
856 (origin
857 (method url-fetch)
858 (uri (hexpm-uri "nimble_options" version))
859 (sha256
860 (base32 "0i0bcmpsc02ga2llakgcvnw734rqn2dzx0j8k2vc8hllr9q286w2"))))
861 (build-system mix-build-system)
862 (native-inputs
863 (list elixir-castore
864 elixir-excoveralls))
865 (synopsis
866 "Validates and documents high-level options")
867 (description
868 "This package provides a tiny library for validating and documenting high-level
869options.")
870 (home-page "https://hexdocs.pm/nimble_options/")
871 (license license:asl2.0)))
872
873(define-public elixir-nimble-ownership
874 (package
875 (name "elixir-nimble-ownership")
876 (version "1.0.2")
877 (source
878 (origin
879 (method url-fetch)
880 (uri (hexpm-uri "nimble_ownership" version))
881 (sha256
882 (base32 "0yd8h7yr51kv6xxc2ayqrlzms2jrx7lwy9r1cz30k1kg3x7gd2h9"))))
883 (build-system mix-build-system)
884 (native-inputs
885 (list elixir-castore elixir-excoveralls))
886 (synopsis "Track ownership of resources across processes")
887 (description "This package provides @code{nimble_ownership}, an Elixir
888library to track ownership of resources across processes.")
889 (home-page "https://hexdocs.pm/nimble_ownership/")
890 (license license:asl2.0)))
891
892(define-public elixir-owl
893 (package
894 (name "elixir-owl")
895 (version "0.13.1")
896 (source
897 (origin
898 (method url-fetch)
899 (uri (hexpm-uri "owl" version))
900 (sha256
901 (base32 "034aa12k2w0wf1n052kmj7jinf6nysiabcdarmswbvgjz257c7im"))))
902 (build-system mix-build-system)
903 (native-inputs (list elixir-excoveralls))
904 (propagated-inputs (list elixir-ucwidth))
905 (synopsis "Toolkit for writing command-line user interfaces")
906 (description
907 "This package provides a toolkit for writing command-line user interfaces.")
908 (home-page "https://hexdocs.pm/owl/")
909 (license license:asl2.0)))
910
911(define-public elixir-pathex
912 (package
913 (name "elixir-pathex")
914 (version "2.6.1")
915 (source
916 (origin
917 (method url-fetch)
918 (uri (hexpm-uri "pathex" version))
919 (sha256
920 (base32 "1sabkkng5w6fq1v4vysy13vh2rh0sfjzfw3hfy3sism2bx5qx7qm"))))
921 (build-system mix-build-system)
922 (synopsis "Functional lenses for nested structures")
923 (description "This library implements functional lenses for nested
924structures in Elixir.")
925 (home-page "https://hexdocs.pm/pathex/")
926 (license license:bsd-2)))
927
928(define-public elixir-poison
929 (package
930 (name "elixir-poison")
931 (version "6.0.0")
932 (source
933 (origin
934 (method url-fetch)
935 (uri (hexpm-uri "poison" version))
936 (sha256
937 (base32 "18irww20fya32rp03q0r2fzbf1qw51w6lbb4chwmlxwl5din945v"))))
938 (build-system mix-build-system)
939 (propagated-inputs (list elixir-decimal))
940 (synopsis "Fast, pure Elixir JSON library")
941 (description "An incredibly fast, pure Elixir JSON library.")
942 (home-page "https://hexdocs.pm/poison/")
943 (license license:bsd-0)))
944
945(define-public elixir-process-tree
946 (package
947 (name "elixir-process-tree")
948 (version "0.3.0")
949 (source
950 (origin
951 (method url-fetch)
952 (uri (hexpm-uri "process_tree" version))
953 (sha256
954 (base32 "11pbf0404rz6v5pjpgj4vaxyclsrbl8h63vfky5b4x3xkjzbgcvc"))))
955 (build-system mix-build-system)
956 (synopsis "Avoid global state in Elixir applications")
957 (description
958 "This package provides a module for avoiding global state in Elixir
959applications.")
960 (home-page "https://hexdocs.pm/process_tree/")
961 (license license:expat)))
962
963(define-public elixir-prove
964 (package
965 (name "elixir-prove")
966 (version "0.1.7")
967 (source
968 (origin
969 (method url-fetch)
970 (uri (hexpm-uri "prove" version))
971 (sha256
972 (base32 "1hkw70cbq82jjyyqdiaspi5a9v4m7z625h9z9hym0p1ziml25k2r"))))
973 (build-system mix-build-system)
974 (synopsis
975 "Provides the macros @code{prove} and @code{batch}")
976 (description
977 "This package provides the macros @code{prove} and @code{batch} to write
978shorter tests.")
979 (home-page "https://hexdocs.pm/prove/")
980 (license license:expat)))
981
982(define-public elixir-recase
983 (package
984 (name "elixir-recase")
985 (version "0.9.1")
986 (source
987 (origin
988 (method url-fetch)
989 (uri (hexpm-uri "recase" version))
990 (sha256
991 (base32 "1wqh8x2qyyf3f9npy609ks5nmla5ksgml0aaximhwx8ip3707fhr"))))
992 (build-system mix-build-system)
993 (native-inputs
994 (list elixir-excoveralls))
995 (synopsis "Convert strings to any case you need")
996 (description "@code{Recase} helps you to convert a string from any case to
997any case.")
998 (home-page "https://hexdocs.pm/recase/")
999 (license license:expat)))
1000
1001(define-public elixir-recode
1002 (package
1003 (name "elixir-recode")
1004 (version "0.8.0")
1005 (source
1006 (origin
1007 (method url-fetch)
1008 (uri (hexpm-uri "recode" version))
1009 (sha256
1010 (base32 "1fpbfkg7g3pfc9qk2nlg4dz7hhimz22pbqpqanfnfq54npmj87f7"))))
1011 (build-system mix-build-system)
1012 (arguments
1013 (list
1014 #:phases
1015 #~(modify-phases %standard-phases
1016 (add-after 'unpack 'remove-freedom-formatter
1017 (lambda _
1018 ;; freedom_formatter is not packaged in Guix.
1019 (substitute* "mix.exs"
1020 (("\\[\\{:freedom_formatter, \"~> 2.1\", only: :test\\}\\]")
1021 "[]")))))))
1022 (native-inputs
1023 (list elixir-excoveralls elixir-mox))
1024 (propagated-inputs
1025 (list elixir-escape elixir-glob-ex elixir-rewrite))
1026 (synopsis "Linter with autocorrection")
1027 (description "This package provides an experimental linter with
1028autocorrection.")
1029 (home-page "https://hexdocs.pm/recode/")
1030 (license license:expat)))
1031
1032(define-public elixir-rewrite
1033 (package
1034 (name "elixir-rewrite")
1035 (version "1.3.0")
1036 (source
1037 (origin
1038 (method url-fetch)
1039 (uri (hexpm-uri "rewrite" version))
1040 (sha256
1041 (base32 "198l4whhlfg8d186w9rkgg2sj00yhg8vp4ziyhp812m5ydzsq4fi"))))
1042 (build-system mix-build-system)
1043 (native-inputs
1044 (list elixir-excoveralls))
1045 (propagated-inputs (list elixir-glob-ex elixir-sourceror elixir-text-diff))
1046 (synopsis
1047 "Rewrite sources in an Elixir project")
1048 (description
1049 "This package implements an API for rewriting sources in an Elixir project
1050powered by sourceror.")
1051 (home-page "https://hexdocs.pm/rewrite/")
1052 (license license:expat)))
1053
1054(define-public elixir-sizeable
1055 (package
1056 (name "elixir-sizeable")
1057 (version "1.0.2")
1058 (source
1059 (origin
1060 (method url-fetch)
1061 (uri (hexpm-uri "sizeable" version))
1062 (sha256
1063 (base32 "0qhpc1h5iks04mcb2ypp7pkjhh9skq586l6a02s7g9zvdn759asb"))))
1064 (build-system mix-build-system)
1065 (synopsis "Make file sizes human-readable")
1066 (description "This package provides an Elixir library to make file sizes
1067human-readable.")
1068 (home-page "https://hexdocs.pm/sizeable/")
1069 (license license:expat)))
1070
1071(define-public elixir-sourceror
1072 (package
1073 (name "elixir-sourceror")
1074 (version "1.12.2")
1075 (source
1076 (origin
1077 (method url-fetch)
1078 (uri (hexpm-uri "sourceror" version))
1079 (sha256
1080 (base32 "1jz9y0a9qr73nrb7c3c2fcchcnjqixm0biq2i1991f6517dd6dys"))))
1081 (build-system mix-build-system)
1082 (native-inputs
1083 (list elixir-excoveralls))
1084 (synopsis "Utilities to work with Elixir source code")
1085 (description "This package provides @code{elixir-sourceror}, a library
1086implementing utilities to work with Elixir source code.")
1087 (home-page "https://hexdocs.pm/sourceror/")
1088 (license license:asl2.0)))
1089
1090(define-public elixir-spitfire
1091 (package
1092 (name "elixir-spitfire")
1093 (version "0.3.13")
1094 (source
1095 (origin
1096 (method url-fetch)
1097 (uri (hexpm-uri "spitfire" version))
1098 (sha256
1099 (base32 "1d1ls4r57kdrj1rlm1p0b9axc4hx7vg48r79hjsnfjgdrs4bw09n"))))
1100 (build-system mix-build-system)
1101 (arguments
1102 (list
1103 #:phases
1104 #~(modify-phases %standard-phases
1105 (add-after 'unpack 'remove-unpackaged-test-deps
1106 (lambda _
1107 ;; styler (a code-style formatter) and ex_unit_json (a test
1108 ;; reporter) are not packaged in Guix and not needed to run
1109 ;; the test suite.
1110 (substitute* "mix.exs"
1111 (("\\{:styler, \"~> 0\\.11\", only: \\[:dev, :test\\]\\},")
1112 "")
1113 ;; Drop trailing comma
1114 (("\\{:stream_data, \"~> 1\\.0\", only: \\[:dev, :test\\]\\},")
1115 "{:stream_data, \"~> 1.0\", only: [:dev, :test]}")
1116 (("\\{:ex_unit_json, \"~> 0\\.4\\.1\", only: \\[:dev, :test\\]\\}")
1117 "")))))))
1118 (native-inputs (list elixir-stream-data))
1119 (synopsis "Error resilient parser for Elixir")
1120 (description "This package provides @code{spitfire}, an error resilient
1121parser for Elixir.")
1122 (home-page "https://hexdocs.pm/spitfire/")
1123 (license license:expat)))
1124
1125(define-public elixir-stream-data
1126 (package
1127 (name "elixir-stream-data")
1128 (version "1.4.0")
1129 (source
1130 (origin
1131 (method url-fetch)
1132 (uri (hexpm-uri "stream_data" version))
1133 (sha256
1134 (base32 "1j8xigb0j986d686vqfnahff1lapwwz7caihys61rknw82iy63ib"))))
1135 (build-system mix-build-system)
1136 (native-inputs
1137 (list elixir-excoveralls))
1138 (synopsis "Data generation and property-based testing for Elixir")
1139 (description "@code{StreamData} is an Elixir library for data generation and
1140property-based testing.")
1141 (home-page "https://hexdocs.pm/stream_data/")
1142 (license license:asl2.0)))
1143
1144(define-public elixir-telemetry-metrics
1145 (package
1146 (name "elixir-telemetry-metrics")
1147 (version "1.1.0")
1148 (source
1149 (origin
1150 (method url-fetch)
1151 (uri (hexpm-uri "telemetry_metrics" version))
1152 (sha256
1153 (base32 "0ryfr1mwam89vpssisb6yc0n9ilffz8j6rlavfvasw6yvy6rxdz7"))))
1154 (build-system mix-build-system)
1155 (propagated-inputs (list erlang-telemetry))
1156 (synopsis
1157 "Common interface for defining metrics based on Telemetry events")
1158 (description
1159 "This package provides a common interface for defining metrics based on
1160Telemetry events.")
1161 (home-page "https://hexdocs.pm/telemetry_metrics/")
1162 (license license:asl2.0)))
1163
1164(define-public elixir-thousand-island
1165 (package
1166 (name "elixir-thousand-island")
1167 (version "1.5.0")
1168 (source
1169 (origin
1170 (method url-fetch)
1171 (uri (hexpm-uri "thousand_island" version))
1172 (sha256
1173 (base32 "04mlmsg92gdjd9qs73s3qrm45v5hsjh3gas1j3wkrr130pa272bh"))))
1174 (build-system mix-build-system)
1175 (native-inputs
1176 (list elixir-jason))
1177 (propagated-inputs (list elixir-machete erlang-telemetry))
1178 (synopsis "Pure Elixir socket server")
1179 (description
1180 "This package provides a simple and modern Elixir socket server.")
1181 (home-page "https://hexdocs.pm/thousand_island/")
1182 (license license:expat)))
1183
1184(define-public elixir-text-diff
1185 (package
1186 (name "elixir-text-diff")
1187 (version "0.1.0")
1188 (source
1189 (origin
1190 (method url-fetch)
1191 (uri (hexpm-uri "text_diff" version))
1192 (sha256
1193 (base32 "1myvc8rym843amsygb21j1jf0xzq6pj85akdgcslk3ikmgnamzyi"))))
1194 (build-system mix-build-system)
1195 (synopsis "Returns a formatted diff between two strings")
1196 (description
1197 "This package provides @code{TextDiff}, an Elixir library that returns a
1198formatted diff between two strings.")
1199 (home-page "https://hexdocs.pm/text_diff/")
1200 (license license:expat)))
1201
1202(define-public elixir-timex
1203 (package
1204 (name "elixir-timex")
1205 (version "3.7.13")
1206 (source
1207 (origin
1208 (method url-fetch)
1209 (uri (hexpm-uri "timex" version))
1210 (sha256
1211 (base32 "0m2cdmp172zpi6ska9yky2rj2qr4863zvd5qfglji4v6482qwn09"))))
1212 (build-system mix-build-system)
1213 (arguments
1214 (list
1215 ;; Tests appear to require network.
1216 #:tests? #f
1217 #:phases
1218 #~(modify-phases %standard-phases
1219 (add-after 'unpack 'set-locales
1220 (lambda _
1221 (mkdir-p "config")
1222 (call-with-output-file "config/config.exs"
1223 (lambda (port)
1224 (display "import Config
1225
1226config :gettext, :default_locale, \"en\"\n" port))))))))
1227 (propagated-inputs (list elixir-combine elixir-gettext elixir-tzdata))
1228 (synopsis
1229 "Comprehensive date/time library for Elixir projects")
1230 (description
1231 "Timex is a rich, comprehensive Date/Time library for Elixir projects, with
1232full timezone support via the @code{:tzdata} package. If you need to manipulate
1233dates, times, datetimes, timestamps, etc., then Timex is for you.")
1234 (home-page "https://hexdocs.pm/timex/")
1235 (license license:expat)))
1236
1237(define-public elixir-traverse
1238 (package
1239 (name "elixir-traverse")
1240 (version "1.0.1")
1241 (source
1242 (origin
1243 (method url-fetch)
1244 (uri (hexpm-uri "traverse" version))
1245 (sha256
1246 (base32 "0w8ww017nlfgqm0n73n0s72nk97xys4ayxh4sz93dbscjydfry8c"))))
1247 (build-system mix-build-system)
1248 (synopsis
1249 "Walk arbitrary Elixir Datastructures in a functional way")
1250 (description
1251 "Traverse is a toolset to walk arbitrary Elixir Datastructures in a
1252functional way.")
1253 (home-page "https://hexdocs.pm/traverse/")
1254 (license license:asl2.0)))
1255
1256(define-public elixir-tzdata
1257 (package
1258 (name "elixir-tzdata")
1259 (version "1.1.4")
1260 (source
1261 (origin
1262 (method url-fetch)
1263 (uri (hexpm-uri "tzdata" version))
1264 (sha256
1265 (base32 "0km2yhn1345mdig3f2k9chpaq6z8mdcdhbsjanig93yyk638hj5b"))))
1266 (build-system mix-build-system)
1267 (arguments
1268 ;; FIXME: Tests fail with:
1269 ;; Application hackney exited: exited in: :hackney_app.start(:normal, [])
1270 (list #:tests? #f))
1271 (propagated-inputs (list erlang-hackney))
1272 (synopsis "Parser and library for the tz database")
1273 (description "Tzdata is a parser and library for the tz database.")
1274 (home-page "https://hexdocs.pm/tzdata/")
1275 (license license:expat)))
1276
1277(define-public elixir-ucwidth
1278 (package
1279 (name "elixir-ucwidth")
1280 (version "0.2.0")
1281 (source
1282 (origin
1283 (method url-fetch)
1284 (uri (hexpm-uri "ucwidth" version))
1285 (sha256
1286 (base32 "1gsmfcbrdfa00czm8870pr3kc34wvnisyg7c5gxi3swfidwx3vy1"))))
1287 (build-system mix-build-system)
1288 (arguments
1289 ;; Tests depend on elixir-quixir which is not packaged yet.
1290 (list #:tests? #f))
1291 (synopsis
1292 "Port of ucwidth from C to Elixir")
1293 (description
1294 "This package provides a port of ucwidth from C to Elixir, for determining the
1295width (full-width or half-width) of an Unicode character.")
1296 (home-page "https://hexdocs.pm/ucwidth/")
1297 (license license:expat)))
1298
1299(define-public elixir-untangle
1300 (package
1301 (name "elixir-untangle")
1302 (version "0.5.0")
1303 (source
1304 (origin
1305 (method url-fetch)
1306 (uri (hexpm-uri "untangle" version))
1307 (sha256
1308 (base32 "1bsvpnlfl9s8w40xz9b576x8f0f43xkcscghz5ii0y0akpmp4hwv"))))
1309 (build-system mix-build-system)
1310 (propagated-inputs (list elixir-decorator))
1311 (synopsis "Logging and inspecting with code location information")
1312 (description "Untangle provides alternatives for @code{IO.inspect} and the
1313macros in Elixir's @code{Logger} to output code location information. It also
1314provides a polyfill for @code{dbg} which was introduced in Elixir 1.14.")
1315 (home-page "https://hexdocs.pm/untangle/")
1316 (license license:asl2.0)))
1317
1318(define-public elixir-verbs
1319 (package
1320 (name "elixir-verbs")
1321 (version "0.6.1")
1322 (source
1323 (origin
1324 (method url-fetch)
1325 (uri (hexpm-uri "verbs" version))
1326 (sha256
1327 (base32 "19nbkwrphns1yjk0rca1zq6v43m878r7750ppf4av3kcf58328hr"))))
1328 (build-system mix-build-system)
1329 (synopsis "Conjugates English verbs")
1330 (description "This package provides a library to conjugate English verbs.")
1331 (home-page "https://hexdocs.pm/verbs/")
1332 (license license:expat)))
1333
1334(define-public elixir-zest
1335 (package
1336 (name "elixir-zest")
1337 (version "0.1.2")
1338 (source
1339 (origin
1340 (method url-fetch)
1341 (uri (hexpm-uri "zest" version))
1342 (sha256
1343 (base32 "0jlpldb94wm1v2kavvsy5h7w5mvjmxnkssl48mp2iphmysnddqpb"))))
1344 (build-system mix-build-system)
1345 (synopsis "Fresh approach to testing in Elixir")
1346 (description "This package provides a fresh approach to testing.")
1347 (home-page "https://hexdocs.pm/zest/")
1348 (license license:asl2.0)))
1349
1350(define-public elixir-zstream
1351 (package
1352 (name "elixir-zstream")
1353 (version "0.6.7")
1354 (source
1355 (origin
1356 (method url-fetch)
1357 (uri (hexpm-uri "zstream" version))
1358 (sha256
1359 (base32 "0kb3il3z52v4cdbsd8785qxx8qsnfm2d1hb9rcfdmz0cy3h3mi28"))))
1360 (build-system mix-build-system)
1361 (native-inputs
1362 (list elixir-excoveralls))
1363 (synopsis "Streaming zip file writer and reader")
1364 (description "This package provides a streaming zip file writer and reader.")
1365 (home-page "https://hexdocs.pm/zstream/")
1366 (license license:expat)))
1367
1368;;;
1369;;; Avoid adding new packages to the end of this file. To reduce the chances
1370;;; of a merge conflict, place them above by existing packages with similar
1371;;; functionality or similar names.
1372;;;