Skip to content

Commit

Permalink
Change logs and release notes for 1.6.
Browse files Browse the repository at this point in the history
  • Loading branch information
rstam committed Aug 29, 2012
1 parent a200c61 commit 07594e7
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 25 deletions.
6 changes: 6 additions & 0 deletions Release Notes/Change Log v1.6-Bson.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
BSON library changes from 1.5 to 1.6

BsonWriter.cs
no longer allow $csharpnull (driver now uses _csharpnull instead)

BsonSerializerAttribute.cs
new attribute to configure a serializer for a class or a member

BsonValueSerializer.cs
BsonNullSerializer now uses _csharpnull instead of $csharpnull for a C# null value of type BsonNull

ReadOnlyCollectionSerializer.cs
new serializer for ReadOnlyCollection

Expand Down
52 changes: 41 additions & 11 deletions Release Notes/Change Log v1.6-Driver.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
C# driver changes from 1.5 to 1.6

IndexOptionsBuilder.cs
added SetTimeToLive

QueryBuilder.cs
QueryBuilderTyped.cs
Mod arguments changed from int to long
Expand All @@ -8,13 +11,21 @@ AggregateResult.cs
new class
represents the result of an aggregate command

CollectionStatsResults.cs
added CollectionSystemFlags and CollectionUserFlags enums
marked Flags property obsolete
added SystemFlags and UserFlags properties

IsMasterResult.cs
new class
represents the result of an IsMaster command

ConnectWaitFor.cs
enum removed (obsoleted by ReadPreference)

GetIndexesResult.cs
added TimeToLive property to IndexInfo class

MongoCollection.cs
added Aggregate helper method
obsoleted slaveOk
Expand Down Expand Up @@ -56,6 +67,8 @@ MongoServer.cs
instance management logic moved from this class to new proxy classes
static constructor no longer registers serializers (see MongoDBRef and SystemProfileInfo)
removed ConnectWaitFor overload to Connect
obsoleted slaveOk
added support for ReadPreference

MongoServerBuildInfo.cs
added new FromCommandResult helper factory method
Expand All @@ -65,11 +78,14 @@ MongoServerInstance.cs
added tracking of a running average Ping time
moved state verification time here from MongoConnectionPool
added several new internal properties (AveragePingTime, ReplicaSetInformation, InstanceType)
changed most thread synchronization to use Interlocked methods rather than locks
reengineered how locking is used
changed some thread synchronization to use Interlocked methods rather than locks
IsMasterResult now returns an instance of the new IsMasterResult class
reimplemented VerifyState
reimplemented Connect
reimplemented Connect and Disconnect
renamed internal VerifyState helper method to LookupServerInformation (and reimplemented it)
added internal Ping helper method that keeps running average of Ping time
added new ServerInformation helper class

MongoServerSettings.cs
obsoleted slaveOk
Expand Down Expand Up @@ -136,46 +152,60 @@ DiscoveringMongoServerProxy.cs
new class that is used when we won't know what kind of server we are connected to until we try to connect to it

IMongoServerProxy.cs
interface for proxies
interface for server proxies

MongoConnection.cs
added support for SSL
changed RunCommand to take a database name instead of a collection name

MongoConnectionPool.cs
moved state verification timer to MongoServerInstance
new MaintainPoolSize method is a refactoring of the old TimerCallback method
RemoveConnection is now private

MongoServerProxyFactory.cs
new class to handle choosing the type of IMongoServerProxy to create based on settings

MultipleConnectionMongoServerProxy.cs
MultipleInstanceMongoServerProxy.cs
new abstract class for managing multiple active MongoServerInstances

PingTimeAggregator.cs
new class to keep track of ping times and their average for a MongoServerInstance

ReplicaSetConnector.cs
removed class
more or less replaced by MultipleConnectionMongoServerProxy and ReplicaSetMongoServerProxy
more or less replaced by MultipleInstanceMongoServerProxy and ReplicaSetMongoServerProxy

ReplicaSetInformation.cs
new class to hold information about a replica set

ReplicaSetMongoServerProxy.cs
new subclass of MultipleConnectionMongoServerProxy to implement replica set specifics
new subclass of MultipleInstanceMongoServerProxy to implement replica set specifics

ShardedMongoServerProxy.cs
new sublcass of MultipleConnectionMongoServerProxy to implement mongos specifics
new sublcass of MultipleInstanceMongoServerProxy to implement mongos specifics

