Update for recent chainhash-related API changes.

This PR requires btcsuite/btcd#729.
This updates all code to make use of the new  chainhash package since the old wire.ShaHash type and related functions have been removed in favor of the abstracted package.
Also, while here, rename all variables that included sha in their name to include hash instead.

ok

OK


Feature/1123 laplace approx

Submisison Checklist

[ ] Run tests: ./runCmdStanTests.py src/test
[ ] Declare copyright holder and open-source license: see below

Summary:
Intended Effect:
Expose Stan service method laplace_sample to CmdStan interface, (https://github.com/stan-dev/stan/pull/3148).
The laplace_sample specific arguments are:

draws - number of draws in sample
jacobian - Boolean flag, True == 1 (default), False == 0
mode - Either a JSON file containing estimates for all model parameters or a Stan CSV file produced by the optimize method

As part of this PR I added file src/cmdstan/command_helper.hpp for auxiliary helper methods, similar in spirit to stansummary_helper.hpp.     The goal is to improve the readability and maintainability command.hpp.   Further cleanup is needed, but that should be done in another PR.
How to Verify:
Unit test laplace_test
Side Effects:
N/A
Documentation:
Documentation will be added via a separate PR in the docs repo.
Copyright and Licensing
Please list the copyright holder for the work you are submitting (this will be you or your assignee, such as a university or company): Columbia University
By submitting this pull request, the copyright holder is agreeing to license the submitted work under the following licenses:

Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
Documentation: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

Filed issue https://github.com/stan-dev/cmdstan/issues/1129 to continue code cleanup effort.

A few small comments now. I think a full review should wait until after the feature freeze ends next week.

agreed.

Question: should the argument to specify the Jacobians to be used for optimization be added simultaneously?

depends on how granular you like your PRs.   This could be done as a sub-branch from this branch, correct?
waiting until after feature freeze would allow for more time to do more on https://github.com/stan-dev/cmdstan/issues/1129

depends on how granular you like your PRs

Fair enough, my impression thus far has been that Laplace approximation is mostly useful if you were able to optimize with Jacobians. If it's useful on its own I don't think it is necessary to include in this PR or one before this

Laplace approximation is mostly useful if you were able to optimize with Jacobians

Without Jacobian adjustments, optimization gives you the penalized MLE and the corresponding Laplace approximation gives you approximate standard errors.

It's just a matter of how much we document the actual computation and how much we doc its statistical application.

I should also note that the existing RStan implementation is the MLE plus standard errors version (no Jacobian adjustment).  So just to recreate that feature we need the Jacobian adjustment off option for the Laplace approximation.

made suggested changes.   will branch from this branch to work on issues #1124 and #1129

as part of thie PR, will remove duplicate "jacobian" argument classes, so that log_prob, optimize, and laplace all use same class.

not possible - method log_prob uses the more verbose name "jacobian_adjust". won't change log_prob. both optimize and laplace will use shorter arg name "jacobian", unless @bob-carpenter and/or @WardBrian would prefer name "jacobian_adjust".

I think we can change log_prob without much fear - it is not in a released version yet and shouldn't have many users. If you want to try to sneak that in before the release we could, see #1130

implementing #1124 as part of this PR - adding option for jacobian correction to optimization method.
for optimization, the default value of parameter "jacobian" is false.   to implement this, under the hood, defined new arg type "arg_jacobian_false" with the correct default.  this preserves backwards compatibility.
added test to check jacobians, and rewrote optimization tests, adding checks that specified algorithm is invoked.

ready for another round of review.

@mitzimorris: It looks like there are conflicts that need to be sorted before a review.


Feature Request: OCWare Use Mailboxes for IPC

Product: (OC-SDR, OC-LTE, OC-LTE, OC-Power, others)
OC-SDR
Component: (PSU, GBC, BBU, FEM, LED, ME)
GBC
Category:

[ ] Hardware
[x] Software/stack
[ ] Firmware/bootloader
[ ] Documentation

Description:
Describe the solution you'd like
It seems that there's a lot of repeated code to implement messaging between tasks using semaphores and queues. The TI RTOS Mailbox data structure should be more than capable of handling this. We'd only need a single handle to send a message instead of a queue handle & semaphore handle, reducing the boilerplate required to implement a subsystem. It also makes the code thread safe (queues are not protected and the semaphore doesn't protect against simultaneous access).
We can replace all the code that looks like this:
if(Semaphore_pend(semRFSdr, BIOS_WAIT_FOREVER)) {
    /* Check whether RF SDR Message Queue is empty or not */
    while (!Queue_empty(rfSdrMsgQueue)) {
        /* Read the RF SDR Message from RF SDR Message Queue */
        OCMPMessageFrame *pSDRMsgFrame = (OCMPMessageFrame *)Util_dequeueMsg(rfSdrMsgQueue);

        if (pSDRMsgFrame) {
            /* Process RF SDR Message */
            sdr_processmsg(pSDRMsgFrame);
        } else {
            LOGGER_ERROR("SDR:ERROR:: Not valid pointer.\n");
        }
    }
}

With this:
OCMPMessageFrame *pSDRMsgFrame;
while (Mailbox_pend(rfSdrMsgQueue, &pSDRMsgFrame, BIOS_WAIT_FOREVER)) {
    if (pSDRMsgFrame) {
        sdr_processmsg(pSDRMsgFrame);
    } else {
        LOGGER_ERROR("SDR:ERROR:: Not valid pointer.\n");
    }
}

Is your feature request related to a problem? Please describe.
Queue and Semaphore handles are used in multiple files to deal with the message queue. TI RTOS has Mailbox that can handle this by itself and would clean up the code.

Originally Commented by vthakur7f:
Yes adding Semaphore help with the better signal handling and might be the simple code you pointed to but there are couple of things which I thought might be little problematic down the road. Mostly the first one second one can be avoided by adding some extra piece of code.
Mail boxes has fixed length in a) number of messages it can store b ) size of message. This may become a problem if we are statically defining the number of message which mailbox can handle.
Also posting to mailbox is blocking call in case if mailbox is full out task will get stuck.
Mail box copies the content of the message which we intend to sent so we will end up having copies on both the task which eventually we have to clear to get free space again.

Originally Commented by imgraham:
Those are good points, but aside from the fixed number of messages, I think it would end up working very similarly to what we have now.
It looks like the current code is simply passing a pointer to the message by mallocing a smaller struct containing queue pointers (*prev & *next) and an additional pointer to hold the message. Defining the message size in the mailbox to be sizeof(ptr) would allow us to keep this same process (i.e. pass just a pointer via the mailbox instead of the whole message). TI's mailboxes are implemented with queues, so the solutions are actually almost identical.
The fixed length thing is really the only difference and is definitely something to consider. However, if we're backed up enough where a queue of say 20 isn't big enough, I think we have bigger problems. In that case I don't think blocking on insert would be a big deal anyway. It is a slightly less efficient use of memory, but it won't get as fragmented, and we have lots to spare - 50% not including unused heap in my build.
At the very least, I think we need to revisit the current solution - there's a lot of repetition and having to track 2 pointers to insert into the message queue is confusing. That's really my concern, but I figured moving the code to a new module would be so similar to the mailbox module anyway that we might as well just use that instead :)


speech_recognize_continuous_from_file , sample code from here, ValueError: read of closed file

it works quite ok for a while, but experiencing error as below.
sometimes, The program can be run again after 4-5 times retries.
using Python
RECOGNIZED: SpeechRecognitionEventArgs(session_id=17ec25efbf0d4832a9e9dbd87a9ae76e, result=SpeechRecognitionResult(result_id=441e73dea59f4945917559a9c22fadc7, text="  。", reason=ResultReason.RecognizedSpeech))
CANCELED SpeechRecognitionCanceledEventArgs(session_id=17ec25efbf0d4832a9e9dbd87a9ae76e, result=SpeechRecognitionResult(result_id=9842e5feecf144b398b0337cbb2677a0, text="", reason=ResultReason.Canceled))
CLOSING on SpeechRecognitionCanceledEventArgs(session_id=17ec25efbf0d4832a9e9dbd87a9ae76e, result=SpeechRecognitionResult(result_id=9842e5feecf144b398b0337cbb2677a0, text="", reason=ResultReason.Canceled))
SESSION STOPPED SessionEventArgs(session_id=17ec25efbf0d4832a9e9dbd87a9ae76e)
CLOSING on SessionEventArgs(session_id=17ec25efbf0d4832a9e9dbd87a9ae76e)
closing file
Exception in read: read of closed file
Exception ignored on calling ctypes callback function: <function PullAudioInputStream.__read_callback at 0x0000020B4EFBAB60>
Traceback (most recent call last):
File "C:\Users\PycharmProjects\speechto-text\Lib\site-packages\azure\cognitiveservices\speech\audio.py", line 212, in __read_callback
return obj.read(view)
^^^^^^^^^^^^^^
File "C:\Users\PycharmProjects\pythonProject1\main.py", line 1146, in read
frames = self._file_h.read(size)
^^^^^^^^^^^^^^^^^^^^^^^
ValueError: read of closed file
The code :
def speech_recognize_continuous_from_file(filename):
"""performs continuous speech recognition with input from an audio file"""
#
with open(filename + '.json', 'w', encoding='utf-8') as outfile:
    outfile.write('{\n    "caption": [\n')
outfile.close()

with open(filename + '.txt', 'w', encoding='utf-8') as outfile:
    outfile.write('')
outfile.close()

class BinaryFileReaderCallback(speechsdk.audio.PullAudioInputStreamCallback):
    def __init__(self, filename: str):
        super().__init__()
        self._file_h = open(filename, "rb")

    def read(self, buffer: memoryview) -> int:
        try:
            size = buffer.nbytes
            frames = self._file_h.read(size)

            buffer[:len(frames)] = frames

            return len(frames)
        except Exception as ex:
            print('Exception in `read`: {}'.format(ex))
            raise

    def close(self) -> None:
        print('closing file')
        try:
            self._file_h.close()
        except Exception as ex:
            print('Exception in `close`: {}'.format(ex))
            raise
    # Creates an audio stream format. For an example we are using MP3 compressed file here

compressed_format = speechsdk.audio.AudioStreamFormat(
    compressed_stream_format=speechsdk.AudioStreamContainerFormat.MP3)
callback = BinaryFileReaderCallback(filename= filename + '.mp3')
stream = speechsdk.audio.PullAudioInputStream(stream_format=compressed_format, pull_stream_callback=callback)

auto_detect_source_language_config = \
    speechsdk.languageconfig.AutoDetectSourceLanguageConfig(languages=["zh-HK", "zh-CN", "en-US"])

speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)

# Set continuous language detection (override the default of "AtStart")
speech_config.set_property(property_id=speechsdk.PropertyId.SpeechServiceConnection_LanguageIdMode, value='Continuous')
speech_config.output_format = speechsdk.OutputFormat.Detailed
audio_config = speechsdk.audio.AudioConfig(stream=stream)

speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config,
                                               auto_detect_source_language_config=auto_detect_source_language_config,
                                               audio_config=audio_config)

done = False

def stop_cb(evt: speechsdk.SessionEventArgs):
    """callback that signals to stop continuous recognition upon receiving an event `evt`"""
    print('CLOSING on {}'.format(evt))
    nonlocal done
    done = True
    stream.close()

