Bug #24052
tox ne fonctionne pas sans usedevelop=True sur la plupart des briques
0%
Description
Sur authentic ça fonctionne sans, je pense parce que le code est dans un sous-répertoire src/, comme c'est assez rare de faire comme cela et que d'autres projets que les nôtres fonctionne sans usedevelop
et avec des packages à la racine du projet, j'aimerai bien comprendre pourquoi on a ce souci.
Erreur obtenue sur combo (en enlevant usedevelop de tox.ini):
$ tox -e django18 GLOB sdist-make: /home/bdauvergne/wd/eo/combo/setup.py django18 create: /tmp/tox-bdauvergne/combo/django18 django18 installdeps: django>=1.8,<1.9, pytest-cov, pytest-django, pytest, WebTest, mock, httmock, pylint<1.8, pylint-django<0.9, django-webtest<1.9.3, quixote<3.0, vobject django18 inst: /tmp/tox-bdauvergne/combo/dist/combo-1.38.dirty.zip ERROR: invocation failed (exit code 1), logfile: /tmp/tox-bdauvergne/combo/django18/log/django18-2.log ERROR: actionid: django18 msg: installpkg cmdargs: ['/tmp/tox-bdauvergne/combo/django18/bin/pip', 'install', '/tmp/tox-bdauvergne/combo/dist/combo-1.38.dirty.zip'] Processing /tmp/tox-bdauvergne/combo/dist/combo-1.38.dirty.zip Requirement already satisfied: django<1.12,>=1.8 in /tmp/tox-bdauvergne/combo/django18/lib/python2.7/site-packages (from combo===1.38.dirty) (1.8.19) Collecting django-ckeditor<4.5.3 (from combo===1.38.dirty) Collecting gadjo>=0.53 (from combo===1.38.dirty) Collecting feedparser (from combo===1.38.dirty) Downloading https://files.pythonhosted.org/packages/91/d8/7d37fec71ff7c9dbcdd80d2b48bcdd86d6af502156fc93846fb0102cb2c4/feedparser-5.2.1.tar.bz2 (192kB) Collecting django-jsonfield (from combo===1.38.dirty) Requirement already satisfied: requests in /tmp/tox-bdauvergne/combo/django18/lib/python2.7/site-packages (from combo===1.38.dirty) (2.18.4) Collecting XStatic-Leaflet (from combo===1.38.dirty) Downloading https://files.pythonhosted.org/packages/7f/3c/1840d11ac7ccc9c6120aadf5a0133203e4e2f7d5f18cd0aa5cb80fdecf10/XStatic-Leaflet-1.0.2.1.tar.gz (248kB) Collecting XStatic-Leaflet-MarkerCluster (from combo===1.38.dirty) Downloading https://files.pythonhosted.org/packages/2d/5a/bce1c826743b9bcc0186be758530139eb25ebd194bdf2e219f1ce3ed3b69/XStatic-Leaflet-MarkerCluster-1.3.2.1.tar.gz (63kB) Collecting XStatic_JosefinSans (from combo===1.38.dirty) Downloading https://files.pythonhosted.org/packages/19/73/c0f01a1b6ec57b205896fa03d359f7837b866cbeaf731d178bbda813ed98/XStatic-JosefinSans-0.0.0.tar.gz (1.2MB) Collecting XStatic_OpenSans (from combo===1.38.dirty) Collecting XStatic_roboto-fontface (from combo===1.38.dirty) Downloading https://files.pythonhosted.org/packages/e8/9a/8227eee15eab470e6e8926c22425384e7c0e04c6299c6eefd468d3f66b1f/XStatic_roboto_fontface-0.5.0.0-py2.py3-none-any.whl (5.5MB) Collecting eopayment>=1.13 (from combo===1.38.dirty) Downloading https://files.pythonhosted.org/packages/a9/d2/e2a7a11091126b9270f78ebb513cb89f6f1e75cae9e313c0430745648a77/eopayment-1.23.tar.gz Requirement already satisfied: python-dateutil in /tmp/tox-bdauvergne/combo/django18/lib/python2.7/site-packages (from combo===1.38.dirty) (2.7.3) Collecting djangorestframework<3.4,>=3.3 (from combo===1.38.dirty) Using cached https://files.pythonhosted.org/packages/45/ce/a626c4e178c7334fbd825612a8e72489ffca8e851a83a5941ab7923f35dd/djangorestframework-3.3.3-py2.py3-none-any.whl Collecting django-haystack (from combo===1.38.dirty) Collecting whoosh (from combo===1.38.dirty) Using cached https://files.pythonhosted.org/packages/ba/19/24d0f1f454a2c1eb689ca28d2f178db81e5024f42d82729a4ff6771155cf/Whoosh-2.7.4-py2.py3-none-any.whl Collecting sorl-thumbnail (from combo===1.38.dirty) Using cached https://files.pythonhosted.org/packages/be/0e/4ba5b7226235d0a9eb847dfd03b8e0ad61dd101cbe1515975793277d8e59/sorl_thumbnail-12.4.1-py2.py3-none-any.whl Collecting Pillow (from combo===1.38.dirty) Using cached https://files.pythonhosted.org/packages/00/49/a0483e7308b4b04b5a898789911dbb876d9fea54e7df0453915e47744cfd/Pillow-5.1.0-cp27-cp27mu-manylinux1_x86_64.whl Collecting XStatic (from gadjo>=0.53->combo===1.38.dirty) Collecting XStatic-jQuery (from gadjo>=0.53->combo===1.38.dirty) Collecting XStatic-Font-Awesome (from gadjo>=0.53->combo===1.38.dirty) Using cached https://files.pythonhosted.org/packages/b4/ca/24685f91f744cde936294c033685cb4bb3302430f005cc834d86d75b9640/XStatic_Font_Awesome-4.7.0.0-py2.py3-none-any.whl Collecting XStatic-jquery-ui (from gadjo>=0.53->combo===1.38.dirty) Requirement already satisfied: certifi>=2017.4.17 in /tmp/tox-bdauvergne/combo/django18/lib/python2.7/site-packages (from requests->combo===1.38.dirty) (2018.4.16) Requirement already satisfied: urllib3<1.23,>=1.21.1 in /tmp/tox-bdauvergne/combo/django18/lib/python2.7/site-packages (from requests->combo===1.38.dirty) (1.22) Requirement already satisfied: idna<2.7,>=2.5 in /tmp/tox-bdauvergne/combo/django18/lib/python2.7/site-packages (from requests->combo===1.38.dirty) (2.6) Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /tmp/tox-bdauvergne/combo/django18/lib/python2.7/site-packages (from requests->combo===1.38.dirty) (3.0.4) Collecting pycrypto>=2.5 (from eopayment>=1.13->combo===1.38.dirty) Requirement already satisfied: six>=1.5 in /tmp/tox-bdauvergne/combo/django18/lib/python2.7/site-packages (from python-dateutil->combo===1.38.dirty) (1.11.0) Building wheels for collected packages: combo, feedparser, XStatic-Leaflet, XStatic-Leaflet-MarkerCluster, XStatic-JosefinSans, eopayment Running setup.py bdist_wheel for combo: started Running setup.py bdist_wheel for combo: finished with status 'error' Complete output from command /tmp/tox-bdauvergne/combo/django18/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-req-build-W6fmbi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-Tmd6N0 --python-tag cp27: /tmp/tox-bdauvergne/combo/django18/local/lib/python2.7/site-packages/setuptools/dist.py:407: UserWarning: The version specified ('1.38.dirty') is an invalid version, this may not work as expected with newer versions of setuptools, pip, and PyPI. Please see PEP 440 for more details. "details." % self.metadata.version running bdist_wheel running build running compile_translations !!! Please install Django >= 1.4 to build translations running compile_scss running build_py error: package directory 'combo' does not exist ---------------------------------------- Failed building wheel for combo Running setup.py clean for combo Running setup.py bdist_wheel for feedparser: started Running setup.py bdist_wheel for feedparser: finished with status 'done' Stored in directory: /home/bdauvergne/.cache/pip/wheels/8c/69/b7/f52763c41c5471df57703a0ef718a32a5e81ee35dcf6d4f97f Running setup.py bdist_wheel for XStatic-Leaflet: started Running setup.py bdist_wheel for XStatic-Leaflet: finished with status 'done' Stored in directory: /home/bdauvergne/.cache/pip/wheels/b3/c8/54/95e7174d05ac4efe5605a78ad73bfe22df6721a0b3f0ff158b Running setup.py bdist_wheel for XStatic-Leaflet-MarkerCluster: started Running setup.py bdist_wheel for XStatic-Leaflet-MarkerCluster: finished with status 'done' Stored in directory: /home/bdauvergne/.cache/pip/wheels/84/f3/dc/090d3929f0aae35bc0b1b546c49f446937874b50a4bc9fce00 Running setup.py bdist_wheel for XStatic-JosefinSans: started Running setup.py bdist_wheel for XStatic-JosefinSans: finished with status 'done' Stored in directory: /home/bdauvergne/.cache/pip/wheels/fa/d8/e7/3270c0145dd0918c1ac738c1da9db3e7040e99c200503f0cac Running setup.py bdist_wheel for eopayment: started Running setup.py bdist_wheel for eopayment: finished with status 'done' Stored in directory: /home/bdauvergne/.cache/pip/wheels/ab/f2/d8/90463feaecc6c0728bbc0abeeebc6b3a60bab10c9ea04f1521 Successfully built feedparser XStatic-Leaflet XStatic-Leaflet-MarkerCluster XStatic-JosefinSans eopayment Failed to build combo django-haystack 2.8.1 has requirement Django>=1.11, but you'll have django 1.8.19 which is incompatible. pylint-django 0.8.0 has requirement pylint>=1.8, but you'll have pylint 1.7.6 which is incompatible. Installing collected packages: django-ckeditor, XStatic, XStatic-OpenSans, XStatic-jQuery, XStatic-Font-Awesome, XStatic-jquery-ui, gadjo, feedparser, django-jsonfield, XStatic-Leaflet, XStatic-Leaflet-MarkerCluster, XStatic-JosefinSans, XStatic-roboto-fontface, pycrypto, eopayment, djangorestframework, django-haystack, whoosh, sorl-thumbnail, Pillow, combo Running setup.py install for combo: started Running setup.py install for combo: finished with status 'error' Complete output from command /tmp/tox-bdauvergne/combo/django18/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-req-build-W6fmbi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-kTfyYZ/install-record.txt --single-version-externally-managed --compile --install-headers /tmp/tox-bdauvergne/combo/django18/include/site/python2.7/combo: /tmp/tox-bdauvergne/combo/django18/local/lib/python2.7/site-packages/setuptools/dist.py:407: UserWarning: The version specified ('1.38.dirty') is an invalid version, this may not work as expected with newer versions of setuptools, pip, and PyPI. Please see PEP 440 for more details. "details." % self.metadata.version running install running build running compile_translations !!! Please install Django >= 1.4 to build translations running compile_scss running build_py error: package directory 'combo' does not exist ---------------------------------------- Command "/tmp/tox-bdauvergne/combo/django18/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-req-build-W6fmbi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-kTfyYZ/install-record.txt --single-version-externally-managed --compile --install-headers /tmp/tox-bdauvergne/combo/django18/include/site/python2.7/combo" failed with error code 1 in /tmp/pip-req-build-W6fmbi/ django18 installed: astroid==1.5.3,atomicwrites==1.1.5,attrs==18.1.0,backports.functools-lru-cache==1.5,beautifulsoup4==4.6.0,certifi==2018.4.16,chardet==3.0.4,configparser==3.5.0,coverage==4.5.1,Django==1.8.19,django-ckeditor==4.5.1,django-haystack==2.8.1,django-jsonfield==1.0.1,django-webtest==1.9.2,djangorestframework==3.3.3,enum34==1.1.6,eopayment==1.23,feedparser==5.2.1,funcsigs==1.0.2,futures==3.2.0,gadjo==0.53,httmock==1.2.6,idna==2.6,isort==4.3.4,lazy-object-proxy==1.3.1,mccabe==0.6.1,mock==2.0.0,more-itertools==4.2.0,pbr==4.0.3,Pillow==5.1.0,pluggy==0.6.0,py==1.5.3,pycrypto==2.6.1,pylint==1.7.6,pylint-django==0.8.0,pylint-plugin-utils==0.2.6,pytest==3.6.0,pytest-cov==2.5.1,pytest-django==3.2.1,python-dateutil==2.7.3,Quixote==2.9.1,requests==2.18.4,singledispatch==3.4.0.3,six==1.11.0,sorl-thumbnail==12.4.1,urllib3==1.22,vobject==0.9.5,waitress==1.1.0,WebOb==1.8.1,WebTest==2.0.29,Whoosh==2.7.4,wrapt==1.10.11,XStatic==1.0.1,XStatic-Font-Awesome==4.7.0.0,XStatic-JosefinSans==0.0.0,XStatic-jQuery==1.10.2.1,XStatic-jquery-ui==1.12.0.1,XStatic-Leaflet==1.0.2.1,XStatic-Leaflet-MarkerCluster==1.3.2.1,XStatic-OpenSans==1.0.0,XStatic-roboto-fontface==0.5.0.0 __________________________________________________________________________________ summary __________________________________________________________________________________ ERROR: django18: InvocationError: /tmp/tox-bdauvergne/combo/django18/bin/pip install /tmp/tox-bdauvergne/combo/dist/combo-1.38.dirty.zip (see /tmp/tox-bdauvergne/combo/django18/log/django18-2.log)
History
Updated by Benjamin Dauvergne almost 7 years ago
Je retire mon exagération, le problème ne semble présent que sur combo et fargo:
bdauvergne@revestel:~/wd/eo/fargo$ tox -e dj18-sqlite,coverage-dj18-sqlite GLOB sdist-make: /home/bdauvergne/wd/eo/fargo/setup.py dj18-sqlite create: /tmp/tox-bdauvergne/fargo/dj18-sqlite dj18-sqlite installdeps: django>=1.8,<1.9, django-tables2<1.1, pytest>=3.3.0, pytest-cov, pytest-random, pytest-mock, pytest-django, pytest-freezegun, django-webtest, WebTest, djangorestframework>=3.3,<3.4 dj18-sqlite inst: /tmp/tox-bdauvergne/fargo/dist/fargo-0.23.6.22.g851e50f.dirty.zip ERROR: invocation failed (exit code 1), logfile: /tmp/tox-bdauvergne/fargo/dj18-sqlite/log/dj18-sqlite-2.log ERROR: actionid: dj18-sqlite msg: installpkg cmdargs: ['/tmp/tox-bdauvergne/fargo/dj18-sqlite/bin/pip', 'install', '/tmp/tox-bdauvergne/fargo/dist/fargo-0.23.6.22.g851e50f.dirty.zip'] Processing /tmp/tox-bdauvergne/fargo/dist/fargo-0.23.6.22.g851e50f.dirty.zip Requirement already satisfied: django>=1.7 in /tmp/tox-bdauvergne/fargo/dj18-sqlite/lib/python2.7/site-packages (from fargo===0.23.6.22.g851e50f.dirty) (1.8.19) Collecting gadjo (from fargo===0.23.6.22.g851e50f.dirty) Requirement already satisfied: django-tables2 in /tmp/tox-bdauvergne/fargo/dj18-sqlite/lib/python2.7/site-packages (from fargo===0.23.6.22.g851e50f.dirty) (1.0.7) Collecting django-jsonfield>=0.9.3 (from fargo===0.23.6.22.g851e50f.dirty) Collecting django-filter<2,>1 (from fargo===0.23.6.22.g851e50f.dirty) Using cached https://files.pythonhosted.org/packages/ee/99/eb6f20b0ca4e2800279963599971e70c71767b9d151f44fcbcd1caa19f32/django_filter-1.1.0-py2.py3-none-any.whl Requirement already satisfied: djangorestframework<3.4,>=3.3 in /tmp/tox-bdauvergne/fargo/dj18-sqlite/lib/python2.7/site-packages (from fargo===0.23.6.22.g851e50f.dirty) (3.3.3) Collecting file-magic (from fargo===0.23.6.22.g851e50f.dirty) Collecting requests (from fargo===0.23.6.22.g851e50f.dirty) Using cached https://files.pythonhosted.org/packages/49/df/50aa1999ab9bde74656c2919d9c0c085fd2b3775fd3eca826012bef76d8c/requests-2.18.4-py2.py3-none-any.whl Collecting sorl-thumbnail (from fargo===0.23.6.22.g851e50f.dirty) Using cached https://files.pythonhosted.org/packages/be/0e/4ba5b7226235d0a9eb847dfd03b8e0ad61dd101cbe1515975793277d8e59/sorl_thumbnail-12.4.1-py2.py3-none-any.whl Collecting XStatic-jQuery (from gadjo->fargo===0.23.6.22.g851e50f.dirty) Collecting XStatic-Font-Awesome (from gadjo->fargo===0.23.6.22.g851e50f.dirty) Using cached https://files.pythonhosted.org/packages/b4/ca/24685f91f744cde936294c033685cb4bb3302430f005cc834d86d75b9640/XStatic_Font_Awesome-4.7.0.0-py2.py3-none-any.whl Collecting XStatic (from gadjo->fargo===0.23.6.22.g851e50f.dirty) Collecting XStatic-jquery-ui (from gadjo->fargo===0.23.6.22.g851e50f.dirty) Collecting XStatic-OpenSans (from gadjo->fargo===0.23.6.22.g851e50f.dirty) Requirement already satisfied: six in /tmp/tox-bdauvergne/fargo/dj18-sqlite/lib/python2.7/site-packages (from django-tables2->fargo===0.23.6.22.g851e50f.dirty) (1.11.0) Collecting idna<2.7,>=2.5 (from requests->fargo===0.23.6.22.g851e50f.dirty) Using cached https://files.pythonhosted.org/packages/27/cc/6dd9a3869f15c2edfab863b992838277279ce92663d334df9ecf5106f5c6/idna-2.6-py2.py3-none-any.whl Collecting certifi>=2017.4.17 (from requests->fargo===0.23.6.22.g851e50f.dirty) Using cached https://files.pythonhosted.org/packages/7c/e6/92ad559b7192d846975fc916b65f667c7b8c3a32bea7372340bfe9a15fa5/certifi-2018.4.16-py2.py3-none-any.whl Collecting chardet<3.1.0,>=3.0.2 (from requests->fargo===0.23.6.22.g851e50f.dirty) Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl Collecting urllib3<1.23,>=1.21.1 (from requests->fargo===0.23.6.22.g851e50f.dirty) Using cached https://files.pythonhosted.org/packages/63/cb/6965947c13a94236f6d4b8223e21beb4d576dc72e8130bd7880f600839b8/urllib3-1.22-py2.py3-none-any.whl Building wheels for collected packages: fargo Running setup.py bdist_wheel for fargo: started Running setup.py bdist_wheel for fargo: finished with status 'error' Complete output from command /tmp/tox-bdauvergne/fargo/dj18-sqlite/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-req-build-np68Q1/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-d42QPX --python-tag cp27: /tmp/tox-bdauvergne/fargo/dj18-sqlite/local/lib/python2.7/site-packages/setuptools/dist.py:407: UserWarning: The version specified ('0.23.6.22.g851e50f.dirty') is an invalid version, this may not work as expected with newer versions of setuptools, pip, and PyPI. Please see PEP 440 for more details. "details." % self.metadata.version running bdist_wheel running build running compile_translations !!! Please install Django >= 1.4 to build translations running build_py creating build creating build/lib.linux-x86_64-2.7 creating build/lib.linux-x86_64-2.7/fargo copying fargo/api_fields.py -> build/lib.linux-x86_64-2.7/fargo copying fargo/api_views.py -> build/lib.linux-x86_64-2.7/fargo copying fargo/managers.py -> build/lib.linux-x86_64-2.7/fargo copying fargo/views.py -> build/lib.linux-x86_64-2.7/fargo copying fargo/admin.py -> build/lib.linux-x86_64-2.7/fargo copying fargo/__init__.py -> build/lib.linux-x86_64-2.7/fargo copying fargo/tables.py -> build/lib.linux-x86_64-2.7/fargo copying fargo/utils.py -> build/lib.linux-x86_64-2.7/fargo copying fargo/forms.py -> build/lib.linux-x86_64-2.7/fargo copying fargo/api_errors.py -> build/lib.linux-x86_64-2.7/fargo copying fargo/models.py -> build/lib.linux-x86_64-2.7/fargo error: package directory 'fargo/oauth2' does not exist ---------------------------------------- Failed building wheel for fargo Running setup.py clean for fargo Failed to build fargo Installing collected packages: XStatic-jQuery, XStatic-Font-Awesome, XStatic, XStatic-jquery-ui, XStatic-OpenSans, gadjo, django-jsonfield, django-filter, file-magic, idna, certifi, chardet, urllib3, requests, sorl-thumbnail, fargo Running setup.py install for fargo: started Running setup.py install for fargo: finished with status 'error' Complete output from command /tmp/tox-bdauvergne/fargo/dj18-sqlite/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-req-build-np68Q1/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-oKd6O0/install-record.txt --single-version-externally-managed --compile --install-headers /tmp/tox-bdauvergne/fargo/dj18-sqlite/include/site/python2.7/fargo: /tmp/tox-bdauvergne/fargo/dj18-sqlite/local/lib/python2.7/site-packages/setuptools/dist.py:407: UserWarning: The version specified ('0.23.6.22.g851e50f.dirty') is an invalid version, this may not work as expected with newer versions of setuptools, pip, and PyPI. Please see PEP 440 for more details. "details." % self.metadata.version running install running build running compile_translations !!! Please install Django >= 1.4 to build translations running build_py error: package directory 'fargo/oauth2' does not exist ---------------------------------------- Command "/tmp/tox-bdauvergne/fargo/dj18-sqlite/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-req-build-np68Q1/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-oKd6O0/install-record.txt --single-version-externally-managed --compile --install-headers /tmp/tox-bdauvergne/fargo/dj18-sqlite/include/site/python2.7/fargo" failed with error code 1 in /tmp/pip-req-build-np68Q1/
en modifiant tox.ini comme cela:
diff --git a/tox.ini b/tox.ini index 6f11045..289975c 100644 --- a/tox.ini +++ b/tox.ini @@ -3,7 +3,8 @@ toxworkdir = {env:TMPDIR:/tmp}/tox-{env:USER}/fargo/ envlist = coverage-dj18-sqlite,coverage-dj111-sqlite,coverage-dj18-pg,coverage-dj111-pg [testenv] -usedevelop = True +usedevelop = + coverage: true whitelist_externals = /bin/mv setenv =
Updated by Emmanuel Cazenave almost 7 years ago
Probablement pas le fond du problème mais je mentionne quand même puisque je vois passer la trace
!!! Please install Django >= 1.4 to build translations
qui vient du pattern employé dans beaucoup de nos setup.py
try: ........ except ImportError: sys.stderr.write('!!! Please install Django >= 1.4 to build translations\n')
L'autre jour sur de docbow, de longues heures de perdues pour remonter jusqu'à cette erreur qu'on cache sous le tapis.