  REST framework now has more explict and clear control over validating empty values for fields.
  
  Previously the meaning of the `required=False` keyword argument was underspecified. In practice it's use meant that a field could either be not included in the input, or it could be included, but be `None`.
  
  We now have a better seperation, with seperate `required` and `allow_none` arguments.
  
  The following set of arguments are used to control validation of empty values:
  
  * `required=False`: The value does not need to be present in the input, and will not be passed to `.create()` or `.update()` if it is not seen.
  * `default=<value>`: The value does not need to be present in the input, and a default value will be passed to `.create()` or `.update()` if it is not seen.
 
</s> remove Previously the meaning of the `required=False` keyword argument was underspecified. In practice it's use meant that a field could either be not included in the input, or it could be included, but be `None`.
 </s> add Previously the meaning of the `required=False` keyword argument was underspecified. In practice its use meant that a field could either be not included in the input, or it could be included, but be `None`. </s> remove The `.restore_object()` method is now replaced with two seperate methods, `.create()` and `.update()`.
 </s> add The `.restore_object()` method is now replaced with two separate methods, `.create()` and `.update()`. </s> remove * `WriteableField` as the base class for read-write fields.
 </s> add * `WritableField` as the base class for read-write fields. </s> remove I've see several codebases that unneccessarily include the `source` argument, setting it to the same value as the field name. This usage is redundant and confusing, making it less obvious that `source` is usually not required.
 </s> add I've see several codebases that unnecessarily include the `source` argument, setting it to the same value as the field name. This usage is redundant and confusing, making it less obvious that `source` is usually not required. </s> remove * Some data, such as many-to-many relationships, cannot be added to the object instance until after it has been saved. This type of data needed to be hidden in some undocumentated state on the object instance, or kept as state on the serializer instance so that it could be used when `.save()` is called.
 </s> add * Some data, such as many-to-many relationships, cannot be added to the object instance until after it has been saved. This type of data needed to be hidden in some undocumented state on the object instance, or kept as state on the serializer instance so that it could be used when `.save()` is called.
We now have a better separation, with separate `required` and `allow_none` arguments.
  REST framework now has more explict and clear control over validating empty values for fields.
  
  Previously the meaning of the `required=False` keyword argument was underspecified. In practice it's use meant that a field could either be not included in the input, or it could be included, but be `None`.
  
We now have a better separation, with separate `required` and `allow_none` arguments.
  
  The following set of arguments are used to control validation of empty values:
  
  * `required=False`: The value does not need to be present in the input, and will not be passed to `.create()` or `.update()` if it is not seen.
  * `default=<value>`: The value does not need to be present in the input, and a default value will be passed to `.create()` or `.update()` if it is not seen.
keep keep keep keep replace keep keep keep keep keep
 Minor: fix spelling and grammar, mostly in 3.0 announcement 
docs/topics/3.0-announcement.md