def handle_result(evt: speechsdk.SpeechRecognitionEventArgs):
    import json

    results = json.loads(evt.result.json)
    print('===', filename, ' JSON ', evt.result.json)
    # print('&&&JSON ',results)
    print("**** ", results["DisplayText"])

    with open(filename + '.json', 'a', encoding='utf-8') as outfile:
        json.dump(results, outfile, sort_keys=True, indent=4, ensure_ascii=False)
        outfile.write('\n,\n')
        outfile.close()
    with open(filename + '.txt', 'a', encoding='utf-8') as outfile1:
        outfile1.write(results["DisplayText"])
        outfile1.close()

speech_recognizer.recognized.connect(handle_result)
# Connect callbacks to the events fired by the speech recognizer
speech_recognizer.recognizing.connect(lambda evt: print('RECOGNIZING: {}'.format(evt)))
speech_recognizer.recognized.connect(lambda evt: print('RECOGNIZED: {}'.format(evt)))
speech_recognizer.session_started.connect(lambda evt: print('SESSION STARTED: {}'.format(evt)))
speech_recognizer.session_stopped.connect(lambda evt: print('SESSION STOPPED {}'.format(evt)))
speech_recognizer.canceled.connect(lambda evt: print('CANCELED {}'.format(evt)))
# stop continuous recognition on either session stopped or canceled events
speech_recognizer.session_stopped.connect(stop_cb)
speech_recognizer.canceled.connect(stop_cb)

# Start continuous speech recognition
speech_recognizer.start_continuous_recognition()
while not done:
    time.sleep(.5)

speech_recognizer.stop_continuous_recognition()
# </SpeechContinuousRecognitionWithFile>

checked that there was a  quota issue.
[115874]: 1444ms SPX_TRACE_ERROR:  usp_reco_engine_adapter.cpp:1946 CSpxUspRecoEngineAdapter::OnError: site->Error() ... error='Connection was closed by the remote host. Error code: 1007. Error details: Quota exceeded. Cid: '
i am using S0 tier

Hi @km-azure-hku - you can read more about the quotas for S0 here. https://learn.microsoft.com/azure/cognitive-services/speech-service/speech-services-quotas-and-limits
If you are experiencing a different behavior than expected from the above, please reach out and share any relevant details.

Closed as resolved since no further updates in 2 weeks, please open a new issue if more support is needed.


Add check for array of email in LDAP

This update handles when the defined LDAP attr has an array of emails not just a single string.

Good catch! Could you also provide tests for it. Take a look at the spec/lib/ldap_spec.rb file at the #guess_email describe block. It should be as easy as modifying one of those picked emails to an array.
Also, it looks like there are some issues with rubocop, but since we already have some on master, feel free to ignore them.
Last but not least, remember to sign-off your commits.

I've a newbie when it come to github etiquette..    Also I'm a ruby newbie as well , so thanks for the comments.

@GrantStreetGroup thank you for this feature, I was not sure if this bug is on our side or not.

The are more complaints raised by rubocop, but the others can be ignored, since it's about this class getting bigger and more complex. I'll just update the rubocop config so it ignores this, while keeping in mind that this class can be improved structure-wise.
Anyways, the patch looks good to me :) Just fix those nitpicks. Oh, and by the way, squash all your commits into a single one afterwards, and sign-off this commit. Thanks!

@GrantStreetGroup thanks!


GA does not work and creates text fragment at the bottom of the page

First, I really like this theme so thanks for making it.
I added my google analytics tracking code (all one line) to the "google analytics: " line in _config_yml.  After doing so I have two (related?) problems. First, GA doesn't seem to be working at all.  Second, the following string appears at the bottom of every page:
', 'auto'); ga('require', 'linkid', 'linkid.js'); ga('send', 'pageview');
Am I adding the GA info incorrectly?
thanks!

Here is he solution for anyone else finding themselves here.  I had put the entire tracking script into the "google analytics" line.  When I replaced it with just the key everything started working fine.


ADD: fujiwara/tfstate-lookup

Hi, fujiwara/tfstate-lookup added.

@suzuki-shunsuke
Thank you for your suggestion!
Please check following commit:
https://github.com/aquaproj/aqua-registry/pull/3951/commits/d91950cf6c205e80cab873d3d1aeafbff348ab42

Relaesed. https://github.com/aquaproj/aqua-registry/releases/tag/v2.24.0


Examples of Linux C++ app using DLLexport-ed C# DLL

. . .
The question is related to:

DllExport -version: 1.7.4
Copy-paste from Data tab:

Installed: True; 1.7.4+c1cc52f; invoked: 1.7.4
Project type: Cs
Storage: ProjectFiles
Compiler.Platform: Auto
Compiler.ordinalsBase: 1
Compiler.rSysObj: False
Compiler.ourILAsm: False
Compiler.customILAsm:
Compiler.genExpLib: False
Compiler.peCheck: PeIl
Compiler.patches: None
PreProc.Type: None
PreProc.Cmd:
PostProc.Type: None
PostProc.ProcEnv: $(SolutionPath);$(MSBuildThisFileFullPath)
PostProc.Cmd:
SignAssembly:
Identifier: 090A6B9F-530D-44C0-8C15-006EAEF5555E
Instance: C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\MSBuild.exe
Project path: C:\Projects\DLLExportTest\DLLExportTest\DLLExportTest.csproj
Action: Configure
PlatformTarget:
TargetFramework: netstandard2.0
TargetFrameworks:
TargetFrameworkVersion:
RootNamespace:
AssemblyName:
MgrArgs:
MetaLib: tools\raw\lib\net20\DllExport.dll
MetaCor: tools\raw\lib\netstd\DllExport.dll
Proxy:
StoragePath: .net.dllexport.targets
ddNS: DLLExportTest
ddNS max buffer: 500
UseCecil: True
intermediateFiles: False
timeout: 30000
Options: None
RootPath: C:\Projects\DLLExportTest\
PkgPath: C:\Projects\DLLExportTest\packages\\DllExport.1.7.4\
SlnFile:
SlnDir: C:\Projects\DLLExportTest\
DxpTarget: tools\net.r_eg.DllExport.targets
MsgGuiLevel: -1
LockIfError:

QUESTION:
I followed your example(s) in creating a C# DLL and using it in a C++ application (all successfully super duper awesome!!) I was wondering would (im not a huge linux guy sorry ahead for dumb questions) a linux C++ application be built the same way? My guess is no since i needed to include a include for Windows.h.  but my guess would be there is an analogous header to use in linux land?
Or is this not possible with the current tooling?  Or if it is is possible there an example of this?

Linux is not supported yet by this tool including my custom assembler on coreclr which was released only for windows today.
But actually I'm not really want to add this support even in future because of modern unmanaged delegates. Time will tell.

gotcha.  Well if you ever have the drive I think it'd be cool.  Ive been trying to follow this and its just not as easy as your tool :-)

because of modern unmanaged delegates

@3F  What did you exactly mean here?  Obtaining delegate using nethost lib ?
For context: I'm looking for the way to use functions from dll created from C#-code on Linux OS in C++ code. So i've found two ways - mentioned  Obtaining delegate using nethost lib and Native AOT Technology . As i understood your tool (DllExport) can't be used in my case?

@Poshjark
https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-5/
This tool/repo provides only windows support at current day.


Cannot connect to outgoing SMTP server for Gmail

Expected behavior
K-9 Mail should connect to the outgoing SMTP Server (Port 465, smtp.gmail.com) for Gmail.
Actual behavior
When connecting my Gmail Account to K-9 Mail I get an error when checking outgoing SMTP Server Settings. (Port 465, smtp.gmail.com)
Steps to reproduce
1.Open K-9 Mail
2.Add a Gmail account to K-9 Mail
Environment
K-9 Mail version: v5.200-RC2
Android version: 6.0.1, ZTE ZMAX PRO
Account type (IMAP, POP3, WebDAV/Exchange): IMAP (Gmail)
PS: I checked my router and Port 465 is not being blocked. I can log into my Gmail perfectly using any other app, but K-9 Mail.

This is most likely a problem with your network configuration and not K-9 Mail. Connecting to Gmail works fine for thousands of other people.
Check the debug log to find out what's going wrong exactly: https://github.com/k9mail/k-9/wiki/LoggingErrors


x86-64 bit Android support

Description

HI,
I have a query regarding platform support by RenderDoc. Does RenderDoc currently supports x86-64 bit Android platform?
Is it possible to capture the trace of a debuggable android application on x86-64 bit platform?
I am having this doubt because, Renderdoc seems to use gapid lib interceptor. gapid lib interceptor I think currently has no support for x86-64 bit?
Thanks,
Hithendra

Repro steps

Environment

RenderDoc build: v1.1
Operating System: Android
API: OpenGLES

Thanks baldurk. What is PLT hooking?

PLT hooking is an alternate fallback mode that RenderDoc is built with by default that doesn't use any assembly patching. Instead it looks up tables in the ELF format which store imported function calls from the linker, and any imported functions that point to function I want to intercept are overwritten. That includes dlopen/dlsym so that any dynamic functions are intercepted.
The problem is that on android dlopen can't be reliably hooked because Android's libc is quite flawed/obtusely engineered. So it usually relies on being able to 'refresh' the hooks at some point before any work happens, but that might mean it doesn't refresh in time and misses hooking libraries before the graphics API is initialised.
The short version is that in theory it's more ABI independent, at least as long as handling is implemented for the ELF format on that ABI, which is true for x86, x64, arm32 and arm64 in the code at the moment.
That's still no guarantee that RenderDoc will work on x86/x64 though.

If we add support in gapid interceptor-library for Android x86-64 bit, Renderdoc will work on Android x86-64 bit platform. Is this understanding correct? Will it require any changes to be done on Renderdoc side?

Yes in theory if interceptor-lib was changed to support x86-64 then it could be updated on renderdoc's side with minimal change aside from updating the code to use the latest LLVM. I still have no plans to support x86-64 android officially though so I would likely not investigate any bugs found and I wouldn't ship support in any official builds.

Hello @baldurk,
I go here to ask the support for x86-64 for Android, and seem you have no plan to support it.
In the alternative way, could you please share how to build the android APK for renderdoc, so I can try to make the test with x86-64 arch.
If I success with it, I will make a MR for this support. What do you think?

Hello @baldurk, I go here to ask the support for x86-64 for Android, and seem you have no plan to support it. In the alternative way, could you please share how to build the android APK for renderdoc, so I can try to make the test with x86-64 arch. If I success with it, I will make a MR for this support. What do you think?

Found the instruction here, will follow it.
https://github.com/baldurk/renderdoc/blob/v1.x/docs/CONTRIBUTING/Dependencies.md#android

Please do not comment on years-old closed issues.


Adds branchName in buildrun results if revision is not specified

If user doesn't specify revision in Build object, then default
branch is used.
This patch adds support for adding the branch name in BuildRun results
if revision is not specified in Build Object.
Fixes #923
Signed-off-by: Shivam Mukhade<EMAIL_ADDRESS>Submitter Checklist