MongoQueryProvider.cs
fixed a bug related to First, FirstOrDefault, Single and SingleOrDefault when projecting a primitive type
ExpressionNormalizer.cs
normalize comparisons of Nullable<T> from VB to C#
VisitUnary now calls base method before normalizing

PredicateTranslator.cs
changed Mod operation to use a 64-bit integer
changed Mod query operator to support either 32-bit or 64-bit integers

Projector.cs
added new IProjector and IProjector<TSource, TResult> interfaces
added new IdentityProjector<T> class
Projector<TSource, TResult> now implements IProjector<TSource, TResult> interface
added Cursor property to Projector

SelectQuery.cs
changed skip and take handling to be order dependent
Distinct now must appear last in the query pipeline
changed Execute so that a projector is always used, even if it is only an IdentityProjector

BsonSerializationInfoHelper.cs
moved code to the BsonSerializationInfo class
moved SerializeValue and SerializeValues to the BsonSerializationInfo class
but left behind forwarding stubs (for now)

MongoQueryProvider.cs
fixed a bug related to First, FirstOrDefault, Single and SingleOrDefault when projecting a primitive type
51 changes: 37 additions & 14 deletions Release Notes/Release Notes v1.6.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,54 @@
C# Driver Version 1.6 Release Notes
===================================

This is a major release featuring support for server 2.2. The major change is
support for[read preferences](http://docs.mongodb.org/manual/applications/replication/#read-preference)
allowing tag based granularity for selecting servers to send commands and
queries to. In addition, we have added support for SSL and a helper method
for the new aggregation framework.
This is a major release featuring support for server 2.2. The major change is
support for read preferences, allowing tag based granularity for selecting
servers to send commands and queries to. In addition, we have added support
for SSL and a helper method for the new aggregation framework.

An online version (with possible corrections) of these release notes is available at:

https://github.com/mongodb/mongo-csharp-driver/blob/master/Release%20Notes/Release%20Notes%20v1.6.md

File by file change logs are available at:

https://github.com/mongodb/mongo-csharp-driver/blob/master/Release%20Notes/Change%20Log%20v1.6-Bson.txt
https://github.com/mongodb/mongo-csharp-driver/blob/master/Release%20Notes/Change%20Log%20v1.6-Driver.txt

The full list of JIRA issues resolved in this release is available at:

https://jira.mongodb.org/secure/IssueNavigator.jspa?mode=hide&requestId=12011

Information about read preferences is available online at:

http://docs.mongodb.org/manual/applications/replication/#read-preference

These release notes describe the changes at a higher level, and omits describing
some of the minor changes.

Breaking changes
----------------

- ConnectWaitFor has been removed and replaced with read preferences. Anyone
using the ConnectWaitFor enumeration will need to change their code.
- Commands are no longer always sent to primaries. If you are expecting this
behavior, ensure that your read preference is set to Primary.

JIRA issues resolved
--------------------

The full list of JIRA issues resolved in this release is available at:

https://jira.mongodb.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+%3D+CSHARP+AND+fixVersion+%3D+%221.6%22+AND+status+%3D+Closed+ORDER+BY+priority+DESC&mode=hide
- ConnectWaitFor has been removed and replaced with read preferences. Anyone
using the ConnectWaitFor enumeration will need to change their code.
- The serialized representation for a C# null of type BsonNull has been changed
from { $csharpnull : true } to { _csharpnull : true } to work around limitations
of the server. Existing data will still be correctly deserialized but new data
will be written in the new format. This is very unlikely to affect you because
it is very unlikely you have any properties of type BsonNull in your classes.

New features
------------

- There is a new \[BsonSerializer] attribute that can be used to specify which
serializer to use for a class.
- Instances of ReadOnlyCollection are now serializable/deserializable.
- Queries involving Mod now work with 64-bit integers also.
- Support for TTL collections (see IndexOptions.SetTimeToLive).
- Simple helper method for aggregation framework (see MongoCollection.Aggregate).
- SlaveOK has been deprecated and replaced with the more flexible ReadPreference options.
- Support for SSL connections.
- Improved support for LINQ queries from VB.NET.
- Support for connecting to multiple mongos’ with load balancing

0 comments on commit 07594e7

Please sign in to comment.