- Fix: Update UNOCONV_BIN setting to reflect the default pip install path.
- Fix: Specifically install LibreOffice 22.214.171.124 and install unoconv 0.8.2.
- Feature: MFR now renders tiff files containing multiple images! The file will be exported to a
multi-page PDF, with one image per page. (thanks, @AddisonSchiller!)
- Feature: Matlab data files (.mat) are now rendered using the tabular formatter. (thanks,
- Feature: The 3D-object renderer now supports STEP (.step and .stp) files. (thanks,
- Fix: Don't send invalid payloads to MFR's metrics-tracking service. (thanks, @AddisonSchiller!)
- Fix: Don't reload the entire page when clicking on a tab header in the tabular renderer.
- Code: Upgrade Pillow dependency. (thanks, @AddisonSchiller!)
- Code: Upgrade MFR's pym.js version to latest. (thanks, @johnetordoff!)
- Code: Upgrade Codepygments dependency to get the newest code highlighters. (thanks,
- Code: Support rendering videos, PDFs, PDBs, and 3D objects in a local development environment.
- Docs: Add a guide for using MFR with the OSF via docker-compose. (thanks, @AddisonSchiller!)
- Fix: Update the Jamovi renderer to handle images with spaces in their name. (thanks,
- Feature: Add a renderer for zip files! Viewing a zip file in MFR will list the names, modified
dates, and sizes for all files in the zipball. (thanks, @johnetordoff!)
- Feature: Layered image files from Adobe Photoshop (*.psd) are now rendered by the image renderer.
- Feature: Stata dataset files (.dta) are now supported by the tabular file renderer, similar to
csv, tsv, and excel spreadsheets. (thanks, @AddisonSchiller!)
- Feature: Add a renderer for .omv files created in the Jamovi open statistical spreadsheet program.
- Feature: Add two new endpoints (/renderers and /exporters) to provide a programmatic view of MFR's
file type support. Both endpoints return a JSON object mapping extensions to the renderer or
exporter that handles them. (thanks, @johnetordoff!)
- Feature: Add a static list of supported file types (`supportedextensions.md`) to the project
repository. Includes a test to warn developers when they've failed to document a newly-added file
type. (thanks, @AddisonSchiller!)
- Feature: Add basic sandboxing to iframes. (thanks, @AddisonSchiller!)
- Fix: Update the MathJax CDN url in the IPython notebook renderer. (thanks, @AddisonSchiller!)
- Fix: Support uppercased extensions (e.g. .CSV) for tabular files. (thanks, @AddisonSchiller!)
- Fix: Links in a pdf inside an iframe now open in a new tab instead of the iframe. (thanks,
- Code: Catch OSF metadata request failures earlier and report them accurately. (thanks,
- Code: Tidy up and reduce layers in the Dockerfile (thanks, @binoculars!)
- Feature: Added support for rendering ~50 new plain-text file types via codepygments, including
FASTA files, ImageJ macros, and Turtle files. (thanks, @AddisonSchiller!)
- Feature: Add a unique request ID to MFR's response headers to help with tracking down errors.
- Feature: Add a new task to clean the export and render caches. (thanks, @icereval!)
- Fix: Error more gracefully when missing required query parameters.
- Fix: Make scrollbars visible on IE11 when content overflows the iframe.
- Fix: Fix ALLOWED_PROVIDER_DOMAINS example in MFR docs. (thanks, @jonathon-love for reporting!)
- Code: Teach MFR to listen for a SIGTERM signal and exit immediately upon receiving it. This
bypasses the 10 second wait for shutdown when running it in Docker.
- Code: Add code-coverage checking via coveralls.io. (thanks, @abought!)
- Code: Add Python 3.6 to travis testing matrix. (thanks, @abought!)
- Code: Add a Pull Request template for GitHub. (thanks, @cslzchen!)
- Fix: Update jQuery onload invocation to be compatible with jQuery 3. (thanks, @sloria!)
- Fix: Quiet some overly-verbose error logging.
- Feature: Turn on scrolling for the MFR iframe to support wide JASP files.
- Fix: Fix rendering of Google Drawing (.gdraw) files by directing them to the image renderer
rather than the unoconv renderer.
- Fix: Cast OSF file size metadata to an int before comparing to our maximum supported file size
limit. Some providers return file size as a string instead of int.
- The "(thanks, @johnetordoff!)" release
- Feature: The tabular spreadsheet renderer now recognizes date fields as dates and will format
them as such. (thanks, @johnetordoff!)
- Feature: Don't even try to render tabular files larger than 100Mb. Neither the server nor the
browser wants that. (thanks, @johnetordoff!)
- Feature: Render a better error message when encountering a csv file with a single field larger
than ~128kb. The underlying library can't handle that, so it's polite to let the user know.
- Feature: MFR will now render .m4v files using the <video> tag. (thanks, @johnetordoff!)
- Fix: Improve tooltip language on 3d object-renderer. (thanks, @johnetordoff!)
- Code: Start depending on upstream xlrd instead of our own fork. (thanks, @johnetordoff!)
- Fix: explicitly depend on IPython to fix ipynb rendering. nbconvert and nbformat have an
undeclared dependency on it. (thanks, @johnetordoff!)
- Feature: MFR errors are now categorized and have error-specific metadata added to then. If Keen
logging is enabled, the error metadata will be logged there for future investigation.
- Fix: The 3D object renderer now imposes a maximum zoom-out limit, so objects can't be shrunk to
infinitesimalness. (thanks, @johnetordoff!)
- Fix: MFR docs are once again building on readthedocs.org! (thanks, @johnetordoff!)
- Code: Update MFR to use invoke 0.13.0. If you have an existing checkout, you will need to
upgrade invoke manually: pip install invoke==0.13.0 (thanks, @johnetordoff!)
- Docs: MFR has been verified to work with python 3.5.3 and 3.6.0. From now on, the docs will
mention which python versions MFR has been verfied to work on. (thanks, @johnetordoff!)
- Fix: Increase max codepygments render size to 200kb from 64kb.
- Happy New Year!
- Fix: Be more ruthless about fixing setuptools breakage in Dockerfile. (thanks, @cwisecarver!)
- Pin setuptools to v30.4.0 to avoid package-namespace-related breakage.
- HALLOWEEN RELEASE!
- Feature: Add configurable size limit to text renderer to avoid dumping 100s of MB of text into
the user's browser. (thanks, @TomBaxter!)
- Fix: Pad MFR 404 errors to >512 bytes. IE discards 404 messages smaller than that and
substitutes its own 404 page. (thanks, @alexschiller!)
- Feature: WaterButler accepts configuration from the environment, overriding any file-based
configuration. This helps MFR integrate nicer in a docker-compose environment. (thanks, @icereval!)
- Fix: Fix pdf presentation mode on Safari. (thanks, @darioncassel!)
- Fix: Fix aiohttp crashing on gzipped HEAD requests.
- Fix: Fix incorrect WB API usage metrics.
- Code: Bump raven dependency to 5.27.0.
- Feature: MFR now does .sav conversion via pspp-convert instead of rpy2.
- Fix: Update ipython notebook renderer to use split-out nbconvert and nbformat libraries.
- Feature: add analytics to MFR requests. MFR now keeps track of requests, handlers, renderers,
and exporters, with more to come!
- Fix: Better error handling for a number of edge cases. (thanks, @TomBaxter!)
- Docs: many fixes to doc build, layout, and formatting. (thanks, @TomBaxter!)
- Docs: add overview of MFR architecture to docs
- Feature: The Dockerfile now sets up unoconv for you.
- Fix: Character encodings for text files are now detected with the chardet library. Inspired
by a file that was both valid ISO-8859-1 and UTF-16 at the same time.
- Avoid an unnecessary lookup when MFR's OSF provider gets a WaterButler V1 url for
downloading. (thanks, @pattisdr!)
- Update the install docs to pin invoke to 0.11.1.
- Pin some dependencies and update our travis config to avoid spurious build failures.
- Add a Dockerfile to simplify running MFR in dev environments.
- Pin invoke to v0.11.1. Our tasks.py is incompatible with v0.13.
- When an invalid provider is passed to MFR, HTML escape the url in the error message.
- MFR now requires python-3.5! Make sure to set the SERVER_DEBUG flag to false in your server
config to avoid the hated "throw() takes 2 positional arguments but 4 were given" error.
- Tabular files now sort numish columns numerically! (thanks, @mfraezz!)
- MFR correctly sets the Access-Control-Allow-Origin header when it receives a request with
an Authorization header but no cookie. IOW it can now be used outside the OSF! (thanks,
- Text files now wrap on Safari and Chrome. (thanks, @zamattiac!)
- Require admin to set a whitelist of permitted provider domains, to avoid spamming other sites
- IPython notebooks are now styled and look **much** better. (thanks, @erinspace!)
- The OSF (https://osf.io) has moved to Open Sans as the default font, so we shall do the same for
Markdown, ReStructred Text, and IPython notebooks. (thanks, @mfraezz!)
- COS is hiring! http://cos.io/jobs (thanks, @AndrewSallans!)
- Update copyright date. (thanks, monotonic progression of time!)
- Pin WaterButler version to v0.18, the last version using python-3.4.
- Fix bug in text encoding detector that was causing utf-8 to always detect as cp-1252.
- Markdown and ReStructuredText files are now rendered in their formatted
display. (thanks, @TomBaxter!)
- ...oh, and they're styled, too! (thanks, @erinspace!)
- Update MFR install instructions. (thanks, @rafaeldelucena!)
- A few helpful tips for the user when rendering 3D objects
- Remove Sentry Ravent Client patch, latest version no longer requires
- Updated Sentry Raven Client to send release w/ Tornado patch and tests
- Fix to provide IE10 support for JSC3D
- Fix to prevent JSC3D CTM Loader from removing download url query parameters
- Support for 3D model file formats (.stl, .3ds, .ctm, .obj) via jsc3d,
- Support for .scad (OpenSCAD) syntax highlighting
- Exclude .ico files from image scaling
- Support maximum dimensions for images
- Images larger than maximum dimensions are scaled down
- Remove invoke from requirements
- Manually garbage collect exceptions to work around issue in python 3.4
- Support word breaks in <pre> tags in Firefox.
- Codepygments extension: remove dependency on bootstrap css; add minimal
styling to maintain look.
- Unpin numpy to avoid error in pandas.
- Add support for rendering JASP files
- Add support for searching tabular renderers
- Add support for cookie based authentication for pdfs and pdbs
- service oriented architecture (SOA)
- plugin system for providers (file resources)
- plugin system for extensions (renderers and exporters)
- embeddable rendering via iframe widget
- initial unit tests