[x] Includes tests if functionality changed/was added
[ ] Includes docs if changes are user-facing
[x] Set a kind label on this PR
[x] Release notes block has been filled in, or marked NONE

See the contributor guide
for details on coding conventions, github and prow interactions, and the code review process.
Release Notes
Adds branchName in buildrun results if revision is not specified in Build

Very nice work @sm43. Code and tests are all perfect. I only look for an extension of https://github.com/shipwright-io/build/blob/main/docs/buildrun.md#step-results-in-buildrun-status to document the new status field. Edit: and I just approved the test runs, have a look at the failure. Should be easy to fix.

Thanks @SaschaSchwarze0
Fixed most of them but not sure why the below test is failing 🤔
Git Resource
/home/smukhade/go/src/github.com/shipwright-io/build/cmd/git/main_test.go:22
  cloning repositories with submodules
  /home/smukhade/go/src/github.com/shipwright-io/build/cmd/git/main_test.go:330
    should Git clone a repository with a submodule [It]
    /home/smukhade/go/src/github.com/shipwright-io/build/cmd/git/main_test.go:333

    Unexpected error:
        <*fs.PathError | 0xc0006842d0>: {
            Op: "open",
            Path: "",
            Err: <syscall.Errno>0x2,
        }
        open : no such file or directory
    occurred

    /home/smukhade/go/src/github.com/shipwright-io/build/cmd/git/main_test.go:338

any idea?
also how do I trigger the CI? is there any command I need comment to trigger it?

also how do I trigger the CI? is there any command I need comment to trigger it?

Some maintainer needs to do this for you until you become a regular contributor.

/approve

+1 on this, this is very helpful.


docs: add note about price tier units

@sinabakh can you possibly review this quick change to see if it makes sense?

@alikhajeh1 LGTM.

@alikhajeh1 LGTM.


feat(metarepos): Prevent log loss due to UpdateLogStream

What this PR does
Prevent updates that can cause log loss.
Reject if any of the existing SNs are not included.
Reject if any of the new SNs doesn't reflect the last commit.
Which issue(s) this PR resolves
Resolves #301
Anything else
Include any links or documentation that might be helpful for reviewers.

Codecov Report
Base: 63.12% // Head: 63.30% // Increases project coverage by +0.18% :tada:

Coverage data is based on head (a463d26) compared to base (a988730).
Patch coverage: 69.01% of modified lines in pull request are covered.

:exclamation: Current head a463d26 differs from pull request most recent head 88b5acd. Consider uploading reports for the commit 88b5acd to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #302      +/-   ##
==========================================
+ Coverage   63.12%   63.30%   +0.18%
==========================================
  Files         130      130
  Lines       17355    17419      +64
==========================================
+ Hits        10955    11027      +72
+ Misses       5847     5844       -3
+ Partials      553      548       -5

Impacted Files
Coverage Δ

internal/metarepos/storage.go
80.30% <56.41%> (+1.16%)
:arrow_up:

...metarepos/dummy_storagenode_client_factory_impl.go
64.02% <84.37%> (+1.44%)
:arrow_up:

internal/storagenode/logstream/executor.go
79.67% <0.00%> (-0.61%)
:arrow_down:

internal/metarepos/raft.go
79.60% <0.00%> (-0.29%)
:arrow_down:

internal/metarepos/raft_metadata_repository.go
77.52% <0.00%> (+0.26%)
:arrow_up:

internal/storagenode/replication_server.go
78.81% <0.00%> (+0.84%)
:arrow_up:

