This repository has been archived by the owner. It is now read-only.


Joshua Strobl edited this page Mar 23, 2015 · 22 revisions

Current Release

1.4.7 (Released on 16.09.2014)

  • Fixed a bug in that resulted in the IO callback not being fired if there were zero pending files.
  • Fixed a bug in the compiler that caused the unix find tool to not properly recursively search for a particular file type.
  • Switched from yuicompressor to Google Closure Compiler for improved compression of Javascript.
  • Switched to a slightly primitive form of tests that allows us to reliably test CORS failures. Resolved bug #7. Will be improving in the future, potentially creating a new project for the test system.

Upcoming Planned Releases

2.0 (Planned for April / May 2015)

  • Switch server-side Metis to Go, officially deprecating PHP. Aim for complete feature parity, implementing Metis as a package / library and a secondary executable for external calls.


  • Implement intelligent file synchronization model.
  • Windows Desktop + Server support.


  • Optional automated update system.

Beyond (a.k.a someday)

  • Docker container, basing off either Fedora Cloud or Ubuntu Snappy.
  • Mac support.
  • Memcached support.

Past Releases

1.4.6 (Released on 01.09.2014)

1.4.5 (Released on 13.08.14)

Client-Side Code Changes:

  • Cordova API support for battery checking.
  • Chrome / Chrome OS Apps Storage API support.
  • Massive Change to Client-Side Metis: Move from synchronous IO to asynchronous IO, providing a callback mechanism for when IO is finished.
  • Massive Change to Client-Side Metis: Client-Side Metis is broken into modules and now has function calls that are more logical (like metis.file.Read) which has a lowercase.Uppercase() syntax inspired by Go.

Server-Side Code Changes:

  • Metis initialization has been simplified. No longer accepts a realm of possibility where one would be doing Metis IO or use the callback but NOT have Metis on the file system (that'd be some serious magic).
  • Bug relating to cross-origin resource sharing (CORS) in the callback has been resolved, making it possible to send requests without needing to share the same domain or location. We will introduce a setting in a new settings.json file in the future that will allow you to disable CORS support.
  • Nearly all instances of integer checking (Error Codes) has been replaced with array("error" => error_code).
  • JSON response now fully supports the new per-file Objects. Even when doing IO for a single file, we will reply with something like: ''' PHP array( "test file" => array(. . . file content . . .) ) '''

Build & Test System:

  • Metis compiler has been simplified. The Typescript and PHP compilers are no longer separate, PHP files now are have sha1sum files.
  • Chrome example app for Chrome support testing.
  • Jasmine and Karma Javascript testing suite support to improve testing changes and speeding up the development process.
  • Metis for PHP has a simulator for the test suite, which simulates "real world" IO.
  • Snapshot utility that makes development and stable builds, automatically compressing them into .tar.gz files.

1.4.3 (Released on 22.05.14)

  • Improved callback.php to always return JSON, even when dealing with error or success codes, cleaned up the fileAction in callback code.
  • Core/io.php changes to check if a Node Preferential Location IS set AND is not null, as opposed to just checking if it is null.
  • Changed all is_int checking to is_float as error codes are floats / doubles, not ints.
  • New checking for if the file we are appending to exists, otherwise it'll act as if we're writing to a new file.
  • Cleaned up fileActionHandler returning to always return JSON.
  • Core/sys.php changes to ensure php-cli builds work with Metis, since some php-cli do not have DOCUMENT_ROOT set.
  • Removed framework.php.

1.4.2 (Released on 11.05.14)

  • New Metis class system w/ improved PHP Compiler script that changes our modular code into a unified Class. Implemented ioQueue persistence via LocalStorage. Rather than LocalStorage being automatically set to true when not defined, we first check if the browser supports it.
  • Deprecated all of AtlasUI dependencies.
  • Metis now has a more streamlined HTTP request generator via CURL.

1.4.1 (Released on 25.03.14)

  • Fixes to metisInit() relating to properly finding a Metis installation as well as fetching the nodeList.json file by eliminating the unnecessary post-WHILE loop recursion and just saving using the currentWorkingDirectory var after we've broken out of the WHILE loop after finding a Metis install.

1.4 (Released on 25.02.14)

  • Bash script to easily compile Typescript into Javascript and automatically minify it.
  • Juju Charm for quickly deploying and setting up Metis.
  • Node Groups [DRAFT] and modification of existing functions to support Node Groups.
  • Optional automated multi-node backup

1.3.2 (Released on 04.02.14)

  • Fixes issues where an array merge overwrites multi-dimensional / sub arrays in rare-instances using updateJsonFile().

1.3.1 (Released on 29.12.13)

  • Implementation of client-side (Typescript / Javascript) headless mode to eliminate need for server XHR calls.

1.3 (Released on 18.12.13)

  • Bug fixes
  • HTML5 LocalStorage support and an IO Queue System in Typescript / Javascript implementation.
  • MySQL to JSON functionality to convert MySQL databases / tables to JSON

1.2 (Released on 15.09.13)

  • Typescript bug fixes and 0.9.1 support

1.1 (Released on 20.08.13)

  • Code reduction and improvements
  • Deprecation of FTP in favor of new remote system
  • Typescript / Javascript implementation

1.0 (Released on 30.07.13)

  • Eliminating of die() and replacing with error codes
  • Fixes to folder navigation
  • Fixes to (now deprecated and removed) FTP support.
  • Fixes to single-file reading.
  • Multi-file IO now possible
  • Recursive parent-directory checking in Metis was introduced.

0.9 (Released on 25.04.13)

  • Initial release of Metis

Unless specified otherwise, there are no fixed release dates for major and/or minor releases, nor their revisions.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.