From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Thu, 12 Nov 2020 03:06:16 +0300 From: "Dmitry V. Levin" To: ALT Devel discussion list Message-ID: <20201112000616.GA14392@altlinux.org> References: <5fef97a7c87fe54554f11afa08df8bda@altlinux.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <5fef97a7c87fe54554f11afa08df8bda@altlinux.ru> Subject: Re: [devel] =?koi8-r?b?UHl0aG9uMiBwb2xpY3k6INTF09TZINcg0M/E0MHLxdTB?= =?koi8-r?b?yA==?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Nov 2020 00:06:16 -0000 Archived-At: List-Archive: List-Post: On Fri, Oct 30, 2020 at 03:25:43AM +0300, Vitaly Lipatov wrote: > У нас бесконечно устарело python policy. Как минимум, оно требует > обновления в связи с python3. > > Но я хотел бы выяснить, зачем было рекомендовано запаковывать тесты: > > Рекомендуется запаковывать тесты и примеры (содержимое каталогов > > %python_sitelibdir/*/test* и %python_sitelibdir/*/example*) в отдельный > > пакет (с одним из суффиксов: -devel, -tests, .tests, -testing, > > -examples). > https://www.altlinux.org/Python_Policy > > У нас для python3 такая статистика по суффиксам test*: > 8 test > 544 tests > > Вот эти пакеты-герои, которые просто test: > python3-module-Naked-test - Test for Naked > python3-module-twisted-core-test - Unit tests for Twisted Core (Python > 3) > python3-test - The test modules from the main python 3 package > python3-module-numdifftools-test - Test suite for Numdifftools > python3-module-bunch-test - Test for bunch > python3-module-pytools-test - Test for Pytools (Python 3) > python3-module-nine-test - Test for nine > python3-module-pathod-test - Test for pathod > > По моим представлениям, тесты нужны для тестирования самого пакета. > Возможно, в редких случаях тесты пакета используются в других тестах, но > в основном паковать тесты не имеет смысла и даже вредно, потому что > из-за этого возникают незамечаемые зависимости нормальных пакетов от > тестовых. > > Да, пакеты -tests используются при сборке 346 пакетов. > Но в 70 случаях, например, в этот список попал > python3-module-jsonschema-tests из-за того, что он по ошибке тянется > пакетом python3-module-jsonschema. > > Вот слишком популярные тесты, используемые при сборке: > 90 python3-module-stevedore-tests > 69 python3-module-jsonschema-tests > 28 python3-module-sympy-tests > 28 python3-module-click-tests > 17 python3-module-pygraphviz-tests > 17 python3-module-numexpr-tests > 16 python3-module-pandas-tests > 16 python3-module-numpy-tests > > > Также выяснилось, что следующие пакеты требуют тестовые (имеют > установочные зависимости на -tests). В ряде случаев зависимость > наверняка излишняя. > python3-module-h5py-2.10.0-alt2:sisyphus+247694.200.3.3@1584382664 > > python3-module-graphcanvas-4.1.0-alt1:sisyphus+239534.100.1.1@1571643621 > > python3-module-sqlalchemy_monetdb-1.0.0-alt1.1:sisyphus+228373.1000.2.3@1556720798 > > python3-module-greentest-1.4.0-alt2:sisyphus+245000.21776.79.1@1583233340 > > python3-module-numexpr-1:2.6.2-alt4:sisyphus+245000.26700.79.1@1583243505 > > python3-module-pygraphviz-1.5-alt3:sisyphus+245000.6200.84.1@1583632822 > python3-module-Chaco-4.8.0-alt2:sisyphus+247694.400.3.3@1584382930 > python3-module-blosc-1.5.1-alt3:sisyphus+245000.27700.79.1@1583245296 > > python3-module-infrae.testbrowser-2.0.2-alt3:sisyphus+245390.200.1.1@1580717877 > > python3-module-scikits.statsmodels-1:0.11.1-alt1:sisyphus+256803.2200.7.1@1598543643 > python3-module-pandas-1.1.1-alt2:sisyphus+257610.300.8.1@1599840378 > python3-module-dask-2.10.1-alt1:sisyphus+245499.40.2.1@1580904835 > python3-module-xarray-0.15.0-alt1:sisyphus+245497.20.3.1@1580858418 > > python3-module-silx-examples-0.10.1-alt1:sisyphus+245000.54200.84.1@1583666545 > > python3-module-appier_extras-0.19.4-alt1:sisyphus+231292.200.1.1@1559406746 > > python3-module-testrepository-0.0.20-alt2:sisyphus+227532.1300.1.3@1555940636 > python3-module-testtools-2.3.0-alt2:sisyphus+227976.100.1.2@1555992585 > > python3-module-pallets-sphinx-themes-1.1.3-alt2:sisyphus+242803.100.1.1@1576141249 > python3-module-flask-1.1.1-alt1:sisyphus+236914.300.4.1@1567169521 > python3-module-mailman3-3.2.2-alt2:sisyphus+233553.300.1.1@1561975698 > python3-module-numba-0.51.2-alt1:sisyphus+259194.200.1.1@1601903259 > > python3-module-jsonschema-3.2.0-alt1:sisyphus+254429.700.1.1@1593798463 > python3-module-xlutils-2.0.0-alt2:sisyphus+244055.240.3.1@1578662159 > python3-module-mdp-3.5-alt1:sisyphus+240461.200.1.1@1573206274 > > python3-module-oslo.versionedobjects-2.0.2-alt1:sisyphus+253719.2500.3.1@1592658301 > > openstack-ironic-common-1:15.0.0-alt1:sisyphus+253530.600.3.1@1592440913 > python3-module-falcon-1.4.1-alt1:sisyphus+228348.100.2.1@1556629111 > > python3-module-stevedore-1.32.0-alt1:sisyphus+252870.2540.8.1@1591619880 > python3-module-theano-1.0.5-alt1:sisyphus+256803.1600.3.1@1598456025 > python3-module-sympy-1:1.6.1-alt1:sisyphus+254668.400.6.1@1597133252 > > Например, в python3-module-jsonschema был запакован каталог benchmarks, > использующий тесты, поэтому он их тянул. > > Или в пакет borg был упакован testsuite, нужный только на этапе > сборочных тестов, и опять же, тянул за собой тесты. > > И последнее — следующие модули тащат за собой python3-module-pytest, > хотя вряд ли он им нужен: > > python3-module-pyannotate-1.2.0-alt1:sisyphus+260350.100.1.1@1603565173 > python3-module-soupsieve-2.0-alt1@1591873207 > python3-module-smpplib-2.1.0-alt1@1591873871 > python3-module-Flask-Script-2.0.6-alt1@1591874781 > borg-1.1.13-alt2:sisyphus+260657.100.1.1@1604014819 > > python3-module-hypothesis-5.37.3-alt1:sisyphus+255737.4640.19.1@1603374308 > python3-module-tox-3.20.1-alt1:sisyphus+260250.100.2.1@1603460131 > python3-module-translate-3.1.1-alt1:sisyphus+258948.100.1.1@1601484536 > python3-module-spyder-4.0.1-alt1:sisyphus+245364.4.7.1@1580852815 > python3-module-xarray-0.15.0-alt1:sisyphus+245497.20.3.1@1580858418 > python3-module-weasyprint-47-alt1:sisyphus+233460.340.4.1@1561830382 > > python3-module-validictory-1.1.2-alt1:sisyphus+255445.340.2.1@1595853021 > python3-module-trio-0.10.0-alt1:sisyphus+227470.1400.1.1@1555687900 > python3-module-tinycss2-1.0.2-alt1:sisyphus+252631.100.1.1@1591000665 > python3-module-testlink-0.8.1-alt2:sisyphus+240051.100.1.1@1572523725 > > python3-module-testfixtures-6.14.1-alt1:sisyphus+255737.5400.19.1@1603374514 > python3-module-sniffio-1.0.0-alt1:sisyphus+227470.500.1.1@1555687422 > python3-module-seaborn-0.10.1-alt1:sisyphus+256803.1500.3.1@1598455842 > python3-module-remoto-1.1.4-alt1:sisyphus+246578.200.1.1@1582029865 > > python3-module-pyqtgraph-0.11.0-alt2.rc0:sisyphus+245073.100.2.1@1581301999 > python3-module-pyfakefs-3.7.1-alt1:sisyphus+246069.200.1.1@1581604472 > python3-module-plumbum-1.6.3-alt2:sisyphus+257359.100.1.1@1599157520 > python3-module-openpyxl-2.6.2-alt2:sisyphus+258176.100.1.1@1600290668 > python3-module-nibabel-3.1.1-alt1:sisyphus+256803.1200.3.1@1598455737 > python3-module-nbclient-0.5.0-alt1:sisyphus+258053.2600.5.1@1600242708 > python3-module-miio-0.5.3-alt1:sisyphus+258499.100.1.1@1600768674 > python3-module-mando-0.7.0-alt1:sisyphus+255589.100.1.1@1596154107 > python3-module-imageio-2.9.0-alt1:sisyphus+256236.200.3.1@1597404268 > python3-module-h11-0.9.0-alt1:sisyphus+252379.100.1.1@1590695967 > python3-module-gabbi-1.34.0-alt2:sisyphus+249737.100.1.1@1586528957 > python3-module-fs-2.4.11-alt2:sisyphus+257603.700.3.2@1599686926 > python3-module-flit-2.3.0-alt2:sisyphus+256113.100.1.1@1597067357 > python3-module-erf-1.0.1-alt2:sisyphus+257337.100.1.1@1599146938 > python3-module-dask-2.10.1-alt1:sisyphus+245499.40.2.1@1580904835 > > python3-module-cssselect2-0.2.1-alt1.1:sisyphus+235505.100.1.1@1565020851 > python3-module-colorlog-4.2.1-alt1:sisyphus+255462.100.1.1@1595872134 > python3-module-cairocffi-1.0.2-alt1:sisyphus+233460.140.4.1@1561830232 > > python3-module-async_generator-1.10-alt1:sisyphus+227465.1400.1.2@1555756792 > python3-module-aspectlib-1.4.2-alt3:sisyphus+245603.100.1.1@1580978574 > python3-module-SQLObject-3.7.3-alt1:sisyphus+242468.40.2.1@1575702292 > python3-module-QtAwesome-0.7.2-alt1:sisyphus+255560.100.1.1@1596120565 > > python3-module-pytest-watch-4.2.0-alt1:sisyphus+238682.100.1.1@1570207452 > > python3-module-pytest-services-2.0.1-alt1:sisyphus+242204.100.1.1@1575399642 > python3-module-libcloud-2.5.0-alt1:sisyphus+231298.100.1.1@1559408637 > python3-module-iso8601-0.1.11-alt1:sisyphus+227495.1100.1.3@1555843037 > python3-module-characteristic-14.3.0-alt1.1.1.1@1517660577 > python3-module-ipython-7.18.1-alt2:sisyphus+258220.400.1.1@1600330137 > guake-3.7.0-alt1:sisyphus+245894.200.2.1@1581507387 > codespell-1.17.1-alt1:sisyphus+252230.100.2.1@1590403814 > > python3-module-ceph-common-15.2.5-alt1:sisyphus+258345.300.3.1@1600564481 > python3-module-wavelets-1.1.1-alt1:sisyphus+256190.400.1.1@1597223583 > > python3-module-scikits.statsmodels-1:0.11.1-alt1:sisyphus+256803.2200.7.1@1598543643 > > python3-module-scikit-learn-0.23.2-alt1:sisyphus+256112.500.1.1@1597065953 > > python3-module-numpy-testing-1:1.19.1-alt1:sisyphus+256803.200.2.1@1598449250 > > python3-module-numdifftools-test-0.9.12-alt2.git20150828.1:sisyphus+249205.100.1.1@1585839379 > python3-module-libsass-0.20.1-alt1:sisyphus+257025.100.1.1@1598765985 > python3-module-tinycss-0.4.0-alt1:sisyphus+233577.3100.3.2@1562121468 > python3-module-ipatests-4.8.9-alt1:sisyphus+257014.1100.9.1@1602206763 > python3-module-flaky-3.7.0-alt1:sisyphus+257831.100.1.1@1599752523 > python3-module-sybil-1.4.0-alt1:sisyphus+255737.5300.19.1@1603374464 Непонятно, как однозначно определить, содержит ли модуль питона тесты, и зависит ли модуль питона от тестов. Я для начала добавил в sisyphus_check проверку, запрещающую пакетам вида python3-module-NAME содержать Requires пакетов вида python3-module-NAME-tests и python3-module-NAME-test. Насколько я понимаю, таких пакетов в репозитории несколько: python3-module-Chaco python3-module-blosc python3-module-infrae.testbrowser python3-module-genshi python3-module-mdp python3-module-oslo.versionedobjects python3-module-theano -- ldv