summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-09-04Release version 0.3.1.v0.3.1Arun Isaac
* NEWS: Update. * website/releases/guile-email-0.3.1.tar.lz, website/releases/guile-email-0.3.1.tar.lz.asc: New files.
2023-09-03email: Tolerate parentheses in display names.Arun Isaac
* email/email.scm (define-atom-pattern): Support customization of the atext pattern as well. (define-phrase-pattern): New macro. (obs-phrase): Define using define-phrase-pattern. (liberal-atext, liberal-cfws-captured-atom, liberal-cfws-captured-word, liberal-phrase): New patterns. (display-name): Use liberal-phrase instead of phrase. * tests/email.scm ("tolerate email addresses with parentheses in name"): New test.
2023-07-06Make repository a guix channel.Arun Isaac
* .guix-authorizations, .guix-channel: New files. * guix.scm: Convert to a symlink pointing to .guix/guile-email-package.scm. Move original there. * .guix/guile-email-package.scm: Convert into a module with public packages.
2023-01-21README: Thank Aleix Conchillo Flaqué for packaging.Arun Isaac
* README.org (Contributors): Add Aleix Conchillo Flaqué.
2023-01-21Makefile: Use install instead of cp and mkdir.Arun Isaac
The cp on macOS does not support the --parents flag. Also, install correctly replaces files when they already exist. * Makefile (install): Use install instead of cp and mkdir. Reported-by: Aleix Conchillo Flaqué <aconchillo@gmail.com>
2023-01-16website: Add guile-email-0.3.0 release tarballs.Arun Isaac
* website/releases/guile-email-0.3.0.tar.lz, website/releases/guile-email-0.3.0.tar.lz.asc: New files.
2023-01-16Revert "README: Declare that releases are only tagged in git from now on."Arun Isaac
This reverts commit 5cc34d6be3daada501ff952fc9edf1ac04d9c24a. We go back to releasing tarballs since tarballs are still important for package managers other than Guix. e.g., homebrew.
2023-01-16gitignore: Do not ignore release tarballs.Arun Isaac
* .gitignore: Remove website. Add website/index.html and website/manual.
2023-01-16Makefile: Add release tarball generation rules.Arun Isaac
* Makefile (version, GIT, GPG, LZIP, distribute_files, dist_archive): New variables. (dist, $(dist_archive), %.asc): New rules. (.PHONY): Add dist.
2023-01-06README: Declare that releases are only tagged in git from now on.Arun Isaac
* README.org (Download): Declare that releases are only tagged in git from now on. * build-aux/build-website.el (org-dblock-write:releases): Exclude releases after and including v0.3.0.
2023-01-06build-aux: Use --contains to exclude v0.1.0 release.Arun Isaac
* build-aux/build-website.el (org-dblock-write:releases): Use the --contains argument of git for-each-ref to exclude the v0.1.0 release.
2023-01-06Release version 0.3.0.v0.3.0Arun Isaac
* NEWS: Update.
2023-01-06README: Declare obsolete syntax as implemented.Arun Isaac
* README.org (Features): Declare that obsolete syntax is supported. (Future work): Remove obsolete syntax.
2023-01-06tests: Downcase test names.Arun Isaac
This is admittedly a nitpicky change, but it slightly improves consistency. * tests/email.scm ("parse obsolete Received header", "parse names with more than two words", "assume application/octet-stream Content-Type if Content-Transfer-Encoding is unrecognized", "parse Received header with two tokens but no timestamp"): Downcase test names.
2023-01-06email: Support Date fields with missing seconds.Andrew Whatson
* email/email.scm (parse-email-headers): Extend the date-time parser to match when seconds are missing, defaulting to "0". * tests/email.scm ("parse Date", "parse Date without seconds"): New tests. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2023-01-03build-aux: Pass fail directory from main in test-corpus.scm.Arun Isaac
* build-aux/test-corpus.scm (test-corpus): Accept fail-directory argument. * build-aux/test-corpus.scm (main): Pass fail-directory argument to test-corpus.
2023-01-03build-aux: Assume fail directory exists when testing corpus.Arun Isaac
Assume fail directory exists and do not attempt to clear it. * build-aux/test-corpus.scm (main): Do not create or delete fail directory.
2023-01-03build-aux: Make test-corpus.scm a loadable script.Arun Isaac
Make test-corpus.scm a script loadable from the REPL rather than something that must be run on the shell. Loadable scripts are easier to deal with since one does not have to deal with command-line arguments. * build-aux/test-corpus.scm (%fail-directory): Delete variable. (write-failed-email): Add fail-directory argument. (main): New function.
2023-01-03build-aux: Bump copyright year on test-driver.scm.Arun Isaac
* build-aux/test-driver.scm: Bump copyright year for Arun Isaac.
2023-01-03dir-locals: Allow tabs in Makefiles.Arun Isaac
* .dir-locals.el (makefile-gmake-mode): Set indent-tabs-mode to t.
2023-01-03Quit the autotools build system.Arun Isaac
For a simple package like guile-email, the autotools build system is more trouble than it is worth. We prefer a hand-written Makefile. As the commit summary suggests, the autotools are indeed a bad habit that we must "quit". * Makefile: New file. * Makefile.am, bootstrap.sh, configure.ac, pre-inst-env.in: Delete files. * build-aux/test-corpus.scm.in: Rename to ... * build-aux/test-corpus.scm: ... this. Remove shebang. * build-aux/test-driver.scm.in: Rename to ... * build-aux/test-driver.scm: ... this. Remove autotools specific parts. * guix.scm: Import (guix utils). (guile-email)[arguments]: Add prefix to #:make-flags. Delete configure phase. * .gitignore: Remove INSTALL, Makefile, Makefile.in, aclocal.m4, autom4te.cache, build-aux/install-sh, build-aux/missing, build-aux/test-corpus.scm, config.log, config.status, configure, doc/.dirstamp, pre-inst-env, test-suite.log, tests/*.log and tests/*.trs.
2023-01-03tests: Import (srfi srfi-64) in base64.scm.Arun Isaac
* tests/base64.scm: Import (srfi srfi-64).
2023-01-03guix.scm: Use modify-inputs.Arun Isaac
* guix.scm (guile-email)[naive-inputs]: Rewrite using modify-inputs.
2023-01-03guix.scm: Build package from local source.Arun Isaac
* guix.scm: Import (guix gexp) and (guix git-download). (%source-dir): New variable. (guile-email)[source]: Use local source.
2023-01-03README: Thank Andrew Whatson for code.Arun Isaac
* README.org (Contributors): Add Andrew Whatson.
2023-01-03email: Support quoted-printable CR LF sequences.Andrew Whatson
* email/quoted-printable.scm (quoted-printable-decode): Ignore "=\r\n" sequences in the input. * tests/quoted-printable.scm ("quoted-printable decoding of soft line breaks (=\\n)", "quoted-printable decoding of soft line breaks (=\\r\\n)"): New tests. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2022-12-29dir-locals.el: Delete trailing blank lines.Arun Isaac
* .dir-locals.el: Delete trailing blank lines.
2022-01-19README: Fix broken link to signing key.Arun Isaac
* README (Download): Fix broken link to signing key.
2021-10-24build-aux: Test bug-guix corpus.Arun Isaac
* build-aux/pull-corpus.scm: Pull bug-guix mailing list archives. * build-aux/test-corpus.scm.in: Test bug-guix corpus.
2021-10-24build-aux: Create corpus directory if it does not exist.Arun Isaac
* build-aux/pull-corpus.scm (pull-mailing-list): Create corpus directory if it does not exist.
2021-10-24email: Handle Received header with two tokens but no timestamp.Arun Isaac
* email/email.scm (parse-email-headers): Match Received header with timestamp more precisely. * tests/email.scm ("Parse Received header with two tokens but no timestamp"): No test.
2021-10-24tests: Return trace with only one Receieved header as a list of lists.Arun Isaac
* tests/email.scm ("Trace with only one Received header must be a list of lists, not a list"): New test.
2021-10-24email: Handle unrecognized Content-Transfer-Encoding headers.Arun Isaac
* email/email.scm (handle-invalid-headers): New function. (parse-email-headers): Handle invalid headers. * tests/email.scm ("Assume application/octet-stream Content-Type if Content-Transfer-Encoding is unrecognized"): New test.
2021-10-24tests: Paginate tests/email.scm.Arun Isaac
tests/email.scm is getting really long. Pagination make it easier to understand. * tests/email.scm: Split into three pages---Emails, Email addresses and MIME encoded words.
2021-10-23build-aux: Read emails one by one from mbox corpora.Arun Isaac
Reading emails one by one avoids allocating memory for a list of emails. * build-aux/test-corpus.scm.in (read-next-email-in-mbox): New function. (test-corpus): Use port-transduce to read emails one by one.
2021-10-23build-aux: Write failed corpus test emails to filesystem.Arun Isaac
* build-aux/test-corpus.scm.in: Import (rnrs io ports), (srfi srfi-26), (srfi srfi-28), (srfi srfi-171), (ice-9 ftw) and (ice-9 match). (%fail-directory): New variable. (directory-files, write-failed-email): New function. Write failed corpus test emails to a "fail directory" specified on the command line.
2021-10-06website: Switch to high contrast.Arun Isaac
High contrast feels more readable. Low contrast makes me squint. * website/style.css (body): Remove color property. Let it be the default black.
2021-10-02README: Add Contributors section.Arun Isaac
* README.org (Contributors): New section.
2021-10-02email: Do not use an empty bytevector to test the charset.Mathieu Othacehe
Using an empty bytevector no longer throws an exception since Guile commit 5ea8c69e9153a970952bf6f0b32c4fad6a28e839. * email/email.scm (post-process-content-transfer-encoding): Use a bytevector of unit length to test the charset validity. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2021-09-28README: Use a dynamic block to list releases.Arun Isaac
* README.org (Download): Replace releases with dynamic block. * build-aux/build-website.el: Update dynamic blocks before exporting. (org-dblock-write:releases): New function.
2021-09-28build-aux: Do not create backup files when building website.Arun Isaac
* build-aux/build-website.el (make-backup-files): Set to nil.
2021-06-18README: Link repology badge to repology page.Arun Isaac
* README.org (Download): Link repology badge to repology page.
2021-06-18README: Link to the Guix data service.Arun Isaac
* README.org: Link to the Guix data service, instead of just mentioning it.
2021-06-18website: Make SVG badges clickable.Arun Isaac
* website/style.css (object): Set pointer-events to none.
2021-06-18.gitignore: Add files.Arun Isaac
* .gitignore: Add INSTALL, doc/.dirstamp, doc/guile-email.html, doc/guile-email.info, website.
2021-06-18Comment on website build and clean rules.Arun Isaac
* Makefile.am: Comment on website build and clean rules.
2021-06-18website: Widen to 900px.Arun Isaac
* website/style.css (body): Set max-width to 900px.
2021-06-18website: Reference external stylesheet.Arun Isaac
* website/style.css: New file. * Makefile.am (AM_MAKEINFOHTMLFLAGS): Set to --css-ref=/style.css. * build-aux/build-website.el (org-html-head): Set to <link> tag referencing external stylesheet.
2021-06-18build-aux: Move build-website.el into build-aux directory.Arun Isaac
* build-website.el: Move to build-aux/build-website.el. * Makefile.am (website/index.html): Use build-aux/build-website.el instead of build-website.el.
2021-06-18Configure path to emacs.Arun Isaac
* configure.ac: Check for emacs. * Makefile.am (website/index.html): Use EMACS from configure instead of emacs.