Use memory/span for SSPI generation

This change makes more use of memory/span APIs so that SSPI generation does not need to track arrays and indices.

The interop layer gets some updates to use span instead of pointers
Updates the SSPI generation to take in a ReadOnlyMemory

Part of #2253
Fixes #2441

@David-Engel step 2 in the sspi journey

@David-Engel any chance to get a review here?

Pipeline failures are due to test config changes that can be pulled in from main. I ran the Kerberos test pipeline against the branch and all tests passed. This just needs one more reviewer.
@JRahnama, @DavoudEshtehari


Re-enable observability integration tests after service typing change

Description:
Commit: https://github.com/ballerina-platform/ballerina-lang/commit/4c1d0f489684e03f2d4db13048d84c50f8b521f7
Steps to reproduce:
Affected Versions:
OS, DB, other environment details and versions:
Related Issues (optional):

Suggested Labels (optional):

Suggested Assignees (optional):

Depends on #27402

Closing as the test cases had been enabled.


All GUI apps unresponsive

Environment
Windows build number:Microsoft Windows [Version 10.0.22000.282]
Your Distribution version: Ubuntu 20.04
Your WSLg version: 1.0.26 (preview from app store)

Steps to reproduce
Not sure what caused the crash, all GUI apps become unresponsive. Unable to move/resize their windows or interact with them in anyway. I was also running Docker Desktop at the same time.
 Process didn't seem to go away. Using wsl.exe --shutdown  resolved the issue.
WSL logs:

Attach WSLg logs from  /mnt/wslg

You can access the wslg logs using explorer at: \\wsl$\<Distro-Name>\mnt\wslg (e.g.: \\wsl$\Ubuntu-20.04\mnt\wslg)

pulseaudio.log
weston.log
stderr.log
versions.txt