internal/metarepos/report_collector.go
77.42% <0.00%> (+0.85%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Auto Complete - Using Trie

💥 Proposal
Given n number of words and an incomplete word w. You need to auto-complete that word w.
That means, find and print all the possible words which can be formed using the incomplete word w.
Note : Order of words does not matter.
Have you read the Contributing Guidelines on Pull Requests?
Yes

/assign


ensure /usr and other system paths are the same on a client and server

An assumption "all system headers are the same" doesn't work for vkcom KPHP dev containers.
Closing this PR in favor of #3


copr: Add enum/set support for codegen

Signed-off-by: Xuanwo<EMAIL_ADDRESS>What problem does this PR solve?
Add enum support in codegen, after this PR merged, we can implement copr functions like:
#[rpn_fn]
fn cast_set_as_int(val: SetRef) -> Result<Option<Int>> {
    Ok(Some(val.value() as i64))
}

Check List
Tests

Unit test
Integration test

Let's merge this PR into previous one #9106

PTAL @skyzh @zhongzc @andylokandy

What about merging logic of xxxRef? (e.g. pack them into an enum), so as to reduce duplicated code?

Worth a try, maybe we can implement it in another PR.

ping @skyzh to take a look

ping @andylokandy , PTAL

Generally LGTM, please add a test for the macro expansion result, 'cause i think it can help new comer to figure out what exactly the macro does.

Maybe I can add a macro expansion test for rpn_fn in another PR? (I think this test must be very verbose).

However, I think tests are tightly related to the pr itself unlike some additional improvement.

OK, I will add a test here.

@andylokandy PTAL ~

Cool! It's the first codegen template for chunk.

Please fix the test, and rest LGTM.

If an ident in a big token tree goes wrong, it'll be hard to locate. I suggest renaming to token_tree_equal, to return the bool (sorry for the last comment) and assert it in the test.

If an ident in a big token tree goes wrong, it'll be hard to locate. I suggest renaming to token_tree_equal, to return the bool (sorry for the last comment) and assert it in the test.

I will look into this to find a solution for macro debuging.

Debug message looks like following:
expect: TokenStream [Ident { sym: row_index }, Punct { char: ',', spacing: Alone }, Ident { sym: vaxl }], actual: TokenStream [Ident { sym: row_index }, Punct { char: ',', spacing: Alone }, Ident { sym: val }]
thread 'rpn_function::tests_normal::test_enum_fn_generate_real_fn_trait_impl' panicked at 'expect: TokenStream [Ident { sym: row_index }, Punct { char: ',', spacing: Alone }, Ident { sym: vaxl }], actual: TokenStream [Ident { sym: row_index }, Punct { char: ',', spacing: Alone }, Ident { sym: val }]', components/tidb_query_codegen/src/rpn_function.rs:1747:9

Maybe this is enough? I found it's hard to get the token's location via public APIs.

/merge

/merge


Updated dependencies for react strict mode

Updated the package to use tss-react and @emotion/react.
Please, review and make the changes that you feel are better for your project.
/**

From react-confetti-explosion updated using tss-react and @emotion/react

https://www.npmjs.com/package/react-confetti-explosion
https://github.com/herrethan/react-confetti-explosion
https://docs.tss-react.dev/
https://emotion.sh/docs/introduction
*/

Hey thanks for this @DercilioFontes! I finally had a moment to refresh the whole repo, removing the @mui/styles dependency. I've opted for react-jss for style creating https://github.com/herrethan/react-confetti-explosion/blob/master/src/confetti/styles.ts#L1.

Great! I'll check it out.


Gh 781 null pointer missing operation declarations file

Codecov Report

Merging #857 into develop will decrease coverage by 0.89%.
The diff coverage is 0%.

@@             Coverage Diff              @@
##             develop     #857     +/-   ##
============================================
- Coverage      63.33%   62.44%   -0.9%
+ Complexity       854      813     -41
============================================
  Files            437      437
  Lines          12603    12599      -4
  Branches        1474     1475      +1
============================================
- Hits            7982     7867    -115
- Misses          4032     4151    +119
+ Partials         589      581      -8

Impacted Files
Coverage Δ
Complexity Δ

...java/uk/gov/gchq/gaffer/commonutil/StreamUtil.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...chq/gaffer/rest/mapper/GenericExceptionMapper.java
20% <0%> (-80%)
0% <0%> (ø)

...java/uk/gov/gchq/gaffer/proxystore/ProxyStore.java
0% <0%> (-67.03%)
0% <0%> (-27%)

...gov/gchq/gaffer/rest/service/OperationService.java
0% <0%> (-65.91%)
0% <0%> (ø)

...uk/gov/gchq/gaffer/proxystore/ProxyProperties.java
0% <0%> (-35.85%)
0% <0%> (-14%)

...v/gchq/gaffer/rest/factory/UnknownUserFactory.java
66.66% <0%> (-33.34%)
0% <0%> (ø)

...gaffer/rest/service/GraphConfigurationService.java
90.16% <0%> (+1.63%)
0% <0%> (ø)
:arrow_down:

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 33880db...12dbf0b. Read the comment docs.


same error

module 'pikepdf' has no attribute '_qpdf'

Heyyo @livcoding2,
Which OS are you on? Can you provide the full error?

Macos Monterey m1
it seems strange to me, that if I put only one line in the wordlist, it works.
`Bruteforcing:   0%|                                                        | 0/13232 [00:00<?, ?it/s]
Traceback (most recent call last):
File "/opt/homebrew/lib/python3.11/site-packages/bruttle/bruttle.py", line 17, in ettup
with pikepdf.open(target, password=passwd) as pdfile:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.11/site-packages/pikepdf/_methods.py", line 400, in open
pdf = Pdf._open(
^^^^^^^^^^
pikepdf._core.PasswordError: laura.pdf: invalid password
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/homebrew/bin/bruttle", line 8, in
sys.exit(main())
^^^^^^
File "/opt/homebrew/lib/python3.11/site-packages/bruttle/bruttle.py", line 65, in main
{ ".zip": ettuz, "": ettuh, ".pdf": ettup }.get(extension, log)(target, lines)
File "/opt/homebrew/lib/python3.11/site-packages/bruttle/bruttle.py", line 23, in ettup
except pikepdf._qpdf.PasswordError:
^^^^^^^^^^^^^
AttributeError: module 'pikepdf' has no attribute '_qpdf'`

look here with a wordlist that has only one entry.
liv@UNIX[±|main ?:5 ✗]:~/.../PDF/bruttle $ bruttle laura.pdf apache.txt
Bruteforcing:   0%|                                                            | 0/1 [00:00<?, ?it/s]
      Found Password: -->  laura

liv@UNIX[±|main ?:5 ✗]:~/.../PDF/bruttle $

Its the expected behaviour if its just one password since its not reaching the except block.
But the main issue is weird, I will check it tomorrow.
I am currently working on veldora (https://github.com/tamton-aquib/veldora) . It is much quicker than this tool (bruttle). It has multithreading and is written in rust. If you are in a hurry you could check it out until this issue gets resolved.

Heyyo @livcoding2,
The issue should be fixed now and I have released the v1.0.0 version.

Yes, thanks, but is too slow. Thank you anyway for your time and work.
Veldora working but didnt find right password.

Veldora worked fine for me with nearly 10 pdfs i tested with. Maybe an issue with the wordlist?
Anyway, feel free to close the issue if you feel its been resolved 😅 .

Closing this issue for now.  Feel free to re-open if there is any more issues 👍🏻


Heroku install instructions?

Great project!
The install instructions mention Docker, but the demo is deployed on Heroku. Is there a guide available on how to deploy this to Heroku?

bump

Hi @seanfcarroll!
Thanks, glad you liked it.
There is none specific to how this project. (By the way, the Docker instructions are mostly for dev/running locally.) But if you follow the Heroku documentation/getting started for Node.js projects should be fairly simple to do.
Cheers, hope it helps! 🙌

Thanks @pedrosanta !


NoSuchMethodError in 1.15.2-1.4

woke up to a server crash, don't know what the player was doing at the time:
crash report:
http://paste.ubuntu.com/p/fxCRtKzcSS/
fml server latest:
http://paste.ubuntu.com/p/CwFJz5KFYt/

It appears that the player looked at a banner and the mod failed to call the function that requests the item for display. Will look into this as it seems to be a big flaw.

Have started researching the issue but it seems to be caused by Mojang's ProGuard optimiser removing 'unused' code

Implemented temporary fix for this and will push to CurseForge tomorrow.

Forge has pushed a commit that fixes this. It has been fixed in 1.15.2-31.2.19


Fix CUDA ISAI test by adding cuda include files during build

I forgot that cuda/base/config.hpp internally includes thrust/complex.h, which requires the CUDA headers to be present. This PR simply changes the create function of the test to one which forwards these headers to the compiler.

@upsj Yes, I need it for warp_size. For HIP, I use the file isai_kernels.hip.cpp and use ginkgo_create_hip_test in the CMakeLists.txt, which will be compiled with HIP directly (needed because the hip/base/config.hip.hpp includes hip/runtime.h).


User disabled in AD

The MMC snap-in crashes as I try to remove a deployment admin which was deactivated in AD.

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

ID: 6e369494-d577-c134-3a64-9640ac5d1d75
Version Independent ID: 781f11ee-113b-4627-47bf-29a32d269da4
Content: Remove a Deployment Administrator
Content Source: ce/customerengagement/on-premises/deploy/remove-a-deployment-administrator.md
Product: crm-2016
GitHub Login: @Mattp123
Microsoft Alias: matp

@FlorinSander - “Thanks for contacting us. Unfortunately, we're unable to handle support requests for the product here. To contact Support, consider one of the options described here: https://docs.microsoft.com/dynamics365/get-started/support/
Closing this issue.”


Add possibility of setting the path to Sublime Merge

Addresses https://github.com/adhamu/history-in-sublime-merge/issues/15
This adds the extension setting history-in-sublime-merge.path, which allows to override the path to Sublime Merge:

Version 1.2.18 has been published to the marketplace
https://marketplace.visualstudio.com/items?itemName=adhamu.history-in-sublime-merge

Awesome! Thanks for having taken care of it so quickly, really appreciated!


Button Uptake Follow Ups

Address the following updates on the button component from Jesse:
Shift to full width buttons on mobile here:

Can all of these buttons "inside" the listing form be small buttons? It seems some are small and some are medium

Buttons above all tables should be small. Looks like listings button are small but others are medium

Can this button on Pref drawer be outlined?

Lost space on user drawer

Besides #4118, some of the fixes were addressed in the merge of #4084.


Options: Daily backtesting

Per https://github.com/QuantConnect/Lean/issues/939, backtesting options strategies with daily resolution is not currently supported, only minute.
It'd be good if daily was supported.

This is fairly confusing for folks new to the platform, mainly because the data library documentation page claims support for Daily, Hourly and Minute resolutions. We spent many hours spinning on this, assuming we were doing something wrong. :)
I suggest a you note this in the documentation and that you correct the data page (https://www.quantconnect.com/data#options/usa/price).

Sorry about that @tetious! Will fix it today.

Guys, I wish to have second resolution for Options. Do you see any problem? Plan to add support for in for IQFeed.
@jaredbroad


Use NPM version of 3dmol instead of embedding

3dmol recently started publishing to NPM. Tests passed with the switchover and I tried some visual comparisons in the example and all looked fine. The currently published version is different to the one you had embedded though so would be worth a second set of eyes

That's great news from 3dmol!  I was sad I had to embed their script in the first place.  I'll go ahead and update this branch and test it out.

Works for my use cases fine, and I see it's passing the tests.  I will go ahead and merge this and then bump the version so people can opt in to the new 3dmol version.

v0.3.0 released!  Thanks so much for this.


Implementing "Back" functionality

Question
How is "go back to the previous route" functionality handled in Reach Router?

As far as I can tell there's nothing built in. Since it uses history API, you can always do window.history.back() or window.history.go(-1) , however.

Yep, that should work just fine.

window.history.back() would be an elegant solution. In practice, it doesn't seem to be currently working.
// traversing routes
A => B => C

// calling window.history.back() from C
// expected B
// actual A

Anybody wanna implement this?

If it's an int, call history.go(n)
if it's not, carry on
can probably skip the transitioning checks because those are just there to prevent extra items being added to the stack, with go we're just moving around in the stack.

Using window.history.back() your users can leave the app, navigate(-1) should prevent that

Is it a good practice to use the window variable?

@dydokamil  There's nothing wrong with using window or other browser APIs/Objects. However you need to keep in mind that the code path would get undefined in case it's running on server (Server Side Rendering).
Since going back would usually be triggered by a click event, you can use it safely in the event listener.

Looks like this was never added, do we still want to add something to navigate to make this work? Or should we just encourage people to use the window.history.back() api?

Currently working on an app that uses reach router and am running into this issue, so just want to raise the topic again since the issue's still open. Is #197 going to be merged in sometime soon?

Unfortunately, window.history.back() doesn't re render the page that was linked from , so things that need to happen on that page with a render or CDM etc don't work with this method

+1

window.history.back() isn't available when using memorySource. To prepare this and be independent of the browser (for stuff like Gatsby, maybe?), there should be a way of going back in history without window.
There's this pull request that I think adds this feature properly, but it hasn't been merged. To be completely functional, memorySource must be modified to add the history::go() method required for this to work.
I'm worried this repository is no longer maintained, though. It'd be a shame. Anyone knows what's up?

I believe your answer can be found in https://reacttraining.com/blog/reach-react-router-future/

I believe your answer can be found in https://reacttraining.com/blog/reach-react-router-future/

Ah! That explains it all. Makes a lot of sense. Perhaps the project should contain some sort of deprecation notice in favor of the new React Router. It could help close a lot of issues regarding new features and whatnot.
Many have no idea about the foreseeable future of @reach. Myself included... until now.
Thanks a lot!

#197

@ryanflorence, this is still broken (even in the beta 1.3.0 version) due to the call to resolve(...) here: https://github.com/reach/router/blob/0908a5fd7d8a7d5c928a8062234ce6f5639a1962/src/index.js#L220
resolve(...) treats the argument as a string and throws an exception when trying to do a .substr

import { navigate } from "@reach/router";
const goBack = () => {
navigate(-1);
}
Back

@gazgump, which version have you confirmed this to be working in?
As stated above, there is a bug with how the parameter is being handled.

"@reach/router": "^1.3.1",

https://reach.tech/router/api/navigate
You can pass a number to go to a previously visited route.
navigate(-1)

@gazgump, i know what the API docs say. But at least as of 1.3.0, that API was broken. I'll give a newer version a try =], thanks for the heads up.

@ryanflorence @gazgump @Xapphire13 I just ran into the same issues on version 1.3.3. I think the issue presents itself when attempting to use -1 with the navigate function passed in as props to the component usually used for relative navigation.

if you are using reach-router in mini-app such as iframe and you don't want to change the parent router, or if you want to store history entries in memory for testing or other platforms like Native and you are using createMemorySource non of navigate(-1) or window.history.back() or window.history.go(-1) will work, here is a hacky low-level way to replace navigate for numbers.
const source = createMemorySource('/default')
// will be used in reach-router provider
export const history = createHistory(source)
// will be used for navigation
export const { navigate } = history

till "@reach/router": "^1.3.4", it doesn't provide a method for replacing state when to is a number in `navigate(to).
https://github.com/reach/router/blob/e203fe612236851a0bd3c77dba693e539a351c62/src/lib/history.js#L75-L78
here is a low-level hacky usage of reach-router for simulate back, if you are using the above setup
const dangerouslyGetLastHistoryItemPathname = () => {
  const stack = source.history.entries
  const index = source.history.index
  let lastRoutePathname = null
  try {
    lastRoutePathname = stack[index - 1].pathname
  } catch (error) {
    console.log(error)
  }
  return lastRoutePathname
}

Usage
const goToPreviousRoute = async () => {
  const lastRoutePathname = dangerouslyGetLastHistoryItemPathname()
  if (lastRoutePathname) await navigate(lastRoutePathname, { replace: true })
}

const Button = () => (
  <button onClick={goToPreviousRoute} >back</button>
)

if you are using reach-router in mini-app such as iframe and you don't want to change the parent router, or if you want to store history entries in memory for testing or other platforms like Native and you are using createMemorySource non of navigate(-1) or window.history.back() or window.history.go(-1) will work, here is a hacky low-level way to replace navigate for numbers.
const source = createMemorySource('/default')
// will be used in reach-router provider
export const history = createHistory(source)
// will be used for navigation
export const { navigate } = history

till "@reach/router": "^1.3.4", it doesn't provide a method for replacing state when to is a number in `navigate(to).
https://github.com/reach/router/blob/e203fe612236851a0bd3c77dba693e539a351c62/src/lib/history.js#L75-L78
here is a low-level hacky usage of reach-router for simulate back, if you are using the above setup
const dangerouslyGetLastHistoryItemPathname = () => {
  const stack = source.history.entries
  const index = source.history.index
  let lastRoutePathname = null
  try {
    lastRoutePathname = stack[index - 1].pathname
  } catch (error) {
    console.log(error)
  }
  return lastRoutePathname
}

Usage
const goToPreviousRoute = async () => {
  const lastRoutePathname = dangerouslyGetLastHistoryItemPathname()
  if (lastRoutePathname) await navigate(lastRoutePathname, { replace: true })
}

const Button = () => (
  <button onClick={goToPreviousRoute} >back</button>
)


refactor(protocol): use Bridge to send cross-chain owned contract transactions

This new implementation, compared with the one using signal service directly, does seem to be more clean and straight forward.

I cannot comment on un-changed lines so i put it here.
Tests are failing because the setConfigAndExcess is onlyOwner now.
Fixes are (TaikoL2.t.sol):

and

setConfigAndExcess

Fixed

@davidtaikocha could you fix issue in TaikoL2.ts, now the TaikoL2 contract needs the address manager's address, not the signal service's address in init().


Call tensorrt plugin initializer before loading engine inference

📚 Documentation Improvement
The demonstration on how to convert onnx to tensorrt engine and inference is in this notebook. While building the engine file, tensorrt creates the EfficientNMS_TRT plugin and it is not destroyed later on. So the inference work fine when anyone runs the notebook for the first time.
However, when I tried to load the saved engine file again in a new python session (which is the most common use case), it fails with the following errors:
[02/05/2024-21:55:33] [TRT] [I] Loaded engine size: 17 MiB
[02/05/2024-21:55:33] [TRT] [E] 3: getPluginCreator could not find plugin: EfficientNMS_TRT version: 1
[02/05/2024-21:55:33] [TRT] [E] 1: [pluginV2Runner.cpp::load::303] Error Code 1: Serialization (Serialization assertion creator failed.Cannot deserialize plugin since corresponding IPlugin

This issue has already been reported by another person #1814 .
There is a very simple fix for this. Add the following line just before loading the engine:
trt.init_libnvinfer_plugins(trt_logger, "")    # <- this one
with open(engine_file_path, "rb") as f, trt.Runtime(trt_logger) as runtime:
    serialized_engine = f.read()
    engine = runtime.deserialize_cuda_engine(serialized_engine)
    return engine

Everything works as expected afterwards. Please add this information in the notebook.

Thanks for the solution. We will update the notebook shortly ^_^


Show completed and Group By options in the side pane

Hi,
This is an excellent plugin thanks!
This is a feature request - could you make the Group By and the Show Completed options quickly accessible in the side pane view of the checklist, and not just on the settings page?
I find I want to keep switching between those options depending on what I'm doing.
Thanks!
Alan

Interesting. I assumed people wouldn't ever switch between those too often. I'm curious what your usage is that has you switching a lot? I'm not all the way opposed to adding some setting functionality to the sidebar, but would need to be thoughtful about where to draw that line. Should we change sort from there as well? what about the main tag?

Todo tasks are created in different contexts and done in different contexts. I may be in a note I'm writing during a meeting or activity and get a recommendation of something to check out later. I'll create a todo item using a sub-tag like #todo/checkout. There's a certain context I'll be in when it's appropriate to look through things to checkout, but they're not the most urgent. Then I want to see my todo items sorted by type or tag. Other times I'll create todo items when I'm in a note about a particular piece of work or activity. In this case the name of the note the todo item is in is the context. So I might want to see all the todo items that relate to that piece of work and so I want to group todos by note.
What I'd really like to be able to do is order my todos by priority order in the list itself - be able to drag items up and down the list so I give myself a priority order for my tasks. So there may be another grouping of todos which is ungrouped or priority order.
Also sometimes I want to see my completed tasks - it helps me understand the context of outstanding tasks or just makes me feel good about how much I have done rather than simply seeing the list of stuff I haven't yet done. And other times seeing all the completed tasks clutters my view and doesn't help me see what needs doing where essential tasks are pushed off the bottom of the screen.
Cheers!


Fix table/figure captions

Fixes #1 -- make sure there is space on either side of markdown table

Getting a merge conflict right now. @stain, can you fix this, please? (I can, but only later today)

Sorry, I Caused my own conflict! Ready to merge now.


Can't add gen1 variant product to the cart

Pointing Spartacus to Apparel UK, you can't see search results. See #1787.
If you go directly to a gen1 variant, like 95437_fox_hunt, some of the product details features disappear:

Summary text
Add to cart
Qty
Stock

You actually can add variant product to the page already on features/apparel-poc branch:

However there is an issue with style variants response - there is wrong/different product code so url  creation for variant is not possible:

Bill to investigate why the style info points to wrong product
Other issues solvable atm (you can select size and redirect)

closing this as it's no longer an issue as we proved with OCC guys configuring product at the backoffice. Details on how/what exactly needs to be set in the "product cockpit" (backoffice) are in progress (will create ticket/note).


Calling functions on ExecutionContext should not be required for proper initialization

The miopen::ExecutionContext requires functions such as DetectROCm for correct initialization. This leads to hard to catch bugs such as #2288  and relies on the developer knowing the sequence of functions to call which has been addressed in various ways across the code ( temporary objects in lambdas ).
To my understanding such function calls which are required for the proper initialization of the object should be part of the ctor. I want to understand why did we not design it that way and rely on the developer calling these functions every time such an object is created.

cc @atamazov

If I remember correctly, it is not required in gwss, but a better way to do it would be to have  a second dedicated constructor like ExecutionContext(FastInit{})

I'll try to make a PR tomorrow. This is not really complicated. just a moderate number of lines.
In case you are more interested in historical perspective of how things became what they are: originally DetectRocm was only required in couple solvers and has been used sporadically, then it expanded to every part of library where it is not guaranteed to not be needed.
Nonetheless, I agree that this was a poor planing and should be fixed.

@JehandadKhan The reasons of functions like DetectRocm are historical. Usually we refactor such things during normal development.

@DrizztDoUrden Please see https://github.com/ROCmSoftwarePlatform/MIOpen/pull/1739#pullrequestreview-1557922866

@DrizztDoUrden DetectRocm is thread-safe and fast (after the 1st invocation).

@JehandadKhan Just to remind. In some old versions of the library we had to run the compiler in order to find out some necessary version information. That is one of the reasons of of introduction of DetectRocm.

I also think that SetupFloats should be invoked from conv::ProblemDescription constructor to force full setup there as it's fast as well and can be accidentally skipped. But I'd do that in a separate PR.

Just to remind. In some old versions of the library we had to run the compiler in order to find out some necessary version information. That is one of the reasons of of introduction of DetectRocm. And at that time there was no abstraction representing the execution context. We had to call the function manually, when necessary.

@atamazov  Thanks for the context it does help. I suggest moving forward we move all such things to the handle creation time and maintain state there. This ensures that API call overhead time is consistent and the developer does not have to think about what functions they need to call and what is optional since all initializations are already done.
@DrizztDoUrden Please close this issue when the PR is merged


Don't Merge! PR real time test for target branch full build

Docs Build status updates of commit 82e8ebb:
:clock10: Pending: waiting for processors (23 builds ahead of you)
:warning: Docs Build is busy, currently there are 23 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit 82e8ebb:
:clock10: Full build: the average full build time is 7 min(s) 22 sec(s), this is based on the last 30 build(s) for this repository.

Docs Build status updates of commit 82e8ebb:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-conceptual/testing.md
:warning:Warning
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)
Details

docs-ref-conceptual/testing.md

[Warning] Missing attribute: either ms.prod or ms.service is required. Use ms.prod for on-premise products, or ms.service for cloud services.
[Warning] Missing attribute: title.
[Warning] Missing attribute: either ms.prod or ms.service is required. Use ms.prod for on-premise products, or ms.service for cloud services.
[Warning] Missing attribute: title.
[Warning] Missing attribute: either ms.prod or ms.service is required. Use ms.prod for on-premise products, or ms.service for cloud services.
[Warning] Missing attribute: title.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


refactor: use glob import for prelude

clean up

!bench

I can guarantee that it will not impact performance, either during compilation or runtime.

I'm just doing bisect searching as I found hmr performance has big regression today


Mudae bot setup

I doubt you'll see this but I'm completely new to this whole thing. Would you mind helping me set it up ?

I see it I'm pretty active when it comes to supporting the repo for now
As for set up I can assist in a few ways depending on what you need help with particularly

Im so sorry about this. I need help on everything. I have the python program downloaded but idk what to do next.

After installing python you need to install discum module from their repo
Afterwards you set up settings_mudae
Get a channeldata instance
And then run the python

Okay i installed discum, i did the settings. Im not sure how to get the channeldata thing

$setting in the channel and it should automatically grab it
Sent from my iPhone

On Nov 8, 2021, at 9:57 PM, koolyp0 @.***> wrote:

Okay i installed discum, i did the settings. Im not sure how to get the channeldata thing
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

ummmmm, im so lost. does the program need to be running ? and if so this shows up

ive never done any programming stuff so all this is new to me.

You have to install it thru pip so all the files installed correctly and can run with python
And no it’s fine we’ve all been there in terms of programming
Sent from my iPhone

On Nov 8, 2021, at 10:09 PM, koolyp0 @.***> wrote:

ummmmm, im so lost. does the program need to be running ? and if so this shows up
ive never done any programming stuff so all this is new to me.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

Im so confused dude, do you mind working on a vid ? Im really dying to try it out. Im just not cut out for the programming stuff.

The process of making a video would technically be pretty time consuming and this repo and all of its support is offered for free because I do it in my free time as it's pretty simple and easy.
I usually send links and give tips on what to do and that would normally help people figure out how to set up the bot, but I can set out a time to personally help you with your bot set up. This is offered through my patreon though, because work is work. But I'll be able to walk you through set up one on one and teach you ways to optimize the bot for yourself.


SPLAT-881 - fix: check deprecated env var CERT_LEVEL

Fix check introduced on https://github.com/redhat-openshift-ecosystem/provider-certification-plugins/pull/26
This PR blocks https://github.com/redhat-openshift-ecosystem/provider-certification-plugins/pull/23
https://issues.redhat.com/browse/SPLAT-881

@bostrt ptal?

/lgtm
/approve


feat(ethEventsProvider): Injest ethEventsProvider event logs in batches (resolves #317)

Motivation
This PR resolves issue #317, related to injesting the event logs from smart contracts in batches, vs all at once.
tl;dr for #317 is that trying to injest hundreds of thousands of events in one go, can lead to timeout and associated bugs, but processing them in smaller batches will allow them to be processed easier
Change Summary
I updated the syncHistoricalIdEvents and syncHistoricalNameEvents functions to use a configurable batchSize parameter. This allows event logs to be injested in batches, vs all at once.
Along with that, although its outside of the scope of the issue, I added a section for Editor cache to the .gitignore, including .vscode, .idea, and .fleet, since I didn't want to accidentally commit my cache
Merge Checklist
Choose all relevant options below by adding an x now or at any time before submitting for review

[x] The title of this PR adheres to the conventional commits standard
[] The PR has been tagged with the appropriate change type label(s) (i.e. documentation, feature, bugfix, or chore)

I don't see an option to add labels to this PR fwiw - but feature

[] Changes to the protocol specification have been merged - N/A, I don't think theres any protocol spec that needs to be updated/merged for this PR? Happy to update it if there is, though.

Additional Context
N/A

landon is 10xdev i approve it

vouch

Looks good to me! Please go ahead and merge this!

@adityapk00 not able to merge btw, gh says "Only those with write access to this repository can merge pull requests."

Done, merged it on your behalf :)


Poor Image quality and performance in "Lumberyard Bistro" compared with babylonjs

Description
Comparing appearance and performance to babylonjs this scene is really quite poor
Babylonjs reports around 80-90fps at the same location but playcanvas reports around 30-40.  Though the environment map is different I was unable to replicate the look of babylon which more closely matches the target renders
playcanvas

babylon js

Steps to Reproduce

got to and download the model https://developer.nvidia.com/orca/amazon-lumberyard-bistro
convert to glb in blender
load it into babylonjs sandbox and playcanvas viewer
Both appearance and performance is vastly different

Could you link your converted file ?  This is just the "exterior" scene which was converted ?

One last bit, your scene is completely inverted. Bike should be facing left and arch on right.
Kinda points to modification beyond just scaling.

From the meta data of the screenshots, it looks like you are on a Apple Mac with an Dell monitor (Dell AW3423DW).
I'll repeat my testing on the same setup (M1 mac with a Dell AW3423DW).

M1 Mac Tests:
This shows a difference in frame time closer to to what you are seeing.
Assuming you have completed the corrections above, the rendering quality is nearly the same.  Ensure you are using the same light maps.
All platforms struggle with depth buffer precision unless I heavily reprocess the scene before export.  That's likely why the scene was processed.
The big ticket performance item is:
Playcanvas Viewer: default not resampling hi def (2k) textures, uses 4.6 GB of texture memory
Babylong Sandbox: default resamples textures, uses far less texture memory.
You can see that this is the culprit by just rendering world normals instead.  The purpose of these two tools might differ slightly.  One focusing on what the actual model file contains the other showing what the engine can reprocess.  Both have value.
Second is the default multi-sampling:
Disabling the multi-sample setting on PlayCanvas Viewer is a 50% performance increase with no difference in rendering (identical pixels).
Third is playing animations:
This is a 10 - 20% performance difference.

Theres defininity something really off with the scale and transform but what concerns me is it looks really bad only in playcanvas, every other tool looks good by default.  Playcanvas seems to be rendering everything like its metal

I'm also seeing really poor performance in my own application outside of the viewer

threejs viewer matches babylon (apart from the broken/inverted scale)

p.s. thanks for looking into it I appricate it

Could you post your custom file and provide more details ?  The arc way is on the right in the original file and your textures are inverted backwards.  None of these tools can reasonably display the original file converted with the details you provided.
As someone who publishes and contributes to all of these projects, publishes his own, I know well they are within 3% of each other.  Please read the info above to address the graphical issues.
No judgement: if the goal is to make statements, please tell me so.  My time is limited and I don't catch on to these things quickly.

I've taken a look at this myself and found the following:

pc model-viewer lighting matches the khronos reference viewer closely if you match the environment and its orientation (orientation of the environment makes a huge difference to specular in this scene).
performance seems roughly equal on my machine to babylon using similar settings (though the babylon fps counter is maxed to 60fps). I suspect the biggest difference between the two in terms of performance is:

pc model-viewer renders to native screen pixel resolution, whereas babylon renders to CSS resolution (i.e. on retina displays we're rendering 4x the pixels). You can match babylon resolution by setting "Pixel Scale" in model-viewer to devicePixelRatio.
pc model-viewer is rendering with maximum anisotropy on all textures. this will be particularly slow on a scene with this many large textures. I don't see an option for specifying anisotropy in babylon, so assume it's using anisotropy of 1.

almost all surfaces in this glb are flagged as semi-transparent and I notice the khronos viewer does a much better job of rendering the scene with much less render order popping. I investigated further and believe we should use the same approach in pc - PR incoming (babylon matches pc model-viewer in this respect with much popping).

Comparison with matched lighting:

PlayCanvas
Khronos

I also found model-viewer continues to render a shadow catcher depth buffer every frame (for VSM shadow) even when the shadow catcher is disabled.
Of course this adds a lot of overhead on a scene like this. A followup PR will fix this too :)

When benches/tests are made with claims, please provide links to both tests as well as sources (if possible).

This seems to be resolved now, closing. Please reopen if that's not the case.


Support absolutely positioned anchors (not just top layer)

Hi Oddbird,
There's recently a major change to the anchor finding algorithm:

An element can use absolutely positioned anchors that come earlier in tree order
When there's a name conflict, we should use the last one instead of the first one

Please see https://github.com/w3c/csswg-drafts/issues/8165 (especially comments after https://github.com/w3c/csswg-drafts/issues/8165#issuecomment-1469912952) for more details about this change.

This would be really useful for me (btw awesome polyfill and thank you for it!)
Context: Using it for sidenotes like here.

@xiaochengh From what I can see, the WPT anchor-position-top-layer-005 test is still asserting that "Non-top-layer element cannot anchor to top-layer element". Shouldn't that be valid, since the anchor precedes the target in tree order? Or am I misunderstanding this section of the current spec?

If el has the same containing block as query el, then either el is not absolutely positioned, or el precedes query el in the tree order.

Thanks!

cc @mfreed7 in case you have any guidance here ☝ -- thanks!

See this issue, which isn't exactly the same as the one in the test case, but the questions about "the tree" are the same:
https://github.com/w3c/csswg-drafts/issues/10419
The major point is that "tree order" in the CSS spec doesn't refer to the DOM tree, it's the layout/box tree. What matters is that the anchor element gets laid out first, and the anchored/positioned element gets laid out after that. As long as that's the case, anchor pos should work.

@mfreed7 Thanks! That's very helpful.
@jamesnw It seems like we should open a new issue to respect tree order instead of DOM order.

👍  I opened https://github.com/oddbird/css-anchor-positioning/issues/209


estimateSize does not support non-segwit

Closing in favor of https://github.com/vulpemventures/ldk/issues/142


Fix panel registrar

Devtool panels registered using the PanelRegistrar class (e.g. the RDP and DOM Panels) are not removed correctly
and are registered multiple times because the panelId is incorrect.
This patch fix the two issues:
it uses PanelClass.prototype.id as the panelId to check devtool panels for existence (preventing multiple registration
of the same devtool panel) and on unregister (removing the panel correctly on add-on uninstall/disable/upgrade).
How to test:

enable the RDP panel (e.g. go set<EMAIL_ADDRESS>to “development” in the about:config)
disable and re-enable the Firebug.next add-on from the Addon Manager ( about:addons )

Rationale
In the addon-sdk the Tool class register a devtool panel using PanelClass.prototype.id as its ids:

https://github.com/mozilla/addon-sdk/blob/62deae2/lib/dev/toolbox.js#L44

This attribute is computed by the id getter in the Panel class:

https://github.com/mozilla/addon-sdk/blob62deae2/lib/dev/panel.js#L106

and the id is actually computed (from the panel name or label):

https://github.com/mozilla/addon-sdk/blob/62deae2/lib/dev/panel.js#L36

Thanks for the patch Luca!
(there is just one comment, see above)
Honza


Please add code comment: For src/src/com/tns/NativeScriptApplication.js , kindly comment what __ctorOverridden does

For the unintrodued, not clear in src/src/com/tns/NativeScriptApplication.js what the __ctorOverridden variable is intended to be used for.
Specifically:
The class constructor code goes:
public NativeScriptApplication() {
	super();
	if (__ctorOverridden) {

Is the code block begun on the last line here intended to be executed on each class instance construction, or only in error case?
The bigger picture i'm trying to understand is the code path at initialization, all from app launch from the OS, to the execution of the first line of CPP code and JS code.

Here's the particular line: https://github.com/NativeScript/android-runtime/blob/master/src/src/com/tns/NativeScriptApplication.java#L73

Hi,
this flag is never set and you can ignore it.
We are in the process of removing the predefined NativeScriptApplication and NativeScriptActivity classes and to allow custom activity classes defined in the application manifest.
In general this flag was checking if the JavaScript child class should be called for a specific override. This provides the possibility to inherit Java classes from JavaScript and to provide overridden implementations on constructors and methods.
Currently is is not used and will be removed.

@blagoev , ok thanks for clarifying - but wait, NativeScriptApplication is the root/main class of a NativeScript app, isn't it - where is the actual initial initialization / "entry point code" of the app, that at some point will lead to JS being invoked?
Kindly both tell this here, and also give your full response to my google groups post where I ask exactly the same thing, at https://groups.google.com/forum/#!topic/nativescript/X_1ndDlsaiA .
This stuff is extremely important to understand for a user like me, for instance if you're interested in linking in a custom C/C++ library into a NativeScript app:
You basically want the C library to inject a single function into the Javascript VM, and then when the JS code invokes the C library, the C library would be able to do more C <-> JS work. I.e. the C code is running in the app's main thread.
What I'm trying to understand is

where I need to put the code that injects that single function into the JS VM and
how i'll link in my C/C++ library, it can be a shared object file or any required format, e.g. libmylibrary.so

Where do I that?
Maybe best move this Q over to the google group too :)
Thanks!!

@blagoev , I have now moved the corpus of the Q above into this Google group thread: https://groups.google.com/forum/#!topic/nativescript/cWoo1tPIk44
Can you please respond to that thread (your best understanding), and also respond to the last question that remains here namely:
NativeScriptApplication is the root/main class of a NativeScript app, isn't it - then, where is the actual initial initialization / "entry point code" of the app, that at some point will lead to JS being invoked?
Thanks!

Moving over this last question of this issue, into a new clarified issue: https://github.com/NativeScript/android-runtime/issues/249


Sort emoji reactions by creation date

Currently emoji reactions are in random order. It would be nice to append new emoji reactions. Either add created_at to the API or sort the array by creation date.

Me and @allibail would like to claim this issue!

In order to access the documentation for the api, it looks like we need to be authorized. How do we go about doing that?

You mean https://dev.karrot.world/docs/? You can use<EMAIL_ADDRESS>and foofoo to log in, or your personal account if you created one on dev.karrot.world

Seems non-essential, so we close it.


⚠ Bofrost.at has degraded performance

In ab60944, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1016 ms

Resolved: Bofrost.at performance has improved in 7ef52b0 after 8 minutes.


can we make outbound an optional in module net-vpc DNS block

https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/blob/master/modules/net-vpc/main.tf
Line 98
We are trying to enable DNS logs using the net-vpc. But the DNS block is Enforcing the Outbound nameservers to be passed. At a high level, we are peering GCP project DNS with private service connect ApigeeX DNS.
variable "dns_policy" {
description = "DNS policy setup for the VPC."
type = object({
inbound = bool
logging = bool
outbound = object({
private_ns = list(string)
public_ns  = list(string)
})
})
default = null
}
We are not able to pass the empty list string for private_ns & public_ns. Any recommendations?
Basically, GCP is not enforcing in adding one of the alternatives but the module is.  We don't have any nameserver at this point for internal is there a way to make it optional? If we are manually undoing the nameserver the whole flow works but to keep the terraform state intact we need to disable the outbound.
below is the error:
│ Error: Insufficient target_name_servers blocks
│
│   on .terraform/modules/vpc/modules/net-vpc/main.tf line 99, in resource "google_dns_policy" "default":
│   99:     content {
│
│ At least 1 "target_name_servers" blocks are required.

If you set outbound to null it should do what you want, if I understand your use case correctly.

Are you suggesting something as below:
dns_policy = {
inbound  = true
logging  = true
outbound = null
}

Great! Thanks for confirming.


Remove underscore from parameter names in deserializer traits

This makes the generated rustdoc easier to read.

Yea.. This is an issue with Rust. I've seen some threads talking about it...


Add API support for scheduled fulfillment orders

Fixes: https://github.com/Shopify/shopify/issues/255067
Add open and reschedule APIs support for scheduled fulfillment orders.

[x] POST /admin/api/2021-01/fulfillment_orders/{fulfillment_order_id}/open.json

[x] POST /admin/api/2021-01/fulfillment_orders/{fulfillment_order_id}/reschedule.json

Can you add an update to the CHANGELOG please (in the Unreleased section).

FYI, the version of shopify_api in core is a little behind.
I tested with the latest release recently and found a few failures, so we'd have to address those before upgrading:
https://github.com/shopify/shopify/commit/84c96b3404feb604403717dfbcf4418cf7aa0adb
https://buildkite.com/shopify/shopify-selective-tests/builds/270945

PR for the above: https://github.com/Shopify/shopify/pull/269163


Add hash table with double linked lists

Please star this repository to show your support, in the meantime I am reviewing your code.


Release @google-cloud/bigtable v0.16.0

This pull request was generated using releasetool.

What's up with the failing system tests?

@muraliQlogic, can you please take a look?

@sduskis : The issue is because of createPrefixRange_ that we made public. I am analysing it further and will fix asap.

@sduskis : Fix is pushed via https://github.com/googleapis/nodejs-bigtable/pull/322

@googleapis/yoshi-nodejs, this PR is up to date with all issues.  Can I please get a review?

Release is at https://github.com/googleapis/nodejs-bigtable/releases/tag/v0.16.0

I tried to do a release, but the system-tests failed. I don't seem to have permissions to restart the job in CircleCI.  @sduskis can you try re-running this job?
https://circleci.com/gh/googleapis/nodejs-bigtable/9718

@JustinBeckwith I got a notification because of the rollback PR #324 for @google-cloud/bigtable. Version 0.16.0 never made it to npmjs so this package.json update was kind of invalid.


Title in dataset

I was going through the dataset you used to train the distilled modesl, and noticed a title.
{"query": "how was google founded", "query_id": "387441", "positive_passages": [{"docid": "5210298", "title": "What year was Google founded?", "text": "Google was co-founded in by Larry Page and Sergey Brin while they were students at Stanford University. Google was first incorporated as a privately held company on September \u00e2\u0080\u00a64th, 1998. The company name Google has its origin in the word Googol, which is the term for the number that represents 'one followed by hundred zeros'."}], "negative_passages": [{"docid": "7379456", "rank": 1, "text": "Instructions to install the Google Play Services in our Xamarin Android Player or the GenyMotion Emulator can be found here: https://university.xamarin.com/resources/how-to-install-google-play-on-android-emulator.Yes I found this article helpful. No I did not find this article helpful.nstructions to install the Google Play Services in our Xamarin Android Player or the GenyMotion Emulator can be found here: https://university.xamarin.com/resources/how-to-install-google-play-on-android-emulator. Yes I found this article helpful."},
MS MARCO Passage Ranking task in the v1 iteration which most if not everyone uses should not have a title from what I can tell. Can you elaborate on why this is here? Thanks :)

The dataset is based on msmarco-passage shared by https://huggingface.co/datasets/Tevatron/msmarco-passage. In experiments I only used the text field:
https://github.com/sunnweiwei/RankGPT/blob/d0f338802b0091a9ff4745b9af29051962b960b5/specialization.py#L37.

Okay, great thanks for the heads up :) This paper is also relevant to this choice -  https://arxiv.org/pdf/2304.12904.pdf in case you are interested, Tevatron introduced some inconsistencies in the aspect. But I believe your approach carries forward in the intended way!


Cache metrics and events in memory until being flushed to backends

Having an in memory cache helps support multiple use cases:

Collect events/metrics asynchronously
Run multiple backend sinks with different flush intervals.
Retry flushing in backends.
Serve recent metrics/events via a REST endpoint (potentially useful for the kube scheduler and kube cmdline).

Obsolete


chore(tests): test for ngUpgrade support

upgrade.js taken from https://github.com/angular/angular/pull/7603

Self: use actual upgrade.js

Blocked on https://github.com/angular/protractor/pull/3121, which in turn is blocked on angular/angular#8089, which is probably best handled by Julie.

Unblocked.  LMK what you think @juliemr

LGTM.


"Busulețu" , "Grădiștea" , "Gropanele" are listed in the drop-down menu

Description:
When user writes ”Busulețu" , "Grădiștea" , "Gropanele" the locations appear in the drop-down menu next to the comune and the county which is a part according to the law.
Precondition:
The website is up an running.

Step 1
Write in the search bar "Busulețu"

Expected results
The location appears in the drop-down menu as "Sat Busulețu, DOLJ (Grecești)".

Step 2
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 3
Write in the search bar "Grădiștea"

Expected results
The location appears in the drop-down menu as "Sat Grădiștea, DOLJ (Grecești)".

Step 4
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 5
Write in the search bar "Gropanele"

Expected results
The location appears in the drop-down menu as "Sat Gropanele, DOLJ (Grecești)".


Link all meta hours recordings

probably would be great to on dedicated meta hours page link all recordings
make youtube playlist?
https://docs.kodadot.xyz/meta_hours.html#recent-meta-hours

This is nice idea, problem is that with my managers rights on youtube, i can only add videos to playlists strictly from kodadot uploaded videos.
To add videos from other channels to the playlist i created, i'd have to be directly logged in to the channel so i can browse videos natively as "KodaDot".
Right now, with these rights i can't simply browse in KodaDot's name therefore the browsing automatically switches to my native channel and doesn't let me add d14's videos to KodaDot playlist.
Which takes me to a thought, wouldn't it better to have meta-hours videos directly on KodaDot youtube channel? I can take care of this.

@cryptodamsky can I close?


Added Immortal ICO Crowdsale for Battle Contract

Immortal ICO/Crowdsale starts few days ago, wanted to make easy for users to use MyEtherWallet to contribute/participate in the crowdsale for ETH Battle Smart Contract

Website & Public channel:

Twitter: https://twitter.com/persian_token
WebSite: http://persians.network/
GitHub: https://github.com/Neurone/persians
Slack: https://battlesmartcontract.slack.com/
Mail<EMAIL_ADDRESS>


Do not check file size for server-reconstructed gpkg file

This is to avoid mismatch of actual size of downloaded file and original size that server created.
The reason for mismatch is that if gpkg file is reconstructed on server using geodiff changesets it can eventually has a different size than original file (removed for space optimization).
closes #119

@wonder-sk I tested this against the live project where we discovered the issue. But I do not add unit test here since it requires quite specific remote project setup (a gpkg file which would be restored on demand and with different size).


How yo use the cloned cert & key in apache or nginx?

I am trying to use two files: .cert and .key with apache / ngnix with no luck.
Any advaice?
Thanks in advance !!

Just like any other cert/key. What do you mean by "no luck"? Check the log files


Migration of Google Play Services to Google API Play Services

The app currently has dependency on the old com.google.android.gms.common.GooglePlayServicesClient in ThreatFragment.java
This has to be migrated to use GoogleAPI (ref: https://developers.google.com/android/guides/api-client)

https://stackoverflow.com/questions/29303427/cannot-resolve-symbol-googleplayservicesclient-on-new-android-studio-project

Good job @irinil :) Migration to Google Play API Services successful


Add tests for Apply.cpp

Closing as superseded by https://github.com/PennyLaneAI/pennylane-lightning/pull/86


GD2 pod automatically reboots.

Steps performed:-

Created the  GCS cluster:-

[vagrant@kube1 ~]$ kubectl get pods -n gcs
NAME                                   READY   STATUS    RESTARTS   AGE
csi-attacher-glusterfsplugin-0         2/2     Running   0          2d21h
csi-nodeplugin-glusterfsplugin-45snb   2/2     Running   0          2d21h
csi-nodeplugin-glusterfsplugin-pgp2w   2/2     Running   0          2d21h
csi-nodeplugin-glusterfsplugin-s8g76   2/2     Running   0          2d21h
csi-provisioner-glusterfsplugin-0      2/2     Running   0          2d21h
etcd-4m7wv5fqk2                        1/1     Running   0          2d21h
etcd-6mf2nsl2p4                        1/1     Running   0          2d21h
etcd-lbmh9xjxm8                        1/1     Running   0          2d21h
etcd-operator-7cb5bd459b-tddxt         1/1     Running   0          2d21h
gluster-kube1-0                        1/1     Running   1          2d21h
gluster-kube2-0                        1/1     Running   0          2d21h
gluster-kube3-0                        1/1     Running   0          2d21h

deleted the gd2 pod

[vagrant@kube1 ~]$
[vagrant@kube1 ~]$ kubectl delete pods -n gcs gluster-kube1-0
pod "gluster-kube1-0" deleted

[vagrant@kube1 ~]$
[vagrant@kube1 ~]$ kubectl get pods -n gcs
NAME                                   READY   STATUS              RESTARTS   AGE
csi-attacher-glusterfsplugin-0         2/2     Running             0          2d21h
csi-nodeplugin-glusterfsplugin-45snb   2/2     Running             0          2d21h
csi-nodeplugin-glusterfsplugin-pgp2w   2/2     Running             0          2d21h
csi-nodeplugin-glusterfsplugin-s8g76   2/2     Running             0          2d21h
csi-provisioner-glusterfsplugin-0      2/2     Running             0          2d21h
etcd-4m7wv5fqk2                        1/1     Running             0          2d21h
etcd-6mf2nsl2p4                        1/1     Running             0          2d21h
etcd-lbmh9xjxm8                        1/1     Running             0          2d21h
etcd-operator-7cb5bd459b-tddxt         1/1     Running             0          2d21h
gluster-kube1-0                        0/1     ContainerCreating   0          5s
gluster-kube2-0                        1/1     Running             0          2d21h
gluster-kube3-0                        1/1     Running             0          2d21h
[vagrant@kube1 ~]$
[vagrant@kube1 ~]$
[vagrant@kube1 ~]$ kubectl get pods -n gcs
NAME                                   READY   STATUS    RESTARTS   AGE
csi-attacher-glusterfsplugin-0         2/2     Running   0          2d21h
csi-nodeplugin-glusterfsplugin-45snb   2/2     Running   0          2d21h
csi-nodeplugin-glusterfsplugin-pgp2w   2/2     Running   0          2d21h
csi-nodeplugin-glusterfsplugin-s8g76   2/2     Running   0          2d21h
csi-provisioner-glusterfsplugin-0      2/2     Running   0          2d21h
etcd-4m7wv5fqk2                        1/1     Running   0          2d21h
etcd-6mf2nsl2p4                        1/1     Running   0          2d21h
etcd-lbmh9xjxm8                        1/1     Running   0          2d21h
etcd-operator-7cb5bd459b-tddxt         1/1     Running   0          2d21h
gluster-kube1-0                        1/1     Running   0          43s
gluster-kube2-0                        1/1     Running   0          2d21h
gluster-kube3-0                        1/1     Running   0          2d21h
[vagrant@kube1 ~]$

executed commands on gd2 pod by log in by using same end points of kube1:-

command terminated with exit code 1
[vagrant@kube1 ~]$ kubectl get pods -n gcs -w
NAME                                   READY   STATUS    RESTARTS   AGE
csi-attacher-glusterfsplugin-0         2/2     Running   0          2d21h
csi-nodeplugin-glusterfsplugin-45snb   2/2     Running   0          2d21h
csi-nodeplugin-glusterfsplugin-pgp2w   2/2     Running   0          2d21h
csi-nodeplugin-glusterfsplugin-s8g76   2/2     Running   0          2d21h
csi-provisioner-glusterfsplugin-0      2/2     Running   0          2d21h
etcd-4m7wv5fqk2                        1/1     Running   0          2d21h
etcd-6mf2nsl2p4                        1/1     Running   0          2d21h
etcd-lbmh9xjxm8                        1/1     Running   0          2d21h
etcd-operator-7cb5bd459b-tddxt         1/1     Running   0          2d21h
gluster-kube1-0                        1/1     Running   0          2m52s
gluster-kube2-0                        1/1     Running   0          2d21h
gluster-kube3-0                        1/1     Running   0          2d21h
[vagrant@kube1 ~]$
[vagrant@kube1 ~]$  kubectl -n gcs -it exec gluster-kube1-0 -- /bin/bash
[root@gluster-kube1-0 /]#
[root@gluster-kube1-0 /]#
[root@gluster-kube1-0 /]#
[root@gluster-kube1-0 /]# glustercli peer list --endpoints="http://gluster-kube1-0.glusterd2.gcs:24007"
Failed to get Peers list

Failed to connect to glusterd. Please check if
- Glusterd is running(http://gluster-kube1-0.glusterd2.gcs:24007) and reachable from this node.
- Make sure Endpoints specified in the command is valid
[root@gluster-kube1-0 /]#
[root@gluster-kube1-0 /]#
[root@gluster-kube1-0 /]#
[root@gluster-kube1-0 /]#
[root@gluster-kube1-0 /]# glustercli volume list --endpoints="http://gluster-kube1-0.glusterd2.gcs:24007"
Error getting volumes list

Failed to connect to glusterd. Please check if
- Glusterd is running(http://gluster-kube1-0.glusterd2.gcs:24007) and reachable from this node.
- Make sure Endpoints specified in the command is valid
[root@gluster-kube1-0 /]#
[root@gluster-kube1-0 /]#

now executed commands using kube2 and kube 3 as endpoints. logged in from same kube1 pod.

[root@gluster-kube1-0 /]# glustercli volume list --endpoints="http://gluster-kube2-0.glusterd2.gcs:24007"
+--------------------------------------+----------------------+-----------+---------+-----------+--------+
|                  ID                  |         NAME         |   TYPE    |  STATE  | TRANSPORT | BRICKS |
+--------------------------------------+----------------------+-----------+---------+-----------+--------+
| 6cd58524-5172-4d9e-89ae-414bc338eba6 | pvc-f603ac47dcdc11e8 | Replicate | Started | tcp       | 3      |
+--------------------------------------+----------------------+-----------+---------+-----------+--------+
[root@gluster-kube1-0 /]#
[root@gluster-kube1-0 /]# glustercli volume list --endpoints="http://gluster-kube3-0.glusterd2.gcs:24007"
+--------------------------------------+----------------------+-----------+---------+-----------+--------+
|                  ID                  |         NAME         |   TYPE    |  STATE  | TRANSPORT | BRICKS |
+--------------------------------------+----------------------+-----------+---------+-----------+--------+
| 6cd58524-5172-4d9e-89ae-414bc338eba6 | pvc-f603ac47dcdc11e8 | Replicate | Started | tcp       | 3      |
+--------------------------------------+----------------------+-----------+---------+-----------+--------+
[root@gluster-kube1-0 /]#

while excuting more commands the pods automatically restarts:-

[root@gluster-kube1-0 /]#
[root@gluster-kube1-0 /]# glustercli volume list -command terminated with exit code 137usterd2.gcs:24007"
[vagrant@kube1 ~]$
[vagrant@kube1 ~]$
[vagrant@kube1 ~]$ kubectl get pods -n gcs -w
NAME                                   READY   STATUS    RESTARTS   AGE
csi-attacher-glusterfsplugin-0         2/2     Running   0          2d21h
csi-nodeplugin-glusterfsplugin-45snb   2/2     Running   0          2d21h
csi-nodeplugin-glusterfsplugin-pgp2w   2/2     Running   0          2d21h
csi-nodeplugin-glusterfsplugin-s8g76   2/2     Running   0          2d21h
csi-provisioner-glusterfsplugin-0      2/2     Running   0          2d21h
etcd-4m7wv5fqk2                        1/1     Running   0          2d21h
etcd-6mf2nsl2p4                        1/1     Running   0          2d21h
etcd-lbmh9xjxm8                        1/1     Running   0          2d21h
etcd-operator-7cb5bd459b-tddxt         1/1     Running   0          2d21h
gluster-kube1-0                        1/1     Running   1          4m
gluster-kube2-0                        1/1     Running   0          2d21h
gluster-kube3-0                        1/1     Running   0          2d21h

[vagrant@kube1 ~]$
[vagrant@kube1 ~]$
[vagrant@kube1 ~]$ kubectl describe pods -n gcs gluster-kube1-0
Name:               gluster-kube1-0
Namespace:          gcs
Priority:           0
PriorityClassName:  <none>
Node:               kube1/<IP_ADDRESS>
Start Time:         Fri, 02 Nov 2018 05:39:18 +0000
Labels:             app.kubernetes.io/component=glusterfs
                    app.kubernetes.io/name=glusterd2
                    app.kubernetes.io/part-of=gcs
                    controller-revision-hash=gluster-kube1-55bc79f94
                    statefulset.kubernetes.io/pod-name=gluster-kube1-0
Annotations:        <none>
Status:             Running
IP:                 <IP_ADDRESS>
Controlled By:      StatefulSet/gluster-kube1
Containers:
  glusterd2:
    Container ID:   docker://a261c3bcb84f993948b0691e199396109985d1bd9d547250476168cfd01a9520
    Image:          docker.io/gluster/glusterd2-nightly
    Image ID:       docker-pullable://docker.io/gluster/glusterd2-nightly@sha256:06e42f3354bff80a724007dbc5442349c3a53d31eceb935fd6b3776d6cdcb0fa
    Port:           <none>
    Host Port:      <none>
    State:          Running
      Started:      Fri, 02 Nov 2018 05:43:08 +0000
    Last State:     Terminated
      Reason:       Error
      Exit Code:    137
      Started:      Fri, 02 Nov 2018 05:39:48 +0000
      Finished:     Fri, 02 Nov 2018 05:43:04 +0000
    Ready:          True
    Restart Count:  1
    Liveness:       http-get http://:24007/ping delay=10s timeout=1s period=60s #success=1 #failure=3
    Environment:
      GD2_ETCDENDPOINTS:  http://etcd-client.gcs:2379
      GD2_CLUSTER_ID:     27056e19-500a-4e7a-b5a9-71f461679196
      GD2_CLIENTADDRESS:  gluster-kube1-0.glusterd2.gcs:24007
      GD2_ENDPOINTS:      http://gluster-kube1-0.glusterd2.gcs:24007
      GD2_PEERADDRESS:    gluster-kube1-0.glusterd2.gcs:24008
      GD2_RESTAUTH:       false
    Mounts:
      /dev from gluster-dev (rw)
      /run/lvm from gluster-lvm (rw)
      /sys/fs/cgroup from gluster-cgroup (ro)
      /usr/lib/modules from gluster-kmods (ro)
      /var/lib/glusterd2 from glusterd2-statedir (rw)
      /var/log/glusterd2 from glusterd2-logdir (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-8s2lg (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True
Volumes:
  gluster-dev:
    Type:          HostPath (bare host directory volume)
    Path:          /dev
    HostPathType:
  gluster-cgroup:
    Type:          HostPath (bare host directory volume)
    Path:          /sys/fs/cgroup
    HostPathType:
  gluster-lvm:
    Type:          HostPath (bare host directory volume)
    Path:          /run/lvm
    HostPathType:
  gluster-kmods:
    Type:          HostPath (bare host directory volume)
    Path:          /usr/lib/modules
    HostPathType:
  glusterd2-statedir:
    Type:          HostPath (bare host directory volume)
    Path:          /var/lib/glusterd2
    HostPathType:  DirectoryOrCreate
  glusterd2-logdir:
    Type:          HostPath (bare host directory volume)
    Path:          /var/log/glusterd2
    HostPathType:  DirectoryOrCreate
  default-token-8s2lg:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-8s2lg
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason     Age                From               Message
  ----     ------     ----               ----               -------
  Normal   Scheduled  30m                default-scheduler  Successfully assigned gcs/gluster-kube1-0 to kube1
  Warning  Unhealthy  27m (x3 over 29m)  kubelet, kube1     Liveness probe failed: Get http://<IP_ADDRESS>:24007/ping: dial tcp <IP_ADDRESS>:24007: connect: connection refused
  Normal   Pulling    26m (x2 over 30m)  kubelet, kube1     pulling image "docker.io/gluster/glusterd2-nightly"
  Normal   Killing    26m                kubelet, kube1     Killing container with id docker://glusterd2:Container failed liveness probe.. Container will be killed and recreated.
  Normal   Pulled     26m (x2 over 30m)  kubelet, kube1     Successfully pulled image "docker.io/gluster/glusterd2-nightly"
  Normal   Created    26m (x2 over 30m)  kubelet, kube1     Created container
  Normal   Started    26m (x2 over 30m)  kubelet, kube1     Started container
[vagrant@kube1 ~]$

After this restart, were you able to use gd2 on gluster-kube1-0?
The failed health check caused the restart of the pod, and that was for the same reason you couldn't use glustercli. We're still left with the question of why...
Do you have any logs from the gd2 container before it was killed for being unhealthy?

@JohnStrunk , I tried to cpature the logs but within that time the container was killed. I can retry the scenario and see if i am able to hit the same thing again and will try to capture the logs in different terminal.

@ksandha can you provide below info

Logs from the restarted container /var/log/glusterd2/glusterd2
kubectl get events

Normal   Killing    26m                kubelet, kube1     Killing container with id docker://glusterd2:Container failed liveness probe.. Container will be killed and recreated.
my suspicion is this is due to the issue #68


Calculation of metrics with word-level weighting

Amendments to measures to allow for metric calculations where specified words carry greater (or lesser) weight.

Hi, thanks for your contribution!
If you haven't already done so, could you please make sure you sign our CLA (https://jitsi.org/icla for individuals and https://jitsi.org/ccla for corporations)? We would unfortunately be unable to merge your patch unless we have that piece :(.

Hi, sorry, but I made some changes to the jiwer/measures.py file in the mean time. Would you be able to accommodate your PR?
Also, I would prefer to remove the insertion_weight keyword argument, and replace it with the following.
Either pass weights={'vietnam': 5}, or have the option to separately weight each kind of error with weights={'vietnam': {'s': 1, "d": 1, 'i': 5}}
Also, in order for this to be merged, I would like some test coverage.


Handle case where two paths resolve to the same class

This can occur in jars that have version-specific implementations.
Consider multi-release jars:
src/
    main/
        java/
            com/
                baeldung/
                    multireleaseapp/
                        App.java
                        DateHelper.java
        java9/
            com/
                baeldung/
                    multireleaseapp/
                        DateHelper.java

Both DateHelper classes will need to be available to the user. The problem is the current workspace setup is based on a 1-to-1 relation of .class files to actual resource classes. So depending on the ZIP entry iteration order, only one will be chosen.
Some ideas for addressing this:

Attach a Collection<ClassInfo> to resource class entries, which also get updated when the base is updated.

Consider mappings as well.
Requires Col-E/recaf-3x-issues#2 but also for tracking original path name
Seems like it could get complicated to track these things fast

On load detect duplicates and let users choose which they want to keep

Will break multi-release jars

Rework the resource entries so instead of ItemInfo it will have ItemFamily

The family is responsible for tracking file metadata like Col-E/recaf-3x-issues#2
The family can hold multiple sub ItemInfo values, such as multi-versioned classes
Will require LOTS of refactoring across the entire code-base

Things to consider about any one fix:

How much refactoring will it require?

Does it make it easy for the user to undeerstand what happened, and how to get to the data they want?
How does this work for intended Java usage, such as multi-release jars?
How does this work for obfuscated usage, such as intentional zip file shenanigans and tricky JVM ZIP edge case handling?

How much refactoring will it require?

The answer is: "An entire rewrite"