Installation issue

Installing build dependencies error.txt
Thanks for this useful search engine using GenAI for local files.
I'm in Mac OS 15.0.1  with python 13.1.
After successful download of the source code, I was  importing all the  libraries when this dependency error showed up.
I followed the steps in GitHub and encountered the error during installation of the libraries. Find the details of the error  attached.
pip subprocess to install build dependencies did not run successfully.
│ exit code: 2
The issue is encountered while Installing build dependencies ... error
error: subprocess-exited-with-error
Installing build dependencies error.txt
any missing step to install to avoid the dependency error?
Thanks, Vasanth

not able to open your error file, pls comment your error here, will check and let you know.
and some possible solution can be in this case -
The error "pip subprocess to install build dependencies did not run successfully" often occurs when there are issues with compiling C extensions or when there are conflicts with existing packages.
Here are some steps you can try to resolve this issue:
1- Ensure you have the latest version of pip: 'python -m pip install --upgrade pip'
2-Install the build tools: "pip install --upgrade setuptools wheel"
-after these steps Try installing the packages one by one to identify which package is causing the issue. You can do this by referencing the requirements.txt file

Successfully installed setuptools-75.2.0 wheel-0.44.0
rustc 1.82.0 (f6e511eec 2024-10-15)
cargo 1.82.0 (8f40fc59f 2024-08-21)

