Skip to content

Commit

Permalink
Cut release 0.3.1
Browse files Browse the repository at this point in the history
  • Loading branch information
sp1ff committed Sep 2, 2024
1 parent 1dbd382 commit 766ab97
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 12 deletions.
20 changes: 20 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,23 @@
2024-09-01 Michael Herstine <[email protected]>

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 <[email protected]>

Cutting release 0.3.0

2024-08-29 Michael Herstine <[email protected]>

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 <[email protected]>

Fix two nits.
Expand Down
7 changes: 6 additions & 1 deletion NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
12 changes: 6 additions & 6 deletions README.org
Original file line number Diff line number Diff line change
@@ -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: [email protected]
#+AUTODATE: t
Expand All @@ -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
Expand All @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
@@ -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])
Expand Down
4 changes: 2 additions & 2 deletions doc/version.texi
Original file line number Diff line number Diff line change
@@ -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
4 changes: 2 additions & 2 deletions elmpd.el
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
;; Copyright (C) 2020-2024 Michael Herstine <[email protected]>

;; Author: Michael Herstine <[email protected]>
;; Version: 0.3.0
;; Version: 0.3.1
;; Keywords: comm
;; Package-Requires: ((emacs "25.1"))
;; URL: https://github.com/sp1ff/elmpd
Expand Down Expand Up @@ -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

Expand Down

0 comments on commit 766ab97

Please sign in to comment.