The same thing happens to me, regardless of the docker. Google Chrome, Jetbrains apps (toolbox, intellij. Sometimes all windows disappear with no error message whatsoever. It seems that the RDP connection is not there anymore.
From pulseaudio.log:
W: [pulseaudio] authkey.c: Failed to open cookie file '/home/wslg/.config/pulse/cookie': No such file or directory
W: [pulseaudio] authkey.c: Failed to load authentication key '/home/wslg/.config/pulse/cookie': No such file or directory
W: [pulseaudio] authkey.c: Failed to open cookie file '/home/wslg/.pulse-cookie': No such file or directory
W: [pulseaudio] authkey.c: Failed to load authentication key '/home/wslg/.pulse-cookie': No such file or directory
E: [pulseaudio] module-console-kit.c: GetSessionsForUnixUser() call failed: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.ConsoleKit was not provided by any .service files
E: [pulseaudio] module.c: Failed to load module "module-console-kit" (argument: ""): initialization failed.
E: [rdp-sink] module-rdp-sink.c: RDP Sink - Trying to connect to /mnt/wslg/PulseAudioRDPSink
E: [rdp-sink] module-rdp-sink.c: Connected failed
E: [rdp-sink] module-rdp-sink.c: RDP Sink - Trying to connect to /mnt/wslg/PulseAudioRDPSink
E: [rdp-sink] module-rdp-sink.c: RDP Sink - Connected to fd 12

here's also weston.log ⬇
weston.log
`stderr.log' ⬇
dbus[11]: Unknown username "pulse" in message bus configuration file
glamor: 'wl_drm' not supported
Missing Wayland requirements for glamor GBM backend
Failed to initialize glamor, falling back to sw
/usr/share/icons/hicolor/scalable/apps/org.gnome.gedit.svg: unrecognized file header 0x3c 0x3f 0x78 0x6d
/usr/share/icons/hicolor/scalable/apps/org.gnome.seahorse.Application.svg: unrecognized file header 0x3c 0x3f 0x78 0x6d
/usr/share/icons/hicolor/scalable/apps/ibus-setup.svg: unrecognized file header 0x3c 0x3f 0x78 0x6d
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Internal error:   Could not resolve keysym XF86FullScreen
Errors from xkbcomp are not fatal to the X server
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Internal error:   Could not resolve keysym XF86FullScreen
Errors from xkbcomp are not fatal to the X server
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Internal error:   Could not resolve keysym XF86FullScreen
Errors from xkbcomp are not fatal to the X server
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Internal error:   Could not resolve keysym XF86FullScreen
Errors from xkbcomp are not fatal to the X server

versions.txt   ⬇
WSLg ( x86_64 ): 1.0.26+Branch.main.Sha.26ce2c09b86442f3c7f4f6462f770ed2afa76a25
Mariner: VERSION="1.0.20210224"
FreeRDP: b05321cd4e6a862aef76163a69db4e1910245736
weston: 46756d0e77e5c01b5995fbbee6f3ab0db9b30612
pulseaudio: 2f0f0b8c3872780f15e275fc12899f4564f01bd5
mesa:

Had the same thing happen to me while working on a little python tutorial for building a roguelike game. Repro steps seem pretty consistent. In Step 1 of the tutorial, it demonstrates how you can write a script that responds to the ESC key on the keyboard to close the game. When you first run the Step 1 code, the window closes normally. When you try to run the code again though, the game window flashes briefly and then terminates. I've done some light debugging of the issue and it seems like the root cause is the SystemExit() is what puts the window server into that state.
Steps to Reproduce

Pull the sample code from this repo https://github.com/TStand90/tcod_tutorial_v2/tree/2020/part-1
Using PYthon 3.5+, install the requirements.txt
run python3 main.py
Press ESC key to close the windows
run python3 main.py again

Expected Results
Should see the game window again
Actual Results
Game window flashes briefly and then disappears.
Workaround
As @shebiki mentions, you basically have to shut down wsl and then open a new terminal to get things back to normal again.
stderr.log seems similar to what others have posted
dbus[11]: Unknown username "pulse" in message bus configuration file
glamor: 'wl_drm' not supported
Missing Wayland requirements for glamor GBM backend
Failed to initialize glamor, falling back to sw
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Internal error:   Could not resolve keysym XF86FullScreen
Errors from xkbcomp are not fatal to the X server
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Internal error:   Could not resolve keysym XF86FullScreen
Errors from xkbcomp are not fatal to the X server

This is driving me crazy and is impeding my ability to work for Microsoft!

This happens on basis for me and is catastrophic. Especially with Jetbrains apps running from WSL.

I also found this bug in the openGL program I wrote, there is a possibility that the ESC key will be triggered within one second after the program starts.

This issue is fixed in preview

I use WSLG only for intellij.
For me this is likely to happen when i have my docker containers up and running, but not every time happens. This non-deterministic thing is kinda frustraing.
Only restarting whole wsl solves the problem, and this is quite annoying as then i need to relaunch all the apps and services i was working on.
Not sure if this relates to or is duplicated by #605

I can't reproduce this issue on WSLg >= 1.0.47, I think it's time to close this issue.

I am facing exact same issue with Intellij and Docker and my wslg version is 1.0.51.
As previous comments I cannot find reason of that.
WSL version: <IP_ADDRESS>
Kernel version: <IP_ADDRESS>
WSLg version: 1.0.51
MSRDC version: 1.2.3770
Direct3D version: 1.608.2-61064218
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.19045.3448


⚠ HDBits has degraded performance

In a717739, HDBits ($HDB) experienced degraded performance:

HTTP code: 200
Response time: 1802 ms

Resolved: HDBits performance has improved in 2ebb174 after 6 minutes.


Correct order of ossl_condvar_signal in quic_multistream_test

quic_multistream test was issuing a signal on a condvar after dropping the corresponding mutex, not before, leading to potential race conditions in the reading of the associated data
Related to #22588

LGTM...pending this coming out of draft before approval.

I think this is probably worth merging, even though it doesn't fix the nonstop problem yet, as locking shared data (fake_now), and correcting the mutex/signal order is the right thing to do in terms of programming patterns

Few comments, otherwise looks good

This might fix the issues I've noticed on VMS.  I'll have a look this evening

24 hours has passed since 'approval: done' was set, but as this PR has been updated in that time the label 'approval: ready to merge' is not being automatically set.  Please review the updates and set the label manually.

As the last fixup is only a trivial code style fix no re-approvals are IMO needed.

Merged to the master and 3.2 branches. Thank you.

Unfortunately, this didn't fix the VMS test issue either...  [sigh]


Favicon doesn't load when viewing iniline content

For example when viewing uploaded image

We don't have any favicon, I mean it's not really configured or anything


feature request: Permute/Transpose of a mem desc

This functionality is expected to have the same usage as submemory or reshape to create a 'permuted view' that can be directly attached to an old buffer without actually reordering the underlying data.
E.g.
abcd --> permute({1, 0, 2, 3}) --> bacd
ABcd16a16b --> transpose(0, 1) --> BAcd16b16a

I have come up with the following implementation that works perfectly on plain and blocking formats.
So how to make it more robust and will DNNL support this functionality in a later release?
struct desc {
  desc permute(const dims &perms) const {
    // ... some checks here

    desc new_desc{};
    auto ndims = data.ndims;
    new_desc.data.ndims = data.ndims;
    new_desc.data.data_type = data.data_type;
    new_desc.data.format_kind = data.format_kind;
    new_desc.data.offset0 = data.offset0;

    // permute dims, padded_dims, padded_offsets, strides
    auto& new_dims = new_desc.data.dims;
    auto& old_dims = data.dims;
    auto& new_stride = new_desc.data.format_desc.blocking.strides;
    auto& old_stride = data.format_desc.blocking.strides;
    auto& new_paddim = new_desc.data.padded_dims;
    auto& old_paddim = data.padded_dims;
    auto& new_padoff = new_desc.data.padded_offsets;
    auto& old_padoff = data.padded_offsets;
    for (int i = 0; i < ndims; i++) {
      new_dims[i] = old_dims[perms[i]];
      new_stride[i] = old_stride[perms[i]];
      new_paddim[i] = old_paddim[perms[i]];
      new_padoff[i] = old_padoff[perms[i]];
    }

    // permute blocking
    auto inner_nblks = data.format_desc.blocking.inner_nblks;
    new_desc.data.format_desc.blocking.inner_nblks = inner_nblks;
    auto& old_inner_idxs = data.format_desc.blocking.inner_idxs;
    auto& new_inner_idxs = new_desc.data.format_desc.blocking.inner_idxs;
    auto& old_inner_blks = data.format_desc.blocking.inner_blks;
    auto& new_inner_blks = new_desc.data.format_desc.blocking.inner_blks;
    for (int i = 0; i < inner_nblks; i++) {
      new_inner_idxs[i] = perms[old_inner_idxs[i]];
      new_inner_blks[i] = old_inner_blks[i];
    }

    return new_desc;
  }
}

Hi @pinzhenx,
The function itself looks good to me, meaning that it indeed makes a logical axis permutation leaving the raw data untouched. Not every memory format can be re-thought like that, but the implementation works fine for the blocked-memory, which covers 99% of the cases in DNNL.
We actually use this implementation in deconvolution [1].
The biggest issue with this function however is that even if it succeeds, most likely there would be no primitives that support the resulting permuted memory format. The only exceptions I can think of are:

Plain memory formats, in which case the permuted memory is again a plain memory format, but with different strides; So we might have some optimized primitives for that.
Reorder, where we have very generic code generator that should handle arbitrary memory formats.

So, could you please elaborate more on what kind of problem you are trying to solve with this function?

[1]
We have similar implementation in ref_deconvolution.hpp that uses convolution underneath: see this and this. Essentially, the same code as what you wrote, but for a very particular permutation: o <-> i.

Hi @emfomenk
It's a coincidence that I came across this problem when I was also dealing with deconv to transpose o <-> i, because mkldnn didn't have giodhw yet ...
And for general purpose, I think it's useful for implementing Transpose and Permute in various frameworks.


Bower installs old version

bower still installs v0.1.2 instead of v0.2.0

Thanks, I've added a release tag, it's now 0.2.1


Does it work with Mac

Hey there,
It seems it doesn't work with Mac as it gives this error: "AssertionError: Torch not compiled with CUDA enabled" when running this command: python3 server.py --ip '<IP_ADDRESS>' --port 60808
Is that working with Mac?

No... whisper requires sparseMPS which is not implemented on torch.
I did try, to use MLX-whisper instead...however:
Here is what I did - get the nightly torch - dont use 2.3.0:
pip install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu
pip install mlx-whisper

then modified the requirements.txt and removed torch, torchvision, torchaudio and whisper before running: pip install -r requirements.txt
Then, before you can run the client Streamlit app on Mac, you need to add portAudio for arm64
arch -arm64 /opt/homebrew/bin/brew install portaudio
Then you can install pyaudio, but it needs to reference the arm64 portaudio
pip3 install --no-cache-dir --global-option='build_ext' --global-option='-I/opt/homebrew/Cellar/portaudio/19.7.0/include' --global-option='-L/opt/homebrew/Cellar/portaudio/19.7.0/lib' PyAudio==0.2.14
Next, there is an error in the mini-omni2 repo...  a missing file:
copy init.py from root into the /utils directory
Launch the server in a separate window (make sure to activate the conda environment)
python3 server.py --ip '<IP_ADDRESS>' --port 60808 mps
(client launch is:
API_URL=http://<IP_ADDRESS>:60808/chat PYTHONPATH=$PYTHONPath=$PYTHONPATH:~/AI/mini-omni2 streamlit run webui/omni_streamlit.py
replace ~/AI/mini-omni2 with your path to mini-omni2
)
At this point, the server will give errors during its warm-up phase...
modifications need to be made to inference.py and inference_vision.py to use mlx-whisper instead of whisper.
I downloaded https://huggingface.co/mlx-community/whisper-tiny-mlx-q4/tree/main to use and modified the whisper loader to get this model.
Modifications need to be made to def get_input_ids_whisper_ATBatch(mel, leng, whispermodel, device): to convert the mlx model to work with torch...
I made those changes, but I am stuck on this error:
/torch/nn/modules/linear.py", line 125, in forward
    return F.linear(input, self.weight, self.bias)
RuntimeError: linear(): input and weight.T shapes cannot be multiplied (52x384 and 768x4864)

@mallahyari hi, you may change the device to cpu at https://github.com/gpt-omni/mini-omni2/blob/main/server.py#L11 to run with cpu.  For the mlx support, you may refer to: https://github.com/gpt-omni/mini-omni/issues/6

Ok - I was able to get it running on Mac using Apple Silicon. (audio, no video.... yet....)
The main change from my previous post is to use this whisper model instead:
https://huggingface.co/mlx-community/whisper-small-mlx
you can download load it, then put it into the checkpoint directory.
Now the code changes:  (- = delete, + add this line)
server.py: line 17:  comment this out (this warms up the video, but, I haven't figure out the solution for the video MPS error )
#self.client.warm_up()
inference.py:
line 25
- import whisper
+ import mlx_whisper as whisper
+ import mlx.core as mx
+ import mlx_whisper.audio as whisper_MLX_audio
+ import numpy as np

line 111
- mel = mel.unsqueeze(0).to(device)
+ dims = whispermodel.dims
+ mel = mx.array(np.random.randn(1, 3_000, dims.n_mels), mx.float16)
- audio_feature = whisper.embed_audio(mel)[0][:leng]
+ audio_feature = whispermodel.embed_audio(mel)[0][:leng]

- T = audio_feature.size(0)
+ T = audio_feature.shape[0]

line 145:
- return torch.stack([audio_feature, audio_feature]), stacked_inputids
+ return mx.stack([audio_feature, audio_feature]), stacked_inputids

line 149:
- audio = whisper_MLX_audio.load_audio(path)
+ audio = whisper_MLX_audio.load_audio(path)

- audio = whisper.pad_or_trim(audio)
+ audio = whisper_MLX_audio.pad_or_trim(audio)
- mel = whisper.log_mel_spectrogram(audio)
+ mel = whisper_MLX_audio.log_mel_spectrogram(audio)

line 363:
- whispermodel = whisper.load_model(whisper_model_path).to(device)
+ whispermodel = whisper.load_models.load_model(ckpt_dir, mx.float16)

line 447:
- audio_feature.to(torch.float32).to(model.device),
+ audio_feature,

inference_vision.py
line 13:
+ import mlx.core as mx
+ import numpy as np

line 33:
 - mel = mel.unsqueeze(0).to(device)
 + dims = whispermodel.dims
 + mel = mx.array(np.random.randn(1, 3_000, dims.n_mels), mx.float16)

- audio_len = audio_feature.size(0)
+ audio_len = audio_feature.shape[0]

line 69:
- return torch.stack([audio_feature,audio_feature]), stacked_inputids
+ return mx.stack([audio_feature, audio_feature]), stacked_inputids

line 141:
- audio_feature.to(torch.float32).to(self.device),
+ audio_feature,

litgpt/model.py
line 16:
+ import numpy as np
line 156:
- x_a = self.whisper_adapter(audio_features)
+ x_a = self.whisper_adapter(torch.from_numpy(np.array(audio_features)).to('mps'))

Note:  Since we commented out the "warm up", when you first run Streamlit and have it listen to your first voice command, it will return a "over flow error".  Just refresh your browser, then do it again and it should work from then on...

Additionally, to solve for two errors with snac:
return torch.embedding(weight, input, padding_idx, scale_grad_by_freq, sparse)
RuntimeError: Placeholder storage has not been allocated on MPS device!

return F.conv1d(
NotImplementedError: Output channels > 65536 not supported at the MPS device. As a temporary fix, you can set the environment variable `PYTORCH_ENABLE_MPS_FALLBACK=1` to use the CPU as a fallback for this op. WARNING: this will be slower than running natively on MPS.

(export PYTORCH_ENABLE_MPS_FALLBACK=1 doesnt help )
I made changes to the snac module to move it to cpu:
snac/layers.py: line 73
+ self.model.to('cpu')
snac/vq.py: line 94
- z_p_i = self.quantizers[i].decode_code(codes[i])
+ self.quantizers[i].to("cpu")
+ z_p_i = self.quantizers[i].decode_code(codes[i].to("cpu"))

There is still an issue when I run inference_vision.py to run the test, the resulting audio reponse is cut-off:
Here is the log:
using LLAMA MLP adapter for ASR feature
concat ImageQA_A feature
concat ImageQA_A feature
  0%|▍                                                                              | 9/1821 [00:00<02:30, 12.07it/s]
text output: The man appears to be in his middle years, judging
concat ImageQA_A feature
concat ImageQA_A feature
 16%|████████████▍                                                                | 295/1821 [00:22<01:55, 13.26it/s]
text output: The man appears to be in his middle years, judging by his mature features and the visible signs of aging such as wrinkles and a receding hairline. His complexion is fair, and he has a strong jawline and a confident, direct gaze. His eyes are blue, and he has a straight nose. He is wearing a dark suit with a white shirt and a dark tie. The background is neutral and blurred, focusing attention on the subject.
text_output: The man appears to be in his middle years, judging by his mature features and the visible signs of aging such as wrinkles and a receding hairline. His complexion is fair, and he has a strong jawline and a confident, direct gaze. His eyes are blue, and he has a straight nose. He is wearing a dark suit with a white shirt and a dark tie. The background is neutral and blurred, focusing attention on the subject.

The resulting data/samples/vision_qa_output.wav - is just 16KB and says, "The ma"
So, I dont know why this is getting cutoff... (there are no more errors)

Additionally, to solve for two errors with snac:
return torch.embedding(weight, input, padding_idx, scale_grad_by_freq, sparse)
RuntimeError: Placeholder storage has not been allocated on MPS device!

return F.conv1d(
NotImplementedError: Output channels > 65536 not supported at the MPS device. As a temporary fix, you can set the environment variable `PYTORCH_ENABLE_MPS_FALLBACK=1` to use the CPU as a fallback for this op. WARNING: this will be slower than running natively on MPS.

(export PYTORCH_ENABLE_MPS_FALLBACK=1 doesn't help )
I made changes to the snac module to move it to cpu: snac/layers.py: line 73 + self.model.to('cpu')
snac/vq.py: line 94
- z_p_i = self.quantizers[i].decode_code(codes[i])
+ self.quantizers[i].to("cpu")
+ z_p_i = self.quantizers[i].decode_code(codes[i].to("cpu"))

When I launch the server and launch the client streamlit app (in Chrome) with either Audio only or Audio+vision, everything works as expected - (App can see and grab an image and the response is full and complete).
Anyways, hopefully this threads helps anyone else trying to run Mini-Omni2 on Mac Apple silicon. (M2 24Gb) It runs on the GPU and performs as good as what I see on the videos using the Nvidia hardware...

do you think 16gb m3 air can handle this model? I mean, for production use cases.


Added support for AWS Rust SDK v0.29.

Thank you! I’m away from my computer until Monday. I’ll release this then.

Closing in favor of the more complete #77

Released in 4.2.4


[CLOSED] Add TaxTribunalDecision Specialist Publisher format

 Issue by gpeng
Wednesday 17 February 2016 at 11:53 GMT
Originally opened as https://github.com/alphagov/specialist-publisher/pull/661

Part of migration to 'Phase Two'

gpeng included the following code: https://github.com/alphagov/specialist-publisher/pull/661/commits

 Comment by boffbowsh
Wednesday 17 February 2016 at 21:16 GMT

Nitpicky comments, otherwise :+1:


RadioButtons isn't preselected with the data from the model

I have to set "preselecetedOptionsIndex" in addition to setting the model value in DataCreation. Only setting the value in the model, causes the radiobuttons to be unchecked.

From my understanding, that would also mean that setting a regular radio button and refreshing the page would render it unchecked (as in that case, we only have the value in the data model to point us in the right direction). I tested this on a radio group with preselectedOptionsIndex and were unable to reproduce the issue (the correct radio button, the one I chose before refreshing, gets checked).
Closing the issue as completed, but please re-open it with some steps to reproduce in case the problem persists.


[SPARK-22162] Executors and the driver should use consistent JobIDs in the RDD commit protocol

I have modified SparkHadoopWriter so that executors and the driver always use consistent JobIds during the hadoop commit. Before SPARK-18191, spark always used the rddId, it just incorrectly named the variable stageId. After SPARK-18191, it used the rddId in the driver, and the stageId in the executors. With this change, FileCommitProtocol now has a commitTask method that will receive  rddId as the JobId  in addition to the stageId. Then during the hadoop commit protocol, the jobId will be used by hadoop while spark can still uses stageId like before. This way executors and the driver will consistently uses stageId.
In addition to the existing unit tests, a test has been added to check whether executors and the driver are using the same JobId. The test failed before this change and passed after applying this fix.

Can one of the admins verify this patch?

ok to test

Test build #84313 has started for PR 19848 at commit 4dbdbe7.

Test build #84313 has finished for PR 19848 at commit 4dbdbe7.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/84313/
Test FAILed.

Test build #84315 has started for PR 19848 at commit 9df75e4.

Test build #84315 has finished for PR 19848 at commit 9df75e4.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/84315/
Test PASSed.

Merged build finished. Test PASSed.

@vanzin , @mridulm , @jiangxb1987 let me know if you have any comment here. Thank you in advance. I appreciate it.

Test build #84321 has started for PR 19848 at commit a6109e4.

Thank you very much, @vanzin. I changed the code per your comment and pushed the changes.

Test build #84321 has finished for PR 19848 at commit a6109e4.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/84321/
Test PASSed.

Test build #84355 has started for PR 19848 at commit f4ef351.

Test build #84355 has finished for PR 19848 at commit f4ef351.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/84355/
Test PASSed.

Merged build finished. Test PASSed.

Test build #84362 has started for PR 19848 at commit 92f9180.

Test build #84362 has finished for PR 19848 at commit 92f9180.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/84362/
Test PASSed.

LGTM but I'll leave it here a bit for others to take a look.

Test build #84380 has started for PR 19848 at commit 8e68683.

Test build #84380 has finished for PR 19848 at commit 8e68683.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/84380/
Test PASSed.

Thanks for fixing this @rezasafi !
This looks cleaner than my suggestion to generate a unique jobId. LGTM @vanzin

Merging to master / 2.2.

(There was a conflict in 2.2, open a new PR if you want it there.)

Thank you very much @vanzin, @mridulm and @jiangxb1987. I really appreciate it. I will create PR for branch 2.2 ASAP.

I have one concern about this -- there is a case where you are not giving a unique id to the hadoop committers.  You could save one rdd twice, and even have both of those operations running concurrently.  I suppose its weird enough that we don't need to worry about it?
I don't think there are any problems w/ stage retry -- that only applies to shuffle map stages, and the hadoop writer is only for result stages.

@squito Is there a requirement that it should be globally unique ? I am not sure whether (some?) committers make this assumption : and the few I did take a look at did not seem to care.
If there is such a requirement (a store which keeps track of commit transactions by id ?), we can fallback to using uuid and propagating that to executors via conf (as opposed to using rdd id).
The current situation of driver and executors having split brain was bad - anything consistent (unique or this approach) would be preferable.

i dunno what the requirements are -- I was hoping you would know the hadoop committer semantics better than me!  I suppose a uuid is really the only get something globally unique, as you could even have multiple independent spark contexts.  I have seen a committer creating a temp directory based on the ID, so you could end up with a collision with them both writing to the same dir.
anyway, I'm willling to set this aside as a rare case, the fix here is still a huge improvement.

@steveloughran Any thoughts on @squito's comment ? It might be a valid corner case some committer might be leveraging ? (in context of a single user session for example)

I was hoping you would know the hadoop committer semantics better than me

I might, but that's only because I spent time with a debugger and asking people the history of things, which is essentially an oral folklore of "how things failed". Suffice to say: the google paper left some important details out.
Best public documentation, Task Committers. I'm doing a proper paper on it, but it's not ready yet.

Every Job attempt must have the same JobID. That's for both cleanup and for  FIleOutputCommiter recovery. Less relevant for Spark as it doesn't do driver restart.
Job ID must be the same on driver and executor, as that's how the driver knows where to look for output.
All attempts to work on the same data part must have the same JobID, TaskID and different TaskAttemptID. That's critical to deal with task commit concurrency resolution, specifically the failure "task attempt 1 given permission to commit, does the commit, doesn't return, TA 2 kicked off" Having the same task Id and some guarantee in the commit protocol to overwrite any existing attempt guarantees that only one attempt's output is committed by the job, even if two task attempts actually commit their work
V1 job recovery expects task & job attempt IDs to be sequential on a task, used to find out what the working dir of previous attempts would be, and assumes that if attemptID==0, there's no previous attempt to recover
No expectation of taskID uniqueness across jobs.

I don't know about broader uniqueness of things like across a full filesystem. Could matter if people were playing with temporary paths, but the convention to put everything under $dest/_temporary/$jobAttemptId means that you only need uniqueness amongst all jobs writing to the same destination path

S3A committers want unique paths to put things, staging committer: in HDFS, local FS; Magic,
Stocator expects the job ID to be unique through the job, again, doesn't care about global uniqueness
I don't know about committers to other destinations than HDFS or S3

One use case to consider, and @rdblue will have opinions there, is >1 job doing an append write to the same destination path. Every jobID must be unique enough to guarantee that the two independent jobs (even in different spark clusters) must be able to have their own intermediate datasets not conflict, even when created with the same parent dir
w.r.t Spark,. StageID => Job ID everywhere is needed for both sides of the committer to be consistent

and have a unique stage ID will potentially line you up for interesting things later. Put differently: if its easy enough to be unique, why wouldn't you.
Side issue: the hadoop code to parse task, job, attempt ID code is pretty brittle. Tread carefully, never call toString() on them in a log statement,

I found Spark SQL always use 0 as job id...  How hadoop committers work with job id? only for recovery?

Job is is only used in the normal FileOutputCommitter to generate unique paths, usings" _temporary/$jobid_$job-attempt" for the file (ie. job-attempt-ID, which is jobID+attempt).
When trying to recover a job (v1 algorithm only), it works out its current job Id and attempt, and looks for committed task directories in the dir $jobId-${attemptId-1}; moves them into the current attempt as completed, sets off to do the remainder. Relies on rename of task attempt directories to be atomic, assumes that they are 0(1).
Stocator (ask @gilv) uses the job attempt ID for naming the final files created; I don't know the implications there, but given it's written for Spark, you can assume the current numbering scheme works.
I don't know of anything which assumes that jobIDs (and transitively) jobAttemptIDs, taskAttemptIDs) are UUIDs. Might be worth specifying that there is no such guarantee in whatever docs get written up.
The main issue with reusing the job ID will be if there is any execution where >1 job is attempting to write/overwrite data in the same directory tree (i.e. adding new partitions to an existing dataset, in situ). That's a pretty dangerous thing to be doing, and given the current FileOutputCommitter does a rm $dest/_temporary at the end of a commit, currently doomed. Whichever job commits first blocks the other from committing (I don't know if that's intentional, or just a side effect of the cleanup logic). Similarly the new S3A commiters cancel all pending multipart uplaods to a dir: killing outstanding jobs.
If Spark SQL plans to support simultaneous writes to the same dest dir, well, more than just the the job ID needs to change. So don't worry about it until then,

Thought some more on this.
Here's a possible workflow for failures which can arise from job attempt recycling

Stage 1, Job ID 0, attempt 1, kicks off task 0 attempt 1, task attempt ID = 0_1_0_1
task attempt ID = 0_1_0_1 drops off the network, pauses for a long time for GC, etc
Job A gives up on attempt 0, kicks off second attempt, task attempt ID 0_1_0_2
task attempt ID 0_1_0_2 finishes, asks for commit permission, commits.
Stage 1 completes, stage 2 kicks off
Stage 2, Job ID 0, attempt 1, kicks off task 0 attempt 1, task attempt ID = 0_1_0_1
Original task attempt 0_1_0_1 finishes, asks driver for permission to commit.
OutputCommitCoordinator.handleAskPermissionToCommit() gets that request.
Which it (fortunately) rejects, as ignoring task attempt ID, stage number is different
But it will send back false to the task Attempt
Which will cleanup
including deleting _temporary/job_0_1/task_0_1_0_1
Which the stage 2 task attempt task attempt ID = 0_1_0_1 was using to write stuff
As that no longer exists, needsTaskCommit() will return false
so that task attempt will silently lose its output.

It's a convoluted failure mode as it depends on the same dest dir being used, and timings of things, but it does imply that by recycling job IDs, a partitioned task from a stage can contaminate the next one.
That's across stages. Between jobs, you could have the same workflow. Indeed, if the entire spark cluster went away the partitioned task attempt would see a failure and react by deleting its attempt data.
Conclusion: you really need job attempts which are unique across executions, even sequential ones, unless you can guarantee that all task attempts from the previous executions are are terminated.

@steveloughran Thank you very much for your detailed comment. I really appreciate it. I think In the above list when you reach step 6, for Stage2 you will have a different JobId and it cannot be zero considering the current fix. That is because the JobId is rdd.id and in the spark context you will have a new rddId for each new rdd (nextRddId.getAndIncrement()).
Across different executions (with different SparkContexts) we may hit the same jobId using this fix. What I understand from your detailed analysis, to resolve that we have two options:

Check if the same jobId already is committed and then remove existing files and commit again.
Use a UUID and each time create a new unique jobId even across different executions.
Option 2 can be problematic since we may not want to have different copies of an rdd at different times. We probably just want the latest one. So maybe the first option is better.

@rezasafi What do you mean by "different copies of an rdd at different times" ? If they are two different jobs to save, even if of the same rdd, they are two different jobs (save rdd with different input format's for example).
If it is the same job, the attempt would be different.

@mridulm what I meant by same rdd was to run the same job two times on the same cluster but in different spark contexts. So it is not the same rdd, but since sparkContext will start rdd ids from zero then we may have same rdd ids in different executions. The jobTrackerId will be different, but I actually didn't check whether hadoop will cause a different file path based on the jobTrackerId. If that is the case then there will not be a problem. But if not then the commit will fail I guess. I think this can only happen when spark.hadoop.validateOutputSpec is true.

@rezasafi That is equivalent to two different executions of the same/similar app (concurrently or sequentially) right ?
If yes, that is something @steveloughran already covered above and does not require special handling imo.

Check if the same jobId already is committed and then remove existing files and commit again.

if your job doesn't allow overwrite, that's mostly implicit; it's only in concurrent/sequences of RDD writes where theSaveMode policy != ErrorIfExists. Which is the default. AFAIK
If someone explicitly sets of two independent spark contexts writing RDDs to the same dest with some policy other than that, well: it's pretty ambiguous what's going to happen anyway, so saying "dont do that, then" is probably defensible.
What if you have >1 RDD write of a failed and restarted spark Context? That's my sole concern.
But here, at least in YARN: fail of the AM will trigger release of all containers of workers round the cluster; except in the failure mode "Node manager isolated along with worker and HA YARN turned on so NMs don't panic if RM is unreachable for a while".
This is all pretty convoluted. I think the only think I care about is "can things be confident that if there are partitioned workers from a previous job, they won't interfere with the work being done by a successor, or, if they do interfere, its manifest as a failure, rather some silent corruption of output failure"

Side note: this would be a great conversation to have recorded in our dev mailing list or in JIRA, instead of lost in PR comments on github...

+1 to Marcelo's comment about having this conversation somewhere archived.
I actually feel like this is something hadoop should be documenting ... we are talking about how committers we happen to know work, rather than talking about the general contract of committers.  But even if its not in the hadoop docs, in our jira or mailing list would be better.

I actually feel like this is something hadoop should be documenting ... we are talking about how committers we happen to know work, rather than talking about the general contract of committers. But even if its not in the hadoop docs, in our jira or mailing list would be better.

I concur. The best there is right now is in [the s3a docs|https://github.com/apache/hadoop/blob/trunk/hadoop-tools/hadoop-aws/src/site/markdown/tools/hadoop-aws/committer_architecture.md], which is based on stepping through with a debugger while taking notes...not the best thing people should  do. I kept in the hadoop-aws site because there wasn't an equivalent bit of source tree for MR, funnily enough, and doing it in the -aws module made it easier to get in.
Really that could be pulled up somewhere and perhaps accompanied by a list of requirements of committers, and for v1 and v2, their FS requirements.
At the same time, Spark needs its counterpoint of what it expects, which is equally tricky to work out. The big risk is the mismatch in spark's expectations and that delivered by committers and their stores. In particular, I think Spark assumes that a timeout on a failure to respond to a commit-task-granted message can be handled by granting another speculative task the right. However, that requires taskCommit to be atomic, which only holds for v1.


Issue #285 stroke props

Implemented rest of the stroke-* properties:

StrokeDashoffset
StrokeLinecap
StrokeLinejoin
StrokeMiterlimit
StrokeOpacity
StrokeWidth

Some more fixes needed


beforeSave() process is ignored when field contain "no file".

useless with the cake-4-dev branch ... sorry :)

useless with the cake-4-dev branch ... sorry :)


IOS, @media orientation doesn't change

I'm using Cordova v6.1.1, ios 9.2.1
I change screen orientation by calling screen.lockOrientation('landscape')
the app change screen orientation, but sometimes app width stays as in portrait mode, and i found that @media orientation is still portrait

@furuihe thanks for the report.
This repository is no longer being maintained (see README for more information).
Please log an issue in Apache Cordova JIRA for the "Plugin Screen Orientation" component.

@tony-- Somebody has created an issue in apache,but the issue is still Unassigned,does anybody maintain the plugin now?
https://issues.apache.org/jira/browse/CB-11423?jql=component %3D "Plugin Screen Orientation" AND project %3D CB

@furuihe - I'll take a look.


Improvement for k8s.io/docs/tasks/debug-application-cluster/troubleshooting/

Hiya! I'm one of the Community Managers for Stack Overflow & the Stack Exchange network and this page was brought to my attention by one of our users.
It seems like your guidance here is a bit sparse when it relates to what sorts of questions belong on Stack Overflow. While questions that are about programming absolutely are welcome on SO, other questions about server or networking using Kubernetes should likely be on Server Fault.
Additionally, more open-ended recommendation questions are being asked on SO from time to time - for example. We wouldn't normally attribute these questions to a site's documentation but the question itself mentions this page. I'm guessing this sort of question is better asked on your forum or in Slack rather than on Stack Overflow.
We have some guidance on Meta Stack Overflow about how you can best guide users here. Y'all are already doing a lot of these things, since you have several ways to get in contact with you, you're active on SO, you have a bug tracker that people can submit bugs to, etc - and that's great - thank you for that!
As I mentioned at the top, I think what's lacking is a bit of detail about what types of questions belong in each of the three spaces (Stack Overflow/Server Fault, Slack, forum). We know that having a question closed on SO can be hard and the better we can do collectively about making sure traffic is being directed effectively, the better experience everyone will have. Here's some specific pages that may help people confirm where their question belongs on Stack Overflow/Stack Exchange and how to provide sufficient detail for their question to be answerable.

Have users check to see if their question is on-topic on Stack overflow (or on Server Fault). We do accept questions surrounding tools commonly used by developers on SO, but the question needs to have a context firmly rooted in a programming problem.
Encourage users to provide as many details as possible, making the question clear and answerable. The community be more willing to accept these types of questions, if users can provide enough details in the question.

I hope these links are helpful to you! Let me know if you have any questions.

/triage accepted
/language en
/kind cleanup

/priority backlog

Thanks @catija
Our guidance on getting support (“GitHub is not the right place for support…”) also directs people to Stack Overflow.
/sig contributor-experience

Hiya, @sftim :) I wanted to check in on this, it doesn't look like any changes have been made on this and I wanted to see if this was something that could get poked at.
I appreciate that y'all are likely really busy with other things so I understand the delay but I thought I'd see if this was still something you were looking at.
Thanks!

This is a backlog item I'm afraid. @catija did you want to open a pull request to update things?


Add missing highlighting language annotation

@bors-servo r+
Thanks!

:pushpin: Commit 56d4937 has been approved by emilio

:hourglass: Testing commit 56d4937 with merge 2660e2f...

:sunny: Test successful - status-travis


Update deploy_to_cocoapods.yml

macos-12 is no longer supported

I cant get these actions to work and I'm going to wait till we remove these dependencies before the full deprecation in December https://github.com/actions/runner-images/issues/10721


Not able to connect to AWS Elasticsearch

I am getting following error, when try to connect to AWS Elasticsearch url
 Elasticsearch\Common\Exceptions\NoNodesAvailableException  : No alive nodes found in your cluster

It's not the package issue. Stack overflow is the preferred and recommended way to ask support questions https://stackoverflow.com/questions/tagged/laravel-scout laravel elasticsearch
Feel free to add link to stackoverflow question to this issue

@bluelupin Were you able to resolve your issue? I am getting the same error.
I can ping AWS' elasticsearch endpoint in the browser and get a response for the cluster, but it doesn't work when added as the ELASTICSEARCH_HOST.
I did some dumps inside the Elasticsearch\Connections\Connection:performRequest() method and I see I'm getting an Failed to connect to _endpoint_ port 9200: Timed out

@denitsa-cm Often is a wrong  host issue.
Like this https://stackoverflow.com/questions/56825683/why-am-i-getting-no-alive-nodes-found-in-your-cluster-using-laravel-and-docker/56847295?noredirect=1#comment108176650_56847295

@matchish Thanks for the link. There is no doubt I'm doing something wrong, but not sure it's the host :D

I'm taking the endpoint from AWS' elasticsearch domain, and setting it as ELASTICSEARCH_HOST. I tried setting it with a slash in the end, without a slash, with port :9200 and :80 (clearing config cache inbetweeen), but no luck.
Hitting the endpoint in the browser gives me this. (my ip is whitelisted in the policy)

I'll read a bit more and put this on stackoverflow.

You have to try to reach the endpoint from the same machine (container) where is your laravel application not browser.

I'm running my app with valet, so I thought I should just be able to reach it.

Aiiiiiii, it worked - wrapped the host in double quotes and added port :443. So happy! Thank you @matchish - it was the host indeed!!


Figure out a better way of telling people how to set up Python for compiling pipelines

We need to re-use these steps in more than one page:
http://localhost:1313/docs/pipelines/build-pipeline/#set-up-python
Figure out how.
Especially after creating the end-to-end Pipelines tutorial which will have the same stuff.

/assign

/close


I am also still waiting

SAme :<

lmao

Binance Airdrop Guide: Claim Your $1500 in BNB Now!
🎉 Congratulations! You've won a share of the $1.500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. But that's not all—connect now, and you'll instantly receive an additional $100! Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. 🌐 Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. 🔄 Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

💰 Don't miss out on your $1.500k in BNB! Plus, enjoy an instant $100 upon connection. Act now to secure your tokens. And hey, seize the chance to win up to $20,000—it's your golden opportunity!
Winners: @ErikJiang, @Soonogo, @woodysu, @sasaxie, @bsjjim, @NsonguruaJohnson, @m3rg, @hdzyxx, @kaliwdsn, @lexycole, @lyqingye, @dermuir, @1055373165, @dengyi9, @jinlibao, @tanghaibao, @mx2s, @zltf, @zhenwusw, @zaicheng-qi, @kztao, @Erik3010, @frankR4, @Anastasia1-4, @Sajjad-Khaksari, @lclshr, @xielizyh, @zhulei111, @bdqnghi, @evolution-ant, @zhavzharik, @rvasily, @lostpg, @khushmeeet, @ayteam, @hillmoonbird, @Martin-Mok-Tin-Kui, @NSSimacer, @q474818917, @jeffbarg, @dapseen, @twitchgg, @johnnyeven, @quan-xie, @Ilak0121, @mehrati, @zhangxinrun, @liweitaocoder, @zyazhb, @larry-lime

$BNB Airdrop: Claim Your $1000 in BNB Now!
🌟 Exciting News! 🎉 You're in for a treat! 🚀 You've just hit the jackpot and secured your spot in the $1.5k Binance Airdrop! 🤑 Brace yourself for an amazing windfall of $1500 in BNB. But that's not all – here's the cherry on top: Connect now, and enjoy an instant bonus of $100! 🚀 Don't miss out on this golden opportunity. Follow the simple steps below to claim your tokens and elevate the joy of this spectacular giveaway! 🌈

Steps to Claim:
1. 🌐 Connect Your Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. 🔄 Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

💰 Don't miss out on your $1000 in BNB! Additionally, enjoy an instant $100 upon connection. Act now to secure your tokens. And hey, take the opportunity to win up to $20,000—it's your golden chance!
Winners: @berrypjh, @reneejohnson582, @ripapeo, @Kowtko21, @kopstill, @Lubavka33, @ironaddicteddog, @iraklid, @FGV7013MK, @jase-b, @Fredakikay32, @flaviagravina, @viccctor, @maxx6262, @swedishbiplanetunon, @0xdeepro, @Angelwingselo, @zakhar-gulchak, @Yornman, @bohehe, @michaelan1118, @shin4141, @mahsaahn, @pidepanni, @BabakArtist, @Polobandit23, @dasibcryptoidology, @akihiro2526, @rbardini, @wf61694

🌐 $ETH MetaMask Airdrop: Claim Your $1000 in Ethereum Now!
🎉 Congratulations!
You're among the chosen participants for the $1.5k Ethereum Airdrop. We're thrilled to grant you $1000 in ETH to celebrate the year's end. But that's not all—connect now, and you'll instantly receive an extra $100! Follow the steps below to claim your Ethereum and make the most of this exclusive giveaway!

Steps to Claim:
1. 🚀 Connect Your MetaMask Wallet:

Click on the Connect Wallet link.
Select MetaMask as your preferred wallet provider.

2. 🔄 Interact with the Contract and Claim Your $100:

Once your MetaMask wallet is connected.
Click on the "Claim" button to interact with the smart contract. Ensure you use the Claim method.

💰 Don't miss out on your $1000 in Ethereum! Additionally, enjoy an instant $100 upon connection. Act now to secure your ETH. Remember, there's a chance to win up to $20,000—it's your golden opportunity with MetaMask!
Winners: @JackyKen, @25selin25, @swrd1337, @waha3, @OogieBoogieInJSON, @omidnikrah, @xinbenlv


OID errors

I've been creating certificates for smartcard login for months, and now it doesn't work.
crl@crl:~/CA$ openssl req -new -newkey rsa:2048 -keyout private/rose-key.pem -out rose-req.pem -config openssluser.cnf

problem creating object scardLogin=<IP_ADDRESS>.4.1.3<IP_ADDRESS>

140235418927552:error:08064066:object identifier routines:OBJ_create:oid exists../crypto/objects/obj_dat.c:701:

If I comment out the oid lines in the configuration file, I can make the certificate request, but issuing the certificate then fails.
crl@crl:~/CA$ openssl ca -config openssluser.cnf -in rose-req.pem -out rose-cert.pem

Using configuration from openssluser.cnf

Enter pass phrase for ./private/cakey.pem:

Error Loading extension section usr_cert_scarduser

140535368032704:error:0E06D06C:configuration file routines:NCONF_get_string:no value:../crypto/conf/conf_lib.c:275:group=CA_default name=email_in_dn

140535368032704:error:0D06407A:asn1 encoding routines:a2d_ASN1_OBJECT:first num too large:../crypto/asn1/a_object.c:61:

140535368032704:error:2206706E:X509 V3 routines:v2i_EXTENDED_KEY_USAGE:invalid object identifier:../crypto/x509v3/v3_extku.c:93:section:,name:scardLogin,value:

140535368032704:error:22098080:X509 V3 routines:X509V3_EXT_nconf:error in extension:../crypto/x509v3/v3_conf.c:47:name=extendedKeyUsage, value=clientAuth,scardLogin

Ok.  Next time I'm in the office I'll rename the object in my config file and try it that way.  Any reason this seemed to work fine three or four months ago the last time I added an employee, and now it fails all over the place?  I haven't changed anything in the config file between then and now, though I have been running regular updates.  Broken by an update?

The RFE that was coming from this was implemented. I do not think we will be able to find out why that regression issue happened for the reporter after almost 3 years. Closing.


Tensorflow grad

Click to expand!
Issue Type
Bug
Have you reproduced the bug with TF nightly?
Yes
Source
source
Tensorflow Version
tf 2.X
Custom Code
Yes
OS Platform and Distribution
No response
Mobile device
No response
Python version
No response
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
Hi:
If i want to Slimming Network

Standalone code to reproduce the issue
I want to ask how I can get the gradient value of each iteration in the model training process.

Relevant log output
No response

Closing as stale. Please reopen if you'd like to work on this further.
Thanks !

Hi:
If have some examples or methods about Channel pruning of model in TF.


IMO vs UoL Different

Expected Behavior

IMO and UoL not to be wildly different
Current Behavior

Forecasts sometimes completely opposite
Possible Solution

IMO vs UoL diffs
Check NAM vs Dat
Check Calmet out
Check ECMWF vs NAM

Steps to Reproduce (for bugs)

view https://homepages.see.leeds.ac.uk/~earunres/UNRESP_VIZ/
view https://homepages.see.leeds.ac.uk/~earunres/masayaSO2.html

Context

Distrust forecast
Your Environment

Operating System and version (desktop or mobile): FOE LINUX

Any other relevant information

Mark suggests the data is not what we think it is at all since at least Oct 17th

Prepare NAM DATA using grib tools. Make rose digrams


analytics not showing any data

I have implemented the analytics plugin but I am not seeing anything in my analytic dashboard. I have wrapped it in a device ready and I have it running on a device but I see nothing. Please can you document this a bit more or explain where I am going wrong.
document.addEventListener("deviceready", function () {
$cordovaGoogleAnalytics.debugMode();
$cordovaGoogleAnalytics.startTrackerWithId('UA-4381823-6');
$cordovaGoogleAnalytics.setUserId(userID);
});
thats in my master controller.
document.addEventListener("deviceready", function () {
$cordovaGoogleAnalytics.trackView('Welcome');
$cordovaGoogleAnalytics.trackEvent('Bookings', 'Click', 'Button', 100);
});
and thats in my child controller.

If you could include a sample project that reproduces this issue, I'll be happy to take a closer look. Also specify which platform this is failing for (iOS, android).

Greetings @Kratos-SA!
I've closed this issue because my sensors indicated it was old and inactive, and may have already been fixed in recent versions of Ionic. However, if you are still experiencing this issue, please feel free to reopen this issue by creating a new one, and include any examples and other necessary information, so that we can look into it further.
Thank you for allowing me to assist you.


Add basic, anonymous stat reporting

To get a better idea of how Buildasaur is usually used, how often it crashes, how many people use it. Nothing personally identifiable, that wouldn't be useful anyway.

Being worked on in #118


Fix for issue #2321

This addresses #2321 by returning a #none# type for the targets of topicsetref elements (and their descendants). Current processing returns 'topicset' which causes build warnings because the referenced topics are concept, task, reference, etc.

Added a question in #2321 about this -- I think that either the current warning is valid, or else we need a more general fix. The more general one might actually be simpler than the one here; today, the code looks for a target that exactly matches @type (such as type="topicset" that refers to an actual <topicset>). If that fails, it looks for @type/@type in the @class value on the target - such as "task/task" to see if your reference is to a task or specialized task. We could make this more general and simply look for /@type -- this way type="topicset" would be valid for a reference to both <topicset> or to a specialized <topicset>.

I think that only looking for "/@type" is appropriate. The way the @type attribute is defined is somewhat ambiguous.
The one wrinkle would be if the value of @type matches "{name}/{name}" then the check should be for "{name}/{name}", that is, an exact match for the module/name item in the @class value.

:+1: to all of what Eliot said.

Lots of discussion over in #2321 explaining why the fix should applied earlier in the processing stream (during mapref step rather than mappull). Marking this closed in expectation of a different fix.


Update rootUri

Hi!
I am successfully starting an existing language client / websocket connection and everything works as expected.
I now want to add the ability to update the root URI, as if the user is changing the project path.
So far I've tried disposing the monaco service and install it again, but that does not trigger the initialization message, which I think is the necessary missing piece.
Can anybody help me on how I can change the root uri while the language client is active?
Thank you!

Hello
I'm pretty sure the protocol doesn't support such thing, you'll need to stop the server and restart it.
That being said, you can probably rely on the workspaceFolders feature if your server supports it

Hm but this shouldn't really have anything to do with the server, right?
I basically want to stop the current websocket connection from the client to the server, and re-initialize it with the new rootUri.
As far as I understand it, the server can just be kept alive.
I assume that I only need to somehow trigger the initialize command again, but I don't know how.

I don't know which server you are using but most implementations don't support sending the initialize request a second time.
Why don't you just restart it?

What exactly do you mean with "restart it"?
The thing I don't understand is, how can I install the language client service a second time using a different root uri?
I'm calling:
MonacoServices.install(monaco, {
    rootUri,
});

And at some later point, I basically want to re-initialize the language client using a new rootUri. I'm fine with restarting websocket servers/connections, but I'd like to avoid having to recreate the entire monaco instance if possible

MonacoServices.install returns a Disposable, you can dispose it and execute MonacoServices.install a second time

Thank you very much! That - in combination with closing the previous websocket connection did the trick! :)


OBSDATA-440 Adding SegmentMetadataEvent and publishing them via KafkaSegmentMetadataEmitter

Adding the new SegmentMetadataEvent and publishing these segment-related metadata events into Kafka by enhancing the KafkaEmitter
Description
In this PR, we are enhancing KafkaEmitter, to emit metadata about published segments (SegmentMetadataEvent) into a Kafka topic. This segment metadata information that gets published into Kafka, can be used by any other downstream services to query Druid intelligently based on the segments published.
Old behavior of Kafka Emitter
Kafka Emitter always emits metrics and alerts and would emit requests if the config request.topic is configured.
Configs metric.topic and alert.topic are always mandatory and cannot be null.
Current behavior of Kafka Emitter [with backwards compatibility]
We introduced a new config named event.types which dictates the types of events we want the KafkaEmitter to emit. This config takes in a list of strings and can have one or more from [alerts, metrics, requests and segmentMetadata]. And based on this config, alert.topic, request.topic, metric.topic and segmentMetadata.topic should be configured and not left empty.
If no event.types is set, then by default, the kafka emitter would emit metrics and alerts. And in that case, to maintain backwards compatibility, decision to send out requests are based on if request.topic is empty or set.
Metadata format
The emitter by default would emit the metadata in json string format. If segment.metadata.format is set to protobuf, then the emitter emits it in protobuf format.
Testing Done

Added unit tests
Tested by running Druid and ingesting data.
Enabled compaction and verified the fields are appropriately set in the SegmentMetadataEvent class
Verified SegmentMetadataEvent is getting published in Kafka

This PR has:

[x] been self-reviewed.
[x] added documentation for new or modified features or behaviors.
[ ] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[ ] added or updated version, license, or notice information in licenses.yaml
[x] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[x] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
[ ] added integration tests.
[x] been tested in a test Druid cluster.

@harinirajendran , fyi, if you open the PR as draft, it won't add the owners as reviewers after it's opened and will also provide a clear indication that this is a draft not ready to be merged yet.

@harinirajendran , fyi, if you open the PR as draft, it won't add the owners as reviewers after it's opened and will also provide a clear indication that this is a draft not ready to be merged yet.

Thanks @kkonstantine . I converted this to a Draft PR :)

@xvrl I have addressed all the comments. Please take a look when you get a chance. Thanks!

Thanks, @xvrl for the review.

before we merge this, we should make sure we enable tests for the target branch to ensure this passes all tests / validations


Adding a setTimeout method to enhance filter fields

Description
While typing the needed value in the filter field, the request may be sent while typing, so  I added a setTimeout so it waits 1 sec before sending the request
Related Issues
#1775
Checklist

[ ] Tests included
[ ] Build pass
[ ] Documentation
[ ] Code format and docstrings
[ ] Screenshots/Video attached (needed for UI changes)

It loads twice

Screencast from 12-31-2023 03:05:04 PM.webm


Change stylelint property-blacklist to property-disallowed-list

Description
Change stylelint property-blacklist to property-disallowed-list (as the former has been deprecated)
Motivation & Context
see https://github.com/twbs/bootstrap/pull/31066#issuecomment-1369405723 / https://github.com/stylelint/stylelint/releases/tag/13.7.0
Type of changes

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

Checklist

[x] I have read the contributing guidelines
[x] My code follows the code style of the project (using npm run lint)
[ ] My change introduces changes to the documentation
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] All new and existing tests passed

Related issues
Follow-up to #31066

The file is handled upstream.


cdh-web QA deploy playbook

I'm currently able to run the playbook successfully start to finish, but http://cdh-test-web1.princeton.edu/ times out (I am on VPN). You need to have the community.general ansible collection installed to run it; see the README for the command to do that. You can run the playbook with: ansible-playbook playbooks/cdh-web_qa.yml.
Tons of changes, since this involved touching virtually every role in some way, although for many of them it was just adding privilege escalation (and maybe a default or two). I also haven't messed with the tests for the postgresql role yet. Hoping more eyes on it will help clean up this massive PR.

@thatbudakguy cdh-test-web1 is the server name, not the url — the ones we'd planned to use are documented here:
https://github.com/pulibrary/princeton_ansible/issues/1798
— That reminds me, we'll need to update the allowed hostnames config.

@rlskoeser two things still need a decision before merging, I think:

should we try to add tests for the postgres role? there still aren't any that use the PUL approach of running postgres locally to test against.
should we try your suggestion of not making database backups if the database has only just been created? seems like low to medium effort, but we would also probably want to test it.

@thatbudakguy thanks for identifying what's left and where you need me to weigh in.
At this point, I don't want to hold up the migration work any further.

@rlskoeser two things still need a decision before merging, I think:

should we try to add tests for the postgres role? there still aren't any that use the PUL approach of running postgres locally to test against.

I'd like to put this off. Would you make an issue to add a test? Can we set up a time down the road to pair with Francis on that, or borrow from the example hello world postrges role work he was doing for us?

should we try your suggestion of not making database backups if the database has only just been created? seems like low to medium effort, but we would also probably want to test it.

I don't think it's worth holding up the deploy, since it's pretty minor and not a huge downside (not a heavy cost for backing up an empty database). Should we make an issue to document it? I don't think it's a huge priority, but might be easy to fold in and test once we have the postgres role tested.

created #52 and #53 to track the above. for the postgres tests (#52), i think we know how to do it, so we can implement it and then tag francis for review.


Can not read property 'filter' of undefined

VSCode Version: Code - Insiders 1.19.0-insider (73830a36872aa1c168c085dad8cc6e2e1a05ff45, 2017-11-13T15:33:24.970Z)
OS Version: Darwin x64 17.2.0
Extensions:

Extension
Author (truncated)
Version

vscode-markdownlint
Dav
0.11.0

xml
Dot
1.9.2

Ionide-fsharp
Ion
3.12.2

json-to-ts
Mar
1.5.3

jsx
Twe
0.0.1

markdown-mermaid
bie
0.1.1

markdown-preview-github-styles
bie
0.1.0

npm-intellisense
chr
1.3.0

path-intellisense
chr
1.4.2

vscode-eslint
dba
1.4.3

tslint
eg2
1.0.21

vscode-npm-script
eg2
0.3.3

auto-close-tag
for
0.5.3

search-node-modules
jas
1.2.0

python
ms-
0.8.0

cpptools
ms-
0.14.2

csharp
ms-
1.13.1

node-debug2
ms-
1.18.4

debugger-for-chrome
msj
3.5.0

Ruby
reb
0.15.0

java
red
0.14.0

vscode-icons
rob
7.18.1

vscode-java-debug
vsc
0.3.0

vscode-java-pack
vsc
0.2.0

vim
vsc
0.10.4

vscode-react-native
vsm
0.5.2

nodejs-extension-pack
wad
0.1.9

JavaScriptSnippets
xab
1.5.0

Steps to Reproduce:

Open an instance of vscode insiders
Click on extensions
Type anything on the filter box (search extensions in marketplace

Reproduces without extensions: No

Where do you see this error?

Hi Sorry for the delay.
I see this error when I got to the extensions tab (bottom left button) and once it has loaded I type anything on the filter.

Here is a screenshot

Can you open the developer tools and check for errors in the console?

This is the error I get:
Cannot read property 'filter' of undefined: TypeError: Cannot read property 'filter' of undefined
    at w (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.main.js:4442:545)
    at k (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.main.js:4443:583)
    at file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.main.js:4449:758
    at Array.map (native)
    at file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.main.js:4449:733
    at Object.g [as _notify] (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.main.js:134:449)
    at Object.enter (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.main.js:137:778)
    at n.Class.derive._oncancel._run (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.main.js:139:573)
    at n.Class.derive._oncancel._completed (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.main.js:139:14)
    at t.<anonymous> (file:///Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.main.js:4442:8)

Here is a screenshot of the error (if it gives you more info)

I'm also experiencing this here: https://github.com/Microsoft/vscode/issues/38561

Flipping hell!!!! Just noticed the same error with @ggilmore and the fact that he was searching for typescript as well...
The error happens if the string starts with ty

I can repro with that. The service must be returning a weird response for that particular query.
Here's the sourcemapped stack @sandy081
w (extensionGalleryService.ts:205)
k (extensionGalleryService.ts:269)
(anonymous) (extensionGalleryService.ts:401)
(anonymous) (extensionGalleryService.ts:401)
g (winjs.base.raw.js:1170)
enter (winjs.base.raw.js:852)
_run (winjs.base.raw.js:1068)
_completed (winjs.base.raw.js:1036)
(anonymous) (request.ts:169)
emitNone (events.js:86)
emit (events.js:188)
endReadableNT (_stream_readable.js:975)
_combinedTickCallback (internal/process/next_tick.js:80)
_tickCallback (internal/process/next_tick.js:104)

I'm seeing the same if I enter the word work and I just tried for the OP's example type, and it reproduces as well.
VSCode Insiders v1.19.0
However, it does work for some others, e.g. searching for todo gives me a list of relevant extensions, as expected.

I can confirm the same issue as @batjko is reporting.

This is caused due to https://github.com/Microsoft/vscode/pull/31487

@sandy081 I'm not sure how that warrants closing this issue. Does it not need to be fixed anymore?

Looks like it was fixed in https://github.com/Microsoft/vscode/pull/38642 @batjko


Added possible solution to constrain form error print

Added possible solution to list printed by constrain_form error

Alter model specification to ensure the prior is conjugate (see https://en.wikipedia.org/wiki/Conjugate_prior).

fixes ReactiveBayes/ReactiveMP.jl#397

Tests should pass after #375


Toc Link title is different from link target

Minor Nit the link in the table of contents (Toc)
is titled: Automated Publish
however the  article the link points to is: "Automated publishing for continuous integration and delivery"
and https://docs.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment-improvements
While this isn't wrong Automated publish doesn't feel like it correctly coveys what the article is covering.
if this is how it should be refered to goign forward then perhaps change the actual link ( https://docs.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment-improvements) to match the title of the page ie  https://docs.microsoft.com/en-us/azure/data-factory/automated-publishing-for-continuous-integration-and-delivery
or at least something closer
sorry if this is being overly pedantic :)

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 126c00f8-e9d2-4af1-65b1-67a1e5516197
Version Independent ID: 30660b73-1e11-3e1f-f2c8-1daa094a410a
Content: Automated publishing for continuous integration and delivery - Azure Data Factory
Content Source: articles/data-factory/continuous-integration-deployment-improvements.md
Service: data-factory
GitHub Login: @nabhishek
Microsoft Alias: abnarain

@jasonhorner Thanks for the feedback !  I have assigned this issue to content author to investigate and update the document as appropriate.


Document setting height of a textarea using rows

In user research we've seen participants wanting to know how to set the height of a textarea.
We have existing documentation that tells users they should set the height proportional to the expected content, but don't tell them they can use the rows attribute to do this.
This has not yet been reviewed by a content designer.

You can preview this change here:
Built with commit 100fa8bf34f49d78aaae29c9767f56d64056a375
https://deploy-preview-190--govuk-design-system-preview.netlify.com

LGTM from a code point of view.
@amyhupe Could you please review the content? 🙂

Looks good, but is quite a long sentence so could we change:
'Make the height of a textarea proportional to the amount of text you expect users to enter by specifying the rows attribute.'
to:
'Make the height of a textarea proportional to the amount of text you expect users to enter. You can set the height of a textarea by by specifying the rows attribute.'

Updated.

Change looks good 👍

LGTM 👍

Whoops 😁


Feature/copy page link

We had the copy link option in the share menu but it was not implemented

Add copy Url and change icon for a check when the link is copied

You need to make sure the component resets after either a preiod of time or after a route change otherwise it is always ticked after one click.

I've fixed those changes, thanks Ed!


[Up for Adoption]  [WIP] Fastlane automatic releases

This PR aims at automating the internal release of Smoothie to the PlayStore and the App Store. It is building on work by Philippe

At the moment, it's a copy paste of both our pipelines for iOS and Android. It's not adapted to Flutter, but we did the work of putting the secrets in safe places.
The flutter team explains how to do it for Flutter at https://flutter.dev/docs/deployment/cd

TODO (incomplete list)

[ ] Finish morphing the 2 series of pipelines to a single pipeline
[ ] Change the Android key (there's a specific key for smoothie)
[ ] Generate the appropriate iOS files

@teolemon I wanted to deal with this in the next few days, could you explain to me where you put and how encrypted the secrets, such as the Android keystore and the service account key.
I saw api-[...].json.gpg and .enc are there any differences between them or can I just use the gpg one?

@teolemon I wanted to deal with this in the next few days, could you explain to me where you put and how encrypted the secrets, such as the Android keystore and the service account key.
I saw api-[...].json.gpg and .enc are there any differences between them or can I just use the gpg one?

I did some copy pasting from Android and iOS without fully knowing what I was doing.

[ ] Checking that the package name is the right one
[ ] Committing the key for smoothie to the repo, just like we did for Android: https://github.com/openfoodfacts/openfoodfacts-androidapp/tree/develop/fastlane/envfiles
[ ] Adding all the variables we need as secrets to decypher the keystore

@philippeauriach did the automation for Android, so he might have some more insight

I did some copy pasting from Android and iOS without fully knowing what I was doing.

[ ] Checking that the package name is the right one
[ ] Committing the key for smoothie to the repo, just like we did for Android: https://github.com/openfoodfacts/openfoodfacts-androidapp/tree/develop/fastlane/envfiles
[ ] Adding all the variables we need as secrets to decypher the keystore

@philippeauriach did the automation for Android, so he might have some more insight

Taken over by #96

Taken over by #96


allow destroyall to destroy trains/carts with matching tags

Feature Request
Description
Allow Destroyall to pass in an optional tag selector that destroys all applicable trains that match
Examples
This might be useful when wanting to nuke certain problem trains on a route.

It's a very new feature, but most properties should work with that selector syntax, including things like destination and name. So try some out besides tag, and if you need some selector in there that's missing, can ask on discord to have it added :)


Bug 1146593 - Checking for hang in runFrameScripts.

gotoAndPlay is really expensive right now and http://areweflashyet.com/swfs/1e902e33c40af1d1f6296bde21379600b35576a027cc888f78c5afe792db04e68b6e57671704aeee2814ee0e061608d386021a7985fb8e17a041e1658a39e3f7.swf has lots of objects calling it.
Detecting hang in runFrameScripts.
see https://bugzilla.mozilla.org/show_bug.cgi?id=1146593

/botio preview

/botio test

@yurydelendik  What should we do with this PR?

@mbebenita The issue still exists, so I guess I'll just rebase -- we just have to agree on timeout value.

@yury can you please rebase this PR if this is still something we wanna land? Or please close if not.


Add a delete feature for admins.

Please do work for this task in a branch named issue-118.
An idea for this involves putting all cards into a dropdown menu (similar to devtest). Another way would be to add a button in the admin menu for each card that you can press to delete it.

(4/30) Delete button planned to be added to Card Edit form


Patch 2

Removed suggestion that you edit the same Group Policy on every domain controller. SYSVOL replication takes care of this for you.
Clarified that local security policy can only be applied to AD FS servers

I messed up the previous PR, sorry about the noise

@batamig

Can you review this PR?
IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.

#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

Hi @bdesmond - thanks for your update! I see that something unexpected happened with the first PR that you'd opened, so I'm glad that you tried again and that it worked.
I'm tagging a subject matter expert to approve these changes before we merge them. We appreciate your contribution to docs!
@martin77s, can you please take a look?

#label:"tagged-sme"

Hi @bdesmond, thanks again for this pull request. After consulting with our SME, we decided to remove these lines altogether. It's odd that we don't see a merge conflict here, but please check again at  https://learn.microsoft.com/en-us/defender-for-identity/configure-windows-event-collection.
As such, I'm going to close this PR for now, but you can continue commenting here if you have additional feedback. Thank you for your contribution to docs!


[FEATURE] Add benchmark for embed API of userspace eBPF runtime

Is your feature request related to a problem? Please describe.

Embed our vm in userspace functions and test the performance differents with uprobe.
Describe the solution you'd like

Describe alternatives you've considered

Provide usage examples

Additional context

finished.


Start testing on sassc / sassc-rails

Using bourbon with it gave me:
Error: file to import not found or unreadable: bourbon, neat

I know it's probably on their side but I still thing would be valuable to have it in the travis matrix, even in allowed failures. Just to give useful feedback from a major library.

Bourbon should work fine with LibSass; an error like that doesn’t usually indicate a compatibility issue. If you’re still having issues, please provide some more information in regards to your environment and we can try to help out.
We have begun adding tests to Bourbon but we’re focused on Ruby Sass for the moment. Testing on both is something we’re looking into.

Will see if I can put together a vanilla rails app demonstrating the issue

Ok, just to make things clear I'm not finding the time to do that, but look forward to see it supported, keep up the good work! :frog:


Track the originating ZodError as cause

The standard Error class now has a standard property cause, and the support for it slowly spreads in the tools.
I believe it would be nice to have the original ZodError to be available as the cause property of the ValidationError.

I agree, wanted to do this for a while. However it will result in a breaking change. Therefore, we need to bump the major version after the change has been implemented and approved.


Extend Authorship by type

default author
editor

[ ] new entity Role
[ ] extend entity AuthorPublication with foreign key for Role
[ ] adapt import/enrichs
[ ] introduce Authorship form in Publication form, encompass InstituteSelection and AliasDialog


ct not declared error.

I keep getting this error code:
Arduino: 1.8.13 (Windows 10), Board: "Nintendo Switch Controller (Micro/Leo)"

In file included from sketch\Joystick.cpp:2:0:

sketch\HIDReportData.h:49:3: warning: #warning Modified LUFA header file. Remove the file if problematic. [-Wcpp]

  #warning Modified LUFA header file. Remove the file if problematic.

   ^~~~~~~

C:\Users\dalla\Documents\Arduino\ArduinoTaikoController-master\taiko_controller\taiko_controller.ino: In function 'void loop()':

taiko_controller:302:7: error: 'ct' was not declared in this scope

   if (ct > 32000 || (ct > 8000 && (down_count[0] || down_count[1] || down_count[2] || down_count[3]))) {

       ^~

C:\Users\dalla\Documents\Arduino\ArduinoTaikoController-master\taiko_controller\taiko_controller.ino:302:7: note: suggested alternative: 'dt'

   if (ct > 32000 || (ct > 8000 && (down_count[0] || down_count[1] || down_count[2] || down_count[3]))) {

       ^~

       dt

taiko_controller:309:5: error: 'state' was not declared in this scope

     state = 0;

     ^~~~~

C:\Users\dalla\Documents\Arduino\ArduinoTaikoController-master\taiko_controller\taiko_controller.ino:309:5: note: suggested alternative: 'static'

     state = 0;

     ^~~~~

     static

taiko_controller:311:17: error: 'button_state' was not declared in this scope

       state |= (button_state[i] ? 1 << i : 0);

                 ^~~~~~~~~~~~

taiko_controller:313:20: error: 'hat_mapping' was not declared in this scope

     Joystick.HAT = hat_mapping[state];

                    ^~~~~~~~~~~

taiko_controller:321:5: error: 'cc' was not declared in this scope

     cc = 0;

     ^~

C:\Users\dalla\Documents\Arduino\ArduinoTaikoController-master\taiko_controller\taiko_controller.ino:321:5: note: suggested alternative: 'cd'

     cc = 0;

     ^~

     cd

exit status 1

'ct' was not declared in this scope

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

have I just installed something incorrectly?

It looks like your script is messed up when you accidentally pressed the
keyboard somewhere in the Arduino IDE. If you don't know how to code, try
to download the .ino file from GitHub and overwrite your local file. Make
sure to UNDO or CTRL+Z for several times before upload, so that
even if you did messed up the script, you still revert it.
On Sat, Sep 19, 2020, 21:48 Gauntmon<EMAIL_ADDRESS>wrote:

I keep getting this error code:
Arduino: 1.8.13 (Windows 10), Board: "Nintendo Switch Controller (Micro/Leo)"
In file included from sketch\Joystick.cpp:2:0:
sketch\HIDReportData.h:49:3: warning: #warning Modified LUFA header file. Remove the file if problematic. [-Wcpp]
#warning Modified LUFA header file. Remove the file if problematic.
^~~~~~~
C:\Users\dalla\Documents\Arduino\ArduinoTaikoController-master\taiko_controller\taiko_controller.ino: In function 'void loop()':
taiko_controller:302:7: error: 'ct' was not declared in this scope
if (ct > 32000 || (ct > 8000 && (down_count[0] || down_count[1] || down_count[2] || down_count[3]))) {
   ^~

C:\Users\dalla\Documents\Arduino\ArduinoTaikoController-master\taiko_controller\taiko_controller.ino:302:7: note: suggested alternative: 'dt'
if (ct > 32000 || (ct > 8000 && (down_count[0] || down_count[1] || down_count[2] || down_count[3]))) {
   ^~

   dt

taiko_controller:309:5: error: 'state' was not declared in this scope
 state = 0;

 ^~~~~

C:\Users\dalla\Documents\Arduino\ArduinoTaikoController-master\taiko_controller\taiko_controller.ino:309:5: note: suggested alternative: 'static'
 state = 0;

 ^~~~~

 static

taiko_controller:311:17: error: 'button_state' was not declared in this scope
   state |= (button_state[i] ? 1 << i : 0);

             ^~~~~~~~~~~~

taiko_controller:313:20: error: 'hat_mapping' was not declared in this scope
 Joystick.HAT = hat_mapping[state];

                ^~~~~~~~~~~

taiko_controller:321:5: error: 'cc' was not declared in this scope
 cc = 0;

 ^~

C:\Users\dalla\Documents\Arduino\ArduinoTaikoController-master\taiko_controller\taiko_controller.ino:321:5: note: suggested alternative: 'cd'
 cc = 0;

 ^~

 cd

exit status 1
'ct' was not declared in this scope
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
have I just installed something incorrectly?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/LuiCat/ArduinoTaikoController/issues/5, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABJHXUBKEND2QEFBPRWOPWDSGSZDTANCNFSM4RTBA2YQ
.

Fixed

Fixed


ValidationError was not being imported

ValidationError was getting called without being imported so import it.
:eyeglasses: @nramadas || @schwers

:fish:

:fish: