We feel like it's time to clean up some more technical debt in spritesmith
. Here are the tasks we want to take care of:
- Add
foundry
- Update all
package.json
to usenode>=0.10.0
- Update all Travis CI to use
node>=0.10.0
- grunt-spritesmith
- gulp.spritesmith
- spritesmith
- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- Add deprecation notice to
pngsmith
and remove it from any READMEs
- Add
twolfson-style
to each part of our system- grunt-spritesmith
- gulp.spritesmith
- spritesmith
- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- Clean up technical debt (e.g. sloppy
exec
, undesiredsync
calls, usage ofshell-quote
) - Get rid of
exporters
logic -- it is unnecessary -_-;;- grunt-spritesmith
- gulp.spritesmith
- spritesmith
- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- Evaluate and clean up READMEs
- grunt-spritesmith
- gulp.spritesmith
- spritesmith
- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- Go back and fix up
spritesmith-engine-test
as well -_-;;- foundry
- twolfson-style
- README
- Travis CI/node version?
- Maybe break down
jpeg
andpng
tests into their own sets? - Also pull over
gif
tests frompixelsmith
? - Break up repo into
-spec
and-test
repos (don't forget to release-spec
)
- Document
-spec
in all READMEs- grunt-spritesmith
- gulp.spritesmith
- spritesmith
- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- Add newsletter to
spritesmith
family
- Add
specVersion
assertion to-test
repo - Add
specVersion
/upgrade-test
to each engine inpatch
release- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- Add
specVersion
assertion tospritesmith
inminor
release - Upgrade to latest
spritesmith
ingrunt-
/gulp.
- Document
spritesmith-engine
keyword in-spec
- Add
spritesmith-engine
to all engines- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- Update
-spec
to use constructor forEngine
(and maybeCanvas
) - Transition engines to using new
-spec
variation- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- -test
- spritesmith
- Update documentation on engines to state new spec version
- grunt-spritesmith
- gulp.spritesmith
- spritesmith
- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- -spec
- -test
- Move all
spritesmith
engine to use stream as output- Allows for faster writes to disk
- Gets off of our original binary string hack
- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- -spec
- -test
- spritesmith (move to buffer only via
concat-stream
for now -- see 2.1 for future notes) -
gulp.
-
grunt-
- Update all engines to accept either
filepath
orvinyl
- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- -spec
- -test
- spritesmith (need to see how cross/compatible we can handle paths vs vinyl)
-
gulp.
(move to always pass vinyl through) -
grunt-
(always pass through filepaths -- can't make assumptions about content as received on other side -- maybe we could always donull
?)
- Document in each engine's README about what they support from
vinyl
(e.g. requirefilepath
vs choosefilepath
,buffer
, orstream
)- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- spritesmith
-
gulp.
(documentread: false
?) -
grunt-
- Add
console.warn
to each engine when we encounter avinyl
file with extrabuffer
/stream
when we only needfilepath
- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
-
Buildspritesmith-engine-base
orspritesmith-engine-util
repo (prob the latter) so we can get format coercion forjpg
and getgrunt-
passing- Wound up using
vinyl-file
and one-offs for each engine but have unifying test
- Wound up using
-
Update-spec
with note about-base
/-util
-
Probably re-usespritesmith-engine-util
forString -> vinyl
coercion but need to see ifspritesmith
needs raw names or notes- Be sure to use options provided by engine (e.g.
buffer: null
) - Wound up using
vinyl-file
- Be sure to use options provided by engine (e.g.
- Remove
git+ssh
URLs from all repos (I think onlyspritesmith
had these)- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- -spec
- -test
- spritesmith
-
gulp.
-
grunt-
- Remove all
TODO
s- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- -spec
- -test
- spritesmith
-
gulp.
-
grunt-
- Review diffs of all repos
- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- -spec
- -test
- spritesmith
-
gulp.
-
grunt-
- Document breaking changes in
grunt-
,gulp.
, andspritesmith
spritesmith
is buffer callback (not binary string)gulp.
people should be aware ofbuffer: null
or whatever the syntax is- All should have "Upgrade to v2 spec" as a major heading
- Publish
-spec
and-test
- Upgrade
-test
in each of the engines and verify Travis CI passes - Publish engines
- Upgrade engines in
spritesmith
and publish - Upgrade
spritesmith
ingrunt-
andgulp.
and publish
- To properly leverage streams, we are going to need to either: break down
spritesmith
into reusable parts or move the retina logic intospritesmith
(leaning towards the latter) - Without streams, we will have a chance of opening a disk stream without knowing if retina images properly correlate
- Move to returning object with streams on it
- spritesmith
-
gulp.
-
grunt-
- Ship all the libraries
- Define a
keyword
forspritesmith-engine
and document it - Relocate
engineOpts
from a singleton pattern to part of the engine constructor- Actually, that's terrible for
instanceof
and what not -- Maybe exposegmsmith.gm
andgmsmith.im
withgmsmith
being same but autoinvokes the right one
- Actually, that's terrible for
-
Removepng
fallback from all engines- Deciding not to since it complicates logic in
spritesmith
- Deciding not to since it complicates logic in
-
If we create autil
repo, then maybe define default format there?- We have decided to not create this repo for now
-
Remove exporters coercion from all engines -- we should define onlyjpeg
,gif
, andpng
in our specification and perform normalization withinspritesmith
- We have chosen to allow
jpg
as a one-off in each repo for now
- We have chosen to allow
-
Updatesave-pixels
to use latest release withoptions.quality
support- Deferring for now -- almost burned out on
spritesmith
- Deferring for now -- almost burned out on
- Close twolfson/gulp.spritesmith#53