This package is maintained with git-buildpackage(1). It follows DEP-14 for
branch naming (e.g. using debian/master for the current version in Debian
unstable due Debian Python team policy).

It uses pristine-tar(1) to store enough information in git to generate bit
identical tarballs when building the package without having downloaded an
upstream tarball first.

When working with patches it is recommended to use "gbp pq import" to import
the patches, modify the source and then use "gbp pq export --commit" to commit
the modifications.

The changelog is generated using "gbp dch" so if you submit any changes don't
bother to add changelog entries but rather provide a nice git commit message
that can then end up in the changelog.

It is recommended to build the package with pbuilder using:

    gbp buildpackage --git-pbuilder

Note!
You need to have installed the package python3-pytest-runner at least to run
the following stepps succesfully!

For information on how to set up a pbuilder environment see the git-pbuilder(1)
manpage. In short:

    DIST=sid git-pbuilder create
    gbp clone https://salsa.debian.org/python-team/packages/django-graphene.git
    cd django-graphene
    gbp buildpackage --git-pbuilder



Additional included files in debian/static
==========================================

Upstream is using side loading to add required CSS and JS files for the Django
application. This can be a privacy breach, but that would make also the package
unusable within installations which are don't allowed to access any network
outside the local infrastructure.

To get the application usable in such environments and to prevent any potential
privacy breach the CSS and JS files in question are placed inside the folder
debian/static. Some equivalent non minimized files are put into the folder
debian/missing-sources.
Nevertheless Lintian is complaining about the files because it thinks there
is no source available. Most of the files have unfortunately some very long
lines, but they are all the provided source for the minimized versions!

The versions for the CSS and JS files that are needed are defined in the file
graphene_django/views.py and can be grep'd from there. (The following output
was done on upstream version 2.15.0)

$ git grep "_version = "
graphene_django/views.py:    whatwg_fetch_version = "3.2.0"
graphene_django/views.py:    react_version = "16.13.1"
graphene_django/views.py:    graphiql_version = "1.0.3"
graphene_django/views.py:    subscriptions_transport_ws_version = "0.9.17"

As the CSS and JS files are mostly fully backward compatible we've taken the
most recent versions that are available while packaging. As source for the
files the CDN from jsdelivr or unpkg were used.

# Taken from https://www.jsdelivr.com/package/npm/subscriptions-transport-ws?path=browser
https://cdn.jsdelivr.net/npm/subscriptions-transport-ws@0.9.19/browser/client.js

# Taken from https://www.jsdelivr.com/package/npm/graphiql
https://cdn.jsdelivr.net/npm/graphiql@1.4.2/graphiql.css
https://cdn.jsdelivr.net/npm/graphiql@1.4.2/graphiql.min.css
https://cdn.jsdelivr.net/npm/graphiql@1.4.2/graphiql.js
https://cdn.jsdelivr.net/npm/graphiql@1.4.2/graphiql.min.js

# Taken from https://www.jsdelivr.com/package/npm/whatwg-fetch?path=dist
https://cdn.jsdelivr.net/npm/whatwg-fetch@3.6.2/dist/fetch.umd.js

# URLs taken from https://reactjs.org/docs/cdn-links.html
# Base version for minimized version '*.production.min.js'.
https://unpkg.com/react@17/umd/react.development.js
https://unpkg.com/react@17/umd/react.production.min.js
# Base version for minimized version '*.production.min.js'.
https://unpkg.com/react-dom@17/umd/react-dom.development.js
https://unpkg.com/react-dom@17/umd/react-dom.production.min.js

The minimized variants and the the files 'client.js' and 'fetch.umd.js' are
placed in debian/static, the other non minimized variants placed into
debian/missing-sources.
The patch queue is holding a patch to switch the side loading URLs to the
local shipped files.

 -- Carsten Schoenert <c.schoenert>  Mon, 26 Jun 2021 11:23:00 +0200
