diff --git a/ChangeLog b/ChangeLog index 6e8f7f3..650a8f3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +2024-09-01 Michael Herstine + + Cut release 0.3.1 + + Add a Texinfo manual to the project. + This patch will also add a Github Actions workflow `ci` that will + be run on push, PR, &c. + +2024-08-30 Michael Herstine + + Cutting release 0.3.0 + +2024-08-29 Michael Herstine + + Add two new functions: `elmpd-conn-status' and `elmpd-conn-failed-p'. + This patch adds two new utility functions for checking the status + of an elmpd connection. In addition it tidies up several docstrings, + and adds some utility scripts (under 'admin') for validating + commits. + 2024-02-08 Michael Herstine Fix two nits. diff --git a/NEWS b/NEWS index 2c153a4..0f709e0 100644 --- a/NEWS +++ b/NEWS @@ -2,11 +2,16 @@ elmpd News -- history of user-visible changes -*- outline -*- * 0.3 builds +** 0.3.1 + +*** User-visible changes + +**** Added a brief Texinfo manual ** 0.3.0 *** User-visible changes -**** Add two new functions +**** Added two new functions Added `elmpd-conn-status' and `elmpd-conn-failed-p'. * 0.2 builds diff --git a/README.org b/README.org index f66bade..f3c41df 100644 --- a/README.org +++ b/README.org @@ -1,6 +1,6 @@ #+TITLE: elmpd #+DESCRIPTION: A tight, async mpd library in Emacs Lisp -#+DATE: <2024-09-01 Sun 17:10> +#+DATE: <2024-09-01 Sun 17:59> #+AUTHOR: sp1ff #+EMAIL: sp1ff@pobox.com #+AUTODATE: t @@ -26,14 +26,14 @@ The simplest way to install [[https://github.com/sp1ff/elmpd][elmpd]] is from [[ You can also install the package manually. Download the .tar file from [[https://github.com/sp1ff/elmpd/releases][Github]] or my personal [[https://www.unwoundstack/distros.html][page]] and say: #+BEGIN_SRC elisp - (package-install-file "elmpd-0.3.0.tar") + (package-install-file "elmpd-0.3.1.tar") #+END_SRC I'm now making GitHub releases that include Autotools source distributions: #+BEGIN_SRC bash -curl -L --output elmpd-0.3.0.tar.gz https://github.com/sp1ff/elmpd/releases/download/0.2.4/elmpd-0.2.4.tar.gz -tar xf elmpd-0.3.0.tar.gz && cd elmpd-0.3.0 +curl -L --output elmpd-0.3.1.tar.gz https://github.com/sp1ff/elmpd/releases/download/0.3.1/elmpd-0.3.1.tar.gz +tar xf elmpd-0.3.1.tar.gz && cd elmpd-0.3.1 ./configure && make all check sudo make install #+END_SRC @@ -55,9 +55,9 @@ User documentation is provided with the package, and may also be found [[https://github.com/DamienCassou][Damien Cassou]], the author of [[https://github.com/mpdel/mpdel][mpdel]] and [[https://gitea.petton.fr/mpdel/libmpdel][libmpdel]], [[https://github.com/sp1ff/elmpd/issues/1][reached out]] to ask "Why elmpd?" His question prompted me to clarify my thoughts around this project & I've adapted my response here. -I've looked at a few [[https://www.musicpd.org/][MPD]] clients, including [[https://github.com/mpdel/mpdel][mpdel]]. As I experimented with my workflow, however, I found myself wanting _less_ functionality: rather than interacting with a fully-featured client, I just wanted to skip to the next song while I was editing code, for example. I customize my mode line heavily, and I wanted a little bit of logic to add the current track to the mode line & keep it up-to-date. I have written a companion [[https://github.com/sp1ff/mpdpopm][daemon]] to MPD that maintains ratings & play counts; I just needed a little function that would let me rate the current track while I was reading mail (in Emacs, of course!) +I've looked at a few [[https://www.musicpd.org/][MPD]] clients, including [[https://github.com/mpdel/mpdel][mpdel]]. As I fine-tuned my workflow, however, I found myself wanting _less_ functionality: rather than interacting with a fully-featured client, I just wanted to skip to the next song while I was editing code, for example. I customize my mode line heavily, and I wanted just a little bit of logic to add the current track to the mode line & keep it up-to-date. I have written a companion [[https://github.com/sp1ff/mpdpopm][daemon]] to MPD that maintains ratings & play counts; I just needed a little function that would let me rate the current track while I was reading mail, for instance. -My next move was to read through a number of client libraries for inspiration, both in C & Emacs LISP. Many of them had strong opinions on how one should talk to MPD. Having been programming MPD for a while I had come to appreciate its simplicity (after all, one can program it from bash by simply =echo=-ing commands to =/dev/tcp/$host/$port=). My experience with async Rust inspired me to see how simple I could make this using just callbacks. =elmpd= exports two primary functions: =elmpd-connect= & =elmpd-send=. Each connection consumes a socket & optionally a callback-- that's it (no buffer, no transaction queue). Put another way, if other libraries are Gnus (featureful, encourages you to read your e-mail in a certain way), then elmpd is [[https://mailutils.org/][Mailutils]] (small utilities that leave it up to the user to assemble them into something useful). +My next move was to read through a number of client libraries for inspiration, both in C & Emacs LISP. Many of them had strong opinions on how one should talk to MPD. Having been programming MPD for a while I had come to appreciate its simplicity (after all, one can program it from bash by simply =echo=-ing commands to =/dev/tcp/$host/$port=). My experience with async Rust inspired me to see how simple I could make this. =elmpd= exports two primary functions: =elmpd-connect= & =elmpd-send=. Each connection consumes a socket & optionally a callback-- that's it; no buffer, no transaction queue. Put another way, if other libraries are Gnus (featureful, encourages you to read your e-mail in a certain way), then elmpd is [[https://mailutils.org/][Mailutils]] (small utilities that leave it up to the user to assemble them into something useful). * Status & Roadmap As of September 2024 I'm calling this "1.0". The package is ripe for being used to build up a more caller-friendly API: =(something-play)= instead of: diff --git a/configure.ac b/configure.ac index 1df1be9..555d96e 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([elmpd], [0.3.0], [sp1ff@poboxcom], [elmpd], [https://github.com/sp1ff/elmpd]) +AC_INIT([elmpd], [0.3.1], [sp1ff@poboxcom], [elmpd], [https://github.com/sp1ff/elmpd]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_SRCDIR([elmpd.el]) AM_INIT_AUTOMAKE([-Wall -Werror gnits std-options dist-xz dist-zstd]) diff --git a/doc/version.texi b/doc/version.texi index 83e157b..4c75426 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -1,4 +1,4 @@ @set UPDATED 2 September 2024 @set UPDATED-MONTH September 2024 -@set EDITION 0.3.0 -@set VERSION 0.3.0 +@set EDITION 0.3.1 +@set VERSION 0.3.1 diff --git a/elmpd.el b/elmpd.el index c4c8246..cd4bcbf 100644 --- a/elmpd.el +++ b/elmpd.el @@ -3,7 +3,7 @@ ;; Copyright (C) 2020-2024 Michael Herstine ;; Author: Michael Herstine -;; Version: 0.3.0 +;; Version: 0.3.1 ;; Keywords: comm ;; Package-Requires: ((emacs "25.1")) ;; URL: https://github.com/sp1ff/elmpd @@ -67,7 +67,7 @@ (require 'cl-lib) -(defconst elmpd-version "0.3.0") +(defconst elmpd-version "0.3.1") ;;; Logging-- useful for debugging asynchronous functions