[racket-dev] Icons issues

From: Eli Barzilay (eli at barzilay.org)
Date: Mon Dec 5 14:35:02 EST 2011

The icons collection has some issues that need to be resolved:

* It's nice to have a more generalized library, but this goes to a
  point where "icons" is really questionable.  This can be seen in the
  weird result of logos being considered as a kind of icons.  More
  generally, this could probably cover "sprites" in the future, so
  perhaps some more generic term like "image" is more appropriate.

* The "Making New SVG Icons" section should really be elsewhere -- and
  IMO, this kind of text should go into some readme file (but if not,
  then a second manual that will not get distributed would be more
  fitting).  The text is written as a kind of a README thing anyway,
  and it's explicitly said to be "for Racket developers".  As another
  indication for this, the section documents stuff in `icons/private',
  which is a self-contradiction (if it's documented then it's not
  private).

* Is it really worth it to add such a huge amount of stuff to the
  distribution??  (It is now the second biggest collection, only redex
  is a little bigger than it.)

* It breaks the dependencies.  The error is:

    unsatisfied dependency for "dr-bin":
    "racket/collects/icons/main.rkt" (in:
    "racket/collects/drracket/compiled/syncheck-drracket-button_rkt.dep"
    ...)

  This means that the DrRacket distribution requires "icons/main.rkt",
  and that's missing from the distribution.

  The reason it's missing is that Matthew tried to fix the more
  serious problem that was there before: the new icons requires
  `slideshow' and `texpict' (via `unstable/gui/pict'), and since
  DrRacket uses it, it now depends on these too.

  Potential ways to resolve it:

  1. Decide that it's fine to make slideshow and texpict required for
     drracket.

  2. Dump the idea of making sense and stop making these tests.

  3. Avoid the new dependency, and make the code not require that.
     Potentially do that by splitting the code into a part that
     drracket can use, and a part that is not needed.

* Also, it seems to me that the code that uses Inkscape, and probably
  the SVG files too, should not be distributed by default, since they
  have no use for most people.  This means that it is better to put
  them in something like `meta/images' which will sort out the
  dependencies by default -- since `meta' is not intended for
  distribution, and since normal code should never require stuff from
  `meta'.

* And a minor picky point: when I compare
  "magnifying-glass-left-shiny.svg" and
  "magnifying-glass-left-diffuse.svg", they are both cropped at the
  top (at least the way that they're rendered in Emacs), but in
  addition they're at different places (which is visible in the PNG
  rendered files too).  I wouldn't have pointed it out, but it might
  be some bug in your rendering script.

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!


Posted on the dev mailing list.