>>> py3-starlette: Building community/py3-starlette 0.37.2-r0 (using abuild 3.12.0-r5) started Wed, 20 Mar 2024 11:57:32 +0000 >>> py3-starlette: Checking sanity of /home/buildozer/aports/community/py3-starlette/APKBUILD... >>> py3-starlette: Analyzing dependencies... >>> py3-starlette: Installing for build: build-base py3-anyio py3-gpep517 py3-hatchling py3-installer py3-httpx py3-itsdangerous py3-jinja2 py3-pytest-forked py3-pytest-xdist py3-python-multipart py3-trio py3-typing-extensions py3-yaml (1/90) Installing libffi (3.4.6-r0) (2/90) Installing gdbm (1.23-r1) (3/90) Installing mpdecimal (4.0.0-r0) (4/90) Installing libpanelw (6.4_p20240309-r0) (5/90) Installing readline (8.2.10-r0) (6/90) Installing sqlite-libs (3.45.2-r0) (7/90) Installing python3 (3.11.8-r0) (8/90) Installing python3-pycache-pyc0 (3.11.8-r0) (9/90) Installing pyc (3.11.8-r0) (10/90) Installing py3-idna (3.6-r0) (11/90) Installing py3-idna-pyc (3.6-r0) (12/90) Installing py3-curio (1.6-r1) (13/90) Installing py3-curio-pyc (1.6-r1) (14/90) Installing py3-sniffio (1.3.1-r0) (15/90) Installing py3-sniffio-pyc (1.3.1-r0) (16/90) Installing py3-anyio-pyc (3.6.2-r3) (17/90) Installing python3-pyc (3.11.8-r0) (18/90) Installing py3-anyio (3.6.2-r3) (19/90) Installing py3-installer (0.7.0-r1) (20/90) Installing py3-installer-pyc (0.7.0-r1) (21/90) Installing py3-gpep517 (15-r1) (22/90) Installing py3-gpep517-pyc (15-r1) (23/90) Installing py3-editables (0.5-r0) (24/90) Installing py3-editables-pyc (0.5-r0) (25/90) Installing py3-parsing (3.1.2-r0) (26/90) Installing py3-parsing-pyc (3.1.2-r0) (27/90) Installing py3-packaging (24.0-r0) (28/90) Installing py3-packaging-pyc (24.0-r0) (29/90) Installing py3-pathspec (0.12.1-r0) (30/90) Installing py3-pathspec-pyc (0.12.1-r0) (31/90) Installing py3-pluggy (1.4.0-r0) (32/90) Installing py3-pluggy-pyc (1.4.0-r0) (33/90) Installing py3-trove-classifiers (2024.3.3-r0) (34/90) Installing py3-trove-classifiers-pyc (2024.3.3-r0) (35/90) Installing py3-hatchling (1.22.2-r0) (36/90) Installing py3-hatchling-pyc (1.22.2-r0) (37/90) Installing py3-certifi (2024.2.2-r0) (38/90) Installing py3-certifi-pyc (2024.2.2-r0) (39/90) Installing py3-h11 (0.14.0-r3) (40/90) Installing py3-h11-pyc (0.14.0-r3) (41/90) Installing py3-httpcore (0.18.0-r0) (42/90) Installing py3-httpcore-pyc (0.18.0-r0) (43/90) Installing py3-httpx (0.26.0-r0) (44/90) Installing py3-httpx-pyc (0.26.0-r0) (45/90) Installing py3-itsdangerous (2.1.2-r3) (46/90) Installing py3-itsdangerous-pyc (2.1.2-r3) (47/90) Installing py3-markupsafe (2.1.5-r0) (48/90) Installing py3-markupsafe-pyc (2.1.5-r0) (49/90) Installing py3-jinja2 (3.1.3-r0) (50/90) Installing py3-jinja2-pyc (3.1.3-r0) (51/90) Installing py3-iniconfig (1.1.1-r8) (52/90) Installing py3-iniconfig-pyc (1.1.1-r8) (53/90) Installing py3-py (1.11.0-r2) (54/90) Installing py3-py-pyc (1.11.0-r2) (55/90) Installing py3-pytest (8.0.2-r0) (56/90) Installing py3-pytest-pyc (8.0.2-r0) (57/90) Installing py3-pytest-forked (1.6.0-r1) (58/90) Installing py3-pytest-forked-pyc (1.6.0-r1) (59/90) Installing py3-apipkg (2.1.0-r2) (60/90) Installing py3-apipkg-pyc (2.1.0-r2) (61/90) Installing py3-execnet (1.9.0-r2) (62/90) Installing py3-execnet-pyc (1.9.0-r2) (63/90) Installing py3-pytest-xdist (3.5.0-r0) (64/90) Installing py3-pytest-xdist-pyc (3.5.0-r0) (65/90) Installing py3-python-multipart (0.0.9-r0) (66/90) Installing py3-python-multipart-pyc (0.0.9-r0) (67/90) Installing py3-attrs (23.2.0-r0) (68/90) Installing py3-attrs-pyc (23.2.0-r0) (69/90) Installing py3-async_generator (1.10-r5) (70/90) Installing py3-async_generator-pyc (1.10-r5) (71/90) Installing py3-cparser (2.21-r4) (72/90) Installing py3-cparser-pyc (2.21-r4) (73/90) Installing py3-cffi (1.16.0-r0) (74/90) Installing py3-cffi-pyc (1.16.0-r0) (75/90) Installing py3-cryptography (41.0.7-r0) (76/90) Installing py3-cryptography-pyc (41.0.7-r0) (77/90) Installing py3-openssl (23.3.0-r0) (78/90) Installing py3-openssl-pyc (23.3.0-r0) (79/90) Installing py3-outcome (1.3.0-r0) (80/90) Installing py3-outcome-pyc (1.3.0-r0) (81/90) Installing py3-sortedcontainers (2.4.0-r4) (82/90) Installing py3-sortedcontainers-pyc (2.4.0-r4) (83/90) Installing py3-trio (0.21.0-r3) (84/90) Installing py3-trio-pyc (0.21.0-r3) (85/90) Installing py3-typing-extensions (4.10.0-r0) (86/90) Installing py3-typing-extensions-pyc (4.10.0-r0) (87/90) Installing yaml (0.2.5-r2) (88/90) Installing py3-yaml (6.0.1-r2) (89/90) Installing py3-yaml-pyc (6.0.1-r2) (90/90) Installing .makedepends-py3-starlette (20240320.115734) Executing busybox-1.36.1-r21.trigger OK: 449 MiB in 203 packages >>> py3-starlette: Cleaning up srcdir >>> py3-starlette: Cleaning up pkgdir >>> py3-starlette: Cleaning up tmpdir >>> py3-starlette: Fetching https://distfiles.alpinelinux.org/distfiles/edge/py3-starlette-0.37.2.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 146 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 curl: (22) The requested URL returned error: 404 >>> py3-starlette: Fetching py3-starlette-0.37.2.tar.gz::https://github.com/encode/starlette/archive/refs/tags/0.37.2.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 178k 0 178k 0 0 308k 0 --:--:-- --:--:-- --:--:-- 308k 100 2779k 0 2779k 0 0 4222k 0 --:--:-- --:--:-- --:--:-- 32.5M >>> py3-starlette: Fetching https://distfiles.alpinelinux.org/distfiles/edge/py3-starlette-0.37.2.tar.gz >>> py3-starlette: Checking sha512sums... py3-starlette-0.37.2.tar.gz: OK >>> py3-starlette: Unpacking /var/cache/distfiles/edge/py3-starlette-0.37.2.tar.gz... 2024-03-20 11:57:36,497 gpep517 INFO Building wheel via backend hatchling.build 2024-03-20 11:57:36,664 gpep517 INFO The backend produced .dist/starlette-0.37.2-py3-none-any.whl starlette-0.37.2-py3-none-any.whl ============================= test session starts ============================== platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0 rootdir: /home/buildozer/aports/community/py3-starlette/src/starlette-0.37.2 configfile: pyproject.toml plugins: forked-1.6.0, anyio-3.6.2, xdist-3.5.0 created: 32/32 workers 32 workers [795 items] ........................................................................ [ 9%] ........................................................................ [ 18%] ........................................................................ [ 27%] ........................................................................ [ 36%] ........................................................................ [ 45%] .........................x.............................................. [ 54%] ........................................................................ [ 63%] ........................................................................ [ 72%] ........................................................................ [ 81%] .............x.......................................................... [ 90%] ........................................................................ [ 99%] ... [100%] ================================== XFAILURES =================================== ______ test_contextvars[asyncio-CustomMiddlewareUsingBaseHTTPMiddleware] _______ [gw1] linux -- Python 3.11.8 /usr/bin/python3 test_client_factory = functools.partial(, backend='asyncio', backend_options={}) middleware_cls = @pytest.mark.parametrize( "middleware_cls", [ CustomMiddlewareWithoutBaseHTTPMiddleware, pytest.param( CustomMiddlewareUsingBaseHTTPMiddleware, marks=pytest.mark.xfail( reason=( "BaseHTTPMiddleware creates a TaskGroup which copies the context" "and erases any changes to it made within the TaskGroup" ), raises=AssertionError, ), ), ], ) def test_contextvars( test_client_factory: TestClientFactory, middleware_cls: type[_MiddlewareClass[Any]], ) -> None: # this has to be an async endpoint because Starlette calls run_in_threadpool # on sync endpoints which has it's own set of peculiarities w.r.t propagating # contextvars (it propagates them forwards but not backwards) async def homepage(request: Request) -> PlainTextResponse: assert ctxvar.get() == "set by middleware" ctxvar.set("set by endpoint") return PlainTextResponse("Homepage") app = Starlette( middleware=[Middleware(middleware_cls)], routes=[Route("/", homepage)] ) client = test_client_factory(app) > response = client.get("/") tests/middleware/test_base.py:258: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ starlette/testclient.py:548: in get return super().get( /usr/lib/python3.11/site-packages/httpx/_client.py:1055: in get return self.request( starlette/testclient.py:516: in request return super().request( /usr/lib/python3.11/site-packages/httpx/_client.py:828: in request return self.send(request, auth=auth, follow_redirects=follow_redirects) /usr/lib/python3.11/site-packages/httpx/_client.py:915: in send response = self._send_handling_auth( /usr/lib/python3.11/site-packages/httpx/_client.py:943: in _send_handling_auth response = self._send_handling_redirects( /usr/lib/python3.11/site-packages/httpx/_client.py:980: in _send_handling_redirects response = self._send_single_request(request) /usr/lib/python3.11/site-packages/httpx/_client.py:1016: in _send_single_request response = transport.handle_request(request) starlette/testclient.py:398: in handle_request raise exc starlette/testclient.py:395: in handle_request portal.call(self.app, scope, receive, send) /usr/lib/python3.11/site-packages/anyio/from_thread.py:283: in call return cast(T_Retval, self.start_task_soon(func, *args).result()) /usr/lib/python3.11/concurrent/futures/_base.py:456: in result return self.__get_result() /usr/lib/python3.11/concurrent/futures/_base.py:401: in __get_result raise self._exception /usr/lib/python3.11/site-packages/anyio/from_thread.py:219: in _call_func retval = await retval starlette/applications.py:123: in __call__ await self.middleware_stack(scope, receive, send) starlette/middleware/errors.py:186: in __call__ raise exc starlette/middleware/errors.py:164: in __call__ await self.app(scope, receive, _send) starlette/middleware/base.py:191: in __call__ response = await self.dispatch_func(request, call_next) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = request = call_next = .call_next at 0xf59a92a8> async def dispatch( self, request: Request, call_next: RequestResponseEndpoint, ) -> Response: ctxvar.set("set by middleware") resp = await call_next(request) > assert ctxvar.get() == "set by endpoint" E AssertionError: assert 'set by middleware' == 'set by endpoint' E E - set by endpoint E + set by middleware tests/middleware/test_base.py:221: AssertionError ________ test_contextvars[trio-CustomMiddlewareUsingBaseHTTPMiddleware] ________ [gw1] linux -- Python 3.11.8 /usr/bin/python3 test_client_factory = functools.partial(, backend='trio', backend_options={}) middleware_cls = @pytest.mark.parametrize( "middleware_cls", [ CustomMiddlewareWithoutBaseHTTPMiddleware, pytest.param( CustomMiddlewareUsingBaseHTTPMiddleware, marks=pytest.mark.xfail( reason=( "BaseHTTPMiddleware creates a TaskGroup which copies the context" "and erases any changes to it made within the TaskGroup" ), raises=AssertionError, ), ), ], ) def test_contextvars( test_client_factory: TestClientFactory, middleware_cls: type[_MiddlewareClass[Any]], ) -> None: # this has to be an async endpoint because Starlette calls run_in_threadpool # on sync endpoints which has it's own set of peculiarities w.r.t propagating # contextvars (it propagates them forwards but not backwards) async def homepage(request: Request) -> PlainTextResponse: assert ctxvar.get() == "set by middleware" ctxvar.set("set by endpoint") return PlainTextResponse("Homepage") app = Starlette( middleware=[Middleware(middleware_cls)], routes=[Route("/", homepage)] ) client = test_client_factory(app) > response = client.get("/") tests/middleware/test_base.py:258: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ starlette/testclient.py:548: in get return super().get( /usr/lib/python3.11/site-packages/httpx/_client.py:1055: in get return self.request( starlette/testclient.py:516: in request return super().request( /usr/lib/python3.11/site-packages/httpx/_client.py:828: in request return self.send(request, auth=auth, follow_redirects=follow_redirects) /usr/lib/python3.11/site-packages/httpx/_client.py:915: in send response = self._send_handling_auth( /usr/lib/python3.11/site-packages/httpx/_client.py:943: in _send_handling_auth response = self._send_handling_redirects( /usr/lib/python3.11/site-packages/httpx/_client.py:980: in _send_handling_redirects response = self._send_single_request(request) /usr/lib/python3.11/site-packages/httpx/_client.py:1016: in _send_single_request response = transport.handle_request(request) starlette/testclient.py:398: in handle_request raise exc starlette/testclient.py:395: in handle_request portal.call(self.app, scope, receive, send) /usr/lib/python3.11/site-packages/anyio/from_thread.py:283: in call return cast(T_Retval, self.start_task_soon(func, *args).result()) /usr/lib/python3.11/concurrent/futures/_base.py:456: in result return self.__get_result() /usr/lib/python3.11/concurrent/futures/_base.py:401: in __get_result raise self._exception /usr/lib/python3.11/site-packages/anyio/from_thread.py:219: in _call_func retval = await retval starlette/applications.py:123: in __call__ await self.middleware_stack(scope, receive, send) starlette/middleware/errors.py:186: in __call__ raise exc starlette/middleware/errors.py:164: in __call__ await self.app(scope, receive, _send) starlette/middleware/base.py:191: in __call__ response = await self.dispatch_func(request, call_next) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = request = call_next = .call_next at 0xf599ade8> async def dispatch( self, request: Request, call_next: RequestResponseEndpoint, ) -> Response: ctxvar.set("set by middleware") resp = await call_next(request) > assert ctxvar.get() == "set by endpoint" E AssertionError: assert 'set by middleware' == 'set by endpoint' E E - set by endpoint E + set by middleware tests/middleware/test_base.py:221: AssertionError =========================== short test summary info ============================ XFAIL tests/middleware/test_base.py::test_contextvars[asyncio-CustomMiddlewareUsingBaseHTTPMiddleware] - BaseHTTPMiddleware creates a TaskGroup which copies the contextand erases any changes to it made within the TaskGroup XFAIL tests/middleware/test_base.py::test_contextvars[trio-CustomMiddlewareUsingBaseHTTPMiddleware] - BaseHTTPMiddleware creates a TaskGroup which copies the contextand erases any changes to it made within the TaskGroup ======================== 793 passed, 2 xfailed in 6.79s ======================== >>> py3-starlette: Entering fakeroot... >>> py3-starlette-pyc*: Running split function pyc... '/home/buildozer/aports/community/py3-starlette/pkg/py3-starlette/usr/lib/python3.11/site-packages/starlette/__pycache__' -> '/home/buildozer/aports/community/py3-starlette/pkg/py3-starlette-pyc/usr/lib/python3.11/site-packages/starlette/__pycache__' '/home/buildozer/aports/community/py3-starlette/pkg/py3-starlette/usr/lib/python3.11/site-packages/starlette/middleware/__pycache__' -> '/home/buildozer/aports/community/py3-starlette/pkg/py3-starlette-pyc/usr/lib/python3.11/site-packages/starlette/middleware/__pycache__' >>> py3-starlette-pyc*: Preparing subpackage py3-starlette-pyc... >>> py3-starlette-pyc*: Running postcheck for py3-starlette-pyc >>> py3-starlette*: Running postcheck for py3-starlette >>> py3-starlette*: Preparing package py3-starlette... >>> py3-starlette-pyc*: Tracing dependencies... py3-anyio python3~3.11 >>> py3-starlette-pyc*: Package size: 480.0 KB >>> py3-starlette-pyc*: Compressing data... >>> py3-starlette-pyc*: Create checksum... >>> py3-starlette-pyc*: Create py3-starlette-pyc-0.37.2-r0.apk >>> py3-starlette*: Tracing dependencies... py3-anyio python3~3.11 >>> py3-starlette*: Package size: 380.0 KB >>> py3-starlette*: Compressing data... >>> py3-starlette*: Create checksum... >>> py3-starlette*: Create py3-starlette-0.37.2-r0.apk >>> py3-starlette: Build complete at Wed, 20 Mar 2024 11:57:45 +0000 elapsed time 0h 0m 13s >>> py3-starlette: Cleaning up srcdir >>> py3-starlette: Cleaning up pkgdir >>> py3-starlette: Uninstalling dependencies... (1/90) Purging .makedepends-py3-starlette (20240320.115734) (2/90) Purging py3-gpep517-pyc (15-r1) (3/90) Purging py3-gpep517 (15-r1) (4/90) Purging py3-hatchling-pyc (1.22.2-r0) (5/90) Purging py3-hatchling (1.22.2-r0) (6/90) Purging py3-editables-pyc (0.5-r0) (7/90) Purging py3-editables (0.5-r0) (8/90) Purging py3-pathspec-pyc (0.12.1-r0) (9/90) Purging py3-pathspec (0.12.1-r0) (10/90) Purging py3-trove-classifiers-pyc (2024.3.3-r0) (11/90) Purging py3-trove-classifiers (2024.3.3-r0) (12/90) Purging py3-installer-pyc (0.7.0-r1) (13/90) Purging py3-installer (0.7.0-r1) (14/90) Purging py3-httpx-pyc (0.26.0-r0) (15/90) Purging py3-httpx (0.26.0-r0) (16/90) Purging py3-httpcore-pyc (0.18.0-r0) (17/90) Purging py3-httpcore (0.18.0-r0) (18/90) Purging py3-anyio-pyc (3.6.2-r3) (19/90) Purging py3-anyio (3.6.2-r3) (20/90) Purging py3-certifi-pyc (2024.2.2-r0) (21/90) Purging py3-certifi (2024.2.2-r0) (22/90) Purging py3-h11-pyc (0.14.0-r3) (23/90) Purging py3-h11 (0.14.0-r3) (24/90) Purging py3-itsdangerous-pyc (2.1.2-r3) (25/90) Purging py3-itsdangerous (2.1.2-r3) (26/90) Purging py3-jinja2-pyc (3.1.3-r0) (27/90) Purging py3-jinja2 (3.1.3-r0) (28/90) Purging py3-markupsafe-pyc (2.1.5-r0) (29/90) Purging py3-markupsafe (2.1.5-r0) (30/90) Purging py3-pytest-forked-pyc (1.6.0-r1) (31/90) Purging py3-pytest-forked (1.6.0-r1) (32/90) Purging py3-pytest-xdist-pyc (3.5.0-r0) (33/90) Purging py3-pytest-xdist (3.5.0-r0) (34/90) Purging py3-execnet-pyc (1.9.0-r2) (35/90) Purging py3-execnet (1.9.0-r2) (36/90) Purging py3-apipkg-pyc (2.1.0-r2) (37/90) Purging py3-apipkg (2.1.0-r2) (38/90) Purging py3-pytest-pyc (8.0.2-r0) (39/90) Purging py3-pytest (8.0.2-r0) (40/90) Purging py3-iniconfig-pyc (1.1.1-r8) (41/90) Purging py3-iniconfig (1.1.1-r8) (42/90) Purging py3-packaging-pyc (24.0-r0) (43/90) Purging py3-packaging (24.0-r0) (44/90) Purging py3-parsing-pyc (3.1.2-r0) (45/90) Purging py3-parsing (3.1.2-r0) (46/90) Purging py3-pluggy-pyc (1.4.0-r0) (47/90) Purging py3-pluggy (1.4.0-r0) (48/90) Purging py3-py-pyc (1.11.0-r2) (49/90) Purging py3-py (1.11.0-r2) (50/90) Purging py3-python-multipart-pyc (0.0.9-r0) (51/90) Purging py3-python-multipart (0.0.9-r0) (52/90) Purging py3-trio-pyc (0.21.0-r3) (53/90) Purging py3-trio (0.21.0-r3) (54/90) Purging py3-idna-pyc (3.6-r0) (55/90) Purging py3-idna (3.6-r0) (56/90) Purging py3-openssl-pyc (23.3.0-r0) (57/90) Purging py3-openssl (23.3.0-r0) (58/90) Purging py3-cryptography-pyc (41.0.7-r0) (59/90) Purging py3-cryptography (41.0.7-r0) (60/90) Purging py3-cffi-pyc (1.16.0-r0) (61/90) Purging py3-cffi (1.16.0-r0) (62/90) Purging py3-cparser-pyc (2.21-r4) (63/90) Purging py3-cparser (2.21-r4) (64/90) Purging py3-outcome-pyc (1.3.0-r0) (65/90) Purging py3-outcome (1.3.0-r0) (66/90) Purging py3-async_generator-pyc (1.10-r5) (67/90) Purging py3-async_generator (1.10-r5) (68/90) Purging py3-attrs-pyc (23.2.0-r0) (69/90) Purging py3-attrs (23.2.0-r0) (70/90) Purging py3-sniffio-pyc (1.3.1-r0) (71/90) Purging py3-sniffio (1.3.1-r0) (72/90) Purging py3-curio-pyc (1.6-r1) (73/90) Purging py3-curio (1.6-r1) (74/90) Purging py3-sortedcontainers-pyc (2.4.0-r4) (75/90) Purging py3-sortedcontainers (2.4.0-r4) (76/90) Purging py3-typing-extensions-pyc (4.10.0-r0) (77/90) Purging py3-typing-extensions (4.10.0-r0) (78/90) Purging py3-yaml-pyc (6.0.1-r2) (79/90) Purging py3-yaml (6.0.1-r2) (80/90) Purging python3-pyc (3.11.8-r0) (81/90) Purging python3-pycache-pyc0 (3.11.8-r0) (82/90) Purging pyc (3.11.8-r0) (83/90) Purging yaml (0.2.5-r2) (84/90) Purging python3 (3.11.8-r0) (85/90) Purging gdbm (1.23-r1) (86/90) Purging libffi (3.4.6-r0) (87/90) Purging libpanelw (6.4_p20240309-r0) (88/90) Purging mpdecimal (4.0.0-r0) (89/90) Purging readline (8.2.10-r0) (90/90) Purging sqlite-libs (3.45.2-r0) Executing busybox-1.36.1-r21.trigger OK: 380 MiB in 113 packages >>> py3-starlette: Updating the community/x86 repository index... >>> py3-starlette: Signing the index...