#+TITLE: Change log of fontaine.el
#+AUTHOR: Protesilaos Stavrou
#+EMAIL: info@protesilaos.com
#+OPTIONS: ':nil toc:nil num:nil author:nil email:nil

This document contains the release notes for each tagged commit on the
project's main git repository: <https://git.sr.ht/~protesilaos/fontaine>.

The newest release is at the top.  For further details, please consult
the manual: <https://protesilaos.com/emacs/fontaine>.

* Version 0.3.0 on 2022-07-06
:PROPERTIES:
:CUSTOM_ID: h:0112e468-9ead-4bfb-b93b-74c520bbec69
:END:

This is a stability release that introduces minor tweaks while
formalising point releases which were already available to users.

+ Fixed a bug where a nil minibuffer history would produce an error
  while trying to set a preset.

+ Required the =subr-x= library at compile time.  This is to avoid
  scenaria where ~if-let~ and friends are not known to the byte
  compiler.  Such a problem was reported by Ted Reed concerning their
  Emacs 27 build:
  <https://lists.sr.ht/~protesilaos/fontaine/%3Cm27d6t3f7a.fsf@zenithia.net%3E#%3C87ee11w1j0.fsf@zenithia.net%3E>.

+ Simplified the text of the minibuffer prompt for the ~default~ face.
  The =marginalia= package treats the candidates as faces when the word
  "face" occurs in the prompt.  Generally that should be okay, though we
  do not want it in our case.

+ Documented a reference to the "devel" variant of GNU ELPA.  This is
  for users who want to use a version of the package built from the
  latest commit instead of the last tagged release.  Read:
  <https://protesilaos.com/codelog/2022-05-13-emacs-elpa-devel/>.

+ Refrained from erroring out with ~fontaine-set-preset~ if Emacs is not
  in a graphical window (GUI) while the =emacs --daemon= is in use.  The
  ~user-error~ is now limited to the case where a standalone frame is
  non-graphial and the daemon is not running (the error is that you
  cannot change fonts inside of TUI Emacs).  Thanks to Florent Teissier
  for the patch!

+ Named the mailing list address as the =Maintainer:= of Denote.
  Together with the other package headers, they help the user find our
  primary sources and/or communication channels.  This change conforms
  with work being done upstream in package.el by Philip Kaludercic.  I
  was informed about it here:
  <https://lists.sr.ht/~protesilaos/general-issues/%3C875ykl84yi.fsf%40posteo.net%3E>.

* Version 0.2.0 on 2022-05-09
:PROPERTIES:
:CUSTOM_ID: h:f9399542-29b7-4d26-af82-090fed802cc8
:END:

+ Fontaine can apply its changes on a per-frame basis.  One frame may,
  for example, use a preset of font configurations for the purposes of a
  "presentation" while the other has a "small" setup.  Concretely,
  invoke the commands ~fontaine-set-preset~ and ~fontaine-set-face-font~
  with a universal prefix argument (=C-u=).  Without a prefix argument,
  these commands apply to all frames (as it was before).

+ The ~fontaine-presets~ accepts a special =t= preset which provides
  "shared fallback values" for all presets.  The manual has a section
  titled "Shared and implicit fallback values for presets" which covers
  all permutations of ~fontaine-presets~ at length.  The gist is that
  the user can write more concise presets.  Thanks to Ted Reed for
  proposing the idea and testing my prototype in the mailing list:
  <https://lists.sr.ht/~protesilaos/fontaine/%3C87y1zcmo67.fsf@zenithia.net%3E>.

+ Simplified the sample configuration on how to restore the latest saved
  value or fall back to a preferred preset.  Thanks to Christopher
  League for proposing an elegant expression over at the mailing list:
  <https://lists.sr.ht/~protesilaos/fontaine/%3C87sfpop0dm.fsf@contrapunctus.net%3E#%3C87pmksoyv6.fsf@contrapunctus.net%3E>

+ The ~fontaine-latest-state-file~ is now handled by the package
  =no-littering=.  Thanks to Christopher League for adding it there:
  <https://github.com/emacscollective/no-littering/commit/76b7335202a5b6ddc6b6798a2e2fd5b09df57dc2>

+ The new user option ~fontaine-font-families~ specifies the preferred
  font families that are provided as completion candidates of the
  command ~fontaine-set-face-font~.  If left to its default nil value,
  Fontaine tries to find relevant fonts from the underlying system,
  though this is not always accurate depending on the build of Emacs and
  where it runs in.

+ The doc string of ~fontaine-presets~ mentions some important caveats
  or information about font settings in emacs.  Thanks to Eli Zaretskii
  for the feedback on the emacs-devel mailing list:
  <https://lists.gnu.org/archive/html/emacs-devel/2022-04/msg01281.html>.

* Version 0.1.0 on 2022-04-28
:PROPERTIES:
:CUSTOM_ID: h:80e56ed6-cf2b-49a2-9184-b149c9ecfa38
:END:

Initial release of the package.  Please read the manual.

The core idea for this package was implemented in the =prot-fonts.el=
file that is part of [[https://gitlab.com/protesilaos/dotfiles][my dotfiles]] (now deprecated).  I was using it at
least since November 2020, though the underlying code was probably
implemented at an earlier date.
