chore: release 3.3

- update changes
- update version
diff --git a/CHANGES.rst b/CHANGES.rst
index 096007e..56d42b7 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -683,8 +683,29 @@
 - [#162] Write in non-blocking mode returns incorrect value on windows
 
 
-Version 3.2.x   2017-xx-xx
---------------------------
+Version 3.3   2017-03-08
+------------------------
+Improvements:
+
+- [#206] Exclusive access on POSIX. ``exclusive`` flag added.
+- [#172] list_ports_windows: list_ports with 'manufacturer' info property
+- [#174] miniterm: change cancel impl. for console
+- [#182] serialutil: add overall timeout for read_until
+- socket: use non-blocking socket and new Timeout class
+- socket: implement a functional a reset_input_buffer
+- rfc2217: improve read timeout implementation
+- win32: include error message from system in ClearCommError exception
+- and a few minor changes, docs
+
+Bugfixes:
+
+- [#183] rfc2217: Fix broken calls to to_bytes on Python3.
+- [#188] rfc2217: fix auto-open use case when port is given as parameter
+
+Bugfixes (posix):
+
+- [#178] in read, count length of converted data
+- [#189] fix return value of write
 
 Bugfixes (win32):
 
diff --git a/documentation/conf.py b/documentation/conf.py
index a03b171..64605a6 100644
--- a/documentation/conf.py
+++ b/documentation/conf.py
@@ -38,16 +38,16 @@
 
 # General information about the project.
 project = u'pySerial'
-copyright = u'2001-2016, Chris Liechti'
+copyright = u'2001-2017, Chris Liechti'
 
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the
 # built documents.
 #
 # The short X.Y version.
-version = '3.2'
+version = '3.3'
 # The full version, including alpha/beta/rc tags.
-release = '3.2.1'
+release = '3.3'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/documentation/pyserial_api.rst b/documentation/pyserial_api.rst
index 54d2ff3..65eeae5 100644
--- a/documentation/pyserial_api.rst
+++ b/documentation/pyserial_api.rst
@@ -52,7 +52,7 @@
 
         :param float inter_byte_timeout:
             Inter-character timeout, :const:`None` to disable (default).
-            
+
         :param bool exclusive:
             Set exclusive access mode (POSIX only).  A port cannot be opened in 
             exclusive access mode if it is already open in exclusive access mode.
@@ -112,6 +112,7 @@
         .. versionchanged:: 2.5
             *dsrdtr* now defaults to ``False`` (instead of *None*)
         .. versionchanged:: 3.0 numbers as *port* argument are no longer supported
+        .. versionadded:: 3.3 ``exclusive`` flag
 
     .. method:: open()
 
diff --git a/serial/__init__.py b/serial/__init__.py
index 4cd3a25..64c43c1 100644
--- a/serial/__init__.py
+++ b/serial/__init__.py
@@ -3,7 +3,7 @@
 # This is a wrapper module for different platform implementations
 #
 # This file is part of pySerial. https://github.com/pyserial/pyserial
-# (C) 2001-2016 Chris Liechti <cliechti@gmx.net>
+# (C) 2001-2017 Chris Liechti <cliechti@gmx.net>
 #
 # SPDX-License-Identifier:    BSD-3-Clause
 
@@ -13,7 +13,7 @@
 from serial.serialutil import *
 #~ SerialBase, SerialException, to_bytes, iterbytes
 
-__version__ = '3.2.1'
+__version__ = '3.3'
 
 VERSION = __version__
 
diff --git a/serial/serialposix.py b/serial/serialposix.py
index cff3417..bb2fa03 100644
--- a/serial/serialposix.py
+++ b/serial/serialposix.py
@@ -302,7 +302,7 @@
         """Set communication parameters on opened port."""
         if self.fd is None:
             raise SerialException("Can only operate on a valid file descriptor")
-            
+
         # if exclusive lock is requested, create it before we modify anything else
         if self._exclusive is not None:
             if self._exclusive:
@@ -312,7 +312,7 @@
                     raise SerialException(msg.errno, "Could not exclusively lock port {}: {}".format(self._port, msg))
             else:
                 fcntl.flock(self.fd, fcntl.LOCK_UN)
-            
+
         custom_baud = None
 
         vmin = vtime = 0                # timeout is done via select
diff --git a/serial/serialutil.py b/serial/serialutil.py
index 322b7e3..e4df90f 100644
--- a/serial/serialutil.py
+++ b/serial/serialutil.py
@@ -227,7 +227,7 @@
         self.dsrdtr = dsrdtr
         self.inter_byte_timeout = inter_byte_timeout
         self.exclusive = exclusive
-        
+
         # watch for backward compatible kwargs
         if 'writeTimeout' in kwargs:
             self.write_timeout = kwargs.pop('writeTimeout')
@@ -312,7 +312,7 @@
     def exclusive(self):
         """Get the current exclusive access setting."""
         return self._exclusive
-    
+
     @exclusive.setter
     def exclusive(self, exclusive):
         """Change the exclusive access setting."""