Subject: [alpine-aports] [PATCH v3 01/10] community/py-factory-boy: adopt APKBUILD

From: Drew DeVault <[email-masked]>
Date: Wed, 3 Apr 2019 16:16:33 -0400

---
 community/py-factory-boy/APKBUILD | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/community/py-factory-boy/APKBUILD b/community/py-factory-boy/APKBUILD
index 24b0876c58..cdfcea6732 100644
--- a/community/py-factory-boy/APKBUILD
+++ b/community/py-factory-boy/APKBUILD
@@ -1,17 +1,19 @@
 # Contributor: Kaarle Ritvanen <[email-masked]>
-# Contributor: Drew DeVault <[email-masked]>
-# Maintainer: Kaarle Ritvanen <[email-masked]>
+# Maintainer: Drew DeVault <[email-masked]>
 pkgname=py-factory-boy
 _pkgname=factory_boy
 pkgver=2.11.1
-pkgrel=1
+pkgrel=2
 pkgdesc="A verstile test fixtures replacement based on thoughtbot's factory_girl for Ruby"
 url=https://github.com/rbarrois/factory_boy
 arch=noarch
 license=MIT
-depends="py-faker py-six"
-makedepends="py-setuptools"
-checkdepends="py-mock py-django py-sqlalchemy"
+_py2_deps="py2-faker py2-six"
+_py2_deps="py3-faker py3-six"
+makedepends="$_py2_deps $_py3_deps py2-setuptools py3-setuptools"
+checkdepends="
+	py2-mock py3-mock py2-django py3-django py2-sqlalchemy py3-sqlalchemy
+"
 subpackages="py2-${pkgname#py-}:_py2 py3-${pkgname#py-}:_py3"
 source="$pkgname-$pkgver.tar.gz::https://github.com/FactoryBoy/$_pkgname/archive/$pkgver.tar.gz"
 builddir=$srcdir/$_pkgname-$pkgver