pip3 install -r requirements.txt
Collecting faiss-cpu (from -r requirements.txt (line 1))
Using cached faiss_cpu-1.9.0.tar.gz (67 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting sentence-transformers (from -r requirements.txt (line 2))
Using cached sentence_transformers-3.2.0-py3-none-any.whl.metadata (10 kB)
Collecting PyPDF2 (from -r requirements.txt (line 3))
Using cached pypdf2-3.0.1-py3-none-any.whl.metadata (6.8 kB)
Collecting python-docx (from -r requirements.txt (line 4))
Using cached python_docx-1.1.2-py3-none-any.whl.metadata (2.0 kB)
Collecting python-pptx (from -r requirements.txt (line 5))
Using cached python_pptx-1.0.2-py3-none-any.whl.metadata (2.5 kB)
Collecting streamlit (from -r requirements.txt (line 6))
Using cached streamlit-1.39.0-py2.py3-none-any.whl.metadata (8.5 kB)
Collecting ollama (from -r requirements.txt (line 7))
Using cached ollama-0.3.3-py3-none-any.whl.metadata (3.8 kB)
Collecting numpy (from -r requirements.txt (line 8))
Using cached numpy-2.1.2-cp313-cp313-macosx_14_0_arm64.whl.metadata (60 kB)
Collecting streamlit-lottie (from -r requirements.txt (line 9))
Using cached streamlit_lottie-0.0.5-py3-none-any.whl.metadata (3.3 kB)
Collecting requests (from -r requirements.txt (line 10))
Using cached requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)
Collecting packaging (from faiss-cpu->-r requirements.txt (line 1))
Using cached packaging-24.1-py3-none-any.whl.metadata (3.2 kB)
Collecting transformers<5.0.0,>=4.41.0 (from sentence-transformers->-r requirements.txt (line 2))
Using cached transformers-4.45.2-py3-none-any.whl.metadata (44 kB)
Collecting tqdm (from sentence-transformers->-r requirements.txt (line 2))
Using cached tqdm-4.66.5-py3-none-any.whl.metadata (57 kB)
INFO: pip is looking at multiple versions of sentence-transformers to determine which version is compatible with other requirements. This could take a while.
Collecting sentence-transformers (from -r requirements.txt (line 2))
Using cached sentence_transformers-3.1.1-py3-none-any.whl.metadata (10 kB)
Using cached sentence_transformers-3.1.0-py3-none-any.whl.metadata (23 kB)
Using cached sentence_transformers-3.0.1-py3-none-any.whl.metadata (10 kB)
Using cached sentence_transformers-3.0.0-py3-none-any.whl.metadata (10 kB)
Using cached sentence_transformers-2.7.0-py3-none-any.whl.metadata (11 kB)
Using cached sentence_transformers-2.6.1-py3-none-any.whl.metadata (11 kB)
Using cached sentence_transformers-2.6.0-py3-none-any.whl.metadata (11 kB)
INFO: pip is still looking at multiple versions of sentence-transformers to determine which version is compatible with other requirements. This could take a while.
Using cached sentence_transformers-2.5.1-py3-none-any.whl.metadata (11 kB)
Using cached sentence_transformers-2.5.0-py3-none-any.whl.metadata (11 kB)
Using cached sentence_transformers-2.4.0-py3-none-any.whl.metadata (11 kB)
Using cached sentence_transformers-2.3.1-py3-none-any.whl.metadata (11 kB)
Using cached sentence_transformers-2.3.0-py3-none-any.whl.metadata (11 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
Using cached sentence-transformers-2.2.2.tar.gz (85 kB)
Preparing metadata (setup.py) ... done
Using cached sentence-transformers-2.2.1.tar.gz (84 kB)
Preparing metadata (setup.py) ... done
Using cached sentence-transformers-2.2.0.tar.gz (79 kB)
Preparing metadata (setup.py) ... done
Using cached sentence-transformers-2.1.0.tar.gz (78 kB)
Preparing metadata (setup.py) ... done
Collecting tokenizers>=0.10.3 (from sentence-transformers->-r requirements.txt (line 2))
Using cached tokenizers-0.20.1.tar.gz (339 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting sentence-transformers (from -r requirements.txt (line 2))
Downloading sentence-transformers-2.0.0.tar.gz (85 kB)
Preparing metadata (setup.py) ... done
Downloading sentence-transformers-1.2.1.tar.gz (80 kB)
Preparing metadata (setup.py) ... done
Downloading sentence-transformers-1.2.0.tar.gz (81 kB)
Preparing metadata (setup.py) ... done
Downloading sentence-transformers-1.1.1.tar.gz (81 kB)
Preparing metadata (setup.py) ... done
Downloading sentence-transformers-1.1.0.tar.gz (78 kB)
Preparing metadata (setup.py) ... done
Downloading sentence-transformers-1.0.4.tar.gz (74 kB)
Preparing metadata (setup.py) ... done
Downloading sentence-transformers-1.0.3.tar.gz (74 kB)
Preparing metadata (setup.py) ... done
Downloading sentence-transformers-1.0.2.tar.gz (74 kB)
Preparing metadata (setup.py) ... done
Downloading sentence-transformers-1.0.1.tar.gz (74 kB)
Preparing metadata (setup.py) ... done
Downloading sentence-transformers-1.0.0.tar.gz (74 kB)
Preparing metadata (setup.py) ... done
Downloading sentence-transformers-<IP_ADDRESS>.tar.gz (64 kB)
Preparing metadata (setup.py) ... done
Downloading sentence-transformers-<IP_ADDRESS>.tar.gz (64 kB)
Preparing metadata (setup.py) ... done
Downloading sentence-transformers-0.4.1.tar.gz (64 kB)
Preparing metadata (setup.py) ... done
Downloading sentence-transformers-0.4.0.tar.gz (65 kB)
Preparing metadata (setup.py) ... done
Downloading sentence-transformers-0.3.9.tar.gz (64 kB)
Preparing metadata (setup.py) ... done
Collecting transformers<3.6.0,>=3.1.0 (from sentence-transformers->-r requirements.txt (line 2))
Downloading transformers-3.5.1-py3-none-any.whl.metadata (32 kB)
Collecting sentence-transformers (from -r requirements.txt (line 2))
Downloading sentence-transformers-0.3.8.tar.gz (66 kB)
Preparing metadata (setup.py) ... done
Collecting transformers<3.4.0,>=3.1.0 (from sentence-transformers->-r requirements.txt (line 2))
Downloading transformers-3.3.1-py3-none-any.whl.metadata (29 kB)
Collecting sentence-transformers (from -r requirements.txt (line 2))
Downloading sentence-transformers-<IP_ADDRESS>.tar.gz (59 kB)
Preparing metadata (setup.py) ... done
Downloading sentence-transformers-<IP_ADDRESS>.tar.gz (59 kB)
Preparing metadata (setup.py) ... done
Downloading sentence-transformers-0.3.7.tar.gz (59 kB)
Preparing metadata (setup.py) ... done
Downloading sentence-transformers-0.3.6.tar.gz (62 kB)
Preparing metadata (setup.py) ... done
Collecting transformers<3.2.0,>=3.1.0 (from sentence-transformers->-r requirements.txt (line 2))
Downloading transformers-3.1.0-py3-none-any.whl.metadata (49 kB)
Collecting sentence-transformers (from -r requirements.txt (line 2))
Downloading sentence-transformers-<IP_ADDRESS>.tar.gz (61 kB)
Preparing metadata (setup.py) ... done
Collecting transformers==3.0.2 (from sentence-transformers->-r requirements.txt (line 2))
Downloading transformers-3.0.2-py3-none-any.whl.metadata (44 kB)
Collecting sentence-transformers (from -r requirements.txt (line 2))
Downloading sentence-transformers-0.3.5.tar.gz (61 kB)
Preparing metadata (setup.py) ... done
Downloading sentence-transformers-0.3.4.tar.gz (61 kB)
ERROR: Exception:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_vendor/urllib3/response.py", line 438, in _error_catcher
yield
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_vendor/urllib3/response.py", line 561, in read
data = self._fp_read(amt) if not fp_closed else b""
~~~~~~~~~~~~~^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_vendor/urllib3/response.py", line 527, in _fp_read
return self._fp.read(amt) if amt is not None else self._fp.read()
~~~~~~~~~~~~~^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_vendor/cachecontrol/filewrapper.py", line 98, in read
data: bytes = self.__fp.read(amt)
~~~~~~~~~~~~~~^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/http/client.py", line 479, in read
s = self.fp.read(amt)
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/socket.py", line 719, in readinto
return self._sock.recv_into(b)
~~~~~~~~~~~~~~~~~~~~^^^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/ssl.py", line 1304, in recv_into
return self.read(nbytes, buffer)
~~~~~~~~~^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/ssl.py", line 1138, in read
return self._sslobj.read(len, buffer)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
TimeoutError: The read operation timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_internal/cli/base_command.py", line 105, in _run_wrapper
status = _inner_run()
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_internal/cli/base_command.py", line 96, in _inner_run
return self.run(options, args)
~~~~~~~~^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_internal/cli/req_command.py", line 67, in wrapper
return func(self, options, args)
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_internal/commands/install.py", line 379, in run
requirement_set = resolver.resolve(
reqs, check_supported_wheels=not options.target_dir
)
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 95, in resolve
result = self._result = resolver.resolve(
~~~~~~~~~~~~~~~~^
collected.requirements, max_rounds=limit_how_complex_resolution_can_be
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers.py", line 546, in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers.py", line 427, in resolve
failure_causes = self._attempt_to_pin_criterion(name)
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers.py", line 237, in _attempt_to_pin_criterion
for candidate in criterion.candidates:
^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 162, in
return (c for c in iterator if id(c) not in self._incompatible_ids)
^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 53, in _iter_built
candidate = func()
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 186, in _make_candidate_from_link
base: Optional[BaseCandidate] = self._make_base_candidate_from_link(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
link, template, name, version
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 232, in _make_base_candidate_from_link
self._link_candidate_cache[link] = LinkCandidate(
~~~~~~~~~~~~~^
link,
^^^^^
...<3 lines>...
version=version,
^^^^^^^^^^^^^^^^
)
^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 303, in init
super().init(
~~~~~~~~~~~~~~~~^
link=link,
^^^^^^^^^^
...<4 lines>...
version=version,
^^^^^^^^^^^^^^^^
)
^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 158, in init
self.dist = self._prepare()
~~~~~~~~~~~~~^^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 235, in _prepare
dist = self._prepare_distribution()
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 314, in _prepare_distribution
return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_internal/operations/prepare.py", line 527, in prepare_linked_requirement
return self._prepare_linked_requirement(req, parallel_builds)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_internal/operations/prepare.py", line 598, in _prepare_linked_requirement
local_file = unpack_url(
link,
...<4 lines>...
hashes,
)
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_internal/operations/prepare.py", line 170, in unpack_url
file = get_http_url(
link,
...<2 lines>...
hashes=hashes,
)
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_internal/operations/prepare.py", line 111, in get_http_url
from_path, content_type = download(link, temp_dir.path)
~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_internal/network/download.py", line 148, in call
for chunk in chunks:
^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_internal/network/utils.py", line 65, in response_chunks
for chunk in response.raw.stream(
~~~~~~~~~~~~~~~~~~~^
chunk_size,
^^^^^^^^^^^
...<22 lines>...
decode_content=False,
^^^^^^^^^^^^^^^^^^^^^
):
^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_vendor/urllib3/response.py", line 622, in stream
data = self.read(amt=amt, decode_content=decode_content)
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_vendor/urllib3/response.py", line 560, in read
with self._error_catcher():
~~~~~~~~~~~~~~~~~~~^^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/contextlib.py", line 162, in exit
self.gen.throw(value)
~~~~~~~~~~~~~~^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip/_vendor/urllib3/response.py", line 443, in _error_catcher
raise ReadTimeoutError(self._pool, None, "Read timed out.")
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
╰─

On 19 Oct 2024, at 1:54 PM, Anoop Maurya @.***> wrote:
not able to open your error file, pls comment your error here, will check and let you know.
and some possible solution can be in this case -
The error "pip subprocess to install build dependencies did not run successfully" often occurs when there are issues with compiling C extensions or when there are conflicts with existing packages.
Here are some steps you can try to resolve this issue:
1- Ensure you have the latest version of pip: 'python -m pip install --upgrade pip'
2-Install the build tools: "pip install --upgrade setuptools wheel"
-after these steps Try installing the packages one by one to identify which package is causing the issue. You can do this by referencing the requirements.txt file
—
Reply to this email directly, view it on GitHub https://github.com/imanoop7/Generative-Search-Engine-For-Local-Files/issues/1#issuecomment-2423730754, or unsubscribe https://github.com/notifications/unsubscribe-auth/BDGQ323UN6ROGR5N7BA2KLTZ4IT45AVCNFSM6AAAAABQHJRCRGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMRTG4ZTANZVGQ.
You are receiving this because you authored the thread.

It appears that the main issue is a network timeout while trying to download and install the packages, particularly when dealing with the sentence-transformers package.
1- check your network or move to a more stable network
2- try this     pip install --default-timeout=100 -r requirements.txt
3-Try installing packages one by one .
4- if you are not using a virtual env, try creating one.

The network strength is good and I’m installing it in stable network conditions.
I used the  pip3 install --default-timeout=100 -r requirements.txt
these package versions have conflicting dependencies.

The conflict is caused by:
sentence-transformers 3.2.0 depends on torch>=1.11.0
sentence-transformers 3.1.1 depends on torch>=1.11.0
sentence-transformers 3.1.0 depends on torch>=1.11.0
sentence-transformers 3.0.1 depends on torch>=1.11.0
sentence-transformers 3.0.0 depends on torch>=1.11.0
See attached txt file for the entire install log.
Note: I have installed torch and I got this  success message ( it was done before the pip install step) . Successfully installed MarkupSafe-3.0.2 filelock-3.16.1 fsspec-2024.9.0 jinja2-3.1.4 mpmath-1.3.0 networkx-3.4.1 numpy-2.1.2 pillow-11.0.0 sympy-1.13.1 torch-2.6.0.dev20241019 torchaudio-2.5.0.dev20241019 torchvision-0.20.0.dev20241019 typing-extensions-4.12.2

On 19 Oct 2024, at 7:12 PM, Anoop Maurya @.***> wrote:
install --default-timeout=100 -r requirements.txt

￼
❯ python3 -m venv venv
source venv/bin/activate
❯ pip3 install --default-timeout=100 -r requirements.txt
Collecting faiss-cpu (from -r requirements.txt (line 1))
Using cached faiss_cpu-1.9.0.tar.gz (67 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting sentence-transformers (from -r requirements.txt (line 2))
Using cached sentence_transformers-3.2.0-py3-none-any.whl.metadata (10 kB)
Collecting PyPDF2 (from -r requirements.txt (line 3))
Using cached pypdf2-3.0.1-py3-none-any.whl.metadata (6.8 kB)
Collecting python-docx (from -r requirements.txt (line 4))
Using cached python_docx-1.1.2-py3-none-any.whl.metadata (2.0 kB)
Collecting python-pptx (from -r requirements.txt (line 5))
Using cached python_pptx-1.0.2-py3-none-any.whl.metadata (2.5 kB)
Collecting streamlit (from -r requirements.txt (line 6))
Using cached streamlit-1.39.0-py2.py3-none-any.whl.metadata (8.5 kB)
Collecting ollama (from -r requirements.txt (line 7))
Using cached ollama-0.3.3-py3-none-any.whl.metadata (3.8 kB)
Collecting numpy (from -r requirements.txt (line 8))
Using cached numpy-2.1.2-cp313-cp313-macosx_14_0_arm64.whl.metadata (60 kB)
Collecting streamlit-lottie (from -r requirements.txt (line 9))
Using cached streamlit_lottie-0.0.5-py3-none-any.whl.metadata (3.3 kB)
Collecting requests (from -r requirements.txt (line 10))
Using cached requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)
Collecting packaging (from faiss-cpu->-r requirements.txt (line 1))
Using cached packaging-24.1-py3-none-any.whl.metadata (3.2 kB)
Collecting transformers<5.0.0,>=4.41.0 (from sentence-transformers->-r requirements.txt (line 2))
Using cached transformers-4.45.2-py3-none-any.whl.metadata (44 kB)
Collecting tqdm (from sentence-transformers->-r requirements.txt (line 2))
Using cached tqdm-4.66.5-py3-none-any.whl.metadata (57 kB)
INFO: pip is looking at multiple versions of sentence-transformers to determine which version is compatible with other requirements. This could take a while.
Collecting sentence-transformers (from -r requirements.txt (line 2))
Using cached sentence_transformers-3.1.1-py3-none-any.whl.metadata (10 kB)
Using cached sentence_transformers-3.1.0-py3-none-any.whl.metadata (23 kB)
Using cached sentence_transformers-3.0.1-py3-none-any.whl.metadata (10 kB)
Using cached sentence_transformers-3.0.0-py3-none-any.whl.metadata (10 kB)
Using cached sentence_transformers-2.7.0-py3-none-any.whl.metadata (11 kB)
Using cached sentence_transformers-2.6.1-py3-none-any.whl.metadata (11 kB)
Using cached sentence_transformers-2.6.0-py3-none-any.whl.metadata (11 kB)
INFO: pip is still looking at multiple versions of sentence-transformers to determine which version is compatible with other requirements. This could take a while.
Using cached sentence_transformers-2.5.1-py3-none-any.whl.metadata (11 kB)
Using cached sentence_transformers-2.5.0-py3-none-any.whl.metadata (11 kB)
Using cached sentence_transformers-2.4.0-py3-none-any.whl.metadata (11 kB)
Using cached sentence_transformers-2.3.1-py3-none-any.whl.metadata (11 kB)
Using cached sentence_transformers-2.3.0-py3-none-any.whl.metadata (11 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.

The conflict is caused by:
sentence-transformers 3.2.0 depends on torch>=1.11.0
sentence-transformers 3.1.1 depends on torch>=1.11.0
sentence-transformers 3.1.0 depends on torch>=1.11.0
sentence-transformers 3.0.1 depends on torch>=1.11.0
sentence-transformers 3.0.0 depends on torch>=1.11.0
sentence-transformers 2.7.0 depends on torch>=1.11.0
sentence-transformers 2.6.1 depends on torch>=1.11.0
sentence-transformers 2.6.0 depends on torch>=1.11.0
sentence-transformers 2.5.1 depends on torch>=1.11.0
sentence-transformers 2.5.0 depends on torch>=1.11.0
sentence-transformers 2.4.0 depends on torch>=1.11.0
sentence-transformers 2.3.1 depends on torch>=1.11.0
sentence-transformers 2.3.0 depends on torch>=1.11.0
sentence-transformers 2.2.2 depends on torch>=1.6.0
sentence-transformers 2.2.1 depends on torch>=1.6.0
sentence-transformers 2.2.0 depends on torch>=1.6.0
sentence-transformers 2.1.0 depends on torch>=1.6.0
sentence-transformers 2.0.0 depends on torch>=1.6.0
sentence-transformers 1.2.1 depends on torch>=1.6.0
sentence-transformers 1.2.0 depends on torch>=1.6.0
sentence-transformers 1.1.1 depends on torch>=1.6.0
sentence-transformers 1.1.0 depends on torch>=1.6.0
sentence-transformers 1.0.4 depends on torch>=1.6.0
sentence-transformers 1.0.3 depends on torch>=1.6.0
sentence-transformers 1.0.2 depends on torch>=1.6.0
sentence-transformers 1.0.1 depends on torch>=1.6.0
sentence-transformers 1.0.0 depends on torch>=1.6.0
sentence-transformers <IP_ADDRESS> depends on torch>=1.6.0
sentence-transformers <IP_ADDRESS> depends on torch>=1.6.0
sentence-transformers 0.4.1 depends on torch>=1.6.0
sentence-transformers 0.4.0 depends on torch>=1.6.0
sentence-transformers 0.3.9 depends on torch>=1.6.0
sentence-transformers 0.3.8 depends on torch>=1.2.0
sentence-transformers <IP_ADDRESS> depends on torch>=1.2.0
sentence-transformers <IP_ADDRESS> depends on torch>=1.2.0
sentence-transformers 0.3.7 depends on torch>=1.2.0
sentence-transformers 0.3.6 depends on torch>=1.2.0
sentence-transformers <IP_ADDRESS> depends on torch>=1.2.0
sentence-transformers 0.3.5 depends on torch>=1.2.0
sentence-transformers 0.3.4 depends on torch>=1.2.0
sentence-transformers 0.3.3 depends on torch>=1.2.0
sentence-transformers 0.3.2 depends on torch>=1.2.0
sentence-transformers 0.3.1 depends on torch>=1.2.0
sentence-transformers 0.3.0 depends on torch>=1.0.1
sentence-transformers <IP_ADDRESS> depends on torch>=1.0.1
sentence-transformers <IP_ADDRESS> depends on torch>=1.0.1
sentence-transformers <IP_ADDRESS> depends on torch>=1.0.1
sentence-transformers 0.2.5 depends on torch>=1.0.1
sentence-transformers <IP_ADDRESS> depends on torch>=1.0.1
sentence-transformers 0.2.4 depends on torch>=1.0.1
sentence-transformers 0.2.3 depends on torch>=1.0.1
sentence-transformers 0.2.2 depends on torch>=1.0.1
sentence-transformers 0.2.1 depends on torch>=1.0.1
sentence-transformers 0.2.0 depends on torch>=1.0.1
sentence-transformers 0.1.0 depends on torch>=1.0.1
To fix this you could try to:

loosen the range of package versions you've specified
remove package versions to allow pip to attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

can you try installing package one by one and check the error and upgrade/downgrade the package that is causing issue
if it still not resolved I have uploaded one more code for you with only Ollama models pls check it out -https://github.com/imanoop7/Generative-Search-Engine-For-Local-Files/blob/main/local_genai_search_ollama.py

I was trying to install one by one starting with faiss.
Still I get an error.
Note: I’m not a developer, so a better explanation step by step approach,  would help me here.

cd Generative-Search-Engine-For-Local-Files
❯ pip3 install faiss-cpu
Collecting faiss-cpu
Using cached faiss_cpu-1.9.0.tar.gz (67 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: numpy<3.0,>=1.25.0 in /Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages (from faiss-cpu) (2.1.2)
Collecting packaging (from faiss-cpu)
Using cached packaging-24.1-py3-none-any.whl.metadata (3.2 kB)
Using cached packaging-24.1-py3-none-any.whl (53 kB)
Building wheels for collected packages: faiss-cpu
Building wheel for faiss-cpu (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building wheel for faiss-cpu (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [8 lines of output]
running bdist_wheel
running build
running build_py
running build_ext
building 'faiss._swigfaiss' extension
swigging faiss/faiss/python/swigfaiss.i to faiss/faiss/python/swigfaiss_wrap.cpp
swig -python -c++ -Doverride= -doxygen -Ifaiss -I/private/var/folders/xn/ggykny717_73177svdh65txr0000gn/T/pip-build-env-rqbliyk3/overlay/lib/python3.13/site-packages/numpy/_core/include -Ifaiss -I/usr/local/include -o faiss/faiss/python/swigfaiss_wrap.cpp faiss/faiss/python/swigfaiss.i
error: command 'swig' failed: No such file or directory
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for faiss-cpu
Failed to build faiss-cpu
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (faiss-cpu)

On 20 Oct 2024, at 6:39 PM, Anoop Maurya @.***> wrote:
can you try installing package one by one and check the error and upgrade/downgrade the package that is causing issue
if it still not resolved I have uploaded one more code for you with only Ollama models pls check it out -https://github.com/imanoop7/Generative-Search-Engine-For-Local-Files/blob/main/local_genai_search_ollama.py
—
Reply to this email directly, view it on GitHub https://github.com/imanoop7/Generative-Search-Engine-For-Local-Files/issues/1#issuecomment-2425018528, or unsubscribe https://github.com/notifications/unsubscribe-auth/BDGQ32YXFRJ3EI2CWHFZBITZ4O6B5AVCNFSM6AAAAABQHJRCRGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMRVGAYTQNJSHA.
You are receiving this because you authored the thread.

error message indicates that the swig command is not found on your system. SWIG (Simplified Wrapper and Interface Generator) is a tool used to connect C/C++ programs with scripting languages like Python. It's required to build the faiss-cpu package.
Here's a step-by-step approach to resolve this:
First, make sure you have Xcode Command Line Tools installed. Open Terminal and run:
xcode-select --install
then -
Install Homebrew if you haven't already. Homebrew is a package manager for macOS. Run this in Terminal:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
After Homebrew is installed, use it to install SWIG:
brew install swig
Once SWIG is installed, you need to make sure it's in your system PATH. Add the following line to your ~/.zshrc or ~/.bash_profile file (depending on which shell you're using):
 export PATH="/usr/local/opt/swig/bin:$PATH"
Then, reload your shell configuration:
source ~/.zshrc  or  source ~/.bash_profile
Now, try installing faiss-cpu again:
pip3 install faiss-cpu
if still does not work for you pls use conda env: Steps to follow-
follow this cheat sheet to create the env and then install packages-
https://docs.conda.io/projects/conda/en/4.6.0/_downloads/52a95608c49671267e40c689e0bc00ca/conda-cheatsheet.pdf

I reinstalled python and setup the related environments and dependencies. I then used the Generative Search Engine for Local Files code and setup as per the README document.
Now the installation is complete and Streamlit app is working.
Thanks for your help.

On 21 Oct 2024, at 8:47 PM, Anoop Maurya @.***> wrote:
error message indicates that the swig command is not found on your system. SWIG (Simplified Wrapper and Interface Generator) is a tool used to connect C/C++ programs with scripting languages like Python. It's required to build the faiss-cpu package.
Here's a step-by-step approach to resolve this:
First, make sure you have Xcode Command Line Tools installed. Open Terminal and run:
xcode-select --install
then -
Install Homebrew if you haven't already. Homebrew is a package manager for macOS. Run this in Terminal:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
After Homebrew is installed, use it to install SWIG:
brew install swig
Once SWIG is installed, you need to make sure it's in your system PATH. Add the following line to your ~/.zshrc or ~/.bash_profile file (depending on which shell you're using):
export PATH="/usr/local/opt/swig/bin:$PATH"
Then, reload your shell configuration:
source ~/.zshrc or source ~/.bash_profile
Now, try installing faiss-cpu again:
pip3 install faiss-cpu
if still does not work for you pls use conda env: Steps to follow-
follow this cheat sheet to create the env and then install packages-
https://docs.conda.io/projects/conda/en/4.6.0/_downloads/52a95608c49671267e40c689e0bc00ca/conda-cheatsheet.pdf
—
Reply to this email directly, view it on GitHub https://github.com/imanoop7/Generative-Search-Engine-For-Local-Files/issues/1#issuecomment-2427198466, or unsubscribe https://github.com/notifications/unsubscribe-auth/BDGQ324WOXPC22HZOE44NPTZ4UVYPAVCNFSM6AAAAABQHJRCRGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMRXGE4TQNBWGY.
You are receiving this because you authored the thread.


add async to editing data cache

Description / Motivation
For deploying Sitecore JSS Next.js to Azure Static Web Apps I had to provide my own implementation of the EditingDataCache class (using Azure Blobstorage instead of disk cache):
See https://github.com/erwinsmit/swa-jss/blob/master/src/lib/editing/editing-data-cache.ts for an example.
In this example I had to copy more stuff out of the JSS repo to make it work. If async was supported that wouldn't be necessary.
The problem I had was that the "EditingDataService" was expecting the "EditingDataCache" to be sync, not async. This limits the implementation of the EditingDataCache class, it's not possible for example to write/read stuff to Blobstorage in a sync manner.
With my suggested changes it's possible to use sync and async EditingDataCache implementations.
Testing Details
I've tested my changes on this repo:
https://github.com/erwinsmit/swa-jss/
You can also read my blogpost that explains it further:
https://www.erwinsmit.com/sitecore-jss-nextjs-on-azure-static-web-app/
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Could someone look at this please? I would be happy to make any changes if necessary.

Just one suggestion, otherwise looks good!
BTW, in a future release (currently, JSS 21 is only compatible with XM Cloud), you may be able to optimize your solution for Azure hosting even further by skipping the Data API Route + EditingDataMiddleware and provide an EditingDataService implementation instead (see ServerlessEditingDataService vs BasicEditingDataService in XMC docs).

Thanks, good to know!

@ambrauer Closed the PR by accident, so I've re-opened it again. The suggestion with the promise has been resolved.


using other pretrained models

Can we use other models like "distilbert-base-multilingual-cased"?
Because I wanna generate texts with other languages..

I believe this was answered in the other issue.


I drag&drop a floder in to VSCode then it make me come here.

VSCode Version: Code - Insiders 1.11.0-insider (4db944bc08e34fb15c5805927d9cb67470776606, 2017-03-02T07:10:18.838Z)
OS Version: Windows_NT ia32 10.0.14393
CPUs: Intel(R) Core(TM) i5-4670 CPU @ 3.40GHz (4 x 3392)
Memory (System): 7.95GB (2.26GB free)
Memory (Process): 134.82MB working set (134.93MB peak, 98.67MB private, 32.98MB shared)
Load (avg): 0, 0, 0
VM: 0%
Initial Startup: yes
Screen Reader: no
Empty Workspace: no
Timings:

Component
Task
Time (ms)

main
start => app.isReady
22

main
app.isReady => window.loadUrl()
272

renderer
window.loadUrl() => begin to require(workbench.main.js)
281

renderer
require(workbench.main.js)
678

renderer
create extension host => extensions onReady()
1566

renderer
restore viewlet
239

renderer
restore editor view state
565

renderer
overall workbench load
1908

main + renderer
start => extensions ready
2963

main + renderer
start => workbench ready
3181

:warning: Make sure to attach these files: :warning:
-C:\Users\*****\bf99_main.cpuprofile.txt
-C:\Users\*****\bf99_renderer.cpuprofile.txt
bf99_renderer.cpuprofile.txt
bf99_main.cpuprofile.txt

closing as dupe of #22086 and #21963


"\n" in data is not showing as a string.

Prerequisites

[v ] I have read the documentation;
[v ] In the case of a bug report, I understand that providing a SSCCE example is tremendously useful to the maintainers.

Description
I have a data like below;
"task": {
"escapechar": "\",
"quotechar": """,
"delimiter": "|",
"lineterminator": "\n",
}
\ and \ and | are all work with { "type": "string" } in schema.
But \n is not showing up in page.
Is there any idea?

I just solve this problem as I chang the data.


Trim whitespace on user inputs

Create base form class that trims whitespace
existing forms to extend new base class

#147

@ali somehow I must have committed the last pull request (class bg images) into my local develop branch because it ended up in this one.  i guess either cherry pick the second commit here when you merge or just merge this one after the other.

Hey @bkellgren, I tried to merge and test a user register (via the email signup form) and I got an error:
Note: I posted a first name with spaces in it (______Ali where the _ is spaces) and same with the last name. The password was something simple like 12345 since it was the staging server.
Internal Server Error: /accounts/register/
Traceback (most recent call last):
  File "/home/coderdojo/webapps/coderdojochi_staging/lib/python2.7/Django-1.7.3-py2.7.egg/django/core/handlers/base.py", line 111, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/coderdojo/webapps/coderdojochi_staging/lib/python2.7/Django-1.7.3-py2.7.egg/django/views/generic/base.py", line 69, in view
    return self.dispatch(request, *args, **kwargs)
  File "/home/coderdojo/webapps/coderdojochi_staging/src/django-registration-master/registration/views.py", line 79, in dispatch
    return super(RegistrationView, self).dispatch(request, *args, **kwargs)
  File "/home/coderdojo/webapps/coderdojochi_staging/lib/python2.7/Django-1.7.3-py2.7.egg/django/views/generic/base.py", line 87, in dispatch
    return handler(request, *args, **kwargs)
  File "/home/coderdojo/webapps/coderdojochi_staging/src/django-registration-master/registration/views.py", line 35, in post
    return self.form_valid(request, form)
  File "/home/coderdojo/webapps/coderdojochi_staging/src/django-registration-master/registration/views.py", line 82, in form_valid
    new_user = self.register(request, **form.cleaned_data)
  File "/home/coderdojo/webapps/coderdojochi_staging/coderdojochi/coderdojochi/views.py", line 91, in register
    user = User.objects.create_user(username, email, password, first_name=first_name, last_name=last_name)
  File "/home/coderdojo/webapps/coderdojochi_staging/lib/python2.7/Django-1.7.3-py2.7.egg/django/contrib/auth/models.py", line 183, in create_user
    **extra_fields)
  File "/home/coderdojo/webapps/coderdojochi_staging/lib/python2.7/Django-1.7.3-py2.7.egg/django/contrib/auth/models.py", line 178, in _create_user
    user.save(using=self._db)
  File "/home/coderdojo/webapps/coderdojochi_staging/lib/python2.7/Django-1.7.3-py2.7.egg/django/db/models/base.py", line 589, in save
    force_update=force_update, update_fields=update_fields)
  File "/home/coderdojo/webapps/coderdojochi_staging/lib/python2.7/Django-1.7.3-py2.7.egg/django/db/models/base.py", line 617, in save_base
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  File "/home/coderdojo/webapps/coderdojochi_staging/lib/python2.7/Django-1.7.3-py2.7.egg/django/db/models/base.py", line 698, in _save_table
    result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
  File "/home/coderdojo/webapps/coderdojochi_staging/lib/python2.7/Django-1.7.3-py2.7.egg/django/db/models/base.py", line 731, in _do_insert
    using=using, raw=raw)
  File "/home/coderdojo/webapps/coderdojochi_staging/lib/python2.7/Django-1.7.3-py2.7.egg/django/db/models/manager.py", line 92, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/home/coderdojo/webapps/coderdojochi_staging/lib/python2.7/Django-1.7.3-py2.7.egg/django/db/models/query.py", line 921, in _insert
    return query.get_compiler(using=using).execute_sql(return_id)
  File "/home/coderdojo/webapps/coderdojochi_staging/lib/python2.7/Django-1.7.3-py2.7.egg/django/db/models/sql/compiler.py", line 920, in execute_sql
    cursor.execute(sql, params)
  File "/home/coderdojo/webapps/coderdojochi_staging/lib/python2.7/Django-1.7.3-py2.7.egg/django/db/backends/utils.py", line 65, in execute
    return self.cursor.execute(sql, params)
  File "/home/coderdojo/webapps/coderdojochi_staging/lib/python2.7/Django-1.7.3-py2.7.egg/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/home/coderdojo/webapps/coderdojochi_staging/lib/python2.7/Django-1.7.3-py2.7.egg/django/db/backends/utils.py", line 65, in execute
    return self.cursor.execute(sql, params)
DataError: value too long for type character varying(30)

Seems like it's a Django issue:
http://stackoverflow.com/questions/12842239/value-too-long-for-type-character-varying30

That is one of the issues with using email addresses for user names in Django. Many, many emails are over 30-characters. One common way to address this issues is using a custom "Authentication Backend" for email authentication. Using your own backend you can authenticate a user based on the email field instead of the username field. You can then generate the username based on that email address or using random generated usernames.

I did a quick check and it doesn't seem to be trimming the first and last names.

@ali I created a new PR #181

the error listed above is a separate issue allowing longer email addresses
i added trimming for first and last name at registration

@bkellgren I think you meant to tag @karbassi, not me (@ali)


chore(main): release 0.5.0

:robot: I have created a release beep boop
0.5.0 (2024-08-28)
Features

Add load_from_parquet and save_to_parquet methods to Pixels class (9d106cb)
Add load_from_parquet and save_to_parquet methods to Signals class (47ccb2c)
Add load_from_parquet and save_to_parquet methods to Signatures class (ce30e67)

Bug Fixes

Update save_to_parquet method to include index in the saved file (36981a5)
Update typing annotations in from_paths (c827862)

Documentation

Update installation instructions with additional package managers (bf238a3)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v0.5.0
:sunflower:


Update BWC Test Version and Enhance Code Coverage

Description
This PR updates the BWC test version to 2.16 in the build.gradle file and includes additional integration and unit tests to improve code coverage.
Testing Performed:

Executed gradle build to ensure successful build and integration.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Not sure why WhiteSource Security Check failed. It shows it is scanning but never finishes. Will leave it as it is.


Added SQLite support

Added SQLite support
Fixed database import javascript code that was sending a null value

This module uses the following values when connecting to SQLite:
Database: location of sqlite file

OMG ! Thank you so much for this Chris !

Very nice! It looks like the JDBC driver is missing - you probably just need to add the corresponding dependency to extensions/database/pom.xml.

@wetneb I missed the updated pom file. Just added

Thanks! Now it looks like tests do not pass on Windows (via Appveyor). See this build:
https://ci.appveyor.com/project/openrefine/openrefine/builds/30973735

@wetneb Fixed and rebased

Thanks for the PR. This fixes #2281. This also adds the feature requested in #1951. In the future, let's separate bug fixes from features and also include references to the open issues that are addressed.


Better StackTraces with filtering and mapping lines

Let us say we have the following stack trace:
    Expected 'bar' to be 'bar1'
    assert@/Users/foo/Workspace/ws/examples/browser-js/test-dist/index.js:11066:27 <- ~/expect/lib/assert.js:29:0
    toBe@/Users/foo/Workspace/ws/examples/browser-js/test-dist/index.js:8037:28 <- ~/expect/lib/Expectation.js:86:0
    /Users/foo/Workspace/ws/examples/browser-js/test-dist/index.js:7909:75 <- test/unit.ts:31:48

First I'd like to filter stack traces from ~/except. Second I want to only see the original source (the part after <-).
I could actually hack the lib/reporter.js at line 92 like this to achieve this result:
    // filter lines
    msg = msg.split('\n').filter(line => !line.match(/~\/expect\/lib/)).join('\n');
    // map lines
    msg = msg.split('\n').map(line => line.match(/\/(.*)<-/) ? line.replace(/\/(.*)<-/, '') : line).join('\n');

The result will be:
    Expected 'bar' to be 'bar1'
     test/unit.ts:31:48

Can I achieve the same behaviour with existing APIs? Or can I add this behaviour with a pull request? I could imagine to add two new fields to the karma config (e.g. mapStackTraceLine/filterStackTraceLine) so everyone can set custom filter/map rules if needed.

I need these exact features.  I don't see where the APIs would allow it, short of writing a custom reporter.  I think a simple solution would be to expose an errorFormatter function in the config.  I was able to do this like so:
-var createErrorFormatter = function (basePath, emitter, SourceMapConsumer) {
+var createErrorFormatter = function (config, emitter, SourceMapConsumer) {
+  var basePath = config.basePath

...

    // indent every line
    if (indentation) {
      msg = indentation + msg.replace(/\n/g, '\n' + indentation)
    }

+    if (config.formatError) {
+      msg = config.formatError(msg)
+    }

    return msg + '\n'
  }
}

var createReporters = function (names, config, emitter, injector) {
-  var errorFormatter = createErrorFormatter(config.basePath, emitter, SourceMapConsumer)
+  var errorFormatter = createErrorFormatter(config, emitter, SourceMapConsumer)
  var reporters = []

Then in karma.config.js:
config.set({
  formatError(msg) {
    return msg
      .split('\n')
      .reduce((list, line) => {
        // filter out node_modules
        if (new RegExp('/~/').test(line)) return list

        // remove left hand side of "compiled <- source" string
        const indent = line.slice(0, line.indexOf('/'))
        const sliceEnd = ' <- webpack:///'
        const original = line.slice(line.indexOf(sliceEnd) + sliceEnd.length)
        return list.concat(indent + original)
      }, [])
      .join('\n')
  },
})

Turning this stack:
      AssertionError@/Users/levithomason/src/stardust/test/tests.bundle.js:296
:25 <- webpack:///~/assertion-error/index.js:74:0
      assert@/Users/levithomason/src/stardust/test/tests.bundle.js:4397:32 <-
webpack:///~/chai/lib/chai/assertion.js:107:0
      /Users/levithomason/src/stardust/test/tests.bundle.js:8978:20 <- webpack
:///~/chai-enzyme/build/assertions/descendants.js:22:0
      descendants@/Users/levithomason/src/stardust/test/tests.bundle.js:8983:8
<- webpack:///~/chai-enzyme/build/assertions/descendants.js:27:0
      /Users/levithomason/src/stardust/test/tests.bundle.js:9525:24 <- webpack
:///~/chai-enzyme/build/ChaiWrapper.js:193:0
      /Users/levithomason/src/stardust/test/tests.bundle.js:3984:31 <- webpack
:///~/chai/lib/chai/utils/addMethod.js:41:0
      /Users/levithomason/src/stardust/test/tests.bundle.js:72950:31 <- webpac
k:///~/dirty-chai/lib/dirty-chai.js:114:0
      /Users/levithomason/src/stardust/test/tests.bundle.js:4103:39 <- webpack
:///~/chai/lib/chai/utils/overwriteMethod.js:49:0
      /Users/levithomason/src/stardust/test/tests.bundle.js:184887:116 <- webp
ack:///test/specs/views/Feed/Feed-test.js:20:0

Into this:
      test/specs/views/Feed/Feed-test.js:20:0

It seems like a simple enough solution to allow users to parse the output themselves as a workaround.  @vojtajina @dignifiedquire any input on whether or not a PR would be accepted for this?  It would be a huge productivity boost to be able to see concise output and not have to scroll to read the errors.

I like this idea. I can see that this can be very useful to customise these easily.
If you do a PR, please make the default formatting the value that is set as default in the config rather than this manual check in the formatter.

Great, I'll put up a PR in a bit.  Can you clarify what you mean regarding defaults?

Thank you all, this is great.

It looks like msg in formatError(msg) isn't the whole error stack, but formatError is called for every line in the stack. Is this normal? E.g. I don't need to call msg.split('\n'), because it is already splitted...?

Hm, not my experience.  You can see our implementation with before/after results here: https://github.com/TechnologyAdvice/stardust/pull/490

I should clarify, we do only get the error after the failure message and PhantomJS/OS version line.  But it is a single string including line breaks.

Very strange. I wonder why my setup behaves differently. Because I get every single line for formatError and not the whole output I generate several empty new lines on my terminal when I try to filter out node modules :/
I use mocha and except. Maybe someone else has the same problem...
My output:
    ✖ dummy test 2
      PhantomJS 2.1.1 (Mac OS X 0.0.0)
    Expected 1 to equal 2

      + expected - actual

      -1
      +2

//empty line, was: assert@webpack:///~/expect/lib/assert.js:29:0 <- dist-tests/index.js:4741:27
//empty line, was: toEqual@webpack:///~/expect/lib/Expectation.js:81:0 <- dist-tests/index.js:7172:30
    ./tests/unit.tsx:27:2 // was: webpack:///tests/unit.tsx:22:31 <- dist-tests/index.js:15070:75

The two empty lines shouldn't be there...
Also very strange: my pattern is "source <- compiled" not "compiled <- source"?

Perhaps a difference in versions?  We're on the karma, webpack, mocha stack.
Regarding the source / compiled, I do know the choice of devtool will affect the stack trace.  It could be a different webpack devtool option will give different results.  I opted for the slowest but most verbose and accurate source-map option.  It gave me the best msg, method names, and ln/col numbers to work with.
Good luck!

We also ran into the issue with only receiving each line to the formatError method sometime after my last comment.  I hadn't had time to get back here.
The big problem is, you then can't filter out individual lines as the formatter always returns at the minimum a line break: msg + '\n' where msg is the return of your formatError function.
If we simply return the formatError's return value, then we can at least return '' to filter out lines. I'll make another PR for this and hope it makes it in.

Note, fix posted here: https://github.com/karma-runner/karma/pull/2627

Thank you!

Can we get some example configs? I copied your code and it did nothing to the stack trace
      formatError(msg) {
         return msg
            .split('\n')
            .reduce((list, line) => {
               // filter out node_modules
               if (new RegExp('/~/').test(line)) return list

               // remove left hand side of "compiled <- source" string
               const indent = line.slice(0, line.indexOf('/'))
               const sliceEnd = ' <- webpack:///'
               const original = line.slice(line.indexOf(sliceEnd) + sliceEnd.length)
               return list.concat(indent + original)
            }, [])
            .join('\n')
      },

User should be given simple options for this

See my response to your question here, https://github.com/rstacruz/mocha-clean/issues/5#issuecomment-331010426.
The usage changed slightly due to how the stack is passed.  Each line is passed one at a time, rather than the whole stack at once.

Thanks!
So I used your example:
      formatError(msg) {

         // Uncommment this to get rid of the entire stack trace, but then you don't know what happened
         // return ''

         // filter out empty lines and node_modules
         if (!msg.trim() || /~/.test(msg)) return ''

         // indent the error beneath the it() message
         let newLine = `  ${msg}`

         if (newLine.includes('webpack:///')) {
            // remove webpack:///
            newLine = newLine.replace('webpack:///', '')

            // remove bundle location, showing only the source location
            newLine = newLine.slice(0, newLine.indexOf(' <- '))
         }

         return `${newLine}\n`
      },

It did clean it up quite a bit, But I'm still getting some weird mode_modules stuff.
Error: No provider for Http! in config/karma.entry.js (line 3185)
      _throwOrNull@node_modules/@angular/core/@angular/core.es5.js:2649:0
      _getByKeyDefault@node_modules/@angular/core/@angular/core.es5.js:2688:0
      _getByKey@node_modules/@angular/core/@angular/core.es5.js:2620:0
      get@node_modules/@angular/core/@angular/core.es5.js:2489:0
      resolveNgModuleDep@node_modules/@angular/core/@angular/core.es5.js:9481:0
      _createClass@node_modules/@angular/core/@angular/core.es5.js:9524:0
      _createProviderInstance$1@node_modules/@angular/core/@angular/core.es5.js:9492:0
      resolveNgModuleDep@node_modules/@angular/core/@angular/core.es5.js:9477:0
      _createClass@node_modules/@angular/core/@angular/core.es5.js:9532:0
      _createProviderInstance$1@node_modules/@angular/core/@angular/core.es5.js:9492:0
      resolveNgModuleDep@node_modules/@angular/core/@angular/core.es5.js:9477:0
      get@node_modules/@angular/core/@angular/core.es5.js:10569:0
      resolveDep@node_modules/@angular/core/@angular/core.es5.js:11072:0
      createClass@node_modules/@angular/core/@angular/core.es5.js:10928:0
      createDirectiveInstance@node_modules/@angular/core/@angular/core.es5.js:10756:21
      createViewNodes@node_modules/@angular/core/@angular/core.es5.js:12197:33
      createRootView@node_modules/@angular/core/@angular/core.es5.js:12092:0
      callWithDebugContext@node_modules/@angular/core/@angular/core.es5.js:13475:25
      debugCreateRootView@node_modules/@angular/core/@angular/core.es5.js:12792:0
      create@node_modules/@angular/core/@angular/core.es5.js:9864:25
      initComponent@node_modules/@angular/core/@angular/core/testing.es5.js:889:0
      invoke@node_modules/zone.js/dist/zone.js:392:0
      onInvoke@node_modules/zone.js/dist/proxy.js:79:0
      invoke@node_modules/zone.js/dist/zone.js:391:0
      onInvoke@node_modules/@angular/core/@angular/core.es5.js:3890:0
      invoke@node_modules/zone.js/dist/zone.js:391:0
      run@node_modules/zone.js/dist/zone.js:142:0
      run@node_modules/@angular/core/@angular/core.es5.js:3821:42
      createComponent@node_modules/@angular/core/@angular/core/testing.es5.js:892:0
      createComponent@node_modules/@angular/core/@angular/core/testing.es5.js:656:0
      src-test/app-components/app/app.spec.ts:52:40
      invoke@node_modules/zone.js/dist/zone.js:392:0
      onInvoke@node_modules/zone.js/dist/proxy.js:79:0
      invoke@node_modules/zone.js/dist/zone.js:391:0
      run@node_modules/zone.js/dist/zone.js:142:0
      node_modules/zone.js/dist/jasmine-patch.js:104:0
      execute@node_modules/zone.js/dist/jasmine-patch.js:132:0
      invokeTask@node_modules/zone.js/dist/zone.js:425:0
      runTask@node_modules/zone.js/dist/zone.js:192:0
      drainMicroTaskQueue@node_modules/zone.js/dist/zone.js:602:0
      run@node_modules/core-js/modules/es6.promise.js:66:0
      node_modules/core-js/modules/es6.promise.js:79:0
      flush@node_modules/core-js/modules/_microtask.js:18:0

So I modified it a little and it works!
      formatError(msg) {

         // Uncommment this to get rid of the entire stack trace, but then you don't know what happened
         // return ''

         // filter out empty lines and node_modules
         if (!msg.trim() || /~/.test(msg) || /node_modules/.test(msg)) return '' // < --- modified this line

         // indent the error beneath the it() message
         let newLine = `  ${msg}`

         if (newLine.includes('webpack:///')) {
            // remove webpack:///
            newLine = newLine.replace('webpack:///', '')

            // remove bundle location, showing only the source location
            newLine = newLine.slice(0, newLine.indexOf(' <- '))
         }

         return `${newLine}\n`
      },

Thanks a ton @levithomason!


Introduce tj/migrate

Recrate #401 because closed accidentally by target branch was removed.

If this is required again, I will re-create PR


Ability to save log event timestamps in UTC or a custom time zone

Currently, log events are always saved with DateTime.Now which will use the machine's time zone. Instead, I suggest either switch this to UTC so the times are always consistent regardless of where the tests are executed or make this configurable.

It sounds good, @Piedone. I don't want to change the current behavior, in respect to backward compatibility. But I can add a configuration property to set the TimeZoneInfo value or its Id value. The default will be TimeZoneInfo.Local. Then you'll be able to set it with TimeZoneInfo.Utc.

Sounds perfect!

Hey @Piedone. This feature is implemented be #498. It's going to be release with Atata v1.11.0 next week.

Great, thank you!


Implement deletionProtection for the claims

Checklist

[x] The PR has a meaningful title. It will be used to auto generate the
changelog.
The PR has a meaningful description that sums up the change. It will be
linked in the changelog.
[x] PR contains a single logical change (to build a better changelog).
[x] Categorize the PR by adding one of the labels:
bug, enhancement, documentation, change, breaking, dependency
as they show up in the changelog.
[ ] Link this PR to related issues or PRs.

Passing E2E tests: https://github.com/vshn/component-appcat/actions/runs/10143941384/job/28046390380


Before decoration results in wrong border size

VSCode Version: 1.25.1
OS Version: Mac OSX 10.13.5

Steps to Reproduce:
const DECORATION = VSCode.window.createTextEditorDecorationType({
            before: {
                contentIconPath: path.resolve(__dirname, "../icons/boot-12.png"),
                margin: '0px 2px 0px 0px'
            },
            backgroundColor: 'rgba(109,179,63,0.25)',
            borderColor: 'rgba(109,179,63,0.25)',
            borderSpacing: '4px',
            borderRadius: '4px',
            borderWidth: '4px'
        });
// Code calculates ranges which are correct ranges
// ...
// Logic to calculate ranges
// ...
editor.setDecorations(this.DECORATION, decorations)

The above creates a decoration that looks like:

Looks like background is coloured first then the before decoration appears but background is not redrawn. If I collpase/expand something in the editor the background color is is placed correctly within the specified range accounting for the before decoration.
Also a question: why is the image in before decoration a few pixels over the bottom? The bounds seem to be correct, but the image is shifted... Mystery... Any chance the icon in before decoration grows as text font grows?
Does this issue occur when all extensions are disabled?: Yes

Looks like background is coloured first then the before decoration appears but background is not redrawn.

I believe the background is correctly drawn. But perhaps the image is not finished loading. Since this is a CSS pseudo element we don't have a lot of options here on our side. i.e. I don't think we can listen to pseudo element's background images finishing loading. Have you tried giving an explicit width and height ?

why is the image in before decoration a few pixels over the bottom?

Perhaps giving an explicit width and height might help in this case too.

Any chance the icon in before decoration grows as text font grows?

You could read the editor's settings and adjust the width and height on your side. e.g.:
function readEditorLineHeight() {
	const MINIMUM_LINE_HEIGHT = 8;
	const MAXIMUM_LINE_HEIGHT = 150;
	const GOLDEN_LINE_HEIGHT_RATIO = (process.platform === 'darwin') ? 1.5 : 1.35;

	const editorConfig = vscode.workspace.getConfiguration('editor');
	const fontSize = editorConfig.get('fontSize');
	let configuredLineHeight = editorConfig.get('lineHeight');

	function clamp(n, min, max) {
		if (n < min) {
			return min;
		}
		if (n > max) {
			return max;
		}
		return n;
	}

	function safeParseInt(n, defaultValue) {
		if (typeof n === 'number') {
			return Math.round(n);
		}
		let r = parseInt(n);
		if (isNaN(r)) {
			return defaultValue;
		}
		return r;
	}

	let lineHeight = safeParseInt(configuredLineHeight, 0);
	lineHeight = clamp(lineHeight, 0, MAXIMUM_LINE_HEIGHT);
	if (lineHeight === 0) {
		lineHeight = Math.round(GOLDEN_LINE_HEIGHT_RATIO * fontSize);
	} else if (lineHeight < MINIMUM_LINE_HEIGHT) {
		lineHeight = MINIMUM_LINE_HEIGHT;
	}
	return [fontSize, lineHeight];
}


Flav/fix eslint consistent type imports

Description

This PR adds a new ES lint rule to enforce that named type-only specifiers only ever written as part of a top-level, type-only import and never with an inline marker.
Wrong ❌
import { Err, Ok, type Result } from<EMAIL_ADDRESS>
Correct ✅
import type { Result } from<EMAIL_ADDRESS>import { Err, Ok } from<EMAIL_ADDRESS>
Risk

not opposed at all, but FMI, why ?

See IRL, the goal is to ban the use of inline type-only markers.


How to share code with web app?

I want to be able to serve my sveltekit/vite app both from a web server and from electron. I've scaffolded my project using electron-vite, so my fronted sources are in src/renderer. How to serve them using vite dev? I get an empty page if I serve it from the repository root, and if I change the vite root to src/renderer, then imports don't work since there's no package.json and node_modules there.

Is anyone willing to pay a fee for this?

We are doing this with our Vue app. Maybe there's something there that can help you.


emscripten 1.29 -> 1.35

also updates to store files in $out/share/emscripten instead of $out/bin.

cc @bosu

It's fine by me, thanks!

also: nox-review succeeds on my machine


Switching to non-fullscreen doesn't work on Windows 8.1

I want to use this function to switch between monitors and fullscreen/windowed at runtime.
fn window_context_builders<'a>(cur_monitor: usize, fullscreen: bool) -> (glutin::WindowBuilder, glutin::ContextBuilder<'a>) {
	let mut monitors = glutin::get_available_monitors().collect::<Vec<_>>();
	let i = cur_monitor % monitors.len();
	let monitor = monitors.remove(i);
	let window = glutin::WindowBuilder::new();
	let window = if fullscreen {
		window.with_fullscreen(monitor)
	} else {
		let (w, h) = monitor.get_dimensions();
		window.with_dimensions(w * 4/5, h * 4/5)
	};

	let context = glutin::ContextBuilder::new()
		.with_vsync(true)
	;
	(window, context)
}

It doesn't work correctly:
When I call it with cur_monitor 0 and fullscreen true, and then with the same monitor and fullscreen false, it STILL returns a fullscreen window (and I can see that it doesn't flicker/destroy the old fullscreen window). (The cur_monitor doesn't matter, the important part is calling it with fullscreen false after fullscreen true). If I then call it again with toggled fullscreen (true) I can see the flicker from destroying the old fullscreen window and then it creates the new fullscreen window.
So I can't get out of fullscreen mode by setting fullscreen to false, only when fullscreen has been set to false and then I increase cur_monitor, THEN it will give me a non-fullscreen window. But that's a workaround and shouldn't be necessary.
It should build the window as non-fullscreen when fullscreen is false.

I'm fairly certain this has been fixed. Feel free to re-open if I'm wrong.


Firefox version

Please vote on this issue if you want a Firefox version of this extension.

Firefox extensions use the same format as Chrome. Firefox's test page tells me that this extension is compatible: https://www.extensiontest.com/test/2f88c5d0-d3ee-11e8-965a-29ce3f6f21ba
Is there any technical obstacle in packaging the extension for Firefox?

@kallepersson After load into Temporary Add-on of Firefox, it works as expected.

@kallepersson Do you have plans on making the Firefox version? I may try to create the manifest if you don't have the time, as I really want this extension to be on Firefox.

Me too. I could give some help if needed (but I need to learn how to dev a Firefox extension!)

Is there any update on a FF version?

FF version is here.
https://addons.mozilla.org/en-US/firefox/addon/inbox-theme-for-gmail/
@kallepersson Check this out when you have free time, I uploaded this extension to FF Add-ons and filled the information as you wrote in Chrome extension, if you think this is not ok please let me know I will remove it.

Should be good if it gets a dark version and wallpaper support.

I suggest updating the web page at http://flowapps.co/inboxtheme/ with the link to the Firefox version

Not sure what has changed but noticed recently that the search bar was getting messed up. Would love a fix but understandable if it's not coming.


Consider deprecating environment.variables in favour of environment.sessionVariables

From what I understand, environment.variables is designed to hook into each shell's configuration:

/etc/profile for bash
/etc/zshenv for zsh
/etc/fish/nixos-env-preinit.fish for fish
...

The x11 wrapper also sources these variables indirectly through bash's /etc/profile: https://github.com/NixOS/nixpkgs/blob/46468d801d2eaadbfabf7be04e59acdde61efb22/nixos/modules/services/x11/display-managers/default.nix#L61
Which only works when other shells are enabled because there's no option to disable bash:
https://github.com/NixOS/nixpkgs/blob/46468d801d2eaadbfabf7be04e59acdde61efb22/nixos/modules/programs/bash/bash.nix#L114
Although, I keep running into scenarios where environment.variables doesn't get applied, and I end up resorting to environment.sessionVariables instead:

#109060
#265886

It seems like environment.sessionVariables can always be used in place of environment.variables and is more reliable. Is there any reason to keep using environment.variables?

Another approach I also considered is to fold environment.sessionVariables into environment.variables so environment.variables always gets sourced by PAM and then deprecate environment.sessionVariables, but that seems a lot more likely to break people's existing configurations.

A data point from my nixos-config.git repo, which explicitly relies on environment.variables:
    # Not using environment.sessionVariables due to PAM not liking
    # values like BORG_REPO =<EMAIL_ADDRESS>When running
    # sudo with such a config this shows up in the journal:
    #
    # sudo[13522]: pam_env(sudo:session): Expandable variables must be wrapped in {} <@srv1.local:whitetip.borg> - ignoring
    environment.variables = mkIf (cfg.jobs ? "default") {
      BORG_REPO = "${cfg.jobs."default".repository}";
    };

I'm happy to migrate to environment.sessionVariables if shown how.

Not sure if this is kinda off-topic for this discussion, but I feel like the current behaviour of environment.sessionVariables is very strange. It forces you to treat it as if you were declaring environment variables for your shell, but if I'm understanding correctly it applies twice - once in /etc/pam/environment and another time in /etc/profile? At least that's the way it seems to me.
For example, if I wanted to, for some reason, change my HOME variable such as HOME=${HOME}/Local it would result in something like /home/alice/Local/Local rather than /home/alice/Local. If I were using a normal /etc/security/pam_env.conf file this wouldn't at all be a problem - I could do HOME   DEFAULT=@{HOME}/Local and it wouldn't then also run when /etc/profile is parsed.
Would it not be better to properly separate environment.sessionVariables and environment.variables as they do not do the same thing? The "pam style variables" also serve a slightly different function to environment variables within the pam_env file - you can set HOME and use it within pam_env.conf as ${HOME}, but you can still use the @{HOME} variable within pam_env.conf to set other variables.
Sorry if this is a little off topic, I'm just not sure what purpose there was in merging environment.sessionVariables and environment.variables in the first place.

@Makrennel It looks like it was for convenience? Seems like it causes more trouble than it's worth though: https://github.com/NixOS/nixpkgs/pull/30418.

    # sudo[13522]: pam_env(sudo:session): Expandable variables must be wrapped in {} <@srv1.local:whitetip.borg> - ignoring

I'm happy to migrate to environment.sessionVariables if shown how.

@bjornfor Now that I look at it, I think this partially goes towards what I'm saying with regard to the NixOS option obfuscating the pam_env syntax: pam_env has some of its own variables starting with @ and it will try to expand them if they are wrapped with curly braces. This shouldn't actually stop pam from declaring the variable as you specified because it isn't followed by curly braces, it'll just pollute your journal with warnings. I'm pretty sure if you want to stop the warnings you can just escape the @ with a backslash.
But I think this goes towards what I'm saying in that I think the syntax obfuscation along with running twice from both pam and /etc/profile. I would probably agree with @kira-bruneau that generally it is better to declare variables in environment.sessionVariables so that pam can manage them universally without hooking into the shell scripts, but I think it'd be best to also stop obfuscating the syntax as it is, and not duplicate the declaration into /etc/profile. That said, I'm in favour of moving the current environment.variables to environment.shellVariables – the distinction between sessionVariables and variables isn't very clear as it is right now.


Wrong version for jool dependency in sequence-api

Hi,
I use the current version of the cyclops-try lib and got an compile error because the 'jool' version is not properly set in the sequence-api dependency:
    <dependency>
      <groupId>org.jooq</groupId>
      <artifactId>jool</artifactId>
      <version>joolVersion</version>
      <scope>compile</scope>
    </dependency>

The error was introduced with this commit: https://github.com/aol/cyclops/commit/3d47d32137c45112048fb9ea047d42c710dc3c67#diff-79384ab05567c9cefb8bcfd800a96a63

Fixed and merged with pull request: https://github.com/aol/cyclops/pull/84


objects/arrays in getters not reactive?

Hiyah. Not sure if this is a bug or intended behaviour.
On vue 3 I have array of options. I just wanna get the "default one".
getOption: state => state.options[0],
Doesn't seem to be updating if I update options.
both of these work:
getOption2: state => computed(() => state.options[0]),
getAllOptions: state => state.options,
docs say:

Getters are exactly the equivalent of computed values for the state of a Store

so should it work without wrapping it in computed?

Add a reproduction repository please

https://codesandbox.io/s/pinia-vue-3-demo-forked-hou3o?file=/src/App.vue


Rework multiplayer queue to expose item ordering to clients

Prereqs:

[ ] https://github.com/ppy/osu-web/pull/8408
[ ] https://github.com/ppy/osu/pull/15890 (circular dependency)

Adds the new PlaylistOrder field to MultiplayerPlaylistItem and related classes, which allows the server to communicate the order with clients.

This now also sets PlaylistOrder for historical items too, resolving https://github.com/ppy/osu/pull/15890#discussion_r760825945.
I'm not 100% sure on the implementation of updatePlaylistOrder - ideally I'd keep the number of PlaylistItemChanged callbacks to a minimum, but it should be adequate for the time being and can be iterated on later.
Also, I haven't changed the round robin algorithm, which is also something for a further PR.

I'm fine with this PR as it stands, but I guess it's best to leave it open until the database structural changes are completed?

Code seems fine to me now, but I haven't tested this in any real capacity yet.

I've pushed this out to the dev server for testing.


update to 1.1.1+17

this commit belongs to the pypdfium2 branch and before Jul 4th (the date of release of pypdfium2 4.18.0) the last commit was 10b2b4be34c671613b3c4483bc068fa34e0a4d9e.

Linter check found the following problems:
The following problems have been found:
ERROR: clone/recipe/meta.yaml:24: host_section_needs_exact_pinnings: Packages in host must have exact version pinnings, except python build tools.
Errors were found

Linter check found the following problems:
The following problems have been found:
ERROR: clone/recipe/meta.yaml:24: host_section_needs_exact_pinnings: Packages in host must have exact version pinnings, except python build tools.
Errors were found

can we test here if header exists ? looks like it do not for windows

actually I think it is dependency issue, so LGTM


Results from encoding with 44kHz model at 8kbps does not yield an 8kbps encoding

Hello,
I am running the example script with the 44kHz model at a 8kbps bitrate but when I manually calculate the bitrate it ends up being 16kbps. I have encountered the same issue with running the 16kHz model at 8kbps bitrate, I calculate the actual bitrate to be ~20kbps. The audio sample I used for both are sample at 44.1kHz and 16kHz respectively and both mono channels. Curios if anyone had gotten this issue?

I have the same problem and the results are the same as yours! The actual bitrate is ~20kbps, what's wrong with it?

@fred5825 "44kHz model at a 8kbps bitrate but when I manually calculate the bitrate it ends up being 16kbps. " --- maybe you're using the 16 kbps model?

Hi, I would like to report unexpected results as well in terms of bitrate.
My colleague and I have used the examples provided from the main github page. We applied the compress method to a 9.62 second audio file in .wav format. The resulting bitrate is:

~16kbps for the 44.1kHz model
~57kbps for the 24kHz model.

Generally the library is poorly documented with not enough explanation as to what the values are which are returned from the encode method (z, codes and latents) as it is unclear which should be used for storing compressed audio. We inspected the source code and concluded that the compress method stores the variable codes as uint16 into a DACFile. When using method decompress, the codes variable is used to recreate z from which audio is reconstructed.

any update here?


feat: Use native OSTk core objects in NumericalSolver

We're just going to land #141 which includes all the above.


Reports

@alanvardy how do you like this approach?
Basically Report module would be responsible for simple reports like those done today / done yesterday.
For now, I added 3 variants to try it out.
I think that we can build on this skeleton further by making interactable report variants, applying some sorting methods, etc. (but we will need to decide how we would provide arguments for it)
For now, I added done_yesterday, done_today, and due_today (I run out of good chars for short flags, maybe you can help me here =) ).
Would like to hear your opinion and suggestions, if it looks ok would write some tests after the initial review.
I really dislike if else forest in task list fn, but I think I can refactor it later.

Hi, unfortunately, I don't have time to work on it at the moment.
You can complete it if you want, I don't mind =)
I, probably, wouldn't be active for a week or two. Have a lot on my plate right now.

Still need a week or two. But I have a little bit of time to occasionally do a review/fix bug, for example.
@alanvardy
When I finally would have time to contribute, how do you like the idea to create some kind of chat in Discord where we can discuss the tod project? Direction, goals, etc.

That is a really interesting idea, I would prefer to not use Discord, only because I am not currently on there. Would Slack suffice? I can set up a free plan and invite you and @stacksjb if y'all would like me to. I understand that sometimes just being able to chat in realtime helps move conversations along.
Whatever doesn't need to be realtime-ish will hopefully stay on GitHub though so that there is a single source of truth for people coming to the repo.

Closing due to inactivity, feel free to reopen when you are ready!


health scanner reprocessing 4

[x] Meetup: add MeSH labels (#127) – done in #166
[x] all: add a temporary ranking to measur novelty (*) – done in #164 and #166

Related to: #81, #96, #102, #126
(*) not tot be confused with Rohodonite's novelty (#94)

Closed by #164 and #166


add mapped_futures

Adds the functionality asked for in this issue: https://github.com/rust-lang/futures-rs/issues/2329. I wanted this feature, searched for it, found only people wishing that the feature existed, and so decided to write it myself. A previous attempt that wrapped FuturesUnordered didn't work; I wanted to avoid anything unsafe which I haven't used before. Having worked with it now though, I can see that unsafe rust is really just C with some guardrails.
The motivation is to have a HashMap that can run futures. Adds the MappedFutures struct, which supports inserting, get_muting, cancelling, removing, and replacing futures by key, and running them in an identical style as FuturesUnordered.
Internally it uses a HashSet and adds a hashable wrapper around the Task struct from FuturesUnordered.
In terms of ergonomics, the API is perhaps a bit confused, including both the insert(key, fut) -> bool and replace(key, fut) -> Option<Fut> methods which are more similar to the methods of HashSet than HashMap. The source of this confusion is that some methods can only work if the Future is Unpin; ie. anything that would return an owned future or future reference.
Some justifications:

I set the output for the stream as (key, fut_output) to be similar to a LinkedHashMap, which in some ways this library is similar to (but with next().await in place of pop_front(). I think it will be typical for a consumer to want to know the key of whichever future has completed, though of course any future could be mapped as such prior to insertion.
an earlier version used HashMap internally, which was the obvious solution for a struct which is "A hashmap that runs futures", but returning the key with the output required having a copy of the key in both the HashMap and in the Task, and so the Key had to be Clone. I added a wrapper HashTask for Arc<Task> which is placed in a HashSet to get around this requirement. Its possible that a different solution would have worked (like pointers to and from a Key wrapper and Task), but this method seemed the most expedient.

Potential improvements:

Allow selecting which hasher to use, like how HashSet does. This should be a pretty easy change.

I did already publish these changes in a crate which I will yank if this gets merged. https://crates.io/crates/mapped_futures

I'm also considering further additions for more complex data structure support, such as:

MultiMapFutures which allows a key to index for one or more futures
BiMapFutures which allows futures  to be accessed from either of two key types (really the BiMap is between Key-Value pairs, neither of which is a future, and each pair is associated with a future) where each key and value must be unique
BiMultiMapFutures which is like BiMapFutures, but allows duplicates among keys and values, so that each key or value may index to one or more futures, though each key-value pair will index to only zero or one futures.

Thanks for the PR! It looks like a lot of the code added here is a copy from FutureUnordered. Is it possible to replace some of them with re-exports or wrappers for the types and functions used in FutureUnordered?

Thanks for the PR! It looks like a lot of the code added here is a copy from FutureUnordered. Is it possible to replace some of them with re-exports or wrappers for the types and functions used in FutureUnordered?

This was my first approach, but it didn't work out. This PR required several small internal changes to FuturesUnordered, such that I don't think it would be possible to implement this as a simple wrapper. However, it may be possible to do so by making changes within the actual FuturesUnordered module that would make it easier to reuse. I'll look into that.

@taiki-e
I've implemented a new module futures_keyed which contains most of the code that was in futures_unordered. futures_unordered and mapped_futures now consume the API of futures_keyed. There is more work to do, and there are some things about this implementation that are not ideal
Work remaining:

implement more mapping types, like mapped_streams, bi_multi_map_futures, and bi_multi_map_streams, which I have implemented in the mapped_futures crate, but I wanted to check whether what I have so far is acceptable to this crate's maintainers before going further
other housekeeping, remove commented code, add more comments and documentation, implement Debug on some structs to silence compiler warnings

Things that aren't ideal

The API for futures_keyed adds the ReleasesTask trait, and consumers that contain KeyedFutures must provide an implementor of this trait. I personally find this to be very unergonomic, but it was the only way I could think of to make this change. The API for futures_unordered is of course unchanged, but internally it now creates a DummyStruct that implements ReleasesTask using logic that does nothing, since the existing FuturesKeyed::release_task() contains all necessary logic. This trait was necessary so that a consumer can remove residual elements from its more-complex data structure if release_task is called. Ex. MappedFutures uses a HashSet of Tasks, but calling release_task on the Task will not remove the corresponding struct from the HashSet; now release_task() will handle that by calling code from the trait.
I guess that's all

Please let me know of any problems with this implementation; if you find none then I will proceed with implementing more consumers of futures_keyed

I've implemented a new module futures_keyed which contains most of the code that was in futures_unordered.

Thanks.

implement more mapping types, like mapped_streams, bi_multi_map_futures, and bi_multi_map_streams, which I have implemented in the mapped_futures crate, but I wanted to check whether what I have so far is acceptable to this crate's maintainers before going further

For now, I would like to add a minimum (mapped_futures and mapped_streams; other ones are implemented on top of them, right?).

I couldn't think of a better name than futures_keyed; perhaps futures_unordered_internal. It might be better to not say "keyed" since there is the potential to use the new key field of Task for things other than keys.

Yeah, futures_unordered_internal would be better.

@taiki-e
I've addressed your comments and some merge conflicts resulting from work over the past few months. Let me know if there's anything else; I should be able to address comments more promptly in the near future.

Also, the crate I published evidently has unsound causes this bug in tokio: https://github.com/StoicDeveloper/mapped_futures/issues/4
That issue will obviously have to be resolved here before this PR can proceed.

I found unsoundness by running this PR's tests through miri. The unsoundness comes from the potential for a dropped task to still have a pointer in the ReadyToRunQueue, which will get dereferenced during polling. Solutions may include:

add to Task Option and Option fields that can be used to set remove an item from the queue if it gets cancelled
drop the future on cancellation, but don't drop the task. Instead check during ReadyToRunQueue dequeue() whether the future was dropped. If so, dequeue again and drop the current task.

I'm leaning towards the latter as the simpler option, and its runtime cost should be negligible, but I'm open to suggestions.

This probably needs to be rebased after the breaking changes in 0.3.31. I'd really like to see this get merged into futures-rs, as I think it addresses a big gap in functionality, but there hasn't been a comment from an owner in over a year now.


Support Tailwind CSS integration and styles

What version of starlight are you using?
0.0.11
What version of astro are you using?
2.5.5
What package manager are you using?
npm
What operating system are you using?
Mac
What browser are you using?
Chrome, Firefox
Describe the Bug
Adding @astrojs/tailwind and using Tailwind CSS utilities in the content should apply the generated CSS.
The integration was added using npx astro add tailwind and the following tag and utility classes are added to src/content/docs/index.md.

Tailwind CSS should work

The base.css is not loaded and thus the styles are not applied, see the Stackblitz demo.
Link to Minimal Reproducible Example
https://stackblitz.com/edit/github-ypma4c?file=src%2Fcontent%2Fdocs%2Findex.md
Participation

[X] I am willing to submit a pull request for this issue.

The following workaround applies the styles correctly.
https://stackblitz.com/edit/github-ypma4c-otrxul?file=astro.config.mjs
Disabling applyBaseStyles for the tailwind integration and providing a customCss file for startlight
import { defineConfig } from 'astro/config';
import starlight from '@astrojs/starlight';

import tailwind from '@astrojs/tailwind';

// https://astro.build/config
export default defineConfig({
  integrations: [
    starlight({
      title: 'My Docs',
      customCss: ['./src/styles/base.css'],
    }),
    tailwind({
      config: {
        applyBaseStyles: false,
      },
    }),
  ],
});

Add the base.css with the tailwind directives.
/* src/styles/base.css */
@tailwind base;
@tailwind components;
@tailwind utilities;

Should this be added to the docs?

Thanks for opening the issue and for sharing that workaround! I’ll have a think what the best approach is. Would be nice not to force the extra customCss requirement, but may be necessary.
How usable do you think Tailwind is without the @tailwind base?

Yes I think it would be good if it works without customCss, but may be it will do for the beginning.
Tailwind adds preflight styles to the @tailwind base layer to reset styles cross-browser for better consistence. Maybe this is already done for starlight.
There would also be another way to keep the @tailwind base and disable preflight in the tailwind config. This way Tailwind still adds defaults for things like translate, ring etc.
/* src/styles/base.css */
@tailwind base
@tailwind components;
@tailwind utilities;

and
// tailwind.config.cjs

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'],
  corePlugins:{
    preflight: false, // disabling preflight styles
  },
  theme: {
    extend: {},
  },
  plugins: [],
};

Ah, yes, only disabling preflight sounds closer to ideal. Starlight does add a minimal reset, although it's not identical to Tailwind's. I think the one that could cause an issue is the default border style they apply — you'd likely need a more verbose syntax to enable borders, e.g. class="border border-current border-solid".
For what it's worth, I believe the fact that customCss is needed here, is an Astro bug. Haven't had time to make a minimal reproduction yet but will do that.
Eventually we should add a styling customisation guide to the docs, so once we figure out how to best make this work, we can definitely add a "how to use Tailwind" section to that.

Yes you are correct, disabling preflight will cause issues with the default boarder styles. I put together a simple TailwindPlay example. When you change the preflight option to false all the border styles and some more styles are lost.
This is how it looks when added to the Starlight content: https://stackblitz.com/edit/github-ypma4c-rg4gmw?file=tailwind.config.cjs
I also noticed some additional margin added to the div by the Markdown Content styles.
https://github.com/withastro/starlight/blob/86887786d158e4cdb9e4bd021b2232eb6dba284c/packages/starlight/components/MarkdownContent.astro#L5-L10

Maybe we could add a class not-content to undo the content style or even allow customising the Markdown Content style class name to e.g. prose if someone would like to use the @tailwindcss/typography plugin.
https://github.com/withastro/starlight/blob/86887786d158e4cdb9e4bd021b2232eb6dba284c/packages/starlight/components/MarkdownContent.astro#L1
Yes I think a guide for how to use Tailwind would be a good start.

Thanks for taking a look. I wonder if it’s practical to improve compatibility and have the Starlight reset be closer to Tailwind’s. Could be tricky to maintain I guess.
By the way, looks like you’re building some card links, right?
We’re planning to add support for landing pages and some reusable components like that soon just to give you a heads up! Will include cards and some call to action buttons:

Yes also not quite sure how to handle the compatibility from Starlight reset with Tailwinds.
Yes correct, I was planing to build some card links with Tailwind CSS. That sounds and looks awesome! Custom landing page sounds good too.
Let me know if I can help with the Tailwind setup documentation or anything else related.

Note: How to enable dark mode with Tailwind supporting data-theme="dark" from Starlight
// tailwind.config.cjs

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'],
  darkMode: ['class', '[data-theme="dark"]'], // support dark mode 🌑
  corePlugins:{
    preflight: false, // disabling preflight styles
  },
  theme: {
    extend: {},
  },
  plugins: [],
};

Thanks for sharing!

Using Tailwind colors to override starlight css variables
/* src/styles/base.css */
@tailwind base;
@tailwind components;
@tailwind utilities;

@layer base {
  /* Dark Theme */
  :root {
    --sl-color-white: theme('colors.white');
    --sl-color-gray-1: theme('colors.gray.200');
    --sl-color-gray-2: theme('colors.gray.300');
    --sl-color-gray-3: theme('colors.gray.500');
    --sl-color-gray-4: theme('colors.gray.600');
    --sl-color-gray-5: theme('colors.gray.700');
    --sl-color-gray-6: theme('colors.gray.800');
    --sl-color-black: theme('colors.gray.950');

    --sl-color-text-accent: theme('colors.teal.200');
  }

  /* Light Theme */
  :root[data-theme='light'] {
    --sl-color-white: theme('colors.gray.900');
    --sl-color-gray-1: theme('colors.gray.800');
    --sl-color-gray-2: theme('colors.gray.700');
    --sl-color-gray-3: theme('colors.gray.500');
    --sl-color-gray-4: theme('colors.gray.400');
    --sl-color-gray-5: theme('colors.gray.300');
    --sl-color-gray-6: theme('colors.gray.200');
    --sl-color-gray-7: theme('colors.gray.100');

    --sl-color-text-accent: theme('colors.teal.700');
  }
}

While not related, I wish there is a way to change the theme itself using Tailwind CSS.

I also noticed some additional margin added to the div by the Markdown Content styles.

@marcjulian, did you find a way to accomplish the "not-content" styling so global margin-top styles don't apply to components in Markdown?

@evan-dunkel I haven't looked into not-content yet. I guess this would need to be considered in the content styles.
As a workaround you could use !mt-0 to override the margin top styles for your components.

One option is to adopt the tailwind present, preflight, and write the rest of the Starlight CSS on top of it

Thought I should give a small update in this issue. We’re waiting on https://github.com/withastro/astro/issues/7563 to fix basic Tailwind usage in Starlight routes and also would like to ensure better compatibility for a smoother experience when folks are adding Starlight to sites that have an existing Tailwind config — for example compatibility with Preflight. Still researching what that would take and will want to ensure we’re not negatively impacting people who don’t need Tailwind, but will keep you all posted.
In the meantime, Starlight v0.5.0 does include a not-content class, so you should be able to avoid !important styles like !mt-0 in your components by using that.

Sounds great. Do you think once this is figured out we should add Tailwind usage to the docs or even create a starwind (starlight + tailwind) example?

Yes, part of the aim would be a simple recipe of steps to follow to add Tailwind to a Starlight site, including documenting any gotchas that remain, and we could make a template in examples/ with this pre-configured, so that people can also quickly create astro using that template.
Hadn’t thought of calling it starwind but does sound good! 🤩

Let me know if I can help you out the the recipe or the starwind example and even helping to figure out better compatibility between Starlight + Tailwind.

Thanks so much for the offer @marcjulian! I just pushed up #337 with a draft PR that adds a Tailwind plugin and a starter template — docs still needed. Would be really curious about feedback from you (and everyone else in this thread)!


Fix hostname on role creation curl command

Prior to the this commit, if you were using the code_manager
profile on a split install it would incorrectly try to curl the
NC api on the master node.
After this commit, it should correctly curl the hostname of the NC
This has no impact on the functionality of the code on a monolithic
PE installation.

:+1:

@glarizza merge this?


Update README.md

Compatibility with DNAC <IP_ADDRESS>

Thanks for testing it out on another version of DNAC and opening a PR!


Include number of replacements in Report

Current Report:
replacements:
  - 10-0-22-225: x-ipv4-000014-x
    10-0-129-220: x-ipv4-000008-x
    10-0-151-183: x-ipv4-000010-x

Proposed Report:
replacements:
  - 10-0-22-225:
    replacedWith: x-ipv4-000014-x
    total: 12
  - 10-0-129-220:
    replacedWith: x-ipv4-000008-x
    total: 1
  - 10-0-151-183:
    replacedWith: x-ipv4-000010-x
    total: 350

This is tracked in our backlog in CFE-131.

implemented with #65


Security configuration with redis support.

Motivation
Add redis to hold session.
Progress

[x] Moved critical passport.js JWT token implementation that was
interacting with session config (required for documentation)
[x] Moved to use users as JWT payload (minor change with huge production implications)
[x] Refactored config - to improve our documentation (minimize sets of steps for keycloak)
[x] Included redis session into the code.
[x] Configured session to be based on redis.
[x] Improve coverage and unit tests spies.

Additional Notes
Steps to verify:
Keycloak and passport separately

Login to portal application
Restart server
Go back. Session should still be valid and user should be logged in.

Changes Unknown when pulling a271bada88994edfae8461c06e1a87385fee3670 on wtrocki:RAINCATCH-1176 into ** on feedhenry-raincatcher:master**.

Changes Unknown when pulling 950f041cf618828d10e1dd41221062f85e1149df on wtrocki:RAINCATCH-1176 into ** on feedhenry-raincatcher:master**.

Changes Unknown when pulling 950f041cf618828d10e1dd41221062f85e1149df on wtrocki:RAINCATCH-1176 into ** on feedhenry-raincatcher:master**.

Changes Unknown when pulling 5506cea599f984c97249f8ba95ff3f5f3b290fe4 on wtrocki:RAINCATCH-1176 into ** on feedhenry-raincatcher:master**.

Changes Unknown when pulling 5506cea599f984c97249f8ba95ff3f5f3b290fe4 on wtrocki:RAINCATCH-1176 into ** on feedhenry-raincatcher:master**.


Add documentation describing how to set up Xcode debugging

I’d like to add an example of taking a Metal app that’s completely written in Rust and debugging it in Xcode.
I’ve never actually done this - but I have some thoughts on how to approach it.
On mobile so might have typos

Add an example that just imports one of the other examples (such as the textured quad example). So the imported example would have to expose a “run” method. Use an environment variable to make the shader compilation include debug info. (So that when people copy paste the build script for their real project they aren’t accidentally generating debug builds without realizing)

Our Xcode debugging example would compile to a dylib that exposed a single method to run it

Xcode example would have the smallest possible Xcode project that links to and runs the Rust generated dylib

In the README of the example we include a screenshot or two of an Xcode debug session as well as any important notes / caveats if there end up being any

The nice part would be that the Xcode project would be immediately re-usable for any application since it does nothing but run a dylib.
One reason that I can think of against adding this example is that in general Xcode tends to feel bloaty (or at least that was my experience 6 or so years ago). I think that this is mitigated by having a project that does nothing more than run a linked library.
Another question might be - does this belong in metal-rs or a separate repo?
My thinking would be that being able to debug your shaders can be such a timesaver as well as such a cool demo as well as something you might not have thought of (I can still use Xcode tools with my entirely Rust app?!?!) that it belongs alongside the core examples.
Once people know how to run Xcode tools on their Rust app this means they now also know how to profile shaders, as well as anything else you might want to lean on Xcode’s user interface for (anything you want to visualize).
So this one example would unlock all Xcode tooling for the developer.
To repeat - I’ve never actually done this so it sounds good on paper but who knows what gotchas might exist.
But that’s the point of the example. We discover the solutions to those and present it in a nice tidy little example.
Let me know your thoughts and where you agree or disagree!

Thank you for filing your thoughts here!
We've been using XCode extensively in gfx/wgpu land to debug Metal pure-Rust applications. There is no need to have any infrastructure to do so, or any dedicated example.
There was a nice picture showing how to set it up somewhere (cc @grovesNL). Perhaps all we need is to make a Wiki page with a few pictures describing this?
The steps are basically:

Create a new project with "External Build System" type and "$(HOME)/.cargo/bin/cargo" tool
Edit Scheme -> Info -> Executable point to the executable you build
Optionally set up the environment, arguments (in Arguments) and working dir (in Options)

That's it!

Woah - that’s awesome!
A wiki page describing this sounds good to me. Along with a link to it from the README.
Sweet - glad this turned out to be even easier than I originally thought

Quick update. I plan to do this whenever I need to use Metal's debugging tools.
No idea when that will be - but when it happens I'll PR a markdown file with some screenshots and maybe @kvark can take that and copy paste it into a Wiki for this repo (although I personally prefer either docs/some-markdown-files.md or an mdbook but I don't have a strong opinion here so whatever works!)

Going to leave this open until I move the docs from the markdown file to the wiki as discussed in https://github.com/gfx-rs/metal-rs/pull/151#pullrequestreview-443431275

@chinedufn you don't have to. I just wanted to make sure that you can do that, but if you prefer the markdown in code, I'm totally fine with that too.

Oh - sweet I'm leaving it as markdown then.
Cheers!


Missing field refresh_token_expires_in for Keycloak in V2

OAuthToken class looks for refresh_token_expires_in for all providers. Keycloak uses refresh_expires_in for refresh token expiration. This has regressed since V1

"Fixed" by removing refreshTokenExpiresInSeconds() and refreshTokenExpiresAt() in the latest beta


STL-2073 | Removed initial db migration | Fixture adapted

Short Description

Database migration initially used is now removed.

Changes

Run_migrations removed from database.py, including unnecessary code
Fixture in conftest adapted so that it doesn't rely on the removed run_migrations anymore

Feedback

Anything missing?

How to review this Pull Request
Link to Confluence (internal)

@punknoir101 small reminder here :)