3.21 - removed bad exe files from Makefile.PL, checked Makefile.PL in
    
3.20 - updated minimum perl version to 5.20 
    
3.19 - added options to allow for filemode and group to be set for files created

3.18 - removed flocking, didn't work with windows
       added options to open_store. Just using 'group' for now.
       removed changelog (appended it to the end of this document)
          so there aren't multiples with the same thing

3.17 - fix Makefile.PL issue with junk files included
       add flock locking for datastore writes
       use binmode in hopes of getting windows tests to work

3.16 - removed silly ~ files

3.15 - removed obsolete dependency

3.14 - 

3.13 - fix broken transactions.
    
3.11 - remove backticks from tests. include version info
    
3.10 - automatically uuencode data coming into the store that has \0 in the middle
    
3.00 - Big update
	introduces transactions
	fixed record stores are not called Silos
	silos now have a max file size and span multiple files
	updates to tests

2.02 - updated version. removed old build dependencies.
      appogies, but changing open to open_store to not use
      a reserved word.
1.04 - added version, changelog, readme to manifest
1.03 - added version, changelog, readme
1.02 - updated the min perl version needed
1.01 - removed unneeded use statement
1.0 - basic API laid out

---- old changelog ----
3.15 - fix transaction error where the order was improperly sorted. Added tests for this.
	 no more pie.

3.14 - pie

3.13 - fix broken transactions
	
3.11 - remove backticks from tests, include version info

3.10 - Automatically uuencode incoming data that has a \0 in it.
	the \0 character is otherwise assumed to be end of record.
	renamed, updated the record_store_convert program.
	
3.00 - Big update
	introduces transactions
	fixed record stores are not called Silos
	silos now have a max file size and span multiple files
	updates to tests
	
 2.02 - rename methods 'open' to 'open_store' or 'open_fixed_store'
	in order to avoid collision with the 'open' reserved function. 
	
 2.00 - the databases for Data::RecordStore now automatically
	hold e^n bytes, where n is the id of the database.

	When items are moved from a database, the file is
	automatically vaccuumed. The last id is moved to
	this location and the file truncated.

	Removed recycling. We are using long ids and if those
	are not enough, the implementer can implement some sort
	of recycling.

1.09 - added Data::RecordStore::has_id method
	
1.08 - added JSON requirement for tests
	
1.07 - updated test to include unicode characters
	
1.06 - added version to Make.PL

1.05 - added version to Build.PL. changed name from DB::DataStore to Data::RecordStore
	
1.04 - added license, version and changelog files to manifest

1.03 - added use warnings, the license file and the changelog file.
	
1.02 - updated the min perl version needed

1.01 - removed unneeded use statement

1.0 - basic API laid out

	use DB::DataStore;
	
	$store = DB::DataStore->open( directory );
	my $id = $store->stow( textOrBinData );
	my $val = $store->fetch( $id );
	$id2 = $store->next_id;
	$store->stow( moreData, $id2 );
	
	$store->recycle( $id );
	my $new_id = $store->next_id; # $new_id == $id

	------------------------------------------

	use DB::DataStore; #provides DB::DataStore::FixedStore
	
	my $perlPackTemplate = "LII";
	my $store1 = DB::DataStore::FixedStore->open( $perlPackTemplate, $filename );


	my $size = 33; #must be given when the template does not have a determinate size
	my $store2 = DB::DataStore::FixedStore->open( "A*", $filename2, $size );

	my $recycle_store = DB::DataStore::FixedRecycleStore->open( "L", $filename3 );

	$store1->put_record( 1, [ 2342342432432, 12, 324 ] );
	my( $long, $int1, $int2 ) = @{ $store1->get_record( 1 ) };

	print $store->entry_count; # prints '1'
	
	my $removed_last = $store->pop;

	print $store->entry_count; # prints '0'	

	$store1->put_record( 1, [ 453242,2,12 ] );
	
	my $newid = $store->push( $data_to_put_at_end ); #newid == 2

	my $min_entry_count = 12;
	if( $store->entry_count < $min_entry_count ) {
	   $store->ensure_entry_count( $min );
	   # store now has 2 filled and 10 empty entries
	}

	$store->empty;
	$store->entry_count == 0;

	$store->unlink_store; #file removed

	$recycle_store->put_record( 1, [ 12 ] );
	$recycle_store->put_record( 2, [ 88 ] );
	$recycle_store->put_record( 3  [ 99 ] );
	
	my $next_id = $recycle_store->next_id; # $next_id == 4

	$recycle_store->recycle( 2 );

	my $new_next_id = $recycle_store->next_id # $new_next_id == 2
