Breaking Changes
* The package extra `boto3` has been renamed to `s3`.
* Change dependencies from `django-s3-file-field[boto3]` -> `django-s3-file-field[s3]>=1`
* The Python client `S3FileFieldClient.upload_file` function signature has changed.
* All arguments must be be passed as keywords.
* A `file_content_type` argument is now requirerd.
* See [the usage example](https://github.com/girder/django-s3-file-field/blob/master/python-client/README.md#usage) for details.
Potentially Incompatible Changes
* Supported Python versions are now:
* `3.8`
* `3.9`
* `3.10`
* `3.11`
* `3.12`
* Supported Django versions are now:
* `3.2`
* `4.1`
* `4.2`
* `django-storages` >= `1.14` is now required.
* `django-minio-storage` >= `0.5` is now required.
New Features
* Uploads should now generally set `Content-Type` metadata on the stored object.
* Improved timeouts for failed HTTP connections.
* New versions of Django and Python are supported.
* Re-defining an existing `S3FileField`-containing `Model` is now permitted.
* A warning will still be emitted, as redefinition is not necessarily safe.
* This will allow compatibility with hot-reloading (e.g. [IPython autoreload](https://ipython.org/ipython-doc/3/config/extensions/autoreload.html)).
* Internal bug fixes and build tooling improvements.