hostapd-2.6: libressl patches.

Motivation for this change
Since updating to v2.6, hostapd has not been willing to build against libressl.
I have cherry-picked the libressl support commits from the upstream hostapd repo:
http://w1.fi/cgit/hostap/commit/?id=0d42179e1246f996d334c8bd18deca469fdb1add
http://w1.fi/cgit/hostap/commit/?id=df426738fb212d62b132d9bb447f0128194e00ab
http://w1.fi/cgit/hostap/commit/?id=b70d508c50e8e2d2b8fb96ae44ae10f84cf0c1ae
and added them to the patches list. This allows the build to complete, and the resulting build seems to work perfectly.
Things done

[x] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

At least one of the hashes seem to be wrong:
output path ‘/nix/store/ibdifh4g0nwp1g4cnjal9qch613dvngd-?id=0d42179e1246f996d334c8bd18deca469fdb1add’ has sha256 hash ‘1d7ki0hmmxpj4qnc0svz0m6rx8s5yj39d1khcx8hjw8hvhqmhz3w’ when ‘0w5n3ypwavq5zlyfxpcyvbaf96g59xkwbw9xwpjyzb7h5j264615’ was expected

I... really? It builds fine on my machine :/
I just re-did a quick nix-prefetch-url on the three patch paths and get the same sha256 results as in the PR. Is there any mechanism (geography?) by which we could get different hashes?
The commit pages have links to a direct patch page (which is what I'm linking to now), but also to .zip and .tar versions. Might those be better?

Ah, fetchpach does some normalization of the patches before hashing the content. It is intended for urls where patches can change slightly. If you provide the hash you got from nix-prefetch-url, the file has already been put into the nix store and due to the fact that fetchpatch (and also fetchurl) is a fixed output derivation, the content for the hash in the nix store is used instead of fetching and normalizing the patch. It fails on my machine because I didn't run nix-prefetch-url before.
Two solutions:

Change the hash slightly and rebuild to get an error with the correct hash
Use fetchurl instead of fetchpatch (preferred, hashes will stay the same and the patch shouldn't change because it comes from git)

Oh! I had no idea. There are a lot of different fetchers :)
I've pushed the change to use fetchurl (and by adding a temporary a = "blah"; line to the package, verified that it still builds for me).

(just squashed the commits together)

Tested build with openssl & libressl. Thanks! :beers:


Upgrade Akka, Scala, and other libs

Upgrade Akka, Scala, and other libs
JIRA Issues: MARATHON-7917
Please merge #5799 and #5801 first

Strange, these two tests have failed twice in a row, but when run individually, locally, they pass:

Test Name
Duration
Age

mesosphere.marathon.integration.RestartIntegrationTest.Restarting Marathon when readiness should deployment with 1 ready and 1 not ready instance is continued properly after a restart
2 min 5 sec
2

mesosphere.marathon.integration.RestartIntegrationTest.Restarting Marathon when health checks should deployment with 2 unhealthy instances is continued properly after master abdication
1 min 40 sec
2


Better emails (pending)

This branch will introduce some email improvements - in particular, the ability to preview emails in the browser, and a base Zurb Ink template. I don't know if I'll redo all the templates to use it or just do a proof-of-concept...
Things this could touch on:

[x] #484 Thunderbird marking emails as spam
[x] #497 Add unwanted email support text to messages to unconfirmed email addresses
[ ] #448 Address for check mailing in registration email doesn't include line breaks.

Receipt emails still need to be updated... I'd be fine leaving those until after merge. I haven't updated the home invite template either, because I'd rather just do #515.

Okay, this is ready for review. Note: After #504 lands, the email templates will need to be updated to account for the new summary_data structure.

The templates need a bit of work (the footer image isn't scaling down, I think). You can preview templates using our Mandrill dashboard: https://mandrillapp.com/templates/code?id=test-template
The dropdown menu in the corner can fake a preview in-browser or send an actual email using the html in the template.

I don't have a good way of thoroughly checking all the python, but the few email-triggering things I attempted all seemed to send emails OK.

@harris did you catch that you can navigate to /mail/confirmation/ and similar to preview / send emails?

oop I missed that

I think this is ready to merge now. Footer image is just the size of the biggest column, which I think is fine.


SSL Problem

Environment

OS:  centos 6
Erlang/OTP: OTP 19
EMQ: 2.0 RC3

Description
A description of the issue
When I connect the emqtt broker via ssl, log show me below , but the service seems to be right.
How to slove the problem ?
Supervisor 'esockd_connection_sup - <0.1151.0>' had child connection started with emqttd_client:start_link([{max_clientid_len,1024},{max_packet_size,65536},{client_idle_timeout,30}]) at <0.2090.0> exit with reason {ssl_error,{options,{cacertfile,[]}}} in context connection_crashed
2016-11-22 11:15:08 =SUPERVISOR REPORT====
Supervisor: 'esockd_connection_sup - <0.1151.0>'
Context:    connection_crashed
Reason:     {ssl_error,{options,{cacertfile,[]}}}
Offender:   [{pid,<0.2171.0>},{name,connection},{mfargs,{emqttd_client,start_link,[[{max_clientid_len,1024},{max_packet_size,65536},{client_idle_timeout,30}]]}}]

Reason is cacertfile, client connection error!


⚠ Tachidesk Server has degraded performance

In d4aaf70, Tachidesk Server (https://tachidesk.culturecloud.eu.org) experienced degraded performance:

HTTP code: 502
Response time: 13649 ms

Resolved: Tachidesk Server performance has improved in aa4273d.


speech/livecaption: close stream at EOF

The stream will hang and stay open if not closed.
Updates #237.

/cc @rakyll


Fake backends ignore errors related to basis gates or number of qubits

Environment

Qiskit Terra version: 0.20.0
Python version: 3.9.5
Operating system: Linux

What is happening?
Fake backends' behavior is sometimes different from their corresponding real devices.
Concretely, a device won't run a circuit that contains gates that do not belong to the set of basis gates. The fake backend will run the circuit.
Similarly, the device won't run a circuit that refers to non-existing qubits, while the fake backend will.
How can we reproduce the issue?
Code:
from qiskit import QuantumCircuit, IBMQ
from qiskit.providers.fake_provider import FakeLima
from qiskit.providers.backend import BackendV1

provider = IBMQ.load_account()
backends = [provider.backend.ibmq_lima, FakeLima()]

circ_not_a_basis_gate = QuantumCircuit(1, 1)
circ_not_a_basis_gate.h(0)
circ_not_a_basis_gate.measure(0, 0)
circ_not_a_basis_gate.name = "not-a-basis-gate"

circ_many_qubits = QuantumCircuit(10, 10)
circ_many_qubits.measure(9, 9)
circ_many_qubits.name = "many-qubits"

for circ in [circ_not_a_basis_gate, circ_many_qubits]:
    for backend in backends:
        print(f"\nRunning the {circ.name} circuit on {backend}:")

        job = backend.run(circ)

        try:
            print("Job result:", job.result())
        except Exception as e:
            print("Exception when trying to fetch job result:", e)

        print("Job status:", job.status())

Output:
Running the not-a-basis-gate circuit on ibmq_lima:
Exception when trying to fetch job result: "Unable to retrieve result for job 62f35351eace5881b6c259f4. Job has failed: The Qobj uses gates (['h']) that are not among the basis gates (['id', 'rz', 'sx', 'x', 'cx', 'reset']). Error code: 1106."
Job status: JobStatus.ERROR

Running the not-a-basis-gate circuit on fake_lima:
Job result: Result(backend_name='aer_simulator', backend_version='0.10.4', qobj_id='2b239bdf-2b05-49c9-9afe-e94e3175a530', job_id='2855837a-9efc-4659-8391-d2295e51e31a', success=True, results=[ExperimentResult(shots=1024, success=True, meas_level=2, data=ExperimentResultData(counts={'0x0': 525, '0x1': 499}), header=QobjExperimentHeader(clbit_labels=[['c', 0]], creg_sizes=[['c', 1]], global_phase=0.0, memory_slots=1, metadata={}, n_qubits=1, name='not-a-basis-gate', qreg_sizes=[['q', 1]], qubit_labels=[['q', 0]]), status=DONE, seed_simulator=3721132851, metadata={'parallel_state_update': 1, 'noise': 'superop', 'batched_shots_optimization': False, 'measure_sampling': True, 'device': 'CPU', 'num_qubits': 1, 'parallel_shots': 1, 'remapped_qubits': False, 'method': 'density_matrix', 'active_input_qubits': [0], 'num_clbits': 1, 'input_qubit_map': [[0, 0]], 'fusion': {'applied': False, 'max_fused_qubits': 5, 'enabled': True, 'threshold': 14}}, time_taken=0.004068663)], date=2022-08-10T09:42:30.224142, status=COMPLETED, header=QobjHeader(backend_name='aer_simulator', backend_version='0.10.4'), metadata={'time_taken': 0.019088631, 'time_taken_execute': 0.008525004, 'parallel_experiments': 1, 'omp_enabled': True, 'max_gpu_memory_mb': 0, 'num_mpi_processes': 1, 'time_taken_load_qobj': 0.010551124, 'max_memory_mb': 7068, 'mpi_rank': 0}, time_taken=0.01973700523376465)
Job status: JobStatus.DONE

Running the many-qubits circuit on ibmq_lima:
Exception when trying to fetch job result: 'Unable to retrieve result for job 62f353565838303af5f1df08. Job has failed: The number of qubits in the Qobj (10) is higher than the number of qubits supported by the device (5). Error code: 1109.'
Job status: JobStatus.ERROR

Running the many-qubits circuit on fake_lima:
Job result: Result(backend_name='aer_simulator', backend_version='0.10.4', qobj_id='bb0e3ece-bf05-4dae-bf46-5eff578199e0', job_id='8aa2036f-6d82-4c53-bf79-23a1d549fff5', success=True, results=[ExperimentResult(shots=1024, success=True, meas_level=2, data=ExperimentResultData(counts={'0x0': 1024}), header=QobjExperimentHeader(clbit_labels=[['c', 0], ['c', 1], ['c', 2], ['c', 3], ['c', 4], ['c', 5], ['c', 6], ['c', 7], ['c', 8], ['c', 9]], creg_sizes=[['c', 10]], global_phase=0.0, memory_slots=10, metadata={}, n_qubits=10, name='many-qubits', qreg_sizes=[['q', 10]], qubit_labels=[['q', 0], ['q', 1], ['q', 2], ['q', 3], ['q', 4], ['q', 5], ['q', 6], ['q', 7], ['q', 8], ['q', 9]]), status=DONE, seed_simulator=3017945355, metadata={'parallel_state_update': 1, 'noise': 'superop', 'batched_shots_optimization': False, 'measure_sampling': True, 'device': 'CPU', 'num_qubits': 1, 'parallel_shots': 1, 'remapped_qubits': True, 'method': 'density_matrix', 'active_input_qubits': [9], 'num_clbits': 10, 'input_qubit_map': [[9, 0]], 'fusion': {'applied': False, 'max_fused_qubits': 5, 'enabled': True, 'threshold': 14}}, time_taken=0.006464472)], date=2022-08-10T09:42:33.850333, status=COMPLETED, header=QobjHeader(backend_name='aer_simulator', backend_version='0.10.4'), metadata={'time_taken': 0.044194349, 'time_taken_execute': 0.013991019, 'parallel_experiments': 1, 'omp_enabled': True, 'max_gpu_memory_mb': 0, 'num_mpi_processes': 1, 'time_taken_load_qobj': 0.030191295, 'max_memory_mb': 7068, 'mpi_rank': 0}, time_taken=0.04497790336608887)
Job status: JobStatus.DONE

What should happen?
My understanding of the role of the fake backends is that they should mimic as much as possible the behavior of the device. If this view is correct, then in the code snippet above they should raise exceptions similar to the device, and set the job status to ERROR.
Any suggestions?
No response

As I stated in #9439 right now the fake backends pass the circuit directly to aer (or basicaer if aer isn't installed) with a noise model set to simulate the circuit with the backend's properties. If aer isn't enforcing this for us based on the noise model then we will have to do validation on input circuits in the fake backend's run method directly. Basically just check that all(x.num_qubits == self.num_qubits for x in run_input) and a similar check for basis gates on each input before passing the circuit to the simulator.

Hi there,
Can I be assigned to this issue please?

Hi, if this issue hasn't been assigned and has no WIP PRs at the moment, @andrea-miramonserr and I would like to work on this! Could we be assigned to the issue?

I'll take this issue if that's okay!

@JustinWoodring assigned, thanks!


WIP: Per tenant scaling group binding rebase

Opening this for test-run purposes...

#372 was merged


Having issues pulling package

Hello I am attempting to pull the client but I am presented with this error when I do a
go get githube.com/kubevirt/client-go

github.com/kubevirt/client-go/kubecli<EMAIL_ADDRESS>parsing go.mod:
 module declares its path as: kubevirt.io/client-go
    but was required as: github.com/kubevirt/client-go

Do you have any idea how to resolve this?
thank you

Hi @byt3-m3, could you please try:
go get kubevirt.io/client-go

?


is this only for linux?

I installed on windows and failing
from torchao.quantization import quantize_
pip freeze
Microsoft Windows [Version 10.0.19045.4894]
(c) Microsoft Corporation. All rights reserved.

R:\CogVideoX_v1\CogVideoX_SECourses\venv\Scripts>activate

(venv) R:\CogVideoX_v1\CogVideoX_SECourses\venv\Scripts>pip freeze
accelerate==0.34.2
aiofiles==23.2.1
annotated-types==0.7.0
anyio==4.6.0
certifi==2024.8.30
charset-normalizer==3.3.2
click==8.1.7
colorama==0.4.6
contourpy==1.3.0
cycler==0.12.1
decorator==4.4.2
diffusers @ git+https://github.com/huggingface/diffusers.git@665c6b47a23bc841ad1440c4fe9cbb1782258656
distro==1.9.0
einops==0.8.0
exceptiongroup==1.2.2
fastapi==0.115.0
ffmpy==0.4.0
filelock==3.16.1
fonttools==4.54.1
fsspec==2024.9.0
gradio==4.44.0
gradio_client==1.3.0
h11==0.14.0
httpcore==1.0.5
httpx==0.27.2
huggingface-hub==0.25.1
idna==3.10
imageio==2.35.1
imageio-ffmpeg==0.5.1
importlib_metadata==8.5.0
importlib_resources==6.4.5
Jinja2==3.1.4
jiter==0.5.0
kiwisolver==1.4.7
markdown-it-py==3.0.0
MarkupSafe==2.1.5
matplotlib==3.9.2
mdurl==0.1.2
moviepy==1.0.3
mpmath==1.3.0
networkx==3.3
numpy==1.26.0
openai==1.48.0
opencv-python==<IP_ADDRESS>
orjson==3.10.7
packaging==24.1
pandas==2.2.3
Pillow==9.5.0
proglog==0.1.10
psutil==6.0.0
pydantic==2.9.2
pydantic_core==2.23.4
pydub==0.25.1
Pygments==2.18.0
pyparsing==3.1.4
python-dateutil==2.9.0.post0
python-multipart==0.0.10
pytz==2024.2
PyYAML==6.0.2
regex==2024.9.11
requests==2.32.3
rich==13.8.1
ruff==0.6.8
safetensors==0.4.5
scikit-video==1.1.11
scipy==1.14.1
semantic-version==2.10.0
sentencepiece==0.2.0
shellingham==1.5.4
six==1.16.0
sniffio==1.3.1
spandrel==0.4.0
starlette==0.38.6
sympy==1.13.3
tokenizers==0.20.0
tomlkit==0.12.0
torch==2.4.1+cu124
torchao==0.1
torchvision==0.19.1+cu124
tqdm==4.66.5
transformers==4.45.0
triton @ https://huggingface.co/MonsterMMORPG/SECourses/resolve/main/triton-3.0.0-cp310-cp310-win_amd64.whl
typer==0.12.5
typing_extensions==4.12.2
tzdata==2024.2
urllib3==2.2.3
uvicorn==0.30.6
websockets==12.0
xformers==0.0.28.post1
zipp==3.20.2

(venv) R:\CogVideoX_v1\CogVideoX_SECourses\venv\Scripts>

Traceback (most recent call last):
  File "R:\CogVideoX_v1\CogVideoX_SECourses\venv\lib\site-packages\transformers\utils\import_utils.py", line 1764, in _get_module
    return importlib.import_module("." + module_name, self.__name__)
  File "C:\Python3108\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "R:\CogVideoX_v1\CogVideoX_SECourses\venv\lib\site-packages\transformers\models\t5\modeling_t5.py", line 38, in <module>
    from ...modeling_utils import PreTrainedModel
  File "R:\CogVideoX_v1\CogVideoX_SECourses\venv\lib\site-packages\transformers\modeling_utils.py", line 58, in <module>
    from .quantizers import AutoHfQuantizer, HfQuantizer
  File "R:\CogVideoX_v1\CogVideoX_SECourses\venv\lib\site-packages\transformers\quantizers\__init__.py", line 14, in <module>
    from .auto import AutoHfQuantizer, AutoQuantizationConfig
  File "R:\CogVideoX_v1\CogVideoX_SECourses\venv\lib\site-packages\transformers\quantizers\auto.py", line 42, in <module>
    from .quantizer_torchao import TorchAoHfQuantizer
  File "R:\CogVideoX_v1\CogVideoX_SECourses\venv\lib\site-packages\transformers\quantizers\quantizer_torchao.py", line 35, in <module>
    from torchao.quantization import quantize_
ImportError: cannot import name 'quantize_' from 'torchao.quantization' (R:\CogVideoX_v1\CogVideoX_SECourses\venv\lib\site-packages\torchao\quantization\__init__.py)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "R:\CogVideoX_v1\CogVideoX_SECourses\venv\lib\site-packages\diffusers\utils\import_utils.py", line 830, in _get_module
    return importlib.import_module("." + module_name, self.__name__)
  File "C:\Python3108\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "R:\CogVideoX_v1\CogVideoX_SECourses\venv\lib\site-packages\diffusers\pipelines\cogvideo\pipeline_cogvideox.py", line 21, in <module>
    from transformers import T5EncoderModel, T5Tokenizer
  File "<frozen importlib._bootstrap>", line 1075, in _handle_fromlist
  File "R:\CogVideoX_v1\CogVideoX_SECourses\venv\lib\site-packages\transformers\utils\import_utils.py", line 1755, in __getattr__
    value = getattr(module, name)
  File "R:\CogVideoX_v1\CogVideoX_SECourses\venv\lib\site-packages\transformers\utils\import_utils.py", line 1754, in __getattr__
    module = self._get_module(self._class_to_module[name])
  File "R:\CogVideoX_v1\CogVideoX_SECourses\venv\lib\site-packages\transformers\utils\import_utils.py", line 1766, in _get_module
    raise RuntimeError(
RuntimeError: Failed to import transformers.models.t5.modeling_t5 because of the following error (look up to see its traceback):
cannot import name 'quantize_' from 'torchao.quantization' (R:\CogVideoX_v1\CogVideoX_SECourses\venv\lib\site-packages\torchao\quantization\__init__.py)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Python3108\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Python3108\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "c:\program files\microsoft visual studio\2022\community\common7\ide\extensions\microsoft\python\core\debugpy\__main__.py", line 39, in <module>
    cli.main()
  File "c:\program files\microsoft visual studio\2022\community\common7\ide\extensions\microsoft\python\core\debugpy/..\debugpy\server\cli.py", line 430, in main
    run()
  File "c:\program files\microsoft visual studio\2022\community\common7\ide\extensions\microsoft\python\core\debugpy/..\debugpy\server\cli.py", line 284, in run_file
    runpy.run_path(target, run_name="__main__")
  File "c:\program files\microsoft visual studio\2022\community\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 321, in run_path
    return _run_module_code(code, init_globals, run_name,
  File "c:\program files\microsoft visual studio\2022\community\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 135, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "c:\program files\microsoft visual studio\2022\community\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 124, in _run_code
    exec(code, run_globals)
  File "R:\CogVideoX_v1\CogVideoX_SECourses\app.py", line 14, in <module>
    from diffusers import (
  File "<frozen importlib._bootstrap>", line 1075, in _handle_fromlist
  File "R:\CogVideoX_v1\CogVideoX_SECourses\venv\lib\site-packages\diffusers\utils\import_utils.py", line 821, in __getattr__
    value = getattr(module, name)
  File "R:\CogVideoX_v1\CogVideoX_SECourses\venv\lib\site-packages\diffusers\utils\import_utils.py", line 821, in __getattr__
    value = getattr(module, name)
  File "R:\CogVideoX_v1\CogVideoX_SECourses\venv\lib\site-packages\diffusers\utils\import_utils.py", line 820, in __getattr__
    module = self._get_module(self._class_to_module[name])
  File "R:\CogVideoX_v1\CogVideoX_SECourses\venv\lib\site-packages\diffusers\utils\import_utils.py", line 832, in _get_module
    raise RuntimeError(
RuntimeError: Failed to import diffusers.pipelines.cogvideo.pipeline_cogvideox because of the following error (look up to see its traceback):
Failed to import transformers.models.t5.modeling_t5 because of the following error (look up to see its traceback):
cannot import name 'quantize_' from 'torchao.quantization' (R:\CogVideoX_v1\CogVideoX_SECourses\venv\lib\site-packages\torchao\quantization\__init__.py)
Press any key to continue . . .

Can you try updating torchao? I don't think the top level quantize_ API is available in 0.4.0
But from what I understand, torch.compile() does not work on windows because triton is lacking windows support, which we use to codegen our quantization kernels, so I wouldn't expect this to work on windows.

i am about to test latest @jerryzh168 thank you will write here

it might be the torchao version is too low: "torchao==0.1", we introduced quantize_ in 0.4.0 I think: https://github.com/pytorch/ao/releases, but in the meantime our packages are only available in linux and mac right now I think

what pip finds latest version is
ERROR: Could not find a version that satisfies the requirement torchao==123 (from versions: 0.0.1, 0.0.3, 0.1)
how can i install latest on windows? python 3.10 windows 10

we don't have a windows build today I think, cc @atalman can you provide a pointer to support a build in windows as well?

we don't have a windows build today I think, cc @atalman can you provide a pointer to support a build in windows as well?

awesome waiting to test thank you so much

You can probably install torchao from source. If you don't need the CUDA extensions, you can do
USE_CPP=0 pip install git+https://github.com/pytorch/ao

But again, since torch.compile() doesn't work in windows, it's not very useful.

is there a way to make the quantizations work on windows+nvidia gpu without torch.compile and inductor backend? I am mostly concerned about inference speedups.

I'm also in need of the wheel for torchao on Windows to get Quantization working for Flux, CogVideoX, etc. in my app. I'm fine without compile, but the other features are really needed to optimize vram.  Tried installing from the github and running setup.py install from clone, but gave me errors. Hoping we can run something newer than v0.1 soon.. Thanks.

I'm also in need of the wheel for torchao on Windows to get Quantization working for Flux, CogVideoX, etc. in my app. I'm fine without compile, but the other features are really needed to optimize vram. Tried installing from the github and running setup.py install from clone, but gave me errors. Hoping we can run something newer than v0.1 soon.. Thanks.

so true
from this logic (that use linux not windows) why do we even have Python on Windows?, PyTorch on Windows? xFormers on Windows? if such stuff is not necessary on Windows?
I don't get logic of forcing people to use Linux. If we follow this mindset, why we have all these on Windows?

If you don't need the CUDA extensions (right now they are only for backing FPx and sparse marlin kernels I think), and you don't mind the lack of torch.compile() support, you can install torchao from source on Windows like I mentioned previously
set USE_CPP=0
pip install git+https://github.com/pytorch/ao

I don't have access to a Windows machine right now, so I just googled how to set environment variable on Windows here. You might need to adjust accordingly.
You are welcome to improve torchao experience on Windows. In fact, there are past PRs by the community, including me, that help build torchao successfully on Windows, including CUDA extension support.

If you don't need the CUDA extensions (right now they are only for backing FPx and sparse marlin kernels I think), and you don't mind the lack of torch.compile() support, you can install torchao from source on Windows like I mentioned previously
set USE_CPP=0
pip install git+https://github.com/pytorch/ao

I don't have access to a Windows machine right now, so I just googled how to set environment variable on Windows here. You might need to adjust accordingly.
You are welcome to improve torchao experience on Windows. In fact, there are past PRs by the community, including me, that help build torchao successfully on Windows, including CUDA extension support.

Thanks for the reply. I have a couple of clarifying questions - It seems that previously one was able to build torchao with cuda extension support on windows. What changed since then? Also, since torch.compile is not available on windows, what kind of speedups(if any) on gpu- can we expect for normal pytorch models quantized by torchao

@abhi-vandit Since there is no Windows CI, there is no guarantee that new CUDA extensions in torchao can be built correctly on Windows. However, most of the errors usually come from Unix-specific features, thus the fix is usually simple e.g. #951 #396. I think torchao welcome small fixes like these.
I mentioned not building CUDA extensions previously since usually it's quite involved to set up C++ and CUDA compiler on Windows. So if you don't need the CUDA extensions, it's not really worth the efforts.

what kind of speedups(if any) on gpu- can we expect for normal pytorch models quantized by torchao

I think most likely you will only see slow down. Perhaps you can still get some memory savings.

@gau-nernst Thanks for the prompt reply. Hope this changes in near future and we are able to utilize quantization for inference time speedups on windows as well.

If you don't need the CUDA extensions (right now they are only for backing FPx and sparse marlin kernels I think), and you don't mind the lack of torch.compile() support, you can install torchao from source on Windows like I mentioned previously
set USE_CPP=0
pip install git+https://github.com/pytorch/ao

I don't have access to a Windows machine right now, so I just googled how to set environment variable on Windows here. You might need to adjust accordingly.
You are welcome to improve torchao experience on Windows. In fact, there are past PRs by the community, including me, that help build torchao successfully on Windows, including CUDA extension support.

this worked
(venv) C:\Users\Furkan\Videos\a\venv\Scripts>pip freeze
filelock==3.13.1
fsspec==2024.2.0
Jinja2==3.1.3
MarkupSafe==2.1.5
mpmath==1.3.0
networkx==3.2.1
numpy==1.26.3
pillow==10.2.0
sympy==1.12
torch==2.4.1+cu124
torchao==0.6.0+git83d5b63
torchaudio==2.4.1+cu124
torchvision==0.19.1+cu124
typing_extensions==4.9.0

Just want to share that I've successfully installed triton on Windows and called torch.compile:
https://github.com/jakaline-dev/Triton_win/issues/2
I'm also looking forward to fully use torchao on Windows

@woct0rdho did you notice any performance regressions between Windows and Linux? Cause if this works this is very cool we should consider making some broader announcement on pytorch.org if you're interested

I did not do serious profiling yet. I don't dual boot Windows and Linux on the same machine, so I can only test Windows vs WSL on the same machine, and profiling the memory in WSL can be very tricky
What I'm sure is that autoquant indeed makes the memory usage lower for models like SDXL and Flux on Windows

So keep in mind that APIs like quantize_() will make your model smaller but will not necessarily accelerate it since we rely heavily on later running torch.compile() to get competitive performance
So one sanity check you can do is make sure the Triton generated kernels seem reasonable by running TORCH_LOGS="output_code" python script.py

Triton is already working. I've tried some simple test scripts, and I've seen users including myself get speedup when running large models like Flux and CogVideoX, but not in all cases
Some reports are here: https://www.reddit.com/r/StableDiffusion/comments/1g45n6n/triton_3_wheels_published_for_windows_and_working/

Yeah my sense is we can be a bit more principled about measuring performance. For example running this on all of pytorch/benchmark and seeing if there are serious perf gaps between Windows and Linux cause if the gap is small or gets smaller over time we could perhaps take a bigger dependency on your Triton fork and recommend people use it
cc @xuzhao9 who maintains torchbench

that would be amazing if we can close the performance gap between windows and linux

Yeah thank you, I'll try to catch up with this in my spare time

Just want to share that I've successfully installed Triton on Windows and called torch.compile: jakaline-dev/Triton_win#2
Update: I've published Triton wheels in my fork, and torchao.quantization.autoquant just works after installing torchao 0.5.0 from source https://github.com/woct0rdho/triton-windows

I installed Triton on Windows (python.exe -m pip install triton-3.1.0-cp310-cp310-win_amd64.whl) but I can not install torchao from source because this error:
"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\bin\HostX86\x64\link.exe" /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:C:\Users\Admin\Desktop\TorchAO\venv\lib\site-packages\torch\lib "/LIBPATH:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\lib\x64" /LIBPATH:C:\Users\Admin\Desktop\TorchAO\venv\libs "/LIBPATH:C:\Program Files\Python310\libs" "/LIBPATH:C:\Program Files\Python310" /LIBPATH:C:\Users\Admin\Desktop\TorchAO\venv\PCbuild\amd64 "/LIBPATH:C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\ATLMFC\lib\x64" "/LIBPATH:C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.22621.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\\lib\10.0.22621.0\\um\x64" c10.lib torch.lib torch_cpu.lib torch_python.lib cudart.lib c10_cuda.lib torch_cuda.lib /EXPORT:PyInit__C C:\Users\Admin\Desktop\TorchAO\ao\build\temp.win-amd64-cpython-310\Release\torchao\csrc\cuda\fp6_llm\fp6_linear.obj C:\Users\Admin\Desktop\TorchAO\ao\build\temp.win-amd64-cpython-310\Release\torchao\csrc\cuda\sparse_marlin\marlin_kernel_nm.obj C:\Users\Admin\Desktop\TorchAO\ao\build\temp.win-amd64-cpython-310\Release\torchao\csrc\cuda\tensor_core_tiled_layout\tensor_core_tiled_layout.obj C:\Users\Admin\Desktop\TorchAO\ao\build\temp.win-amd64-cpython-310\Release\torchao\csrc\init.obj /OUT:build\lib.win-amd64-cpython-310\torchao\_C.cp310-win_amd64.pyd /IMPLIB:C:\Users\Admin\Desktop\TorchAO\ao\build\temp.win-amd64-cpython-310\Release\torchao\csrc\cuda\fp6_llm\_C.cp310-win_amd64.lib

Criando biblioteca C:\Users\Admin\Desktop\TorchAO\ao\build\temp.win-amd64-cpython-310\Release\torchao\csrc\cuda\fp6_llm\_C.cp310-win_amd64.lib e objeto C:\Users\Admin\Desktop\TorchAO\ao\build\temp.win-amd64-cpython-310\Release\torchao\csrc\cuda\fp6_llm\_C.cp310-win_amd64.exp
    fp6_linear.obj : error LNK2001: s¡mbolo externo nÆo resolvido "void __cdecl SplitK_Reduction(struct __half *,float *,unsigned __int64,unsigned __int64,int)" (?SplitK_Reduction@@YAXPEAU__half@@PEAM_K2H@Z)
    build\lib.win-amd64-cpython-310\torchao\_C.cp310-win_amd64.pyd : fatal error LNK1120: 1 externo nÆo resolvidos
    error: command 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.41.34120\\bin\\HostX86\\x64\\link.exe' failed with exit code 1120
    [end of output]

What am I missing?

@blap It looks like an error when linking against CUDA

If anyone comes back to this problem, easy fix even for Windows is to install the Nightly version, the pip version as stated above hasn't been updated to include _quantize:
pip install --pre torchao --index-url https://download.pytorch.org/whl/nightly/cu121 # full options are cpu/cu118/cu121/cu124


EPIC for fully automated momentum bot

EPIC started: https://www.notion.so/volumefi/EPIC-09-01-23-Fully-Automated-Momentum-Bot-c305705ca0f74aebba7b2c7b36929bd4

EPIC finished.


Write "on boarding" texts analyses

We need to have text for the screens that appear after a analysis has been performed.
The text shown in each of these screens should inform the users about the changes that the analyses have produce in the dataset and some indications on what can be done with the new fields.

Here's a list of tickets for the analyses we have implemented so far, so we can track the work done on each of them:

[ ] Georeference #9021
[ ] Enrich from data observatory #9022
[ ] Join columns from 2nd layer #9023
[ ] Filter by layer #9024
[ ] Find centroid #9025
[ ] Area of influence #9026
[ ] Intersect second layer #9027
[ ] Filter point in polygons #9028
[ ] Filter rows by column value #9029
[ ] Subsample percent of rows #9030
[ ] Calculate clusters of points #9031
[ ] Detect outliers and clusters #9032
[ ] Predict trends and volatility #9033

It would probably make sense to have a generic text we could show for new analysis that don't have an specific onw, in case we always want to show something.

Hey @ohasselblad @stuartlynn sorry on the short notice, but we're very close to have this done and we are lacking the texts for each of them. Can you guys provide us those? @javierarce created a ticket for every of the analysis we have now.

Ah! we are planning to have this done before EOW

What are the constraints here?
Sections of text needed and then Words #, Line # for each

Well, if you take a look at the designs, you will see we have limited space. I'd say that in general we should go with the shortest possible version. Anyway, when implementing those we will learn more about the constraints

DONE, thanks guys, I learned lots more about the builder doing this.

Thanks a lot @ohasselblad, @andrewxhill, and @saleiva! ❤


[FEATURE] Multiple executors per bundler instance

Is your feature request related to a problem? Please describe.
Single executor per bundler instance is a bottleneck.
Describe the solution you'd like
Multiple executors linked to a single instance of a bundler to facilitate parallel processing of UserOps from local mempool.

https://github.com/etherspot/skandha/pull/138


Refactor: Use poll functions internally

This is a first major refactor in the internals to use poll functions and not async functions internally.
This PR removes all internal async functions from the Protocol struct and instead uses manually implemented poll functions.
It also adds a commands() function that gives a handle to the main protocol to send commands to it. The handle can be sent to other threads.
The PR also includes other changes:

The ProtocolStream wrapper is made obsolete, the Protocol struct directly implements Stream
Refactored the ChannelMap struct
Add a first full test
Update dependencies
Fix examples

I'm going ahead and merging this


[CONTRACT] integrate registration component

Create the zkRamp contract integration the registry component.

Please add integration tests

@0xChqrles i would love to work on this issue

@0xChqrles can I work on this, I already understand how contract structure works

Hey ! I assigned it to you @Jemiiah


Enhance order commands

Adding to order and removing from order lacks several key functionalities.
Let's make these actions more robust. This PR enhances the following actions:

Adding to order

Checks whether item is in inventory before adding
If details specified matches multiple items, notify the user
If item added already exists in order, increment its count

Removing from order

Allows partial removal (decrement count instead of removing item entirely)
Checks whether item is in order before removing
If removing more than amount in order, notify the user
If details specified matches multiple items, notify the user

The PR also does the following:

Build on parser tests
Standardise order command formats with AddCommand and RemoveCommand

Codecov Report

Merging #74 (3b82352) into master (6ba444e) will increase coverage by 1.97%.
The diff coverage is 84.00%.

:exclamation: Current head 3b82352 differs from pull request most recent head bf61e13. Consider uploading reports for the commit bf61e13 to get more accurate results

@@             Coverage Diff              @@
##             master      #74      +/-   ##
============================================
+ Coverage     70.97%   72.95%   +1.97%
- Complexity      543      569      +26
============================================
  Files            86       86
  Lines          1633     1671      +38
  Branches        182      197      +15
============================================
+ Hits           1159     1219      +60
+ Misses          412      375      -37
- Partials         62       77      +15

Impacted Files
Coverage Δ

.../java/seedu/address/logic/commands/AddCommand.java
88.00% <0.00%> (-7.66%)
:arrow_down:

...va/seedu/address/logic/commands/RemoveCommand.java
91.30% <0.00%> (-8.70%)
:arrow_down:

src/main/java/seedu/address/model/Inventory.java
90.47% <ø> (ø)

src/main/java/seedu/address/model/Model.java
100.00% <ø> (ø)

...address/logic/commands/RemoveFromOrderCommand.java
68.18% <63.15%> (-11.82%)
:arrow_down:

...rc/main/java/seedu/address/model/ModelManager.java
87.64% <80.00%> (-0.74%)
:arrow_down:

src/main/java/seedu/address/model/order/Order.java
77.14% <82.35%> (-6.86%)
:arrow_down:

...eedu/address/logic/commands/AddToOrderCommand.java
81.81% <83.33%> (-18.19%)
:arrow_down:

.../address/logic/parser/AddToOrderCommandParser.java
100.00% <100.00%> (+100.00%)
:arrow_up:

...eedu/address/logic/parser/DeleteCommandParser.java
100.00% <100.00%> (ø)

... and 9 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 6ba444e...bf61e13. Read the comment docs.


angular-cli (webpack/pug)

Versions
Angular CLI: 6.0.1
Node: 10.1.0
OS: darwin x64
Angular: 6.0.2
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.6.1
@angular-devkit/core         0.6.1
@angular-devkit/schematics   0.6.1
@angular/cli                 6.0.1
@schematics/angular          0.6.1
@schematics/update           0.6.1
rxjs                         6.1.0
typescript                   2.7.2

Repro steps
work in 5.2 version, that version used webpack

Step 1
create file pug-rule-insert.js:

const fs = require('fs');
const commonCliConfig =<EMAIL_ADDRESS>const pug_rule = `\n\t\t\t\t\t\t\t\t{ test: /.(pug|jade)$/, loader: 'apply-loader!pug-loader?self' },`;

fs.readFile(commonCliConfig, (err, data) => {
  if (err) { throw err; }

  const configText = data.toString();
  if (configText.indexOf(pug_rule) > -1) { return; }

  const position = configText.indexOf('rules: [') + 8;
  const output = [configText.slice(0, position), pug_rule, configText.slice(position)].join('');
  let file = fs.openSync(commonCliConfig, 'r+');
  fs.writeFile(file, output, () => {});
  fs.close(file, () => {});
});

Step 2
node pug-rule-insert.js

Observed behavior
Error: ENOENT: no such file or directory, open<EMAIL_ADDRESS>
Desired behavior
That script adds support of pug for webpack, how i can make the same in version 6 of angular(cli)?
NOTE:
Don't wont use webpack (previous solution works for angular-cli)

While this may have worked in previous versions it was not supported. Your script is changing the installed CLI package...
const commonCliConfig =<EMAIL_ADDRESS>
The newest version does not use that file and therefore no longer works.

sad( back to html = (
thanks

@Brocco maybe there is another file with webpack config which we have to change instead of<EMAIL_ADDRESS>

@krivochenko  Thanks! But i don't have "build-angular" folder in @angular-devkit = (
Can u please show our package.json file?

i have "architect", "core" & "schematics"

@krivochenko I was using common.d.ts but renaming it to .js fixed my issue, Thanks

For angular 6+ you can use this code..
`const fs = require('fs');
const commonCliConfig =<EMAIL_ADDRESS>const pug_rule = \n{   test: /\\.(pug|jade)$/,   use: [     'apply-loader',     {       loader: 'pug-loader',       options: {         pretty: true,         doctype: 'html',         plugins: ["pug-plugin-ng", "raw-loader", "pug"]       }     }   ] },;
fs.readFile(commonCliConfig, (err, data) => {
if (err) {
throw err;
}
const configText = data.toString();

if (configText.indexOf(pug_rule) > -1) {
    console.log('Pug webpack rule already inserted.');
    return;
}

console.log('Inserting pug webpack rule...');

const position = configText.indexOf('rules: [') + 8;
const output = [configText.slice(0, position), pug_rule, configText.slice(position)].join('');

const file = fs.openSync(commonCliConfig, 'r+');
fs.writeFile(file, output, (err) => {
    console.log('Pug webpack rule inserted.');
    if (err) {
        console.error('Error when inserting pug webpack rule.');
    }
});
fs.close(file, (err) => {
    if (err) {
        console.error('Error when inserting pug webpack rule.');
    }
});

});
`

@usman-vqode big thanks!
but i already convert all templates to html = (((( sad(


possible bug with the json 0

I think if the json 0 is passed in, parse_number function will fail as when checking the (next) character (null-byte) is_not_structural_or_whitespace_or_exponent_or_decimal will return true.

You mean if the whole document is just 0?

Yap! I'm sorry I don't have the c++ toolchain here right now to add a test :( but from what I read in the code it would:
go to the number in base case then copy the "0" into 0 followed by \0 and go off to parse_number and hit the first case move the pointer one forward to the \0 then call is_not_structural_or_whitespace_or_exponent_or_decimal which on 0 reutrns true and fail parse_number.

To be clear I the parsed (failing) document would be the character '0'  not a null byte.

@Licenser That's fine. I just wanted to clarify the bug report. I now understand it, I think.
Thanks.

I'm going to intentionally delay fixing this because @geofflangdale is doing so engineering that might conflict with such a fix.

I have no hurry with it :), just wanted to report it before I forgot

Fixed and verified in a branch about to be merged.


No png support on NixOS

On NixOS, opencv has stripped build information, and waifu2x-converter-cpp thinks some output formats (including PNG) aren't supported, despite the fact that opencv still can handle them.
Not sure if this should be fixed on the waifu2x-converter-cpp side or on the NixOS side.
./waifu2x-converter-cpp --list-opencv-formats
This is a list of supported formats, it depends on which formats opencv has been built with.
	 BMP -> Yes
	 DIB -> Yes
	 EXR -> Yes
	 HDR -> Yes
	 JP2 -> No
	 JPE -> No
	JPEG -> No
	 JPG -> No
	 PBM -> Yes
	 PGM -> Yes
	 PIC -> Yes
	 PNG -> No
	 PNM -> Yes
	 PPM -> Yes
	 PXM -> Yes
	 RAS -> Yes
	  SR -> Yes
	 TIF -> No
	TIFF -> No
	WEBP -> No

python2.7 -c 'import cv2; print cv2.getBuildInformation()'
(build info elided)

https://github.com/DeadSix27/waifu2x-converter-cpp/blob/b4566c0fb33e716cb092cbf6a557137b53acbfac/src/main.cpp#L402-L422

The detection of formats is somewhat hacky, as opencv doesn't seem to provide a proper way to query that information apart from the build configuration info.. so It's more on our side than NixOS's I'd say.
But why would they strip it anyway...
I can't think of a good way to go about this though..
Easiest thing would be to add a switch to force support of all formats for edge cases like this..

But why would they strip it anyway...

It's a trick to reduce the number of runtime dependencies.
https://github.com/NixOS/nixpkgs/commit/c8a2533516b4174455601572c80298d0c23b08c8

Another way could be to define the stuff upon compilation... so package maintainers on NixOS could have it build with said formats forced-on .. I'll add that I guess.

It seems you can use cvHaveImageWriter to detect formats.
#include <opencv2/opencv.hpp>
#include <iostream>
int main() {
	std::cout << cvHaveImageWriter(".png") << "\n";
	std::cout << cvHaveImageWriter(".mp4") << "\n";
}

$ ./a.out
1
0

Nice.

Fixed via #71
Note that CV4+ is required now.


Paper already peer reviewed and published?

As for citing your brilliant work, it would really help if the paper was already published (not only as a preprint) - how far is the progress on that matter?:)

Thank you for your interest! Our work has been peer reviewed and accepted by the Journal of Machine Learning Research, and we are currently in the process of preparing the camera-ready version. We will update both the citation link and description once the final version is ready!


Integration Testing

Adds an integration test that sets up a temp directory with a template file and a dmx file, and verifies that it produces an expected output.
Tests all features of datamatic, including flags, custom types and custom functions.
main.main() now takes the specfile and directory as arguments rather than taking the argparse namespace, which makes it easier to integration test.

Codecov Report

Merging #25 (1ef5975) into main (d06b42c) will increase coverage by 27.11%.
The diff coverage is 100.00%.

:exclamation: Current head 1ef5975 differs from pull request most recent head cc17aec. Consider uploading reports for the commit cc17aec to get more accurate results

@@             Coverage Diff             @@
##             main      #25       +/-   ##
===========================================
+ Coverage   70.84%   97.95%   +27.11%
===========================================
  Files           5        5
  Lines         391      392        +1
===========================================
+ Hits          277      384      +107
+ Misses        114        8      -106

Impacted Files
Coverage Δ

datamatic/generator.py
95.78% <100.00%> (+31.95%)
:arrow_up:

datamatic/main.py
88.57% <100.00%> (+88.57%)
:arrow_up:

datamatic/validator.py
100.00% <100.00%> (+100.00%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d06b42c...cc17aec. Read the comment docs.


Used variable not highlighted in JavaScript

VSCode Version: 1.36.1 / 1.37.0-insider
OS Version: Windows 10 Pro Version 1903, Build 18362.239

Steps to Reproduce:
Write code like this. Declare variable in function, and call that variable by any method like set variable value, except by pass to function argument.

This is incorrect. variable in forEach function meaning variable that located at outside of forEach function.

Does this issue occur when all extensions are disabled?: Yes

The dimming is correct. variable is never actually used for anything, the code updates the value but never does anything with it


kube2sky using kubeconfig secret: take 2. Point system secrets at https:...

...//kubernetes. Override in clients that can't use DNS.

Code LGTM

LGTM.  Thanks for cleaning up the salt along the way.

LGTM.


Set required fields for createsuperuser command

Purpose of PR
As part of writing documentation for the project to be supported out of hours, I noticed that when running our manage.py createsuperuser command in the terminal, it raised the error that an email wasn't provided for the user.
This PR sets the REQUIRED_FIELDS attribute on the User model, which determines what fields are requested when the createsuperuser command is run. Docs here.
To test

Pull branch and run python update_supply_chain_information/manage.py createsuperuser
You should be asked for an sso_email_user_id, email, first_name, last_name and password

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@5fd19fe). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #95   +/-   ##
=======================================
  Coverage        ?   97.66%
=======================================
  Files           ?       55
  Lines           ?     3551
  Branches        ?        0
=======================================
  Hits            ?     3468
  Misses          ?       83
  Partials        ?        0

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5fd19fe...1037d88. Read the comment docs.


ngJsTree | Do not select child on parent click

Is there any config / way to avoid child selection when parent is selected?

sounds like a question to ask on the js-tree component it self
https://www.jstree.com/


Add receipt error status in server/front-end

/kind api-change
/kind backend-change
/kind ui-change

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Introduce traits

This solves #9

Essentially, work under the assumption that the next person to work on this is not you and has no time to be trained by you, but has to replace some part of it. How can we jumpstart them?

@deitch check out this doc

I am focusing primarily on the design doc. This was harder to do inline.
If I got the doc, you are saying that: nkv is a key-value store with notification. It primarily is a server, which exposes a simple API over a socket (network or file/unix domain), as well as a convenient client. Client isn't necessary, you can use the API directly via curl or anything else, if you want, but client - sdk and a wrapped CLI - makes it a lot more convenient.
So far so good?
The client just uses the sdk to wrap the API, so nothing much to discuss there.
Ah, yes, we should have an explicit document for the API, either hand-written or autogenerated.
The server "bridges" between the API over the socket and the storage engine. Now we are getting deeper into what is in the design.md doc.
I think there is one primary trait, NotifyKeyValue. This could just as easily have been named NkvStorage. It implements the storage engine? That is what I first thought, but NotifyKeyValue is not a trait, but a concrete struct. So NotifyKeyValue is an in-memory  structure that contains a map, where the keys are strings, and the values are Value struct, where the properties of Value are a PersistValue (trait) and a Notifier (trait).
So each value in the map is an individual storage engine (i.e. PersistValue), and an implementation that can notify subscribers about updates for that particular string key.

First, is that it? It is somewhat hard to understand the structure from the doc. It reads a bit like going from your understanding of how it works to how it is built, rather than the other way around.
Second, is this actually a "persist" value? Isn't that a choice? We might use a storage engine that writes everything to a database, another that does an mmapped file, another that saves it in Redis, another that is entirely in memory?
Third, why do it at the individual item level? Why not abstract the whole storage engine as a trait? So one engine would be backed by Redis, another by memory, another by mmapped files, another by custom files? Sort of the way that eden does it?

I think there is one primary trait, NotifyKeyValue. This could just as easily have been named NkvStorage. It implements the storage engine? That is what I first thought, but NotifyKeyValue is not a trait, but a concrete struct. So NotifyKeyValue is an in-memory structure that contains a map, where the keys are strings, and the values are Value struct, where the properties of Value are a PersistValue (trait) and a Notifier (trait).

I think if you rename PersistValue to StoragePolicy it'll become clearer. So in a nutshell NkvStorage (I like that name too, think we should keep it) does nothing but caching Generic Value. Value is another generic structure which consist of StoragePolicy and Notifier, those are 2 generic objects implementing traits. Meaning I already have compile time abstraction of Notification policies and Storage policies (maybe we should rename notifier and NotificationPolicy) . Plainly when creating NkvStorage I have to specify how I will notify my clients and how will I store the values. If we want to abstract Caching policies we can create a trait for that (i.e. store in cache only used values and offload others), then we will have LRUCachedTrie and NormalTrie, etc. etc. etc. As of now introducing this traits we have what you're talking about in third point, it'll look like this:
        let mut fs_tcp_nkv = NotifyKeyValue::<FileStorage, TcpNotifier>::new(path)?;
        let mut redis_tcp_nkv = NotifyKeyValue::<RedisStorage, TcpNotifier>::new(path)?;
        let mut mysql_uds_nkv = NotifyKeyValue::<MySqlStorage, UnixSockNotifier>::new(path)?;

Continuing the conversation from earlier today. The brief notes I recall.

Server = the primary engine that runs. It listens on a socket - Unix domain or TCP - for requests that conform to the API. It takes those requests (maybe authentication, etc.), validates them, and then sends the request over a channel to the nkvcore (or whatever you want to call it). Core receives on channel, and handles put/delete/get by calling whichever concrete implementation of StorageEngine is connected to it.
Client = just talks over socket to server. Convenient wrapper around REST API

Within the server, there are a few pieces. Naming is just a suggestion.

frontend - part of the server that handles socket communications, and translates between socket and channels. Also handles authentication (if we ever implement it) and API validation, etc. Also responsible for notifying nkvcore over channel about subscribers that went away. E.g. had a subscriber on a socket, it got shut down. frontend should tell core, "unsubscribe X".
NkvCore - primary library surface for server functionality. Does not listen on sockets, but rather on rust channels. Entirely expected to be in-process. Handles:

cache engine - if cache is selected, then this handles cache management, interfacing with the cache before/after the storage engine
storage engine - could be called StorageEngine or StorageBackend or even just Storage. Whatever you call it, a trait, that any concrete backend should implement. Should be able to handle put(k,v)/delete(k)/get(k)
notifier engine - keeps track of all of the subscribers to particular keys or patterns. After each update or delete, goes through the subscribers, creates a list of those to notify, and sends the list on the channel to the frontend, which handles how the actual notification happens.

From core's perspective, it doesn't know anything about notifications, about sockets, about APIs. It has a simple set of channels for receiving requests/sending responses and for sending notification messages. It is possible that the response and notification channels are the same, since there is not much difference between the response to "GET x" and "tell me when x changes".

Pheewww, So I rewrote docs and traits to be aligned with the conversation we had before. Didn't introduce caching trait yet, still caches everything in memory. Let me know if new version of doc is clearer or if I missed something.

This is really nice, and easy to understand. I didn't look at how the subscriptions and notifications are handled inside core, because you always can improve that. It is fully internal. I just have some suggestions on the doc language. I will comment inline.

@deitch are you okay with merging this?

Yup


Error Code 2512: Cant access private folder

Hi!
I have revoked a old device before adding the new one which I imagine would be the cause of this. Can I please have a folder reset. I don't mind if the contents are wiped.
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkRyX7Ap JdAgMgsy4yEHRhQ Y4c8dHxLPySbfJw 5bFlnAQP0D4Oi2L z9vKwqBrB8JC2q2 OHkqzVe8BnWPrXJ 83UQwYW4YJ7WiUH 4XHp8Juujox51PY iq8dBJwNX4zfAXZ mg6DndxbsVVjhM9 OFmfr1pgrlCMQsj lCOVnJW5TMgaDyZ zhgeF5N9ePM9VwA IdAyKO2VbByGCPC MOpuQKDVGkyShnj CHkYvgAVbq49opC RftRbFrExi2KfFK pWHqlRDHATmLUDw wRNrhowPpbO9xCR sNylwll81Hrkupe LAYiwz5PFmi037A ISahqtxDsCNlp22 dWh3LOGoK64TpiG Vy. END KEYBASE SALTPACK SIGNED MESSAGE.
Thank you!

I reset the folder.  Please check it out and close this if everything seems ok.  (Might require a Keybase restart.)


Write v0.9 Documentation

Document how the Cayo works in general, the use case, the config, and the caveats.

[ ] overview

[ ] why Cayo?
[ ] use case(s)
[ ] how it works (high level)
[ ] caveats

[ ] getting started

[ ] install
[ ] requirements

[ ] template file
[ ] import Cayo component

[ ] config
[ ] template file examples
[ ] explain how entry files work
[ ] more runtime code example(s)?
[ ] Skeleton example

Also should add a Comparison section, for Cayo vs. Svelte Kit vs. Elder.js.

Elder.js

is pretty similar
requires more boilerplate
supports a ton of extra stuff Cayo does not (hooks, shortcodes, markdown, etc.)
is likely better for larger sites
is likely better for sites that rely on external data that needs to be rendered
want added SEO features

Cayo

probably best when a significant amount of your page(s) will be static HTML
small to medium sized projects
its more like a utility than a framework
uses vite for dev (fast)


Fix certificate issuing process

Now we have two problems:

Certificate issuing process (DNS verification sometimes fails)
wget, curl and python fail (instead of browsers) on connections to cluster resources. Sounds like fullchain cert not contains intermediate certs (https://github.com/ansible/ansible/issues/18996)

Has been merged into develop


python312Packages.peaqevcore: 19.6.10 -> 19.7.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python312Packages.peaqevcore is: Library for interacting with Peaqev car charging
meta.homepage for python312Packages.peaqevcore is: https://github.com/elden1337/peaqev-core
meta.changelog for python312Packages.peaqevcore is: https://github.com/elden1337/peaqev-core/releases/tag/19.7.0
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 19.7.0 with grep in /nix/store/i3ry6c6yd930h0yv77xmjcqsr9bfjfm0-python3.12-peaqevcore-19.7.0
found 19.7.0 in filename of file in /nix/store/i3ry6c6yd930h0yv77xmjcqsr9bfjfm0-python3.12-peaqevcore-19.7.0

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath
python311Packages.peaqevcore
python312Packages.peaqevcore

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/i3ry6c6yd930h0yv77xmjcqsr9bfjfm0-python3.12-peaqevcore-19.7.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python312Packages.peaqevcore https://github.com/r-ryantm/nixpkgs/archive/94b96917158b3b7dbd0f97226e01f618fdf1746c.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/94b96917158b3b7dbd0f97226e01f618fdf1746c#python312Packages.peaqevcore

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/i3ry6c6yd930h0yv77xmjcqsr9bfjfm0-python3.12-peaqevcore-19.7.0
ls -la /nix/store/i3ry6c6yd930h0yv77xmjcqsr9bfjfm0-python3.12-peaqevcore-19.7.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

python311Packages.peaqevcore
python312Packages.peaqevcore

Maintainer pings
cc @fabaff for testing.

Result of nixpkgs-review pr 290566 run on x86_64-linux 1

4 packages built:

python311Packages.peaqevcore
python311Packages.peaqevcore.dist
python312Packages.peaqevcore
python312Packages.peaqevcore.dist

Result of nixpkgs-review pr 290566 run on x86_64-linux 1

4 packages built:

python311Packages.peaqevcore
python311Packages.peaqevcore.dist
python312Packages.peaqevcore
python312Packages.peaqevcore.dist


Flink runner: support MapState in FlinkStateInternals.

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[ ] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[ ] Make sure tests pass via mvn clean verify.
[ ] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[ ] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

R: @aljoscha

Coverage decreased (-0.007%) to 70.633% when pulling 071a11f50aaa30075cb6358c41a9ffae1a9a9871 on peihe:flink-map-state into 462335caf8d148eff8aee86fb00b53960fcd5895 on apache:master.

The changes look good! Have you tried removing the exclusion of UsesMapState tests for the ValidatesRunner tests in the Flink Runner pom?

Run Flink ValidatesRunner

Coverage increased (+0.01%) to 70.65% when pulling 013ceb3f47c212ad0fc628a03daa5c9727fb4ac4 on peihe:flink-map-state into 462335caf8d148eff8aee86fb00b53960fcd5895 on apache:master.

retest this please

Coverage decreased (-0.02%) to 70.619% when pulling 013ceb3f47c212ad0fc628a03daa5c9727fb4ac4 on peihe:flink-map-state into 462335caf8d148eff8aee86fb00b53960fcd5895 on apache:master.

PTAL
Turned on UsesMapState tests, and ValidatesRunner passed.

LGTM! 👍
While on this, we can probably also easily add support for SetState.


Starter template app broken if created with default options but run with http launch profile

An app created with the starter template is broken if created with the default options but run with the "http" launch profile. This is because by default https is enabled, which creates the projects with two launch profiles, one for "http" and one for "https", but the URL emitted in the frontend project for the API service is "https://", so when launched with the "http" profile, the API service is not listening on https and so the call fails.
We should consider changing the templates so that only one launch profile is emitted depending on the options used, i.e. "http" or "https".

We'll need to revisit this at some point to reconsider whether we want to add HTTPS support back to the templates and how to improve the E2E for all environments.

Related to https://github.com/dotnet/aspire/issues/381

We should start looking at this in preview 4 if possible.

Moving to Preview 5 in favor of removing milestone preview TBD.

Part of #2453


Add seperat env for unique token

Fix for comment discussion in https://github.com/brianium/paratest/commit/ec7216b9cdbefa0d6c358913152d33117f01c23e

Thanks.
A Token object would be nice to get rid of the array juggling.
PS: this is release 0.12.0


Remove entries for non-existent achievements.

Currently I've removedd problematic achievements from src/data/achievements/xx.json for all languages in there. The false ones that I was able to identify are the following:

81416: Measure of Interference
81418: Gentle Descent
81453: Hanging Gardens of Plucked Jade

I've found various sources that state that these may have been present in beta versions and datamined into paimon.moe, but they aren't obtainable in-game and have plagued the site since 4.2 (also 4.4).
This might fix part of #557 and most of the other issues related to non-existent achievements in Wonders of the World.
Any feedback or suggestions are appreciated, in case I've missed any achievements or there are more entries that need removing.

@EvilSquirrelGuy I wrote a comment describing how you might solve this small problem for yourself. It's not a great solution, but it's a modest solution. Take a look if you'd like. https://github.com/MadeBaruna/paimon-moe/pull/567#issuecomment-2375163522


Crash in SkBlurMaskFilter.cpp:963

 Issue by Hixie
Tuesday Oct 13, 2015 at 17:31 GMT
Originally opened as https://github.com/flutter/engine/issues/1593

I got a crash with the following stack trace today while rendering a material button (which may or may not have a shadow):
.../lib/libc.so (tgkill+12)
.../lib/libc.so (pthread_kill+32)
.../lib/libc.so (raise+10)
.../lib/libc.so (__libc_android_abort+34)
.../lib/libc.so (abort+4)
.../lib/libc.so (__libc_fatal+16)
.../lib/libc.so (ifree+202)
.../lib/libc.so (je_free+374)
.../third_party/skia/src/effects/SkBlurMaskFilter.cpp:963
.../third_party/skia/src/effects/SkBlurMaskFilter.cpp:1127
.../third_party/skia/src/gpu/SkGpuDevice.cpp:557 (discriminator 1)
.../third_party/skia/src/core/SkCanvas.cpp:2081 (discriminator 1)
.../third_party/skia/src/gpu/GrRecordReplaceDraw.cpp:106 (discriminator 1)
.../third_party/skia/src/gpu/GrRecordReplaceDraw.cpp:224
.../third_party/skia/src/gpu/SkGpuDevice.cpp:1968 (discriminator 1)
.../third_party/skia/src/core/SkCanvas.cpp:2794
.../third_party/skia/src/core/SkCanvas.cpp:2770
.../third_party/skia/include/core/SkCanvas.h:996
.../sky/compositor/container_layer.cc:23 (discriminator 1)
.../sky/compositor/transform_layer.cc:20
.../sky/shell/gpu/rasterizer.cc:71 (discriminator 2)
.../base/bind_internal.h:176 (discriminator 6)
.../base/callback.h:396 (discriminator 1)
.../base/callback.h:396 (discriminator 1)
.../base/message_loop/message_loop.cc:481
.../base/message_loop/message_loop.cc:490
.../base/message_loop/message_loop.cc:602
.../mojo/message_pump/message_pump_mojo.cc:159
.../mojo/message_pump/message_pump_mojo.cc:123
.../base/message_loop/message_loop.cc:445 (discriminator 1)
.../base/run_loop.cc:55
.../base/message_loop/message_loop.cc:288
.../base/threading/thread.cc:248
.../base/threading/platform_thread_posix.cc:74
.../lib/libc.so (__pthread_start(void*)+30)
.../lib/libc.so (__start_thread+6)

Specifically, my steps to reproduce are: load the sector widgets demo (you'll have to wait for me to check that in), then hit add and remove a lot.

Haven't been able to reproduce this recently. Maybe it was fixed upstream? Marking it closed.


Github 94 reuse socket connections

Managed to get github to fork the repo. This contains the fixes outlined in issue #94.

Thanks!
Patch looks good. Will have a closer look during the week on it and will probably apply it.

This patch exposes a bug in socketpool now sockets get put in the pool. murder_connections() just spins until the socket is too old because the socket just gets pushed and popped from the queue endlessly.
Given that ConnectionPool.get() iterates through the pool and removes old sockets what is the purpose of murder_connections() ?

On Monday, March 5, 2012, adamlofts wrote:

This patch exposes a bug in socketpool now sockets get put in the pool.
murder_connections() just spins until the socket is too old because the
socket just gets pushed and popped from the queue endlessly.
Given that ConnectionPool.get() iterates through the pool and removes old
sockets what is the purpose of murder_connections() ?

It's here to remive iddle connections from the pool instead of keeping them
alive indefinitly. It's useful in some cases.

Reply to this email directly or view it on GitHub:
https://github.com/benoitc/restkit/pull/95#issuecomment-4323497

It's here to remive iddle connections from the pool instead of keeping them
alive indefinitly. It's useful in some cases.

OK. Not clear on the fix then. A different data structure?
I've also just noticed that when sockets are discarded from the pool
close() is not called on them to gracefully shutdown the tcp connection.

that should be probably fixed in socketpool indeed. Do you have any trace? i will be off tomorrow, but will definitly have a look on it.


The performance specified in github is not reproduced.

Hi, I would like to reproduce the preformance of github with the pre-trained model given by CUDA-PointPillars.
However, I would like to ask help because it is not reproduced.
Compared to the pytorch model, the preformance of the onnx converted model is reduced by 10%.
Is there someone who is in a similar situation to me or can you help me?
Below is the preformance that I reproduced.
                  |car    | Pedestrain    |Cyclist
CUDA-PointPillars | 67.67 | 50.40         | 56.73
OpenPCDet         | 77.28 | 52.29         | 62.68

I have the same problem, have you solved it?
Below is the performance that I reproduced.
|car    | Pedestrain    |Cyclist
CUDA-PointPillars(fp16)  | 67.50 | 50.93           | 55.86
CUDA-PointPillars(fp32)  | 67.49 | 51.17           | 56.04
OpenPCDet                     | 77.09 | 51.39           | 62.46

Me too,i I have the same problem!

Hi, are you using original point-cloud bin as CUDA-PointPillars input? Need to prune the bin and only keep points in camera FOV to reproduce the numbers.

Hi, are you using original point-cloud bin as CUDA-PointPillars input? Need to prune the bin and only keep points in camera FOV to reproduce the numbers.

How to prune the bin?


Develop

Status icons for wounds and fatigue. Complete.

Please merge to develop instead of master

Please merge to develop instead of master


make tile source configurable: you can choose now osm or mapbox

Would you mind providing a screenshot of what this looks like? I think I know, but I want to make sure this is what I think it is.

The pull requests purpose is to allow users to choose from different TileLayers. Pherhaps it's possible later on to make persons from the markers Layer selectable too.

👍 Looks good to me. There are some limits on using the OSM tiles, but I think this is okay.


textarea with submit:true evaluates to "" BEFORE submit is pressed

Repro https://observablehq.com/@tomlarkworthy/community-help#essay
Setting minlength:1 fixes it.

Unless you set minlength to 1, the empty string is a valid value, so this is the expected behavior.


Refactor function signatures

Refactoring things to make #794 possible. It also brings onNewVersion to the top of the pipeline rather than burying it inside reconcileVersions which wasn't great in hindsight.
Left to do:

[x] add tests for Array.whenAllComplete
[x] add/update docstrings for added/updated analyzer functions

I'm loving the type safety of Swift to be able to do things like this in a morning without going absolutely crazy. This should be set now - I'll merge and then let it run a bit on staging before rolling it out.


Bug: Typegen does not output correct types

Description
This might be an error in my code, but after a couple of sessions trying to log from the machine-extractor/dist/xstate-machine-extractor.cjs.dev.js file, etc, without results, I thought to ask for help. Can you please help me understand why typegen doesn't seem to like my machine?
// machine.ts
import { createMachine, assign } from 'xstate'

import { Context, Events, States } from './types'

export const graphMachine = createMachine(
  {
    id: 'graph',
    // eslint-disable-next-line xstate/no-invalid-state-props
    predictableActionArguments: true,
    tsTypes: {} as import('./machine.typegen').Typegen0,
    initial: States.idle,
    states: {
      [States.idle]: {
        on: {
          LOAD: {
            target: States.loading,
          },
        },
      },
      [States.loading]: {
        invoke: {
          id: 'loading',
          src: 'fetchGraphData',
          onDone: {
            target: States.loaded,
            actions: ['assignGraphData'],
          },
          onError: {
            target: States.error,
            actions: ['assignError'],
          },
        },
      },
      [States.loaded]: {
        on: {
          LOAD: {
            target: States.loading,
            actions: ['resetContext'],
          },
          UNLOAD: {
            target: States.idle,
            actions: ['resetContext'],
          },
        },
      },
      [States.error]: {},
    },
    schema: {
      context: {} as Context,
      services: {} as {
        fetchGraphData: { data: unknown }
      },
      events: {} as Events,
    },
  },
  {
    services: {
      fetchGraphData: async (context: Context): Promise<unknown> =>
        fetch(context.path),
    },
    actions: {
      assignGraphData: assign({
        graphData: (context) => context.graphData,
      }),
      resetContext: assign((context) => ({
        ...context,
        selectedGraph: '',
        graphData: null,
        path: '',
      })),
    },
  }
)

// types.ts
export const States = {
  idle: 'idle',
  loading: 'loading',
  loaded: 'loaded',
  error: 'error',
}

export type STATES = typeof States[keyof typeof States]

export interface Context {
  selectedGraph: string
  graphData: unknown
  path: string
}

export type Events = LOAD | UNLOAD

interface LOAD {
  type: 'LOAD'
  selectedGraph: string
  path: string
}

interface UNLOAD {
  type: 'UNLOAD'
  selectedGraph: null
  path: string
}

// machine.typegen.ts
// This file was automatically generated. Edits will be overwritten

export interface Typegen0 {
  '@@xstate/typegen': true
  internalEvents: {
    'xstate.init': { type: 'xstate.init' }
  }
  invokeSrcNameMap: {}
  missingImplementations: {
    actions: never
    services: never
    guards: never
    delays: never
  }
  eventsCausingActions: {}
  eventsCausingServices: {}
  eventsCausingGuards: {}
  eventsCausingDelays: {}
  matchesStates: undefined
  tags: never
}

Expected result
I expect typegen to infer some types and output them to machine.typegen.ts
Actual result
It appears I just have the intial output.
Reproduction
https://stately.ai/viz/a89b2aa2-92ca-4c7e-b96d-e66e1272480a
Additional context
Node v v14.19.1
"@xstate/cli": "^0.3.3",
"@xstate/react": "^3.0.1",
"@xstate/inspect": "^0.7.0",
"xstate": "^4.33.6"
"eslint-plugin-xstate": "^1.0.2",

You need to define your machine types in the same file as the machine. Typegen currently only reads the current file for type information.

Yeah, you can define Events and Context externally but States should get inlined, so:
// machine.ts
import { createMachine, assign } from 'xstate'

import { Context, Events } from './types'

export const graphMachine = createMachine(
  {
    id: 'graph',
    // eslint-disable-next-line xstate/no-invalid-state-props
    predictableActionArguments: true,
    tsTypes: {} as import('./machine.typegen').Typegen0,
    initial: 'idle',
    states: {
      idle: {
        on: {
          LOAD: {
            target: 'loading',
          },
        },
      },
      loading: {
        invoke: {
          id: 'loading',
          src: 'fetchGraphData',
          onDone: {
            target: 'loaded',
            actions: ['assignGraphData'],
          },
          onError: {
            target: 'error',
            actions: ['assignError'],
          },
        },
      },
      loaded: {
        on: {
          LOAD: {
            target: 'loading',
            actions: ['resetContext'],
          },
          UNLOAD: {
            target: 'idle',
            actions: ['resetContext'],
          },
        },
      },
      error: {},
    },
    schema: {
      context: {} as Context,
      services: {} as {
        fetchGraphData: { data: unknown }
      },
      events: {} as Events,
    },
  },
  {
    services: {
      fetchGraphData: async (context: Context): Promise<unknown> =>
        fetch(context.path),
    },
    actions: {
      assignGraphData: assign({
        graphData: (context) => context.graphData,
      }),
      resetContext: assign((context) => ({
        ...context,
        selectedGraph: '',
        graphData: null,
        path: '',
      })),
    },
  }
)

Is there any plan to allow for the use of variables in machine definition? Or a ticket I can follow or watch?

I'm more likely to write my own types until this is more robust, but I'd really like to use typegen!

Could you tell us more about why you want this feature? What's wrong with plain state names from your point of view?

I'm more likely to write my own types until this is more robust, but I'd really like to use typegen!

Note that it's nearly impossible to achieve the same type-safety when you write your own types.

From my POV, it's hard to imagine a world where I have to inline all my variables, [...] It sounds like you're suggesting that we should write the machine in one single declaration without adding any types.

Notice that the adjusted code here is still using variables and types. It's just that the structure of the states is "static" and doesn't use any variables for declaring that part of the whole thing.

Surely you can see how variables might be desirable? I can think of a few reasons off the top of my head. Dynamic states seem like they would be better for:

Testing
Reuse of machines and base states
Separation of concerns
Readability
File size

Thank you for the code update. It does generate types correctly when you remove the variable names from the state object. Still, I'd really like to see an example of a repo that makes use of the typegen file in ideal/correct "xstate way". I have been reading about xstate in depth for a while now, and the available examples of this seem to be limited/incomplete.

Yes, I can imagine some things - but it's still very useful to hear the feedback from the users. I don't want to assume things because then I might be solving the wrong problem.

Testing

Could you expand on that?

Reuse of machines and base states

Reuse of machines is not blocked by this. The reuse of base states gets really complicated with the visual editing of the machine. When you edit a reused part - what do you expect to happen? Should it propagate to other machines that use this base state? I'm not entirely sure if that's always desirable - it feels a little bit magical to me (that might just be me though). Note that editing such a base state could always lead to introducing errors in machines that you are not looking at the moment, but I guess the same is true when you edit them from the code and not from the visual editor. With the visual editor, it's way less obvious though because you look at the whole machine, and not at its slice.

Separation of concerns

I don't understand this argument. Could you expand on that?

Readability

This is very subjective but I think that for most people this [States.idle]: is less readable than idle:.

File size

This is highly related to the reuse argument. I don't quite think that it matters outside of that argument.

Ultimately, any place you wish to reference your states again, you're repeating yourself, or you have to go to the trouble of instantiating the machine.
Testing
Perhaps you want to trigger certain UI interactions and test the machine response. The only way to do that is to duplicate code. Now if you consider that part of the machine has been reused multiple times, this duplication becomes quite repetitive and problematic.
Reuse of base machines
It is impossible to reuse states given this paradigm. I also learned on a previous issue posted here that we cannot pass an object to createMachine. This feels very limiting to me. Has this changed in the last few months?
Consider this - Since one of the natural enemies of the FSM is "state explosion" the cleverest approach seems to be keeping the machines quite small. In this case, there would be some overlap in machine configuration/style/implementation, and an obvious benefit from reuse.
I work for a big company where several teams work on different parts of the same codebase. This can get really messy if conventions are not created/enforced. In my mind this can lead to much greater instability than dealing with the side effects of extending an object. Thus being able to abstract layers becomes a big focus of adding tooling to the repo.
It's not clear to me how this conflicts with the visual editor, since underneath determining the final machine behavior should be consistent with the IDE. Just making a guess, but I would expect the override with the highest precedence would be the final outcome of a (dynamically?) modified state.
Separation of concerns
Personally, I would prefer to separate the declaration of states from the instantiation of the machine, because logically they're different entities. The state describes the application, the machine instantiation describes its behavior.
Readability
You're right that it is subjective, but I would posit seeing States.idle is more visual context than idle


[BUG] Creating a DataLake file within a subdirectory truncates the initial directory

Describe the bug
When you create a directory, then a subdirectory, then a file within that subdirectory. The uri truncates the initial directory.
e.g.
directory/subdirectory/file becomes subdirectory/file
The file gets created without the initial directory in the path.
Expected behavior
Should create the file in the initial directory path
To Reproduce
Steps to reproduce the behavior (include a code snippet, screenshot, or any additional information that might help us reproduce the issue)
[Test]
        public async Task CreateSubDirectoryAndFileAsync()
        {
            await using DisposingFileSystem test = await GetNewFileSystem();
            DataLakeDirectoryClient directory = await test.FileSystem.CreateDirectoryAsync(GetNewDirectoryName());

            // Arrange
            string directoryName = GetNewDirectoryName();
            string fileName = GetNewFileName();

            // Act
            DataLakeDirectoryClient subdirectory = await directory.CreateSubDirectoryAsync(directoryName);
            DataLakeFileClient file = await subdirectory.CreateFileAsync(fileName);

            // Assert
            Assert.AreEqual(file.BlobUri.AbsoluteUri, subdirectory.BlobUri.AbsoluteUri + '/' + fileName);
        }

Hi @amnguye, thanks for the detailed example.  I can repo, and we will have a bug fix soon!


[proposal]Collect metrics data from the kubelet instead of the cgroup.

What is your proposal:
Collect resource used metrics of node/pod  from kubelet instead of cgroup.
Kubelet has exported metircs by cAdvisor, We can collect metircs from kubelet directly.
Why is this needed:
Shield  the differences of CGroup V1 and V2
Is there a suggested solution, if so, please add it:

metrics from cAdvisor is limited both on precision and type
strategies in koordlet need more fine-grained metric, so instead of using cadvisor, we should consider the adaption of cgroup v2.


Character Plays All Frames

Describe your problem here.
Every time I try to add a character, no matter what I do, when I try to add an animation, it plays all the frames at once, even though the .xml and the .png are matched up and the .xml specifically says which animations are which.
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No

Add it by indices instead of prefix
like on the xml file it's "NAME SINGUP 0000" -> "NAME SINGUP 0010" the indices are 0,1,2,3,4,5,6,7,8,9,10

Also if possible can you show the xml file?

<?xml version='1.0' encoding='utf-8'?> <TextureAtlas imagePath="Orion.png"> <SubTexture name="SingUP0000" x="0" y="0" width="354" height="607" frameX="0" frameY="0" frameWidth="354" frameHeight="607" /> <SubTexture name="SingDOWN0000" x="354" y="0" width="354" height="568" frameX="0" frameY="0" frameWidth="354" frameHeight="568" /> <SubTexture name="SingDOWN0001" x="708" y="0" width="354" height="622" frameX="0" frameY="0" frameWidth="354" frameHeight="622" /> <SubTexture name="SingUP0001" x="0" y="622" width="354" height="658" frameX="0" frameY="0" frameWidth="354" frameHeight="658" /> <SubTexture name="SingLEFT0000" x="354" y="622" width="554" height="606" frameX="0" frameY="0" frameWidth="554" frameHeight="606" /> <SubTexture name="SingLEFT0001" x="908" y="622" width="538" height="634" frameX="0" frameY="0" frameWidth="538" frameHeight="634" /> <SubTexture name="SingRIGHT0000" x="0" y="1280" width="538" height="634" frameX="0" frameY="0" frameWidth="538" frameHeight="634" /> <SubTexture name="SingRIGHT0001" x="538" y="1280" width="474" height="677" frameX="0" frameY="0" frameWidth="474" frameHeight="677" /> <SubTexture name="idle0000" x="1012" y="1280" width="482" height="594" frameX="0" frameY="0" frameWidth="482" frameHeight="594" /> <SubTexture name="idle0001" x="0" y="1957" width="482" height="631" frameX="0" frameY="0" frameWidth="482" frameHeight="631" /> </TextureAtlas>

Go to animations section, choose one like SINGUP and enter the name of the animation on XML File
If it still doesn't work add a prefix before animation on xml like "BF SINGUP0000" instead of just SINGUP0000

Also try remake the xml file and save it as "UTF-8" instead of "UTF-16"

sorry windows is set to french