== Version 8.3.0
- Add support for [session tokens](https://shopify.dev/concepts/apps/building-embedded-apps-using-session-tokens) ([#479](https://github.com/Shopify/shopify_python_api/pull/479))
  - Use `session_token.decode_from_header` to obtain a decoded session token from an HTTP Authorization header
- Create a `utils` sub-package with a `shop_url` utility file ([#483](https://github.com/Shopify/shopify_python_api/pull/483))
  - Use `shop_url.sanitize_shop_domain()` to sanitize shop names given as input
- Introduce the `ApiAccess` class to handle access scopes operations for apps
  - `Session` class now store access_scopes attributes as `ApiAccess` objects
- Added support for Fulfillment.update_tracking ([#432](https://github.com/Shopify/shopify_python_api/pull/432))
- Add FulfillmentEvent resource ([#454](https://github.com/Shopify/shopify_python_api/pull/454))
- Fix for being unable to get the len() of a filter ([#456](https://github.com/Shopify/shopify_python_api/pull/456))
- Add ApplicationCredit resource ([#457](https://github.com/Shopify/shopify_python_api/pull/457))
- Add support for retrieving all orders using customer_id ([#466](https://github.com/Shopify/shopify_python_api/pull/466))

== Version 8.2.0
- [Feature] Add support for Dynamic API Versioning. When the library is initialized, it will now make a request to
Shopify to fetch a list of the available API versions. ([#441](https://github.com/Shopify/shopify_python_api/pull/441))

== Version 8.1.0
- [Feature] Add support for Shopify Payments resources (#428)

== Version 8.0.4
- Release API version 2020-10
- Deprecate API version 2019-10

== Version 8.0.3
- Patch for replacing call to _build_list() with _build_collection() in gift_card.py

== Version 8.0.2
- Patch for product updating with variants

== Version 8.0.1
- release api version 2020-07
- deprecate api version 2019-07
- Add support for FulfillmentOrder resource (#390)

== Version 8.0.0
- release api version 2020-04
- deprecate api version 2019-04

== Version 7.0.3
- bug fix for temporary sessions
- deprecation fix for regexs

== Version 7.0.2
- bug fix for variant updates after the 2019-10 api version

== Version 7.0.1
- bug fix for string interpolation

== Version 7.0.0
* Made no_iter_next default to True on collection so that by default it only
fetches a single page
* Passes kwargs to paginated collections so that attributes can be set with
find()
* Allow case insensitive check for the link header for cursor pagination.

== Version 6.0.1
* Made the collection access more consistent so that there is no confusion
between a collection and a paginated collection

== Version 6.0.0
* Add Cursor pagination support

== Version 5.1.2
* Add version 2020-01 to known ApiVersions. This version will not be usable until October 2019.

== Version 5.1.1
* Fix initializing API with basic auth URL.

== Version 5.1.0
* Added support for GraphQL queries with a GraphQL resource

== Version 5.0.1
* Fixing missing class variable causing exception when creating a session without a token

== Version 5.0.0
* Added support for Shopify API Versioning

== Version 4.0.0
* Added AccessScope resource
* Added ApiPermission resource
* Added User resource
* Added Publication, CollectionPublication and ProductPublication resources
* Added Currency resource
* Added TenderTransaction resource
* Added shopify.Limits class, for retrieving the current status of Shopify rate limiting.
* Added support for Refund.calculate
* Added support for Location.inventory_levels
* Added support for PriceRule batch operations
* Removed `cancel()` method for RecurringApplicationCharge resource (use `destroy()` going forward)
* Fix for handling array query parameters (e.g. `foo[]=1&foo[]=2`) during HMAC calculation
* Fixed Python 3 compatibility with the API console

== Version 3.1.0
* Adds InventoryItem resource
* Adds InventoryLevel resource
* Adds GiftCardAdjustment resource
* Fix to properly handle byte data for Asset.attach()

== Version 3.0.0
* Added CollectListing resource
* Added ResourceFeedback resource
* Added StorefrontAccessToken resource
* Added ProductListing resource
* Removed deprecated ProductSearchEngine resource
* Removed deprecated Discount resource
* Fixed Python3 compatibility issue with `Image.attach_image()`

== Version 2.6.0
* Added support for Marketing Event API through Marketing Event resource

== Version 2.5.1
* Fixed an issue preventing creation of Order Risk resources

== Version 2.5.0
* Added Price Rule and Discount Code resources

== Version 2.4.0
* Add support for report publishing

== Version 2.3.0
* Add support for customer#send_invite

== Version 2.2.0
* Add support for draft orders

== Version 2.1.8
* Added support for `open` method on fulfillments

== Version 2.1.7

* Removed all references to the deprecated MD5 `signature` parameter which is no longer provided by Shopify.

== Version 2.1.6

* Added Refund resource

== Version 2.1.5

* bump pyactiveresource for camelcase bugfix

== Version 2.1.4

== Version 2.1.3

* Fixed hmac signature validation for params with delimiters (`&`, `=` or `%`)

== Version 2.1.2

* Fixed an issue with unicode strings in params passed to validate_hmac
* Added shop domain verification when creating a session

== Version 2.1.1

* Added Checkout resource
* Updated to pyactiveresource v2.1.1 which includes a test-related bugfix
* Changed OAuth validation from MD5 to HMAC-SHA256

== Version 2.1.0

* Added python 3 compatibility
* Fixed setting the format attribute on carrier and fulfillment services
* Add a specific exception for signature validation failures

== Version 2.0.4

* Bug fixes
* Added CarrierService resource
* Added Property resource to LineItem

== Version 2.0.3

* Add Order Risk resource

== Version 2.0.2

* Add access to FulfillmentService endpoint
* Fix some import bugs

== Version 2.0.1

* Package bug fix

== Version 2.0.0

* Removed support for legacy auth
* Updated to pyactiveresource v2.0.0 which changes the default form to JSON
* in Session::request_token params is no longer optional, you must pass all the params
  and the method will now extract the code
* made create_permission_url an instance method, you'll need an instance
  of session to call this method from now on
* Updated session.request_token
* Updated Session to better match the ShopifyAPI Ruby gem
* Updated the readme to better describe how to use the library
* Added support for CustomerSavedSearch (CustomerGroup is deprecated)

== Version 1.0.7

* Fix thread local headers to store a copy of the default hash which
prevents activate_session in one thread from affecting other threads.

== Version 1.0.6

* Fix deserializing and serializing fulfillments which can now contain
arrays of strings in the tracking_urls attribute.

== Version 1.0.5

* Fix parameter passing for order cancellation.
* Fix Product.price_range method for variants with different prices.

== Version 1.0.4

* Fixed another bug in Image size methods regex.

== Version 1.0.3

* Fix bug in setting format attribute on Webhook instances.
* Fixed missing slash in return value of Image size methods
* Upgrade pyactiveresource to fix unicode encoding issues

== Version 1.0.2

* Made ShopifyResource.clear_session idempotent.

== Version 1.0.1

* Use the correct redirect parameter in Session.create_permission_url.
Was redirect_url but corrected to redirect_uri.

== Version 1.0.0

* Added support for OAuth2.
* ShopifyResource.activate_session must now be used with OAuth2 instead
of setting ShopifyResource.site directly.
* Session.__init__ no longer allows params to be passed in as **params
* Session.__init__ now makes an HTTP request when using OAuth2 if
params are specified
* Session now exposes the access token through the token instance
variable to simplify session saving and resuming

== Version 0.4.0

* Using setup.py no longer requires all dependencies
* More compatibility fixes for using the latest pyactiveresource
* ShopifyResource.activate_session is not recommended over setting site
directly for forward compatibility with coming OAuth2 changes.

== Version 0.3.1

* Compatibility fixes for using latest (unreleased) pyactiveresource

== Version 0.3.0

* Added support for customer search and customer group search.
* Resource errors are cleared on save from previous save attempt.
* Made the library thread-safe using thread-local connections.

== Version 0.2.1

* Fixed a regression that caused a different connection
object to be created on each resource.

== Version 0.2.0

* Made responses available through the connection object.

== Version 0.1.8

* Added ability to add metafields on customers.

== Version 0.1.7

* Fixed missing theme_id in return value of Asset.find.

== Version 0.1.6

* Fixed attribute setting on Asset objects
* Strip path from shop_url to get just the shop's domain.

== Version 0.1.5

* Fixed Asset.find()
* Fixed Variant.find(id)
* Allow running from source directory with PYTHONPATH=./lib

== Version 0.1.4

* Fixed a bug in metafields method caused by missing import.
* Prefix options can be specified in the attributes dict on creation
* Allow count method to be used the same way as find

== Version 0.1.3

* Fixed the automatic download of dependencies.
* Updated the README instructions.

== Version 0.1.2

* Add python 2.5 compatibility

== Version 0.1.1

* Make creating a session simpler with django

== Version 0.1.0

* ported ShopifyAPI from ruby to python
