commit: f18c6493e672e9af6ec906f773b8542cee97c34d
Author: Horea Christian <chr <AT> chymera <DOT> eu>
AuthorDate: Mon Jul 11 18:31:20 2022 +0000
Commit: Horea Christian <horea.christ <AT> gmail <DOT> com>
CommitDate: Mon Jul 11 18:31:20 2022 +0000
URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=f18c6493
dev-vcs/datalad: version bump
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Horea Christian <chr <AT> chymera.eu>
dev-vcs/datalad/datalad-0.16.1.ebuild | 72 ++++++++++++++++++
dev-vcs/datalad/files/datalad-0.16.1-input.patch | 94 ++++++++++++++++++++++++
2 files changed, 166 insertions(+)
diff --git a/dev-vcs/datalad/datalad-0.16.1.ebuild
b/dev-vcs/datalad/datalad-0.16.1.ebuild
new file mode 100644
index 000000000..50e29f19d
--- /dev/null
+++ b/dev-vcs/datalad/datalad-0.16.1.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+inherit distutils-r1
+
+DESCRIPTION="Keep code, data, containers under control with git and git-annex"
+HOMEPAGE="https://github.com/datalad/datalad"
+SRC_URI="https://github.com/datalad/datalad/archive/refs/tags/${PV}.tar.gz ->
${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test +downloaders +metadata +publish misc"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ app-arch/p7zip
+ dev-python/annexremote[${PYTHON_USEDEP}]
+ dev-python/appdirs[${PYTHON_USEDEP}]
+ >=dev-python/chardet-3.0.4[${PYTHON_USEDEP}]
+ dev-python/distro[${PYTHON_USEDEP}]
+ dev-python/iso8601[${PYTHON_USEDEP}]
+ dev-python/humanize[${PYTHON_USEDEP}]
+ dev-python/fasteners[${PYTHON_USEDEP}]
+ app-arch/patool[${PYTHON_USEDEP}]
+ dev-python/tqdm[${PYTHON_USEDEP}]
+ dev-python/wrapt[${PYTHON_USEDEP}]
+ downloaders? (
+ dev-python/boto[${PYTHON_USEDEP}]
+ dev-python/keyring[${PYTHON_USEDEP}]
+ dev-python/keyrings_alt[${PYTHON_USEDEP}]
+ dev-python/msgpack[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ )
+ metadata? (
+ dev-python/simplejson[${PYTHON_USEDEP}]
+ dev-python/whoosh[${PYTHON_USEDEP}]
+ )
+ misc? (
+ dev-python/argcomplete[${PYTHON_USEDEP}]
+ dev-python/pyperclip[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ )
+ publish? (
+ dev-vcs/python-gitlab[${PYTHON_USEDEP}]
+ dev-python/PyGithub[${PYTHON_USEDEP}]
+ )
+"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/beautifulsoup4[${PYTHON_USEDEP}]
+ dev-python/httpretty[${PYTHON_USEDEP}]
+ dev-python/vcrpy[${PYTHON_USEDEP}]
+ )
+"
+
+# Noticed by upstream:
+# https://github.com/datalad/datalad/issues/6623
+PATCHES=( "${FILESDIR}/${P}-input.patch" )
+
+distutils_enable_tests nose
+
+python_test() {
+ export DATALAD_TESTS_NONETWORK=1
+ ${EPYTHON} -m nose -s -v -A "not(integration or usecase or slow or
network or turtle)" datalad || die
+ # Full test suite takes for ever:
+ # ${EPYTHON} -m nose -s -v datalad || die
+}
diff --git a/dev-vcs/datalad/files/datalad-0.16.1-input.patch
b/dev-vcs/datalad/files/datalad-0.16.1-input.patch
new file mode 100644
index 000000000..beb539b5d
--- /dev/null
+++ b/dev-vcs/datalad/files/datalad-0.16.1-input.patch
@@ -0,0 +1,94 @@
+diff --git a/datalad/local/tests/test_gitcredential.py
b/datalad/local/tests/test_gitcredential.py
+index 09387a70d..6dc0e0be4 100644
+--- a/datalad/local/tests/test_gitcredential.py
++++ b/datalad/local/tests/test_gitcredential.py
+@@ -70,89 +70,6 @@ def test_gitcredential_interface(path):
+ assert_false(cred['password'])
+
+
+-@with_tempfile
+-def test_datalad_credential_helper(path):
+-
+- ds = Dataset(path).create()
+-
+- # tell git to use git-credential-datalad
+- ds.config.add('credential.helper', 'datalad', where='local')
+- ds.config.add('datalad.credentials.githelper.noninteractive', 'true',
+- where='global')
+-
+- from datalad.downloaders.providers import Providers
+-
+- url1 = "https://datalad-test.org/some"
+- url2 = "https://datalad-test.org/other"
+- provider_name = "datalad-test.org"
+-
+- # `Providers` code is old and only considers a dataset root based on PWD
+- # for config lookup. contextmanager below can be removed once the
+- # provider/credential system is redesigned.
+- with chpwd(ds.path):
+-
+- gitcred = GitCredentialInterface(url=url1, repo=ds)
+-
+- # There's nothing set up yet, helper should return empty
+- gitcred.fill()
+- eq_(gitcred['username'], '')
+- eq_(gitcred['password'], '')
+-
+- # store new credentials
+- # Note, that `Providers.enter_new()` currently uses user-level config
+- # files for storage only. TODO: make that an option!
+- # To not mess with existing ones, fail if it already exists:
+-
+- cfg_file = Path(Providers._get_providers_dirs()['user']) \
+- / f"{provider_name}.cfg"
+- assert_false(cfg_file.exists())
+-
+- # Make sure we clean up
+- from datalad.tests import _TEMP_PATHS_GENERATED
+- _TEMP_PATHS_GENERATED.append(str(cfg_file))
+-
+- # Give credentials to git and ask it to store them:
+- gitcred = GitCredentialInterface(url=url1, username="dl-user",
+- password="dl-pwd", repo=ds)
+- gitcred.approve()
+-
+- assert_true(cfg_file.exists())
+- providers = Providers.from_config_files()
+- p1 = providers.get_provider(url=url1, only_nondefault=True)
+- assert_is_instance(p1.credential, UserPassword)
+- eq_(p1.credential.get('user'), 'dl-user')
+- eq_(p1.credential.get('password'), 'dl-pwd')
+-
+- # default regex should be host only, so matching url2, too
+- p2 = providers.get_provider(url=url2, only_nondefault=True)
+- assert_is_instance(p1.credential, UserPassword)
+- eq_(p1.credential.get('user'), 'dl-user')
+- eq_(p1.credential.get('password'), 'dl-pwd')
+-
+- # git, too, should now find it for both URLs
+- gitcred = GitCredentialInterface(url=url1, repo=ds)
+- gitcred.fill()
+- eq_(gitcred['username'], 'dl-user')
+- eq_(gitcred['password'], 'dl-pwd')
+-
+- gitcred = GitCredentialInterface(url=url2, repo=ds)
+- gitcred.fill()
+- eq_(gitcred['username'], 'dl-user')
+- eq_(gitcred['password'], 'dl-pwd')
+-
+- # Rejection must not currently lead to deleting anything, since we
would
+- # delete too broadly.
+- gitcred.reject()
+- assert_true(cfg_file.exists())
+- gitcred = GitCredentialInterface(url=url1, repo=ds)
+- gitcred.fill()
+- eq_(gitcred['username'], 'dl-user')
+- eq_(gitcred['password'], 'dl-pwd')
+- dlcred = UserPassword(name=provider_name)
+- eq_(dlcred.get('user'), 'dl-user')
+- eq_(dlcred.get('password'), 'dl-pwd')
+-
+-
+ @with_tempfile
+ def test_credential_cycle(path):
+