Skip to content

Commit

Permalink
Cutting release 0.3.2
Browse files Browse the repository at this point in the history
  • Loading branch information
sp1ff committed Dec 29, 2023
1 parent 92cb1c5 commit bd54d50
Show file tree
Hide file tree
Showing 6 changed files with 83 additions and 19 deletions.
62 changes: 62 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,65 @@
2023-12-28 Michael Herstine <sp1ff@pobox.com>

Assorted clean-up pre-merge:
- fix the project CI (again)
- I've decided on a policy of supporting rust versions going back
six months. At the time of this writing, that's rust 1.70.0.
- address a corner case when HOME isn not set
- update GNU files

[#9] Correct the way quoting is done when sending commands.
This commit will cause the client to properly quote string
parameters in commands.

2023-12-23 Michael Herstine <sp1ff@pobox.com>

[Issue #010] Repair setting a sticker for the first time.
In MPD commit 432675d4c23450c527333ed4a29d13f843e001da the error
message for "sticker get" when the sticker is not found was changed.
mpdpopm (foolishly) relied on the error message. This patch changes
the salient logic to examine only the error code, instead.

2023-10-31 Michael Herstine <sp1ff@pobox.com>

Fix the nightly CI workflow.
The `toml` crate recently made a release that no longer builds
with Rust 1.65. This commit pins that crate along with a few
of its dependencies to preserve the ability of this project
to build on the "oldest supported" version of Rust.

2023-09-29 Michael Herstine <sp1ff@pobox.com>

fix CI

2023-09-16 Michael Herstine <michael@lithic>

[CI] Fix the CI job.
A number of dependencies no longer build under rust 1.65. I
pinned 'em in order to preserve the minimum supported version.

- toml
- toml-edit
- cargo-deb
- anstyle to 1.0.2

2023-08-26 Michael Herstine <sp1ff@pobox.com>

Pinned a few clap dependencies in order to preserve the ability to build with rust 1.65

2023-08-25 Michael Herstine <sp1ff@pobox.com>

Update pinned rust toolchain version to 1.65 to accomodate a dependency

2023-07-22 Michael Herstine <sp1ff@pobox.com>

Update/fix the release workflow.
The `release` workflow had gotten stale & naturally didn't work
after long disuse.

2023-07-21 Michael Herstine <sp1ff@pobox.com>

mpdpopm release 0.3.1.

2023-07-15 Michael Herstine <sp1ff@pobox.com>

Update the Continuous Integration job & upgrade Clap to v4.
Expand Down
32 changes: 17 additions & 15 deletions README.org
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#+AUTHOR: Michael Herstine
#+DESCRIPTION: mpdpopm
#+EMAIL: sp1ff@pobox.com
#+DATE: <2023-07-20 Thu 07:49>
#+DATE: <2023-12-28 Thu 18:23>
#+AUTODATE: t

* Introduction
Expand All @@ -24,7 +24,7 @@ mppopm findadd "(rating > 128)"
to add all songs with a rating greater than 128 to the play queue, or

#+BEGIN_SRC bash
mppopm findadd "(lastplayed <= \"2022-07-15\")"
mppopm findadd "(lastplayed <= \"2022-12-28\")"
#+END_SRC

to add all songs that haven't been played in the last year.
Expand Down Expand Up @@ -60,10 +60,10 @@ Thanks to a suggestion by [[https://github.com/m040601][m040601]], you can down

#+BEGIN_SRC bash
cd /tmp
curl -L --output mpdpopm-0.3.1.tar.gz https://github.com/sp1ff/mpdpopm/releases/download/0.3.1/mpdpopm-0.3.1-x86_64-unknown-linux.tar.gz
tar xf mpdpopm-0.3.1.tar.gz
tree mpdpopm-0.3.1-x86_64-unknown-linux/
mpdpopm-0.3.1-x86_64-unknown-linux/
curl -L --output mpdpopm-0.3.2.tar.gz https://github.com/sp1ff/mpdpopm/releases/download/0.3.2/mpdpopm-0.3.2-x86_64-unknown-linux.tar.gz
tar xf mpdpopm-0.3.2.tar.gz
tree mpdpopm-0.3.2-x86_64-unknown-linux/
mpdpopm-0.3.2-x86_64-unknown-linux/
├── bin
│ ├── mppopm
│ └── mppopmd
Expand Down Expand Up @@ -93,8 +93,8 @@ If you're running on a Debian-based Linux distribution, and you're on an x86_64

#+BEGIN_SRC bash
cd /tmp
curl -L -O https://github.com/sp1ff/mpdpopm/releases/download/0.3.1/mpdpopm_0.3.1_amd64.deb
sudo dpkg -i mpdpopm_0.3.1_amd64.deb
curl -L -O https://github.com/sp1ff/mpdpopm/releases/download/0.3.2/mpdpopm_0.3.2_amd64.deb
sudo dpkg -i mpdpopm_0.3.2_amd64.deb
#+END_SRC

The binaries will be placed in =/usr/local/bin=, and you can proceed to [[#getting_started][Getting Started]], below.
Expand All @@ -105,8 +105,8 @@ If you're running on an Arch-based Linux distribution, and you're on an x86_64 p

#+BEGIN_SRC bash
cd /tmp
curl -L -O https://github.com/sp1ff/mpdpopm/releases/download/0.3.1/mpdpopm_0.3.1-1-x86_64.pkg.tar.zst
sudo pacman -U mpdpopm_0.3.1-1-x86_64.pkg.tar.zst
curl -L -O https://github.com/sp1ff/mpdpopm/releases/download/0.3.2/mpdpopm_0.3.2-1-x86_64.pkg.tar.zst
sudo pacman -U mpdpopm_0.3.2-1-x86_64.pkg.tar.zst
#+END_SRC

The binaries will be placed in =/usr/local/bin=, and you can proceed to [[#getting_started][Getting Started]], below.
Expand All @@ -117,9 +117,9 @@ If you've got the Rust toolchain as well as Autotools installed, you can build f

#+BEGIN_SRC bash
cd /tmp
curl -L -O https://github.com/sp1ff/mpdpopm/releases/download/0.3.1/mpdpopm-0.3.1.tar.xz
tar xf mpdpopm-0.3.1.tar.xz
cd mpdpopm-0.3.1
curl -L -O https://github.com/sp1ff/mpdpopm/releases/download/0.3.2/mpdpopm-0.3.2.tar.xz
tar xf mpdpopm-0.3.2.tar.xz
cd mpdpopm-0.3.2
./configure
make
make check
Expand Down Expand Up @@ -158,9 +158,9 @@ This README provides a "quick-start" guide to getting mpdpopm up & running. For
1. =mppopmd= is the companion daemon process
2. =mppopm= is the associated command-line interface to the daemon

=mppopmd= will monitor =mpd= for song playback & note when songs complete; this is how it knows to increment the playcount & update the last played timestamp for each song to which you listen. =mppopmd= records this information (i.e play counts, last played and ratings) using =mpd= [[https://www.musicpd.org/doc/html/protocol.html#stickers][stickers]]. A sticker is a little bit of textual information which clients can attach to songs in the form of a name-value pair. [[https://github.com/sp1ff/mpdpopm][mpdpopm]] defines a new sticker name for each of these items & udpates the values for each song when & as requested.
=mppopmd= will monitor =mpd= for song playback & note when songs complete; this is how it knows to increment the playcount & update the last played timestamp for each song to which you listen. =mppopmd= records this information (i.e. play counts, last played and ratings) using =mpd= [[https://www.musicpd.org/doc/html/protocol.html#stickers][stickers]]. A sticker is a little bit of textual information which clients can attach to songs in the form of a name-value pair. [[https://github.com/sp1ff/mpdpopm][mpdpopm]] defines a new sticker name for each of these items & udpates the values for each song when & as requested.

Of course, other =mpd= clients will not, in general, be aware of =mppopmd= or the stickers it sets: you the user will have to bridge that gap. You could of course just fire-up =netcat= & start sending commands over the MPD protocol using =sendmessage=, but that's not particularly convenient-- that's where =mppopm= comes in. =mppopm= is the client interface; one can through it instruct =mppopmd= to set ratings, get & set the various stickers mpdpopm knows about, and even search for songs in terms of mpdpopm attributes & add them to the play queue.
Of course, other =mpd= clients will not, in general, be aware of =mppopmd= or the stickers it sets: you the user will have to bridge that gap. You could of course just fire-up =netcat= & start sending commands over the MPD protocol using =sendmessage=, but that's not particularly convenient-- that's where =mppopm= comes in. =mppopm= is the client interface; one can through it instruct =mppopmd= to set ratings, get & set the various stickers mpdpopm knows about, and even search for songs in terms of mpdpopm attributes & add them to the play queue.

** Getting Set-up

Expand Down Expand Up @@ -212,4 +212,6 @@ This will hopefully be a start to making [[https://github.com/sp1ff/mpdpopm][mpd

Windows support may be some time coming; the daemon depends on Unix signal handling, the MPD Unix socket, and the Unix daemon logic, especially =fork= & =exec=... if you'd like to run it on Windows, let me know-- if there's enough interest, and I can get some kind of Windows VM setup, I'll look at a port.

Longer-term, I see [[https://github.com/sp1ff/mpdpopm][mpdpopm]] as a "dual" to mpd-- mpd commits to never altering your files. mpdpopm will take on that task in terms of tags, at least. To address the "plumbing, not the sink" problem, I'd like to author a client that will handle player control (of course), but also visualization & tag editing-- a complete music library solution.

Suggestions, bug reports & PRs welcome!
2 changes: 1 addition & 1 deletion doc/mpdpopm.texi
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
@copying
This manual corresponds to mpdpopm version @value{VERSION}.

Copyright @copyright{} 2021 Michael Herstine <sp1ff@@pobox.com>
Copyright @copyright{} 2021-2023 Michael Herstine <sp1ff@@pobox.com>

@quotation
Permission is granted to copy, distribute and/or modify this document
Expand Down
2 changes: 1 addition & 1 deletion mpdpopm/src/bin/mppopm.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (C) 2020-2021 Michael Herstine <sp1ff@pobox.com>
// Copyright (C) 2020-2023 Michael Herstine <sp1ff@pobox.com>
//
// This file is part of mpdpopm.
//
Expand Down
2 changes: 1 addition & 1 deletion mpdpopm/src/bin/mppopmd.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (C) 2020-2021 Michael Herstine <sp1ff@pobox.com>
// Copyright (C) 2020-2023 Michael Herstine <sp1ff@pobox.com>
//
// This file is part of mpdpopm.
//
Expand Down
2 changes: 1 addition & 1 deletion mpdpopm/src/filters_ast.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (C) 2020-2021 Michael Herstine <sp1ff@pobox.com>
// Copyright (C) 2020-2023 Michael Herstine <sp1ff@pobox.com>
//
// This file is part of mpdpopm.
//
Expand Down

0 comments on commit bd54d50

Please sign in to comment.