Dates correspond (roughly) to SSC Archive releases.

30may2022
ColrSpace
- the qualitative carto palettes were not sensitive to the number of
  requested colors; this is fixed
- the -pals- collection no longer has the -pals- prefix (e.g. -pals alphabet- is
  now provided as -alphabet-)
- sb6 is now a simple alias for sb deep6, not a palette with an own name

21apr2022
colorpalette
- option -noinfo- added to syntax 1 graph options
- options chroma() and luminance() of the HCL/LCH/JMh color generators only
  allowed one argument instead of two; this is fixed
ColrSpace
- S.shift() in (-1,1) now applies a proportional shift
- palette -matplotlib turbo- had a wrong name (just -turbo- instead of 
  -matplotlib turbo-); this is fixed
- palette -HTML- contained duplicates; this is fixed

03apr2022
palettes package
- command -colorcheck- added
- colorpalette.ado
  o help updated to cover new palettes supported by ColrSpace
  o new options drop(), shift(), and barwidth()
  o option class() had no effect if used with a colorlist or with a custom
    palette provided by a program; this is fixed
  o support for cyclic (circular) palettes added
  o discontinued backward compatibility to -colorpalette9- syntax
ColrSpace
- ColrSpace now features many additional palettes and colormaps (e.g. 
  Wes Anderson palettes, palettes and colormaps from seaborn.pydata.org,
  Tableau 10 palettes, newer palettes Paul Tol, palettes from Carto, colormaps
  by Peter Kovesi, colormaps by Fabio Crameri); ColrSpace now provides some 500
  predefined palettes and colormaps
- support for cyclic palettes has been added (and the twilight colormap
  is now correctly classified as "cyclic")
- new S.shift() function (shift positions of colors, wrapping around at end;
  particularly useful for cyclic palettes)
- new S.drop() function (drop individual colors; more convenient than S.select()
  in some situations)
- S.delta() now additionally supports color difference definitions "E94"
  (1994 CIELAB Delta E definition) and "E2000" (2000 CIELAB Delta E definition)
- S.pexists() now has a second argument to return the library name
- the system of palette library files has been revised; new library files
  library_lsmaps and library_rgbmaps are now used in place of library_matplotlib
- support for "_personal" library files added
- internal functions replacedata() and appenddata() did not clear the
  temporary copy of the data container upon completion; this is fixed

27may2020
colorpalette.ado
- updated to new version of ColrSpace
- option pname() is now called name()
- options luminate() and saturate() can no longer be abbreviated (to avoid 
  confliction with options of color generators)
- interpolation was applied to palettes read from ado-files even if this was
  not necessary; this is fixed
- palette class was not returned if reading palette from ado-file; this is fixed
ColrSpace
- palette definitions, names colors, matplotlib colormap definitions, and color
  generator parameters are now kept in external source files that are read on
  the fly; system for handling palettes completely rewritten
- expanded set of names colors by various W3.CSS colors; the colors are also available
  as palettes
- functions S.generate*() and S.matplotlib() no longer exist; their functionality
  is now integrated in S.palette()
- S.matplotlib_ip() has been renamed to S.lsmap()
- S.palettes() now returns a list of the names of all available palettes
- S.namedcolors() now returns a list of all available named colors (apart from
  Stata's system colors) including their hex code
- S.clear() clears all all colors
- S.clearsettings() resets color space settings to default
- S.clearindex() clears the internal indices of palettes names and of named colors
- reorganized help file

19may2020
- various changes to ColrSpace; functionality of colorspace is not affected
- some internal changes in code of colorpalette.ado

15may2020
- colorpalete has new syntax
  o palettes are now specified as "palettename scheme ..."; old syntax 
    (schemes as options) still works, but is undocumented
  o colorlist can be included in parentheses to avoid name conflict with
    palettes; automatic detection of color list specification vs. palette
    specification has been improved
- further changes to colorpalette:
  o option pname() added (set palette name)
  o option globals() added (store colors as globals)
  o option locals() added (store colors as locals)
  o option stylefiles() added (write color style files)
  o option locals() added (save colors as locals)
  o webcolors are now also provided as palette(s)
  o gscale() and cvd() in colorpalette now allow numlists
- revision of colrspace
  o S.names() and S.Names() added (color names)
  o S.cvalid() added (check whether a color specification is valid)
  o S.info() and S.Info() no longer have an rgbforce argument
  o p argument in S.gray() and S.dvd() can now be a vector
  o CMYK colors are now always exported as RGB by S.colors()
  o system for handling palettes revised and partially rewritten
    - S.pexists() added (check whether a palette exists)
    - S.pinfo() added (palette description)
    - S.psource() added (palette source)
    - S.palette() and S.matplotlib() now assign a palette description and a
      source
    - some palettes now assign color names
    - matplotlib colormaps are now supported by S.palettes() (using a
      redirection to S.matplotlib())

31jan2019
- major update to colorpalette
  o color management ported to Mata: ColrSpace() class
  o colorpalette9 provided for backward compatibility
  o improved ipolate(); new gscale(), cblind(), intensify(), saturate(), luminate() 
  o additional input formats such as "xyz # # #" etc. as well as 140 web colors
  o new viridis and other matplotlib palettes
  o new lch and jmh color generators
  o tableau is now a separate palette
  o mata(name) to obtain colors from Mata ColrSpace object
  o new order() option
  o now automatically recycles/interpolates colors depending on n(); can be 
    turned off by -noexpand-; class() option to determine palette class 
    (relevant for deciding whether to recycle or interpolate)
  o forcergb to always use rgb, for example also for named Stata colors
  o now displays error if options are specified that are not allowed with palette
  o now displays error if a color is not found
  o graph options:
    . new nonumbers option
    . new names option in syntax 1
    . new span option in syntax 2
    . option plabels() is now labels() (plabels() still supported)

10sep2018
- option -ipolate()- added to -colorpalette-

12apr2018
- command -colorpalette- now supports combining colors from different palettes
- the list of palettes provided to -colorpalette:- can now contain . to insert 
  gaps
- command -symbolpalette- displayed an error message if a custom palette with 
  just one element was specified; this is fixed
  
22dec2017
- released on SSC