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.jsonto 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
pngsmithand remove it from any READMEs
- Add
twolfson-styleto each part of our system- grunt-spritesmith
- gulp.spritesmith
- spritesmith
- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- Clean up technical debt (e.g. sloppy
exec, undesiredsynccalls, usage ofshell-quote) - Get rid of
exporterslogic -- 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-testas well -_-;;- foundry
- twolfson-style
- README
- Travis CI/node version?
- Maybe break down
jpegandpngtests into their own sets? - Also pull over
giftests frompixelsmith? - Break up repo into
-specand-testrepos (don't forget to release-spec)
- Document
-specin all READMEs- grunt-spritesmith
- gulp.spritesmith
- spritesmith
- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- Add newsletter to
spritesmithfamily
- Add
specVersionassertion to-testrepo - Add
specVersion/upgrade-testto each engine inpatchrelease- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- Add
specVersionassertion tospritesmithinminorrelease - Upgrade to latest
spritesmithingrunt-/gulp. - Document
spritesmith-enginekeyword in-spec - Add
spritesmith-engineto all engines- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- Update
-specto use constructor forEngine(and maybeCanvas) - Transition engines to using new
-specvariation- 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
spritesmithengine 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-streamfor now -- see 2.1 for future notes) -
gulp. -
grunt-
- Update all engines to accept either
filepathorvinyl- 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. requirefilepathvs choosefilepath,buffer, orstream)- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- spritesmith
-
gulp.(documentread: false?) -
grunt-
- Add
console.warnto each engine when we encounter avinylfile with extrabuffer/streamwhen we only needfilepath- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
-
Buildspritesmith-engine-baseorspritesmith-engine-utilrepo (prob the latter) so we can get format coercion forjpgand getgrunt-passing- Wound up using
vinyl-fileand one-offs for each engine but have unifying test
- Wound up using
-
Update-specwith note about-base/-util -
Probably re-usespritesmith-engine-utilforString -> vinylcoercion but need to see ifspritesmithneeds 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+sshURLs from all repos (I think onlyspritesmithhad these)- pixelsmith
- gmsmith
- phantomjssmith
- canvassmith
- -spec
- -test
- spritesmith
-
gulp. -
grunt-
- Remove all
TODOs- 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., andspritesmithspritesmithis buffer callback (not binary string)gulp.people should be aware ofbuffer: nullor whatever the syntax is- All should have "Upgrade to v2 spec" as a major heading
- Publish
-specand-test - Upgrade
-testin each of the engines and verify Travis CI passes - Publish engines
- Upgrade engines in
spritesmithand publish - Upgrade
spritesmithingrunt-andgulp.and publish
- To properly leverage streams, we are going to need to either: break down
spritesmithinto 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
keywordforspritesmith-engineand document it - Relocate
engineOptsfrom a singleton pattern to part of the engine constructor- Actually, that's terrible for
instanceofand what not -- Maybe exposegmsmith.gmandgmsmith.imwithgmsmithbeing same but autoinvokes the right one
- Actually, that's terrible for
-
Removepngfallback from all engines- Deciding not to since it complicates logic in
spritesmith
- Deciding not to since it complicates logic in
-
If we create autilrepo, 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, andpngin our specification and perform normalization withinspritesmith- We have chosen to allow
jpgas a one-off in each repo for now
- We have chosen to allow
-
Updatesave-pixelsto use latest release withoptions.qualitysupport- Deferring for now -- almost burned out on
spritesmith
- Deferring for now -- almost burned out on
- Close twolfson/gulp.spritesmith#53