oneline changelog
=================

Version 0.1.0
----------------
- Initial oneline support
- WebSocket integration with ws4py, cherry2py

0.2.0
--------------

- DB integration with MySQL, PostGres, MongoDB
- Example modules
- Geolocation object
- Event object 0.1.0

0.2.2
------------

- Random, sound objects
- Time object
- Memcached support

0.3.0
-----------

- Multiplexing
- debug logging
- database integration fixes

0.4.0 
----------

- Updates for database (joins, unions, omit) features
- Better written server, customization on client library
- Support for event style streaming

0.5.0
---------

- Command line features for client, server
- ability to create modules in any directory

0.5.2
--------

- Added sqlite3 support
- more client features in command line utils. Includes:
    --list a way to list all modules
    --remove remove a module
    --info info on a module

0.5.5
------
Major:
- Support for streams using (PHP, Perl, Ruby or Python)
	- streams called with "ol_stream_with" more in /conf/StreamMod.conf & /modules/StreamMod.py
- fixes in config. 
- "init-stream" in oneline-client. Will make a stream linked to
  oneline's streams directory
- Stronger support for linux. 

Minor:
- mariadb placeholder for MySQL.
   use like: db_type = 'mariadb'

0.5.7
-----
- WebUI for oneline 
  - access like:
      oneline --init-ui
      will show port, ip oneline ui is running on
      ui currently supports:
         module showcase
- support for java based streaming. use with jar or .java files

0.5.8
-----
- updates to Oneline client
  adds:
     1. object simplication
     2. no setting objects as variables (procedural based),
        ex:
        Oneline.echo({
            limit:5
        });
        AND
        var echo = Oneline.echo({limit:5});
  
     are equivalent. Procedural is recommended 
- cli updates 
    
0.5.9
----
- events now support pagination type and limits
  IN client use 'limit' and 'page' accordingly
  example:
  Oneline.event({
    'type': 'OR'
    'limit': 20
    'title': Oneline.value('like' 'Test')
  });

- Oneline tables all need either an auto_increment
  or PRIMARY KEY. when not specified logger will warn

- minor fixes


0.6.0
----
- DB tables are now optional
- added generic module for client
  - works as follows:

    - configure a 'type' and 'data' parameter
    - these can then be used in Oneline modules
    - examples:
      Oneline.generic({
        'type': 'do_something'
        'data': [] // array data to do_something
      });
    - motivations:
       custom module writing with no db interface.
- added parsing functions and unparsing for BSON
  can be called in modules
  ol.parse_message/1 from BSON to dict
  ol.pack_message/1 from dict to BSON

- configurations can now be accessed in modules
  ol.config/1 returns the current modules config
  

0.6.1
-- init.d update:
  - init.d server caused crashes without mysql support
    it is highly recommended to switch to 0.6.1

0.6.2
  
client updates:
  update adds 
    --pack option
    this option will allow you to make oneline
    modules out of existing python code
    that was not made with oneline
    
    Usage
    oneline-client --pack "my_module"

    looks for
    my_module.py, my_module.conf and my_module.html


0.6.3

- geolocation object adds bidirectional option
when set will look for lat, lng both directions. additionally
now looks backwards 
so lat, lat + range and lng, lng + range
lat, lat - range and lng, lng - range
- Update adds 'order' option which can specify
which order objects need to passed in
- Patch in storage object


0.7.0

- OnelineTransport class defines new ways to access oneline
without having websocket support in the target browser

  * currently supported
  OnelineTransport.XHR  
   native XMLHttpRequest in place of WebSockets
  OnelineTransport.WebSockets
   normal websocket transport (default)

 definitions in transport.js
 ** update 04/24/15
 XHRTransport fallback on by default

0.8.0
- fixes to oneline core 
- add request and response objects. 
- introspection on parsing,packing objects through
  pipeline. Before:
    def receiver(message):   
      message = ol.parse_message(message)
      my_module = message['packet']['my_module']
      my_module['packet']['my_module']['new_field'] = 1
      message['packet']['my_module'] = my_module
      return self.pipeline.run(ol.pack_message(message))

  now:
      def receiver(message):
        my_module = message.get("my_module")
        my_module.set("new_field", 1)
        return self.pipeline.run(message)

- more fixes 

0.8.1

  - drop features:
    multiplexing
      multiplexing is no longer available in oneline. This feature was not
      very optimized and was not useful. Maybe something to consider for  
      implementating large data packets in the future, more in TODO

    memcached
      memcached while optimized dataflow was not useful in most scenarios
      as it was not consistent with the changing of data. Maybe something
      in the future 

    downstreaming, upstreeaming
      feature was not fully functional, as a result has been dropped


    oneline clustering
      not fully functional, buggy and dropped

    union tables
      currently only join tables will be used. Union tables can be simulated 
      through writing the modules individually and using the db object directly

    db omit fields
      these were used to hide precious you would not need. This like union tables
      can be done separatly

    language streams
      these were not implemented in modular way, and have been dropped.

    - preserved,  refined
      - database now only supports
          MySQL, PostGresQL, SQLite3
      - Controllers  have been added as a simple way to maintain websocket applications
          examples: 
            oneline-client --controller "my_app" "init"
              {constructs all db related expressions and starts oneline-server}
            oneline-client --controller "my_app" "clean" 
              {cleans the oneline application}
        for a full list of features please view the Controller implementation, in /controllers/Example_controller.py


0.8.2
------------------------------------------------------------

- bug fixes for controllers

0.8.6
------------------------------------------------------------

 -  fix db_port issue. 

0.9.0
------------------------------------------------------------

 - add convinience for Oneline.async. Adds callback support
 for asynchronous event multiplexing
 - rewrite some bits in Oneline.js
 - add async support on server
 - look over some command line things. Fixes

0.9.5
-----------------------------------------------------------

 -  patches around server and client
 -  add  "every" option to geolocation objects
    Oneline.geolocation({
         'every': 10.000, // update the geolocation results every 10.000 moved coordinates
    });
 -  other fixes, around command line tools

1.0.0-RC1
----------------------------------------------------------
 - first official release of oneline
 - outlines all tools in the building for the last 10~20
  releases
 - patches any examples using V1, and recipes using V1. 
 - first release candidate
