Hi, Multimedians.
I've been talking with our new multimedia team, we're just getting to the point
where we have a really good idea of where we want to go after a little while
of doing work mostly on existing issues and refactoring efforts, and I have
a small announcement to make.
In the next few months, we intend to work on pulling upload API logic into core,
and writing a new interface for uploading files from VisualEditor. Our initial
plan involved refactoring UploadWizard to a point where including it in VisualEditor
would not be difficult, but our new plans include usability improvements that,
in my opinion, would unnecessarily enmire our work. Our team will be submitting
patches to OOJS-UI, MediaWiki Core, and VisualEditor itself in an effort to get
this project off the ground, as well as tweaking configuration settings in mw-config
and generally running around looking for code review.
Rest assured, we intend to maintain our commitment to fixing bugs in UploadWizard
as they come up, as well as bugs in the myriad other Multimedia projects. Please
continue to bother the Multimedia team if and when things go wrong, we are always
happy to help you, or at least point you in the right direction.
Here is a rough roadmap of where we need to go in the next few months:
# mw.Api.plugin.upload API to automatically detect what methods are available for the
browser, take a File object or file input, and perform the upload
## Base upload API with simple API call, quick and dirty, with gadget proof-of-concept
https://phabricator.wikimedia.org/T103397?workflow=create
## Expand to use File API where available
https://phabricator.wikimedia.org/T103398
## Expand to support stashing with appropriate continue-upload API
https://phabricator.wikimedia.org/T103399
## {{stretch}} Expand to use chunked uploading where available
https://phabricator.wikimedia.org/T103398
# Tie together all of those things into an Upload object or similar in core, so we can
handle it with relative ease in our mostly-UI extension
## Create Upload model API in core
https://phabricator.wikimedia.org/T103413
### Base functionality - use the new upload API to upload a file, configurable to use
stash
### Base functionality - finish stash upload
### Base functionality - set file description page text for upload (to be used in
finish-stash call, or in initial upload if no stash option passed in)
# Upload OOUI widget can then just use all of those things, and it can live in VE instead
of having to be across a couple of extensions.
## Create upload widget in VE
https://phabricator.wikimedia.org/T91717 {{epic}}
### Upload inspector
### File input widget in OOUI {{done}}
### Take file from widget, use upload API in core to stash
### Description/licensing/category form
### Emit finished upload from widget
## Use upload widget for inserting files into VE
https://phabricator.wikimedia.org/T91717
(new task?)
### Add upload widget as above
### Use emitted file to construct thumbnail (file API?), caption (based on description)
## Drag-and-drop
https://phabricator.wikimedia.org/T40031
## Copy-paste
https://phabricator.wikimedia.org/T39932
--
Mark Holmquist
Lead Engineer, Multimedia
Wikimedia Foundation
mtraceur(a)member.fsf.org
https://wikimediafoundation.org/wiki/User:MHolmquist