@@ -47,12 +49,13 @@ package() {
 
 _py2() {
 	replaces="py-factory-boy"
-	depends="py-six"
+	depends="$_py2_deps"
 	cd "$builddir"
 	_py python2
 }
 
 _py3() {
+	depends="$_py3_deps"
 	cd "$builddir"-py3
 	_py python3
 }
-- 
2.21.0

---
Unsubscribe:  [email-masked]
Help:         [email-masked]
---

---

From: Drew DeVault <[email-masked]>
Date: Wed, 3 Apr 2019 16:16:39 -0400

---
 testing/py-pyphen/APKBUILD | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/testing/py-pyphen/APKBUILD b/testing/py-pyphen/APKBUILD
index ed797e8982..27c5574572 100644
--- a/testing/py-pyphen/APKBUILD
+++ b/testing/py-pyphen/APKBUILD
@@ -1,15 +1,14 @@
-# Contributor: 
 # Contributor: Stefan Wagner <[email-masked]>
-# Maintainer: 
+# Maintainer: Drew DeVault <[email-masked]>
 pkgname=py-pyphen
 _pkgname=Pyphen
 pkgver=0.9.5
-pkgrel=0
+pkgrel=1
 pkgdesc="python-based dictionary hyphenator library"
 url="http://www.pyphen.org/"
 arch="noarch"
 license="GPL-2.0-or-later MPL LGPL-2.0-or-later"
-makedepends="python2-dev python3-dev py-setuptools"
+makedepends="python2-dev python3-dev py2-setuptools py3-setuptools"
 subpackages="py2-${pkgname#py-}:_py2 py3-${pkgname#py-}:_py3"
 source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
 builddir="$srcdir/$_pkgname-$pkgver"
-- 
2.21.0

---

---

From: Drew DeVault <[email-masked]>
Date: Wed, 3 Apr 2019 16:16:40 -0400

---
 main/py-requests/APKBUILD | 33 ++++++++++++++++++---------------
 1 file changed, 18 insertions(+), 15 deletions(-)

diff --git a/main/py-requests/APKBUILD b/main/py-requests/APKBUILD
index 7256d9b53f..1915a62c31 100644
--- a/main/py-requests/APKBUILD
+++ b/main/py-requests/APKBUILD
@@ -1,17 +1,20 @@
 # Contributor: Peter Bui <[email-masked]>
-# Maintainer: 
+# Maintainer: Drew DeVault <[email-masked]>
 pkgname=py-requests
 _pkgname=requests
 pkgver=2.21.0
-pkgrel=0
+pkgrel=1
 pkgdesc="A HTTP request library for Python"
 url="http://www.python-requests.org/"
 arch="noarch"
 license="Apache-2.0"
 # Requirements for tests are not available in main
 options="!check"
-depends="py-chardet py-idna py-certifi py-urllib3"
-makedepends="python2-dev py-setuptools python3-dev"
+_py2_deps="py2-chardet py2-idna py2-certifi py2-urllib3"
+_py3_deps="py3-chardet py3-idna py3-certifi py3-urllib3"
+makedepends="
+	$_py2_deps $_py3_deps python2-dev python3-dev py2-setuptools py3-setuptools
+"
 subpackages="py3-${pkgname#py-}:_py3 py2-${pkgname#py-}:_py2"
 source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
 builddir="$srcdir/$_pkgname-$pkgver"
@@ -26,6 +29,17 @@ package() {
 	mkdir -p "$pkgdir"
 }
 
+_py2() {
+	replaces="$pkgname"
+	depends="$_py2_deps"
+	_py python2
+}
+
+_py3() {
+	depends="$_py3_deps"
+	_py python3
+}
+
 _py() {
 	local python="$1"
 	pkgdesc="$pkgdesc ${python#python}"
@@ -36,15 +50,4 @@ _py() {
 	$python setup.py install --prefix=/usr --root="$subpkgdir"
 }
 
-_py2() {
-	replaces="$pkgname"
-	depends="${depends//py-/py2-}"
-	_py python2
-}
-
-_py3() {
-	depends="${depends//py-/py3-}"
-	_py python3
-}
-
 sha512sums="385e1d80993a21c09e7c4682500ca8c24155962ba41ecd8e73612722b2ff6618b736e827fc48ad1683b0d2bc7a420cfe680f5107860aca52656ef777f1d60104  requests-2.21.0.tar.gz"
-- 
2.21.0

---

---

From: Drew DeVault <[email-masked]>
Date: Wed, 3 Apr 2019 16:16:35 -0400

---
 main/py-freezegun/APKBUILD | 65 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)
 create mode 100644 main/py-freezegun/APKBUILD

diff --git a/main/py-freezegun/APKBUILD b/main/py-freezegun/APKBUILD
new file mode 100644
index 0000000000..6e5c304e53
--- /dev/null
+++ b/main/py-freezegun/APKBUILD
@@ -0,0 +1,65 @@
+# Maintainer: Drew DeVault <[email-masked]>
+pkgname=py-freezegun
+_pyname=freezegun
+pkgver=0.3.11
+pkgrel=0
+pkgdesc="Let your Python tests travel through time"
+url="https://github.com/spulec/freezegun"
+arch="noarch"
+license="Apache-2.0"
+_py2_deps="py2-six py2-dateutil"
+_py3_deps="py3-six py3-dateutil"
+makedepends="
+	$_py2_deps $_py3_deps python2-dev python3-dev py2-setuptools py3-setuptools
+"
+checkdepends="
+	pytest py3-pytest py2-mock py3-mock py2-nose py3-nose
+"
+subpackages="py2-${pkgname#py-}:_py2 py3-${pkgname#py-}:_py3"
+_pypiprefix="${_pyname%${_pyname#?}}"
+source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+prepare() {
+	cp -r "$builddir" "$builddir"-py2
+}
+
+build() {
+	cd "$builddir"
+	python3 setup.py build
+	cd "$builddir"-py2
+	python2 setup.py build
+}
+
+check() {
+	cd "$builddir"
+	pytest-3
+	cd "$builddir"-py2
+	pytest-2
+}
+
+package() {
+	mkdir -p "$pkgdir"
+}
+
+_py2() {
+	depends="$_py2_deps"
+	cd "$builddir"-py2
+	_py python2
+}
+
+_py3() {
+	depends="$_py3_deps"
+	cd "$builddir"
+	_py python3
+}
+
+_py() {
+	_python="$1"
+	pkgdesc="$pkgdesc (for $_python)"
+	depends="$depends $_python"
+	install_if="$pkgname=$pkgver-r$pkgrel $_python"
+	$_python setup.py install --prefix=/usr --root="$subpkgdir"
+}
+
+sha512sums="e8b392176641d52f6ed795c9af5fbc0a62892aeedf32b42375b56ab44a9ad7a5ecd3bb81363ed0ae65204aff2ef894cd7f2e17f42be72f31d3409b2bffa59ab8  freezegun-0.3.11.tar.gz"
-- 
2.21.0

---

---

From: Drew DeVault <[email-masked]>
Date: Wed, 3 Apr 2019 16:16:36 -0400

---
 main/py-dateutil/APKBUILD | 61 +++++++++++++++++++++++++--------------
 1 file changed, 39 insertions(+), 22 deletions(-)

diff --git a/main/py-dateutil/APKBUILD b/main/py-dateutil/APKBUILD
index 813966756b..d56419baf3 100644
--- a/main/py-dateutil/APKBUILD
+++ b/main/py-dateutil/APKBUILD
@@ -1,23 +1,41 @@
-# Contributor: 
-# Maintainer: 
+# Maintainer: Drew DeVault <[email-masked]>
 pkgname=py-dateutil
-_pkgname=python-dateutil
-pkgver=2.7.3
+_pyname=python-dateutil
+pkgver=2.8.0
 pkgrel=0
 pkgdesc="Python extensions for datetime module"
 url="https://dateutil.readthedocs.io"
 arch="noarch"
-license="BSD"
-depends="py-six"
-makedepends="python2-dev python3-dev py-setuptools"
+license="Apache-2.0"
+_py2_deps="py2-six"
+_py3_deps="py3-six"
+makedepends="
+	$_py2_deps $_py3_deps python2-dev python3-dev py2-setuptools py3-setuptools
+"
+checkdepends="
+	pytest py3-pytest py2-hypothesis py3-hypothesis py2-freezegun py3-freezegun
+"
 subpackages="py2-${pkgname#py-}:_py2 py3-${pkgname#py-}:_py3"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+_pypiprefix="${_pyname%${_pyname#?}}"
+source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+prepare() {
+	cp -r "$builddir" "$builddir"-py2
+}
 
 build() {
 	cd "$builddir"
-	python2 setup.py build || return 1
-	python3 setup.py build || return 1
+	python3 setup.py build
+	cd "$builddir"-py2
+	python2 setup.py build
+}
+
+check() {
+	cd "$builddir"
+	pytest-3
+	cd "$builddir"-py2
+	pytest-2
 }
 
 package() {
@@ -25,24 +43,23 @@ package() {
 }
 
 _py2() {
-	replaces="$pkgname"
 
 _py3() {
 
 _py() {
-	local python="$1"
-	pkgdesc="$pkgdesc (for $python)"
-	depends="$depends $python"
-	install_if="$pkgname=$pkgver-r$pkgrel $python"
-
-	cd "$builddir"
-	$python setup.py install --prefix=/usr --root="$subpkgdir"
+	_python="$1"
+	pkgdesc="$pkgdesc (for $_python)"
+	depends="$depends $_python"
+	install_if="$pkgname=$pkgver-r$pkgrel $_python"
+	$_python setup.py install --prefix=/usr --root="$subpkgdir"
 }
 
-sha512sums="6b9973fa7db69d931bc6e772201c67bb7bbfa693ba35484d34960bd7e6227f2a2343df814a9fdbbff253e750299c48e7cdb2a609bf4522595df8a7fc595784fd  python-dateutil-2.7.3.tar.gz"
+sha512sums="ec7da86203572582f883a4686acf8a732a2de4f396d809057eb51b2c60dbca5623a7fa90c2c0618c281a2282c60841739bd837731a51cc876f4ff369297f2f81  python-dateutil-2.8.0.tar.gz"
-- 
2.21.0

---

---

From: Natanael Copa <[email-masked]>
Date: Thu, 4 Apr 2019 13:47:50 +0200

On Wed,  3 Apr 2019 16:16:36 -0400

>  1 file changed, 39 insertions(+), 22 deletions(-)

I'm gonna merge this to my python 3.7 rebuild with a slightly modified
commit message. I'm gonna add "main/".

Thanks!

-nc

---

---

From: Natanael Copa <[email-masked]>
Date: Thu, 4 Apr 2019 14:12:41 +0200

> +++ b/main/py-dateutil/APKBUILD

Adding py-freezegun introduces a circular dependency, as freezegun
depends on dateutil.

We dont really have any good strategy yet how to deal with packages
needing bootstrap. We could have things like stage1_makdepends,
stage1_checkdepends or similar, and then rebuild all packages with
stage1_* set as a second stage.

But this is a can of worms, so I think for now we should keep things
simple and just disable tests. At least til after 3.10 release.

-nc

---

---

From: Drew DeVault <[email-masked]>
Date: Wed, 3 Apr 2019 16:16:34 -0400

---
 main/py-asn1/APKBUILD | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/main/py-asn1/APKBUILD b/main/py-asn1/APKBUILD
index de3fb86053..d239b63769 100644
--- a/main/py-asn1/APKBUILD
+++ b/main/py-asn1/APKBUILD
@@ -1,15 +1,14 @@
 # Contributor: Peter Bui <[email-masked]>
-# Maintainer: 
+# Maintainer: Drew DeVault <[email-masked]>
 pkgname=py-asn1
 _pkgname=pyasn1
 pkgver=0.4.5
-pkgrel=0
+pkgrel=1
 pkgdesc="A python ASN1 library"
 url="http://snmplabs.com/pyasn1/"
 arch="noarch"
 license="BSD"
-depends=""
-makedepends="python2-dev py-setuptools python3-dev"
+makedepends="python2-dev py2-setuptools py3-setuptools python3-dev"
 subpackages="py3-${pkgname#py-}:_py3 py2-${pkgname#py-}:_py2"
 source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
 builddir="$srcdir/$_pkgname-$pkgver"
-- 
2.21.0

---

---

From: Drew DeVault <[email-masked]>
Date: Wed, 3 Apr 2019 16:16:37 -0400

---
 community/py-distutils-extra/APKBUILD | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/community/py-distutils-extra/APKBUILD b/community/py-distutils-extra/APKBUILD
index 35b7b7a4c4..cee60bcf52 100644
--- a/community/py-distutils-extra/APKBUILD
+++ b/community/py-distutils-extra/APKBUILD
@@ -1,9 +1,8 @@
-# Contributor: 
-# Maintainer: 
+# Maintainer: Drew DeVault <[email-masked]>
 pkgname=py-distutils-extra
 _pkgname=python-distutils-extra
 pkgver=2.39
-pkgrel=2
+pkgrel=3
 pkgdesc="Enhanced distutils package for python"
 url="https://launchpad.net/python-distutils-extra"
 arch="noarch"
-- 
2.21.0

---

---

From: Drew DeVault <[email-masked]>
Date: Wed, 3 Apr 2019 16:16:38 -0400

---
 main/py-pluggy/APKBUILD | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/main/py-pluggy/APKBUILD b/main/py-pluggy/APKBUILD
index 00af015971..91a2725198 100644
--- a/main/py-pluggy/APKBUILD
+++ b/main/py-pluggy/APKBUILD
@@ -2,13 +2,13 @@
 # Maintainer: Stuart Cardall <[email-masked]>
 pkgname=py-pluggy
 _pkgname=${pkgname#py-*}
-pkgver=0.7.1
+pkgver=0.9.0
 pkgrel=0
 pkgdesc="Plugin management and hook calling for Python"
 url="https://pluggy.readthedocs.io/en/latest/"
 arch="noarch"
 license="MIT"
-makedepends="python2-dev python3-dev py-setuptools"
+makedepends="python2-dev python3-dev py2-setuptools py3-setuptools"
 #checkdepends="flake8 pytest py-tox"
 options="!check" # temp disable as requires tox module
 subpackages="py2-${pkgname#py-}:_py2 py3-${pkgname#py-}:_py3"
@@ -50,4 +50,4 @@ check() {
 	tox
 }
 
-sha512sums="e19f6c1b3f2e711df1c8b075a2b802751afd218f1b692f08b2434c01d71c402331ff8c937550fbdfece2098f6d6856422d485f193e188916b365ded2e4087697  pluggy-0.7.1.tar.gz"
+sha512sums="377d201393b11afbbe7dcce6053a4200782e4d2017252a4dee3859a5cf3eb21534ebd6ac7c9fd518b5eff441009b1b5791c8fc86e59385b7eddfc9dbc103eb33  pluggy-0.9.0.tar.gz"
-- 
2.21.0

---

---

From: Drew DeVault <[email-masked]>
Date: Wed, 3 Apr 2019 16:16:41 -0400

---
 main/py-six/APKBUILD | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/main/py-six/APKBUILD b/main/py-six/APKBUILD
index 1c9b5d097d..d154f0182b 100644
--- a/main/py-six/APKBUILD
+++ b/main/py-six/APKBUILD
@@ -1,19 +1,22 @@
-# Contributor: 
-# Maintainer: 
+# Maintainer: Drew DeVault <[email-masked]>
 pkgname=py-six
 _pkgname=six
 pkgver=1.12.0
-pkgrel=0
+pkgrel=1
 pkgdesc="Python 2 and 3 compatibility library"
 url="https://pypi.python.org/pypi/six"
 arch="noarch"
 license="MIT"
-depends=""
-checkdepends="pytest"
-makedepends="python2-dev python3-dev py-setuptools"
+checkdepends="pytest py3-pytest"
+makedepends="python2-dev python3-dev py2-setuptools py3-setuptools"
 subpackages="py3-$_pkgname:_py3 py2-$_pkgname:_py2"
 source="$pkgname-$pkgver.tar.gz::https://github.com/benjaminp/$_pkgname/archive/$pkgver.tar.gz"
 builddir="$srcdir/$_pkgname-$pkgver"
+if [ -n "$BOOTSTRAP" ]
+then
+	# circular dependency with pytest
+	options="!check"
+fi
 
 build() {
 	python2 setup.py build
@@ -21,8 +24,8 @@ build() {
 }
 
 check() {
-        python2 -m pytest -rfsxX
-        python3 -m pytest -rfsxX
+	python2 -m pytest -rfsxX
+	python3 -m pytest -rfsxX
 }
 
 package() {
@@ -41,6 +44,7 @@ _py() {
 
 _py2() {
 	replaces="$pkgname"
+	depends="$depends py-enum34"
 	_py python2
 }
 
-- 
2.21.0

---

---

From: Natanael Copa <[email-masked]>
Date: Thu, 4 Apr 2019 13:55:40 +0200

On Wed,  3 Apr 2019 16:16:41 -0400

> +++ b/main/py-six/APKBUILD

...

> +	depends="$depends py-enum34"

We need to add py-enum34 to makedepends, otherwise will build order be
broken. There is no way build order resolver can know that py-enum34 needs
to be built before py2-six is usable.

I can fix that.

Thanks!

---

---

From: Drew DeVault <[email-masked]>
Date: Wed, 3 Apr 2019 16:16:42 -0400

---
 community/py-sqlalchemy/APKBUILD | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/community/py-sqlalchemy/APKBUILD b/community/py-sqlalchemy/APKBUILD
index 964b36a6de..830c342598 100644
--- a/community/py-sqlalchemy/APKBUILD
+++ b/community/py-sqlalchemy/APKBUILD
@@ -1,16 +1,17 @@
-# Contributor: 
 # Contributor: Drew DeVault <[email-masked]>
-# Maintainer: 
+# Maintainer: Drew DeVault <[email-masked]>
 pkgname=py-sqlalchemy
 _pkgname=SQLAlchemy
-pkgver=1.3.1
+pkgver=1.3.2
 pkgrel=0
 pkgdesc="An object relational mapper for Python"
 url="https://pypi.python.org/pypi/SQLAlchemy"
 arch="all"
 license="MIT"
-makedepends="python2-dev py-setuptools python3-dev"
-checkdepends="pytest py-mock pytest-xdist"
+makedepends="python2-dev python3-dev py2-setuptools py3-setuptools"
+checkdepends="
+	pytest py3-pytest py2-mock py3-mock py2-pytest-xdist py3-pytest-xdist
+"
 subpackages="py3-${pkgname#py-}:_py3 py2-${pkgname#py-}:_py2"
 source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
 builddir="$srcdir/$_pkgname-$pkgver"
@@ -57,4 +58,4 @@ _py() {
 	$python setup.py install --prefix=/usr --root="$subpkgdir"
 }
 
-sha512sums="a5f9506060cce7c688be5d0b25c5a34a904a64e07447e11d9a2e546c1020849038f370f5808d817f192ec36d6df7443ad328145be1af2baaad3913dab6b4cb8d  SQLAlchemy-1.3.1.tar.gz"
+sha512sums="fbbcff21e722a26a914d701cce430fcc5dac503fffb65e385e86754f39b585b5a4c6b4914533bc4adfe48269130e9b5c1c8c539aa60481c721c2ce7cfedca1bf  SQLAlchemy-1.3.2.tar.gz"
-- 
2.21.0

---

---

From: Natanael Copa <[email-masked]>
Date: Thu, 4 Apr 2019 13:56:08 +0200

On Wed,  3 Apr 2019 16:16:33 -0400

> +++ b/community/py-factory-boy/APKBUILD

I assume you have verified this with Kaarle (kunkku)?

> +_py2_deps="py3-faker py3-six"

Typo here. _py2 should be _py3

>  	replaces="py-factory-boy"

I'm gonna clean up the typo for you and merge together with the python 3.7 rebuild.

Thanks!

-nc

---

---

From: Drew DeVault <[email-masked]>
Date: Thu, 4 Apr 2019 09:32:57 -0400

> I assume you have verified this with Kaarle (kunkku)?

Aye, this patch is several weeks old but I vaugely recall discussing it
with Kaarle.

---