Our combined changelog and roadmap. It contains todos as well as dones.
Items can be optionally be tagged tagged by GitHub owner issue if discussion happened / is needed.
Please add your entries in this format:
- [ ] (<plugin name>|website|core|meta|build|test): <Present tense verb> <subject> \(<list of associated owners/gh-issues>\)
.
Following SemVer spec item 4,
we're <1.0.0
and allowing ourselves to make breaking changes in minor
and patch levels.
In the current stage we aim to release a new version on the first Friday of every new month.
Ideas that will be planned and find their way into a release at one point
- build: go over
package.json
together and clean up npm run scripts (@arturi, @hedgerh, @kvz) - build: investigate Rollup someday, for tree-shaking and smaller dist browserify/browserify#1379 (comment), https://github.com/nolanlawson/rollupify
- core: Decouple rendering from Plugins and try to make Uppy work with React (add basic example) to remain aware of possible issues (@hedgerh), look at https://github.com/akiran/react-slick
- core: Have base styles, be explicit about fonts, etc
- core: Make sure Uppy works well in VR
- drive: Show a visual indication that downloading has started after double-clicking. Prevent that 6 clicks = 3 downloads
- instagram: Make a barely working Instagram Plugin + example (#21)
- meta: Use <waffle.io> instead of Markdown task tracking. Some discussion here (@kvz)
- modal: polish on mobile
- presenter: make it work with new components/state (@arturi)
- presets: Add basic preset that mimics Transloadit's jQuery plugin (#28)
- test: Human should check http://www.webpagetest.org, use it sometimes to test our website & Uppy? Which will show response/loading times and where big delays are
- test: Human should test with real screen reader to identify accessibility problems
- test: add https://github.com/pa11y/pa11y for automated accessibility testing
- test: Make Edge and Safari work via the tunnel so we can test localhost instead of uppy.io, and test the current build, vs the previous deploy that way
- test: setup an HTML page with all sorts of crazy styles, resets & bootstrap to see what brakes Uppy (@arturi)
- website: Make a gif/video of Uppy Modal or DragDrop demo (drag & drop a few files -> upload happens)
- website: scrollbars on code samples (can’t reproduce!) (@arturi)
- core: accessibility research
- test: add next-update https://www.npmjs.com/package/next-update to check if packages we use can be safely updated
Released: N/A
- core: let user cancel uploads in progress (@arturi)
- meta: better readme on GitHub and NPM (@arturi)
- modifier: A plugin to supply meta data (like width, tag, filename, user_id) (@arturi)
- modifier: pass custom metadata with non-tus-upload. Maybe mimic meta behavior of tus here, too
- modifier: pass custom metadata with tus-upload with tus-js-client (@arturi)
- progressdrawer: better icons, style, file types (mime + extension) (@arturi)
- test: Get IE4 on windows 3.11 to run Uppy and see it fall back to regular form upload (
api2.transloadit.com
) (@arturi) - test: working Uppy example on Require Bin — latest version straight from NPM (@arturi)
Theme: Remote Uploads, UI Redesign
Released: July 1, 2016
- core: Investigate if there is a way to manage an oauth dialog and not navigate away from Uppy; Put entire(?) state into oauth redirect urls / LocalStorage with an identifier ? (@hedgerh)
- core: Rethink UI: Part I (interface research for better file selection / progress representation) (@arturi)
- core: let user cancel uploads in progress (@arturi)
- core: resize image file previews (to 100x100px) for performance (@arturi)
- server: add tus-js-client when it's node-ready (@hedgerh)
- server: make uppy-server talk to uppy-client in the browser, use websockets. (@hedgerh)
- dashboard: new “workspace” plugin, main area that allows for drag & drop and shows progress/actions on files, inspired by ProgressDrawer
- website: add new logos and blog (@arturi)
- drive: Return
cb
after writing all files https://github.com/transloadit/uppy-server/commit/4f1795bc55869fd098a5c81a80edac504fa7324a#commitcomment-17385433 (@hedgerh) - server: Make Google Drive files to actually upload to the endpoint (@hedgerh)
- build: browsersync does 3 refreshes, can that be one? should be doable via cooldown/debounce? -> get rid of require shortcuts (@arturi)
- build: regular + min + gzipped versions of the bundle (@arturi)
- build: set up a simple and quick dev workflow — watch:example (@arturi)
Theme: The aim low release
Released: June 03, 2016
- build: minification of the bundle (@arturi)
- build: revisit sourcemaps for production. can we have them without a mandatory extra request?
- build: supply Uppy es5 and es6 entry points in npm package (@arturi)
- build: switch to https://www.npmjs.com/package/npm-run-all instead of parallelshell (@arturi)
- drive: Make sure uppy-server does not explode on special file types: https://dl.dropboxusercontent.com/s/d4dbxitjt8clo50/2016-05-06%20at%2022.41.png (@hedgerh)
- modal: accessibility. focus on the first input field / button in tab panel (@arturi)
- progressdrawer: figure out crazy rerendering of previews by yoyo/bel: choojs/nanohtml#26, choojs/nanohtml#27 (@arturi)
- core: substantial refactor of mount & rendering (@arturi)
- core: better state change logs for better debugging (@arturi)
- progressdrawer: improve styles, add preview icons for all (@arturi)
- server: Start implementing the
SERVER-PLAN.md
, remote files should be added tostate.files
and marked asremote
(@hedgerh) - test: Add pass/fail Saucelabs flag to acceptance tests (@arturi)
- website: Polish Saucelabs stats (social badge + stats layout) (@arturi)
- meta: Create Uppy logos (@markstory)
- website: fix examples and cleanup (@arturi)
- website: Add Saucelabs badges to uppy.io (@kvz)
- website: fix disappearing icons issue,
postcss-inline-svg
(@arturi)
Theme: Acceptance tests and Google Drive Polish
Released: May 07, 2016
- test: Wire saucelabs and travis togeteher, make saucelabs fail fatal to travis builds
- test: Add
addFile
-hack so we can have acceptance tests on Safari as well as Edge (@arturi) - drive: possible UI polish (@hedgerh)
- drive: write files to filesystem correctly (@hedgerh)
- test: Fix 15s timeout image.jpg (@arturi)
- test: Sign up for Browserstack.com Live account so we can check ourselves what gives and verify saucelabs isn't to blame (@arturi) <-- Turns out, Saucelabs already does that for us
- test: Get tests to pass Latest version of Internet Explorer (Windows 10), Safari (OSX), Firefox (Linux), Opera (Windows 10) (@arturi) <-- IE 10, Chrome, Firefox on Windows and Linux, but not Safari and Microsoft Edge — Selenium issues
- test: Get saucelabs to show what gives (errors, screenshots, anything) (@arturi)
- build: sourcemaps for local development (@arturi) <-- Not adding it in production to save the extra request. For local dev, this was added already via Browserify
- core: Add polyfill for
fetch
(@hedgerh) - core: Apply plugins when DOM elements aren't static (#25)
- core: figure out the shelf thing https://transloadit.slack.com/archives/uppy/p1460054834000504 https://dl.dropboxusercontent.com/s/ypx6a0a82s65o0z/2016-04-08%20at%2010.38.png (@arturi, @hedgerh)
- core: reduce the monstrous 157.74Kb prebuilt bundle footprint https://dl.dropboxusercontent.com/s/ypx6a0a82s65o0z/2016-04-08%20at%2010.38.png <-- we see no way to optimize at this stage
- drive: add breadcrumb navigation (@hedgerh)
- drive: convert google docs to office format (@hedgerh)
- modal: Avoid duplicating event listeners <-- deprecated by yoyo
- progressbar: make it great again (@arturi)
- progressdrawer: figure out why the whole list is replaced with every update (dom diff problems) (@arturi)
- test: Let Travis use the Remote WebDriver instead of the Firefox WebDriver (https://docs.travis-ci.com/user/gui-and-headless-browsers/#Using-Sauce-Labs), so Saucelabs can run our acceptance tests against a bunch of real browsers. Local acceptance tests keep using Firefox <-- need to add command to Travis (@arturi)
- test: Move failing multipart test back from
v0.0.5
dir, make it pass (@arturi) - tus: Add support tus 1.0 uploading capabilities (#3) <-- works!
- website: Make cycling through taglines pretty (in terms of code and a nice animation or sth) (@arturi)
- website: Move the activity feed from http://uppy.io/stats to the Uppy homepage (@arturi)
- website: Polish http://uppy.io/stats and undo its CSS crimes (@arturi)
Released: April 13, 2016
- server: Upgrade to 0.0.4 (@kvz)
- drive: Add Google Drive plugin unit test (@hedgerh)
- drive: Add a barely working Google Drive example (without Modal, via e.g.
target: "div#on-my-page"
) (@hedgerh) - drive: Make sure http://server.uppy.io is targeted on uppy.io; and localhost is targeted elsewhere (also see https://github.com/hughsk/envify) (@kvz)
- test: Setup one modal/dragdrop acceptance test (@arturi)
- drive: Make sure http://server.uppy.io is targeted on uppy.io; and localhost is targeted elsewhere (also see https://github.com/hughsk/envify) (@kvz)
- website: Add a http://uppy.io/stats page that inlines disc.html as well as displays the different bundle sizes, and an activity feed (@kvz)
- dragdrop: refactor & improve (@arturi)
- website: fix i18n & DragDrop examples (@arturi)
- website: Provide simple roadmap in examples (#68, @kvz)
- website: Upgrade Hexo (@kvz)
- test: Make failing acceptance tests fatal (@kvz)
- allow for continuous
acquiring
, even after all plugins have “run” (@arturi, @hedgerh) - build: clean up package.json. We've accumulated duplication and weirdness by hacking just for our current problem without keeping a wider view of what was already there (@arturi)
- build: fix browsersync & browserify double reloading issue (@arturi)
- build: sourcemaps for examples (@arturi)
- complete:
Complete
Plugin of type/stage:presenter
. "You have successfully uploaded3 files
". Button: Close modal. (@arturi) - core: allow for continuous
acquiring
, even after all plugins have “run” (@arturi, @hedgerh) - core: come up with a draft standard file format for internal file handling (@arturi)
- core: Pluralize collections (locales, just l like plugins) (@kvz)
- core: re-think running architecture: allow for
acquiring
whileuploading
(@arturi) - core: Rename
progress
toprogressindicator
(@kvz) - core: Rename
selecter
toacquirer
(@kvz) - core: Rename
view
toorchestrator
(@kvz) - core: start on component & event-based state management with
yo-yo
(@arturi) - core: Upgrade from babel5 -> babel6 (@kvz)
- dragdrop: Fix 405 Not Allowed, (error) handling when you press Upload with no files (#60, @arturi, thx @hpvd)
- modal:
UppyModal [type=submit] { display: none }
, use Modal's own Proceed button to progress to next stage (@arturi) - modal: covert to component & event-based state management (@arturi)
- modal: Make sure modal renders under one dom node — should everything else too? (@arturi, @hedgerh)
- modal: refactor and improve (@arturi)
- progressdrawer: show link to the uploaded file (@arturi)
- progressdrawer: show file type names/icons for non-image files (@arturi)
- progressdrawer: show uploaded files, display uploaded/selected count, disable btn when nothing selected (@arturi)
- progressdrawer: implement basic version, show upload progress for individual files (@arturi)
- progressdrawer: show previews for images (@arturi)
- server: Add a deploy target for uppy-server so we can use it in demos (#39, @kvz)
- test: Add a passing dummy i18n acceptance test, move failing multipart test to
v0.5.0
dir (@kvz) - test: Add acceptance tests to Travis so they are run on every change (@kvz)
- test: Get Firefox acceptance tests up and running both local and on Travis CI. Currently both failing on
StaleElementReferenceError: Element not found in the cache - perhaps the page has changed since it was looked up
https://travis-ci.org/transloadit/uppy/builds/121175389#L478 - test: Get saucelabs account https://saucelabs.com/beta/signup/OSS/None (@hedgerh)
- test: Install chromedriver ()
- test: Switch to using Firefox for acceptable tests as Travis CI supports that (https://docs.travis-ci.com/user/gui-and-headless-browsers/#Using-xvfb-to-Run-Tests-That-Require-a-GUI) (@kvz)
- test: Write one actual test (e.g. Multipart) (#2, #23, @hedgerh)
- tus: Resolve promise when all uploads are done or failed, not earlier (currently you get to see '1 file uploaded' and can close the modal while the upload is in progress) (@arturi)
- website: Filter taglines (@kvz)
- website: utilize browserify index exposers to rid ourselves of
../../../..
in examples (@kvz)
Released: March 01, 2016
- core: push out v0.0.3 (@kvz)
- build: release-(major|minor|patch): git tag && npm publish (@kvz)
- core: Allow users to set DOM elements or other plugins as targets (@arturi)
- core: Create a progressbar/spinner/etc plugin (#18, @arturi)
- core: Decide on how we ship default styles: separate css file, inline (@kvz, @hedgerh, @arturi, @tim-kos)
- core: Decide on single-noun terminology (npm, umd, dist, package, cdn, module -> bundler -> bundle), and call it that through-out (@kvz)
- core: throw an error when one Plugin is
.use
d twice. We don't support that now, and will result in very confusing behavior (@kvz) - dragdrop: Convert
DragDrop
to adhere toDummy
's format, so it's compatible with the new Modal (@arturi) - drive: Convert
GoogleDrive
to adhere toDummy
's format, so it's compatible with the new Modal (@hedgerh) - modal: Add barely working Modal plugin that can be used as a target (#53, #50, @arturi)
- modal: Improve Modal API (@arturi, @kvz)
- modal: Make
ProgressBar
work with the new Modal (@kvz, @arturi) - modal: Make Modal prettier and accessible using Artur's research (@arturi)
- modal: Make the Modal look like Harry's sketchup (@arturi)
- modal: Rename FakeModal to Modal, deprecating our old one (@kvz)
- modal: use classes instead of IDs and buttons instead of links (@arturi)
- server:
package.json
(@hedgerh) - test: Fix and enable commented out
use plugins
& other core unit test (@arturi)
Released: February 11, 2016
- build: Use parallelshell and tweak browserify to work with templates (@arturi)
- core: Add basic i18n support via
core.translate()
and locale loading (#47, @arturi) - core: implement a non-blocking
install
method (for Progressbar, for example) (@arturi, @kvz) - core: Implement ejs or es6 templating (@arturi, @hedgerh)
- core: Improve on
_i18n
support, add tests (#47, @arturi) - core: Integrate eslint in our build procedure and make Travis fail on errors found in our examples, Core and Plugins, such as
> 100
char lines (@kvz) - docs: Fix build-documentation.js crashes, add more docs to Utils and Translator (@arturi, @kvz)
- dragdrop: Use templates, autoProceed setting, show progress (#50, #18, @arturi)
- meta: Implement playground to test things in, templates in this case
- server: Create a (barely) working uppy-server (#39, @hedgerh)
- website: Fix Uppy deploys (postcss-svg problem) (@arturi, @kvz)
Released: December 20, 2015
- core: Individual progress (#24)
- core: Setup basic Plugin system (#1, #4, #20)
- core: Setup build System (#30, #13, @hedgerh)
- dragdrop: Add basic DragDrop plugin example (#7)
- dropbox: Add basic Dropbox plugin example (#31)
- website: Add CSS Framework (#14)
- website: Create Hexo site that also contains our playground (#5, #34, #12 #22, #44, #35, #15, #37, #40, #43)
Here are the go-to folks for each individual component or area of expertise:
- build (@hedgerh)
- complete (@hedgerh)
- core (@arturi)
- docs (@arturi)
- dragdrop (@arturi)
- dropbox (@hedgerh)
- drive (@hedgerh)
- instagram (@hedgerh)
- meta (@kvz)
- modal (@hedgerh)
- presets (@arturi)
- server (@hedgerh)
- test (@arturi)
- tus (@arturi)
- website (@arturi)