[racket-dev] Icons issues
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!