Add ClassicalDataStore class to keep track of qubits measured

Adds a ClassicalDataStore class so we can keep track of which qubits are associated to which measurements.
Closes #3232. Initially this was created as part 14 (of 14) of https://tinyurl.com/cirq-feedforward to enable qudits in classical conditions, by storing and using dimensions of the measured qubits when calculating the integer value of each measurement when resolving sympy expressions. However it may have broader applicability.
This approach also sets us up to more easily add different types of measurements (#3233, #4274). It will also ease the path to #3002 and #4449., as we can eventually pass this into Result rather than the raw log_of_measurement_results dictionary. (The return type of _run will have to be changed to Sequence[C;assicalDataStoreReader].
Related: #887, #3231 (open question @95-martin-orion whether this closes those or not)
This PR contains a ClassicalDataStoreReader and ClassicalDataStoreBase parent "interface" for the ClassicalDataStore class as well. This will allow us to swap in different representations that may have different performance characteristics. See #3808 for an example use case. This could be done by adding an optional ClassicalDataStore factory method argument to the SimulatorBase initializer, or separately to sampler classes.
(Note this is an alternative to #4778 for supporting qudits in sympy classical control expressions, as discussed here: https://github.com/quantumlib/Cirq/pull/4778/files#r774816995. The other PR was simpler and less invasive, but a bit hacky. I felt even though bigger, this seemed like the better approach and especially fits better with our future direction, and closed the other one).

I went ahead and created a ClassicalDataReader and ClassicalDataBase parent "interface" for the ClassicalData class as well. This will allow us to swap in different representations that may have different performance characteristics. See #3808 and #4274.

@95-martin-orion should we consider https://github.com/quantumlib/Cirq/issues/3708 here?

@95-martin-orion should we consider #3708 here?

Probably not - I don't think we came to a conclusive agreement that #3708 should be done in the first place. I've flagged the related #3868 to be revisited before Cirq 1.0 so we make sure to come back to this.

A quick synopsis of some rationale in some details in the PR:

Added _create_partial_act_on_args_ex instead of modifying the existing _create_partial_act_on_args, for backwards compatibility of any third party that may have already implemented another SimulatorBase subclass.
Removed @abstractmethod from _create_partial_act_on_args and did not add it to ..._ex, for forward and backward compatibility. (Just now realized an implements_one_of attribution could be useful here. Though I plan on deprecating the old method so the attribute may be overkill. Probably ..._ex should have a better long-term name).
ActOnArgs classes all still accept a log_of_measurement_results in __init__, for backwards compatibility and use it to initialize the classical_data but I do plan on deprecating this.
ActOnArgs classes all still provide a log_of_measurement_results (via its OperationTarget base class) for backwards compatibility, but I plan on deprecating that too. These aren't big deprecations internally, but affect a ton of unit tests.
I considered separating this PR into two: one for integrating classical_data, and then adding sympy qudit support separately. However, it turns out that doing the first part implicitly makes the second part work; I'd have to intentionally add a bug.

This looks interesting, but it seems to me that we might want to integrate this more closely with cirq.Result. AFAICT, a ClassicalDataStore is something like a "builder" for cirq.Result, and I think structuring things in that way could be very beneficial. I will note that as part of working on removing the uniqueness constraint on measurement keys (#4274) I'm trying to separate cirq.Result into separate interface and implementation classes, as in ClassicalDataStore and ClassicalDataDictionaryStore here.

@maffoo The biggest difference is that ClassicalDataStore is for a single simulation, whereas Result is for a run (multiple repetitions or samplers). Well, and the other difference is that ClassicalDataStore is also used during simulation, for simulating classically controlled gates, so merging the two concepts together and force simulation logic to be repetition-aware, which seems out-of-place.
The way I was imagining, we'd update the constructor of Result to accept a Sequence[ClassicalDataStoreReader], or possibly have a subclass of Result that does this.
For dropping the uniqueness constraint on measurements, I was imagining we would add a new function ClassicalDataStore.record_repeated_measurement(bits, qubits_measured) that would put those in a separate dictionary, of type Dict[MeasurementKey, List[Tuple[int, ...]]. It should also store the qubits_measured and raise a ValueError if the qubits_measured is not the same shape as the previous measurement on the same key. We would also add a new reader function ClassicalDataStoreReader.get_repeated_measurement that would return the array of measurements at that key. Then Result (or subclass thereof) could use this however it likes.
That said I do worry about the possibility of exploding different reader/writer methods here if we start doing lots of different measurement types. Maybe a single record_measurement(key: MeasurementKey, value: Any) is better? My gut says it's better to have specific readers/writers for each type (single measurements, repeated measurements, channel measurements) and that these won't explode beyond a couple, but it's hard to be sure.
(I was thinking MeasurementGate would have a new property allow_repeated, to signal whether this was a repeated measurement or not, and that ClassicallyControlledGate could have a new index property to control based on a repeated measurement offset. But maybe you're planning something completely different).
Anyway it probably makes sense to review what you're planning for #4274 before moving forward with this, to make sure we don't have to redo it all in a month.

@maffoo Can you help me understand the concern with having a class RepeatedSimulationResult(Result) that accepts Sequence[ClassicalDataStoreReader] (one for each repetition)?
The issue I'm having in any design that uses a single data store object for all repetitions, is that this forces simulation to be repetition-aware, which ends up being quite invasive. Also it makes the .simulate() function odd, in that the classical data returned would be indexed by repetition, though there are no repetitions. (We could write a wrapper around that, that gets the zero index of everything, but that seems upside-down).
One thing that would be straightforward, if performance is a concern, is to special-case a Result type for when we're sampling from circuits that have only terminal measurements. That goes through a completely different code path (it just calculates the resulting state vector or density matrix and samples it N times -- circuits also have to be unitary / noiseless to go down this code path in state vector simulators), so we could return a different Result subclass in those cases, that may be more efficient.
However for things that go through the full simulation on each repetition, forcing repetition-awareness into it would be pretty big. That said, if the concern is performance here, I'd expect the repeated execution of the simulations themselves would dominate the CPU time; I'd not expect aggregating the measurement dictionaries to add much time at all comparatively. Very high level pseudocode would be like:
class SimulatorBase:
  ...
  def sample(count: int) -> Result:
    if can_run_as_sampler(circuit):
      v = get_state_vector(circuit)
      dict = v.sample(count) # returns a Dict[MeasurementKey, List of size `count`]
      return PreAggregatedDictResult(dict)
    else:
      results = [simulate(circuit).measurements for _ in range(count)]
      return ResultFromRepeatedSimulations(results) # or we could just aggregate it directly in this function

Anyway I'm wanting to understand what the primary concern is before writing up a full doc with this invasive of a change, to make sure I'm capturing all the right aspects.  cc @95-martin-orion @MichaelBroughton

@95-martin-orion @maffoo This is going stale. My take is that this is the most straightforward design, in that one datastore is one simulation. This is ideal from the classical control perspective, though maybe less so in the sampling perspective.
But this also provides interfaces such that if we want to create alternate implementations that have better performance with repeated simulations, it's possible to add those later without breaking anything. Can we proceed with this or do we need more feedback?

@daxfohl Thanks for your patience on this. My read on this is that using Sequence[ClassicalDataStoreReader] as the source for building Results doesn't conflict with the changes @maffoo is looking at for reusable keys - the fact that Result intentionally uses repetitions as the outermost index on its storage simplifies this.
Rather than making simulations repetition-aware (which I agree would be a wide-sweeping change), I support continuing with the original design of this PR. I'll follow up with additional review either later today or Monday.

@95-martin-orion I think try to get #4847 merged before this one, as it'll create some conflicts for the new joiner otherwise.

@95-martin-orion I think try to get #4847 merged before this one, as it'll create some conflicts for the new joiner otherwise.

#4847 is now merged.

@95-martin-orion added, lmk if you think it needs more details.

Looks good to me! To put my 2¢ in on why these breaking changes are OK:

SimulatorBase is an aggregation of behavior shared by Cirq-internal simulators. External simulators are not expected to inherit from it, and are instead directed to inherit from the SimulatesFoo interfaces.
ActOnArgs is an internal type for handling simulator state. I don't expect references to this type outside of Cirq, much less reliance on specific behavior of one of its arguments.

...so on the distant chance that you're reading this and were broken by this change, feel free to CC me on the issue.


Dockerfile for the quicktry

Actually it's GUI applications, so i'm afraid it's going to just make things more complicated.


node: command not found

Hello :wave:
I'm trying to use buildpack and it works okay for build stage but the app itself fail to start. I get node: command not found

Procfile
web: node dist/server.js

Any ideas or workarounds? Thanks in advance

Try adding node@16~ as a dependency.

This should be fixed now. :)


[Feature Request] [Layout - Col Attributes] Add support for extra large (xl) screens

Existing Component
Yes
Component Name
el-col
Description
I use 2560x1440px screen at work. These screens are more and more common.
I would require a way to set el-col size above the current limitation:
xs > sm > md > lg > xl (missing)
As an example: Vuetify has this separator on their grid system: https://vuetifyjs.com/layout/grid
But I 100% prefer to use ElementUI =)
Would it  be possible to add this feature?

In version 2.0 we'll have a new breakpoint xl for screens wider than 1920px. Besides, all the breakpoints are SCSS variables, so you can reset them to whatever screen widths you see fit.


How to mount a local directory?

How can I mount a local directory to the kernel? Normally I'd use the "docker run -v" switch. But how to do this with dockernel? Thx.

Seems like this is not being updated anymore. May I help? 🙋 I can have a look, because atm it is something I would highly appreciate given the fact that I am using a rapidly changing code base which is mounted into my docker. Without an attachment these do not get updated. Thus everytime the code base is updated I need to ➡ delete the kernel ➡ build a new docker image ➡ register new image as jupyter kernel using dockernel.
Something else annoying is, that the display_name may be set correctly, but not the file name. This means that I have to delete a generic id in the jupyter kernelspec list and therefore cannot simply automate this process.
Cheers and thx @MrMino for the nice tool!

Nevermind my comment on "cannot simply automate". For the moment I am using this .sh bash script ⤵
#!/bin/bash

# remove all the kernels that have a number in their name
old_kernels=$(jupyter kernelspec list | grep -E '\b\w*[0-9]\w*[0-9]+\w*\b')
for kernel in $old_kernels
do
    jupyter kernelspec uninstall $kernel -y
done

# Update the docker image
docker build -t "docker_image" .

dockernel install docker_image --name docker_image_dockernel

jupyter lab

@FalcoAlitiq You are free to send PRs :)
But I cannot vouch for when I'll have time to review. The simpler the changes are - the higher the probability I'll be able to do something sensible with this project.
At the moment I don't have the time this project would need / deserve.


Two wallets on same Nano S, last transaction missing

Version Sparrow 1.6.4
Environment: Windows 11
Server: Private Electrum (Connected to electrs/0.9.3 on protocol version 1.4 - Batched RPC enabled)
Policy Type: Single Signature
Script Type: Native Segwit
Script Policy: wpkh(LedgerNanoS)
Issue: I have 2 wallets linked to the same Nano S, same master fingerprint, same derivation path. They see all the same transactions, excepting one. The last transaction from 10 days ago on one of the two wallets is missing. There maybe should be a button to reload the whole transaction history?
How to reproduce: Not really sure
Expected behaviour: The two wallets should show exactly the same balance and transactions.
Thanks

There maybe should be a button to reload the whole transaction history?

There is actually. View menu > Refresh Wallet
It's probably an Electrs related issue, but a wallet refresh should sort it out. Check your loading log (Transactions tab) to ensure there are no failures.

Hi, sorry it's embarassing I did not notice the Refresh button, I am new to Sparrow (loving it, btw). Unfortunately it did not solve the problem, actually made it worse, more transactions missing between the two.
I tried with public Electrum server but still finding discrepancies between the two wallets. A Core public server in the end worked fine. So I have a work-around, but there might be some issues in Electrum protocol.

So I have a work-around, but there might be some issues in Electrum protocol.

The Bitcoin Core server option actually uses the Electrum protocol too, leveraging BWT behind the scenes to provide an Electrum interface to the Bitcoin Core wallet. I am confident the issue lies with the servers you were connected to (Electrs in particular has these kind of problems, but sometimes public servers can be spotty too). Missing transactions can also be caused by an insufficient gap limit, but if the problem is now sorted it doesn't seem like was the case here.
I am going to close this off as a server issue - the Electrum server client in Sparrow has been very heavily tested over many years and is unlikely to be the cause of the problem, especially given the problem was resolved using it. Consider upgrading to ElectrumX or Fulcrum instead of using Electrs - see the Sparrow documentation for more details on the performance and reliability benefits.


Catch Ctrl-C and enable Ctrl-D

Fixes #76.
We catch Ctrl-C/SIGINT via a dummy signal handler and enable the use of Ctrl-D. For convenience, we introduce "exit" and "quit" cli commands.

Should we just add a CI job to build on windows? Feel free to squash.

Added CI jobs for windows-latest and macos-latest, tested that building would indeed fail on Windows, and fixup squashed commits.


⚠ SceneTime has degraded performance

In e417579, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 1423 ms

Resolved: SceneTime performance has improved in 6aac55f after 21 minutes.


Open questions

Open questions

Method signature of E(...)
HTTP Status codes

Method signature of E(...)
Current method signature:
func E(opt Option, opts ...Option) error {
    // ...
}

Reason for having 2 parameters is to have compile time check for at least 1
Option being passed to the constructor. The downside is that it isn't possible
to spread a slice of Options:
opts := []Option{WithOp(op)}
// Conditionally append Option to opts
return errors.E(opts...)
// not enough arguments in call to E
//    have ([]Option...)
//    want (Option, ...Option)

There are 2 workarounds possible.

Specify the first parameter explicitly and spread the rest:var opts []Option
// ...
return errors.E(WithOp(op), opts...)

Use errors.Options which turns []Option into an Option:opts := []Option{WithOp(op)}
// ...
return errors.E(errors.Options(opts))

The alternative is to only have variadic arguments (func E(opts ...Option)).
But this would need to check for length and panic if there were no Options
passed in.
Question: Should the signature for constructor be changed to have only
variadic arguments?
HTTP Status Codes
Error kind to HTTP status code mapping:

Kind
HTTP Status Code

Unknown
500: Internal Server Error

Canceled
500: Internal Server Error

InvalidInput
400: Bad Request

DeadlineExceeded
408: Request Timeout

NotFound
404: Not Found

AlreadyExists
?

PermissionDenied
403: Forbidden

ResourceExhausted
429: Too Many Requests

FailedPrecondition
412: Precondition Failed

Aborted
?

Unimplemented
501: Not Implemented

Internal
500: Internal Server Error

Unavailable
503: Service Unavailable

Unauthenticated
401: Unauthorized

IO
?

Illegal
?

Questions:

Are there any Kind for which the status code needs to be changed?
What should be the HTTP status code mapped to the following error kinds:

AlreadyExists
Aborted
IO
Illegal

For 409: Conflict, what would be the appropriate Kind?

What should be the HTTP status code mapped to the following error kinds
We can follow the english conventions corresponding to Int values.
Thoughts?

I am not sure what you mean @blackvirus18 . Could you clarify with an example?

When common errors are defined in library, I am worried about one potential pitfall.
Would this make it easy to return HTTP errors from store/repository layer, thereby introducing HTTP context into this layer?
Though I like the idea of standardising common errors, while allow custom errors, it also make it easy to do the wrong thing.
Perhaps, can we prefix or separate errors by layer, scope or purpose where they can be used?

The repository layer is only associating the appropriate 'Kind' of error when returning it. Examples:

NotFound when we get sql.ErrNoRows.
IO when opening a connection fails.
InvalidInput when there is an attempt to delete a row with an identifier which isn't present.

The HTTP status code is an attribute of the error Kind and not something the repo layer would need to be concerned about.

Though I like the idea of standardising common errors, while allow custom errors, it will also make it easy to do the wrong thing.
Perhaps, can we prefix or separate errors by layer, scope or purpose where they can be used?

Not entirely sure what you mean, could you clarify with an example?
The idea is to define error classification which different layers can react to or override if required. I don't see why the classification has to be layer-specific.

For "Method signature of E(...)", we have decided to retain the current signature func E(opt Option, opts ...Option) error. The reasoning was that the limitations are offset by not having to use panic and the compile time safety of ensuring we always specify an option to the constructor.
The "HTTP Status Codes" were cleaned up in 8adc615.
This is the final mapping from error kinds to HTTP status codes:

Kind
HTTP Status Code

InvalidInput
400: BadRequest

Unauthenticated
401: Unauthorized

PermissionDenied
403: Forbidden

NotFound
404: NotFound

Conflict
409: Conflict

FailedPrecondition
412: Precondition Failed

ResourceExhausted
429: Too Many Requests

Internal
500: Internal Server Error

Canceled
500: Internal Server Error

Unimplemented
501: Not Implemented

Unavailable
503: Service Unavailable

DeadlineExceeded
503: Service Unavailable


chore: project addition added by Ludo Game

Related Issue

#1921
Description

Game of Ludo
Screenshots

@priyankarpal label?

@priyankarpal label?

We are not providing any labels for project additions as they are not associated with solving any issues.( according to gssoc23 rules)

@priyankarpal i give me issue to solve ! because 8 days are left

@priyankarpal i give me issue to solve ! because 8 days are left

find problems if need to fix then I will assign


Refactor: Invalidate tasks cache on task assignement

On clicking assign to username  button on the tasks page, a spinner or loader should be indicated to show action being performed.

Closing this PR as this has been resolved by updating the cache in backend.


docs(page): add missing docs to emulateCPUThrottling

The text was taken from the protocol.

@kblok Thanks for your contribution!


[Bug Report] range-type Timepicker default value

Element UI version
2.4.6
OS/Browsers version
Mac /chrome
Vue version
2.5.2
Reproduction Link
https://jsfiddle.net/zph5xufj/3/
Steps to reproduce
1.did not set default value to range-type Timepicker (just empty array)
2.try to select but got nothing and click "OK" button
3.try again, the Timepicker works!!!
What is Expected?
when there is no default value ,the Timepicker still works
What is actually happening?
I could not select the time at first, but after I click the "OK" button ,the Timepicker worked again.
I dont know if it is a bug or  I didnt use it properly?
Do I have to initial range-type timepicker with default value?

@youngmings if the TimePicker do not have default value, you should set it to null, not an empty array

@youngmings if the TimePicker do not have default value, you should set it to null, not an empty array
It works!THX!!!!!


Package fails to build on install using yarn berry on windows

I'm not sure whether this is a yarn issue or something related to this package. But building on windows always fails using yarn berry (v4.0.2, v4.0.1, v3.7.0 all tried) using node v20.9.0. However, this does work on legacy versions (v1, tested on v1.22.21).
This issue only occurs on windows and using yarn berry only (npm works fine). Build on linux (debian 10) works fine with yarn stable (v4.0.2).

This is the build log:
# This file contains the result of Yarn building a package (pqclean@npm:0.3.1)
# Script name: install

Generated sources exist. To regenerate, please use "npm run regenerate-native".
node:internal/errors:497
    ErrorCaptureStackTrace(err);
    ^

Error: spawn C:\Users\redacted\AppData\Local\Temp\xfs-1546c3d2\node ENOENT
    at ChildProcess._handle.onexit (node:internal/child_process:286:19)
    at onErrorNT (node:internal/child_process:484:16)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'spawn C:\\Users\\redacted\\AppData\\Local\\Temp\\xfs-1546c3d2\\node',
  path: 'C:\\Users\\redacted\\AppData\\Local\\Temp\\xfs-1546c3d2\\node',
  spawnargs: [
    'C:\\Users\\redacted\\AppData\\Local\\Temp\\xfs-1546c3d2\\yarn',
    'run',
    'build-native'
  ]
}

I've tried running this as admin too.
@tniessen Can you look into this please. Thank you.

@FC5570 Thank you for reporting this. It seems that Yarn 4.0.2 sets npm_node_execpath to the path of a temporary #!/bin/sh wrapper for node, and npm_execpath to the path of a temporary #!/bin/sh wrapper for yarn. That breaks install.mjs: npm_node_execpath is not an executable file on Windows, and npm_execpath is not a JavaScript file.


Use BSD3 license

Perhaps you want to use the BSD3 instead of AllRightsReserved since this is educational code?

Wow, I can't believe i missed that!  Thanks!


Setting a winrm port in knife.rb breaks linux bootstrapping

I've been using the new windows cloning (which is awesome!), so I defined knife[:winrm_user], knife[:winrm_transport], & knife[:winrm_port] in my knife.rb.
Now though when I attempt to clone a linux VM, the bootstrap process is attempting to connect to winrm on the VM (specifically to the winrm port specified in my config file) and failing. This behavior doesn't change when I specify a SSH port on the command line.
Is there a way I can override this without removing those settings from my knife config?

Does --bootstrap_protocol ssh get you anywhere?

Should have mentioned - no, it still produced the same error.
On Jul 27, 2015 6:05 PM, "Sean Walberg"<EMAIL_ADDRESS>wrote:

Does --bootstrap_protocol ssh get you anywhere?
—
Reply to this email directly or view it on GitHub
https://github.com/ezrapagel/knife-vsphere/issues/178#issuecomment-125398526
.

@troyready can you please provide more information (the command and its output)?

Sure; here are 3 (failed) attempts at cloning and bootstrapping a VM (in attempts 2 & 3 I tried adding SSH options):
Attempt #1:
troyready@myworkstation:~$ knife vsphere vm clone mylinuxsystem --template "Ubuntu1404" --folder "Templates" --dest-folder "Templates" --datastore SAN_MyDatastore --resource-pool "VM Cluster/Dev" --cips <IP_ADDRESS>/24 --cgw <IP_ADDRESS> --cvlan Internal_Vlan --cdnsips <IP_ADDRESS> --cspec linuxserverprod --start --bootstrap true --ssh-user bootstrapuser --environment staging --run-list "role[base_role]" -N mylinuxsystem.ourorg.com --cdomain ourorg.com --chostname mylinuxsystem --cram 3 --ccpu 2
Cloning template Ubuntu1404 to new VM mylinuxsystem
Finished creating virtual machine mylinuxsystem
Powered on virtual machine mylinuxsystem

Waiting for sshd access to become availabledone
Doing old-style registration with the validation key at /home/troyready/.chef/ourorg-validator.pem...
Delete your validation key in order to use your user credentials instead

Connecting to <IP_ADDRESS>
ERROR: Network Error: Connection refused - connect(2) for "<IP_ADDRESS>" port 5986
Check your knife configuration and network settings

Attempt #2:
troyready@myworkstation:~$ knife vsphere vm clone mylinuxsystem --template "Ubuntu1404" --folder "Templates" --dest-folder "Templates" --datastore SAN_MyDatastore --resource-pool "VM Cluster/Dev" --cips <IP_ADDRESS>/24 --cgw <IP_ADDRESS> --cvlan Internal_Vlan --cdnsips <IP_ADDRESS> --cspec linuxserverprod --start --bootstrap true --ssh-user bootstrapuser --environment staging --run-list "role[base_role]" -N mylinuxsystem.ourorg.com --cdomain ourorg.com --chostname mylinuxsystem --cram 3 --ccpu 2 --ssh-port 22
Cloning template Ubuntu1404 to new VM mylinuxsystem
Finished creating virtual machine mylinuxsystem
Powered on virtual machine mylinuxsystem

Waiting for sshd access to become availabledone
Doing old-style registration with the validation key at /home/troyready/.chef/ourorg-validator.pem...
Delete your validation key in order to use your user credentials instead

Connecting to <IP_ADDRESS>
ERROR: Network Error: Connection refused - connect(2) for "<IP_ADDRESS>" port 5986
Check your knife configuration and network settings

Attempt #3:
troyready@myworkstation:~$ knife vsphere vm clone mylinuxsystem --template "Ubuntu1404" --folder "Templates" --dest-folder "Templates" --datastore SAN_MyDatastore --resource-pool "VM Cluster/Dev" --cips <IP_ADDRESS>/24 --cgw <IP_ADDRESS> --cvlan Internal_Vlan --cdnsips <IP_ADDRESS> --cspec linuxserverprod --start --bootstrap true --ssh-user bootstrapuser --environment staging --run-list "role[base_role]" -N mylinuxsystem.ourorg.com --cdomain ourorg.com --chostname mylinuxsystem --cram 3 --ccpu 2 --ssh-port 22 --bootstrap-protocol ssh
Cloning template Ubuntu1404 to new VM mylinuxsystem
Finished creating virtual machine mylinuxsystem
Powered on virtual machine mylinuxsystem

Waiting for sshd access to become availabledone
Doing old-style registration with the validation key at /home/troyready/.chef/ourorg-validator.pem...
Delete your validation key in order to use your user credentials instead

Connecting to <IP_ADDRESS>
ERROR: Network Error: Connection refused - connect(2) for "<IP_ADDRESS>" port 5986
Check your knife configuration and network settings

Add ssh_user and more importantly ssh_port in either the command or your knife.rb.
If you do not declare bootstrap protocol it will use ssh on Linux by default what is happening is you don't have ssh_port defined so it's using the winrn_port. I grabbed that magic from knife ec2 I can remove it if that's what people want. Currently though if you set the ssh_port you should be good to go.

@tim95030 See my third attempt above -- I set both and got the same result.

Looking at the code deeper I see the issue. I need to find out why knife-ec2 has this method so I can better understand it, but the logic of it is that if you define the winrm_port then it will override the ssh_port to that unless ssh_port is defined to something that is not it's default. This is what is causing your issue setting ssh_port to 22 is the default, so the winrm port is overriding that. Are you using a non-standard winrm port? If you aren't simply remove that setting from knife config and you should be set for both windows and linux. In the meantime I will figure out why this is there and see if we can do anything about it or if it is there to solve another issue.

So the code is there so that you can use -x for user, -p for port, and -P for password for either ssh_user, ssh_port, and ssh_password or for winrm_user, winrm_port, and winrm_password.
We inherit winrm settings from knife windows and the ssh portion comes from us. The short of it is if you put those settings in your knife.rb and don't use a non-default ssh port it will override the port. Which is the issue you are seeing.
This all being said the workaround is remove the setting from knife.rb and the fix is undetermined at this point. I will have to think on that some.

Appreciate it. We're using ssl on port 5986 for winrm, which seems to be the standard for ssl but not the default IIRC.

Use this then:   winrm_transport = ssl in your knife config and remove the port definition

Just updated knife-windows and removed the port definition. It fixed linux bootstrapping, but winrm still seems to be attempting to connect to port 5985 (or at least that's what it's reporting):
troyready@myworkstation:~$ knife vsphere vm clone mywsystem --ccpu 2 --cdomain ourorg.com --cgw <IP_ADDRESS> --chostname mywsystem --cips <IP_ADDRESS>/24 --cdnsips <IP_ADDRESS> --cram 3 --cspec Win2012R2Data --cvlan Internal_Vlan --datastore SAN_MyDatastore --dest-folder Templates --folder Templates --start --resource-pool 'VM Cluster/Dev' --template Win2012R2Data --bootstrap --bootstrap-protocol winrm --ca-trust-file ourorg_cert.pem -N mywsystem.ad.ourorg.com -r 'role[base_role]' -x<EMAIL_ADDRESS>-P 'MyPassword123'
Cloning template Win2012R2Data to new VM mywsystem
Finished creating virtual machine mywsystem
Powered on virtual machine mywsystem
Waiting for customization to complete...
Waiting for sysprep..............
Customization of VM mywsystem succeeded. Customization log located at C:\Windows\TEMP\vmware-imc\guestcust.log in the guest OS.
Customization Complete

Waiting for winrm access to become availableERROR: Errno::EINVAL: Invalid argument - connect(2) for "IPV6ADDRESSHERE" port 5985

What version of knife-windows are you using?

My knife-windows version is 0.8.5 (I updated before my last comment); from what I can tell it's not being pinned back by appbundler or anything in my ChefDK setup (though I could be wrong on that).

DEBUG: value for config item customization_plugin:
DEBUG: value for config item vsphere_dc: OurOrg Virtual Datacenter
Cloning template Win2012R2Data to new VM mywsystem
Finished creating virtual machine mywsystem
DEBUG: value for config item customization_plugin:
DEBUG: value for config item mark_as_template:
DEBUG: value for config item power: true
Powered on virtual machine mywsystem
DEBUG: value for config item bootstrap: true
DEBUG: Connect Host for Bootstrap: fd12:3456:789a:1::1
DEBUG: value for config item ssh_port: 22
DEBUG: value for config item bootstrap_protocol: winrm
DEBUG: Identified os as windows.
Waiting for customization to complete...
DEBUG: value for config item sysprep_timeout: 600
Waiting for sysprep................
Customization of VM mywsystem succeeded. Customization log located at C:\Windows\TEMP\vmware-imc\guestcust.log in the guest OS.
Customization Complete
DEBUG: value for config item fqdn: fd12:3456:789a:1::1
DEBUG: value for config item winrm_port: 5985

Waiting for winrm access to become available/home/troyready/.chefdk/gem/ruby/2.1.0/gems/knife-vsphere-1.2.3/lib/chef/knife/vsphere_vm_clone.rb:783:in `initialize': Invalid argument - connect(2) for "fd12:3456:789a:1::1" port 5985 (Errno::EINVAL)
	from /home/troyready/.chefdk/gem/ruby/2.1.0/gems/knife-vsphere-1.2.3/lib/chef/knife/vsphere_vm_clone.rb:783:in `new'
	from /home/troyready/.chefdk/gem/ruby/2.1.0/gems/knife-vsphere-1.2.3/lib/chef/knife/vsphere_vm_clone.rb:783:in `tcp_test_winrm'
	from /home/troyready/.chefdk/gem/ruby/2.1.0/gems/knife-vsphere-1.2.3/lib/chef/knife/vsphere_vm_clone.rb:373:in `wait_for_access'
	from /home/troyready/.chefdk/gem/ruby/2.1.0/gems/knife-vsphere-1.2.3/lib/chef/knife/vsphere_vm_clone.rb:357:in `run'
	from /opt/chefdk/embedded/apps/chef/lib/chef/knife.rb:422:in `block in run_with_pretty_exceptions'
	from /opt/chefdk/embedded/apps/chef/lib/chef/local_mode.rb:39:in `with_server_connectivity'
	from /opt/chefdk/embedded/apps/chef/lib/chef/knife.rb:421:in `run_with_pretty_exceptions'
	from /opt/chefdk/embedded/apps/chef/lib/chef/knife.rb:214:in `run'
	from /opt/chefdk/embedded/apps/chef/lib/chef/application/knife.rb:142:in `run'
	from /opt/chefdk/embedded/apps/chef/bin/knife:25:in `<top (required)>'
	from /usr/bin/knife:51:in `load'
	from /usr/bin/knife:51:in `<main>'

I apologize I misread the code for knife-windows the fix to use transport to set the default value will only work in 1.0.0 and on. Which I tested and it isn't compatible with knife-vsphere as they moved some things. As such I will create a pull request that does this logic in this codebase.

This should be fixed... If not, please let us know!


Sticky scroll reveal and jump feel a bit off

I really like sticky scroll but I found a few things confusing when using it especially because the lines share the same background as the editor they feel like just another section of editor text. I've included a gif to hopefully also depict the issues I've listed below.

You cannot hover text in the sticky scroll.
The sticky scroll lines can be present even when that line is already in my viewport causing a doubling sort of effect where the line in the editor is more feature rich (such as supports hover) than the line in the sticky scroll
It seems hit or miss whether or not clicking the sticky scroll would reveal the line. My expectation is it would jump to that line and then remove it from the sticky scroll so I would be able to edit it for example.

Hi, thank you for your feedback.

It's an interesting idea to be able to hover over text in sticky scroll. Perhaps I will make this into a feature request.
This should be fixed after the build with commit : https://github.com/microsoft/vscode/commit/0397ca4a4843cca225a88810c95bc60da537ca45
This should be fixed after the build with PR : https://github.com/microsoft/vscode/pull/156578

#1 has further implications too. Like hover is just one thing (probably not even the most important one). You also cannot use the editor context menu. I definitely think the background colorization makes it the most difficult to me for it to not feel like the editor and that everything should work the same way as the editor does.

Closing as work is done or shelled out to other issues


Add Dependabot config

Pull Request
Description
This change introduces a Dependabot configuration file to automatically maintain GitHub Actions dependencies. The configuration:

Sets up daily checks for updates
Targets the main branch
Groups all GitHub Actions dependencies together for more efficient updates

This addition will help keep the project's GitHub Actions up-to-date, improving security and ensuring access to the latest features and bug fixes.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#9  👈
#8
#7
#6
#5
#4
#3
#2
#1
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @JackPlowman and the rest of your teammates on  Graphite

Merge activity

Oct 27, 12:18 PM EDT: A user started a stack merge that includes this pull request via Graphite.


[BEAM-7389] Add Python snippet for Regex transform

Add Python snippet for Regex transform

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Choose reviewer(s) and mention them in a comment (R: @username).
[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[x] If this contribution is large, please file an Apache Individual Contributor License Agreement.

R: @aaltay Can you have a look please?

R: @ihji could you review this PR when you get a chance?

Run Portable_Python PreCommit

Run Python PreCommit


Fix cache directory creation in HotCommand class

This pull request addresses a bug in the HotCommand class that caused an error when attempting to create a cache file. The error message indicated that the directory for the cache file did not exist.
To resolve this issue, the following changes were made:

Added a cache directory checking functionality to the HotCommand class.
Created the checkCacheDir method to ensure the cache directory exists before creating the cache file.
The cache directory is checked and created if it does not exist, using the appropriate permissions.

With these changes, the error mentioned in the stack trace:
PHP Warning: file_put_contents(D:\project\discord-bot\PHP\DiscordPHP-Bot-Template/Core/HMR/Cached/cxscjtjp.php): Failed to open stream: No such file or directory in D:\project\discord-bot\PHP\DiscordPHP-Bot-Template\Core\HMR\HotCommand.php on line 50

Please do a review and merge these changes if you will.

Run composer fix locally

Moved fixes to PR 9


Rainbow Six Siege Support

Rainbow six siege support would be great, some of the effects that could be done would be:

Team Color
Health Meter
Ammo Left
Blood Effects
Flash Grenades
Grenades/C4 Effect

Duplicate of #349


Dynamic BVH

Scene System (#21)

Features:

use existing BVH/Octree implementation and update it to update dynamically
must be done in a way as to not effect framerate

tree building optimizations needed (morton codes?)
be able to know if it can skip an updating if no entities have moved

investigate moving this to the GPU??

Stretch Goal:

eliminate recursion and use a stack based algorithm to avoid possible stack explosions and simplify thinking about the code, probably not that difficult to do, but would take some thinking about to make the conversion

current implementation updates dynamically, and only rebuilds if a certain condition is met (based on uncle node surface areas)

this may be done?? more testing required


RegexSet much slower than multiple single scans

I have a set of ~20 very simple but not anchored regexes to run against a buffer. The chance of at least one match is on the order of a few percent. My idea was to use a RegexSet to scan the buffer once (in reality a stream of ~20gb) and rescan with individual regexes to find matches if there are in fact any.
As it turns out, the RegexSet-pass is much, much slower than scanning the buffer multiple times:
#![feature(test)]

extern crate test;
extern crate regex;

static PATTERNS: &'static [&'static str] = &[
         "ABC", "FOO", "BAR", "FOOBAR", "BARFOO",
        "foo", "haha", "asdfk", "safdkj", "sadhakjs", "345845hj",
        "^234jkl2$", "^ß0gjk2$", "^lkjsdf$", "^234rklj$", "2234sg$"
    ];

fn main() {
    println!("Hello, world!");
}

fn fixture() -> Vec<u8> {
    std::iter::repeat(32).take(10*1024).collect()
}

#[bench]
fn single(b: &mut test::Bencher) {
    let fix = fixture();
    let haystick = std::str::from_utf8(&fix).unwrap();
    let set: Vec<_> = PATTERNS.iter().map(|p| regex::Regex::new(p).unwrap()).collect();
    b.iter(move || {
        let m: Vec<_> = set.iter().map(|r| r.is_match(haystick)).collect();
        test::black_box(m);
    });
}

#[bench]
fn multiple(b: &mut test::Bencher) {
    let fix = fixture();
    let haystick = std::str::from_utf8(&fix).unwrap();
    let set = regex::RegexSet::new(PATTERNS).unwrap();
    b.iter(move || {
        //let m = set.is_match(haystick);
        let m: Vec<_> = set.matches(haystick).into_iter().collect();
        test::black_box(m);
    });
}

Running target/release/retest-ae36173f0b85f6dc

running 2 tests
test multiple ... bench:      22,619 ns/iter (+/- 384)
test single   ... bench:       3,057 ns/iter (+/- 114)

test result: ok. 0 passed; 0 failed; 0 ignor

The RegexSet being much, much slower than rescanning is very surprising.

On 100mb of spaces the speeds are 233m ns/i for multi and 91m ns/i for single.
On 10mb of random utf8 chars the speeds are 122m ns/i for multi and 23m ns/i for single.

Benchmarking regexes is hard, and the results can be surprising because optimizations can make it tricky to reason straight-forwardly about performance. In this particular benchmark, I'd like to note the following things:

There are a reasonably small number of regexes.
All of the regexes are just literals, with a few anchored to the beginning/end of text.
None of the regexes ever match anywhere in the haystack.
The haystack is quite small, and given the speeds involved, you very well could be benchmarking match overhead. (Indeed, your benchmark results on bigger haystacks suggest that is the case.)

The "naive" solution in this case is much faster precisely because of the above three criteria. The small number of regexes means that the constant factor improvement of RegexSet is pretty small. The fact that the regexes are mostly literals and the match infrequency means that a simple scan using Regex is going to be insanely fast because it essentially compiles down to a single memchr call that reports "nope, this byte doesn't match in this haystack of 0x32 bytes." On the other hand, a RegexSet doesn't know this optimization is possible, so it either tries Aho-Corasick or the full lazy DFA, both of which are going to be much slower than a call to memchr on a very small haystack.
The point of a RegexSet is to scale. Add more regexes, use larger haystacks, increase match frequency or change the regexes to something other than plain literals and you might see the gap close.
I think this is probably working as intended.

@BurntSushi I've been running similar benches, and it seems like RegexSet is always less scalable than Vec<Regex>. What am I doing wrong?
running 18 tests
Build  2,500 RegexSet:   (".*0001.*", ".*0002.*", ..., ".*2500.*") - Build Throughput: 28379.11/s
Build  2,500 Regexes:    (".*0001.*", ".*0002.*", ..., ".*2500.*") - Build Throughput: 20942.27/s
Build 25,000 Regexes: (".*00001.*", ".*00002.*", ..., ".*25000.*") - Build Throughput: 19261.36/s
test contains::medium_needle::match_no::regex_set    ... bench: 151,573,011 ns/iter (+/- 6,969,733)
test contains::medium_needle::match_no::regexes      ... bench:   4,930,707 ns/iter (+/- 613,576)
test contains::medium_needle::match_no::regexes_10x  ... bench:  50,170,445 ns/iter (+/- 4,844,777)
test contains::medium_needle::match_yes::regex_set   ... bench: 152,474,252 ns/iter (+/- 5,832,912)
test contains::medium_needle::match_yes::regexes     ... bench:   4,954,995 ns/iter (+/- 679,333)
test contains::medium_needle::match_yes::regexes_10x ... bench:  50,405,913 ns/iter (+/- 5,722,213)
test contains::small_needle::match_no::regex_set     ... bench:   2,695,389 ns/iter (+/- 308,408)
test contains::small_needle::match_no::regexes       ... bench:     394,149 ns/iter (+/- 74,657)
test contains::small_needle::match_no::regexes_10x   ... bench:   7,589,178 ns/iter (+/- 555,109)
test contains::small_needle::match_yes::regex_set    ... bench:   2,590,789 ns/iter (+/- 293,424)
test contains::small_needle::match_yes::regexes      ... bench:     340,748 ns/iter (+/- 77,446)
test contains::small_needle::match_yes::regexes_10x  ... bench:   7,183,063 ns/iter (+/- 695,527)
Build  10,000 RegexSet:   ("00001", "00002", ..., "10000") - Build Throughput: 117828.35/s
Build  10,000 Regexes:    ("00001", "00002", ..., "10000") - Build Throughput:  27229.22/s
Build 100,000 Regexes: ("000001", "000002", ..., "100000") - Build Throughput:  24990.66/s
test exact::small_needle::match_no::regex_set        ... bench:   3,109,441 ns/iter (+/- 246,743)
test exact::small_needle::match_no::regexes          ... bench:     797,690 ns/iter (+/- 120,845)
test exact::small_needle::match_no::regexes_10x      ... bench:   8,570,098 ns/iter (+/- 727,307)
test exact::small_needle::match_yes::regex_set       ... bench:   2,809,886 ns/iter (+/- 258,279)
test exact::small_needle::match_yes::regexes         ... bench:     811,185 ns/iter (+/- 118,593)
test exact::small_needle::match_yes::regexes_10x     ... bench:   8,596,560 ns/iter (+/- 741,550)

test result: ok. 0 passed; 0 failed; 0 ignored; 18 measured; 0 filtered out

Code:
// License: https://en.wikipedia.org/wiki/WTFPL

#![allow(dead_code)]
#![feature(concat_idents)]
#![feature(test)]

#[macro_use] extern crate cached;
#[macro_use] extern crate lazy_static;

extern crate regex;
extern crate regex_syntax;
extern crate pbr;
extern crate test;

use test::Bencher;
use pbr::ProgressBar;
use regex::Regex;

macro_rules! compare_regex_set {
    ($id:ident, $matcher:expr, $format:tt, $needle:expr, $matches:expr) => {
        mod $id {
            use super::*;

            #[bench]
            fn regexes(b: &mut Bencher) {
                let set = build_stressor_regexes(test::black_box($matcher.max_inputs()), $matcher);
                let full_needle: &str = &format!($format, $needle);
                assert_eq!(set.matches(full_needle).len(), $matches);
                b.iter(|| set.matches(test::black_box(full_needle)));
            }
            #[bench]
            fn regexes_10x(b: &mut Bencher) {
                let set = build_stressor_regexes(test::black_box($matcher.max_inputs()*10), $matcher);
                let full_needle: &str = &format!($format, &("0".to_owned() + $needle));
                assert_eq!(set.matches(full_needle).len(), $matches);
                b.iter(|| set.matches(test::black_box(full_needle)));
            }

            #[bench]
            fn regex_set(b: &mut Bencher) {
                let set = build_stressor_regex_set(test::black_box($matcher.max_inputs()), $matcher);
                let full_needle: &str = &format!($format, $needle);
                assert_eq!(if set.matches(full_needle).matched_any() { 1 } else { 0 }, $matches);
                b.iter(|| set.matches(test::black_box(full_needle)));
            }
        }
    }
}

mod exact { use super::*;
    mod small_needle { use super::*;
        compare_regex_set!(
            match_no,
            Matcher::Exact,
            "{}",
            "00_002",
            0
        );
        compare_regex_set!(
            match_yes,
            Matcher::Exact,
            "{}",
            "00002",
            1
        );
    }
}
mod contains { use super::*;
    mod small_needle { use super::*;
        compare_regex_set!(
            match_no,
            Matcher::Contains,
            "{}",
            "0_002",
            0
        );
        compare_regex_set!(
            match_yes,
            Matcher::Contains,
            "{}",
            "0002",
            1
        );
    }
    mod medium_needle { use super::*;

        compare_regex_set!(
            match_no,
            Matcher::Contains,
            "This ö article lists and discusses the usage and derivation of names of large numbers, together with their possible extensions. The following table lists those names of large numbers that are found in many English dictionaries and thus have a special claim to being \"real words.\" The \"Traditional British\" values shown are unused in American English and are becoming rare in British English, but their other-language variants are dominant in many non-English-speaking areas, including continental Europe and Spanish-speaking countries in Latin America; see Long and short scales. English also has many words, such as \"zillion\", used informally to mean large but unspecified amounts; {} see indefinite and fictitious numbers.",
            "",
            0
        );
        compare_regex_set!(
            match_yes,
            Matcher::Contains,
            "This ö article lists and discusses the usage and derivation of names of large numbers, together with their possible extensions. The following table lists those names of large numbers that are found in many English dictionaries and thus have a special claim to being \"real words.\" The \"Traditional British\" values shown are unused in American English and are becoming rare in British English, but their other-language variants are dominant in many non-English-speaking areas, including continental Europe and Spanish-speaking countries in Latin America; see Long and short scales. English also has many words, such as \"zillion\", used informally to mean large but unspecified amounts; {} see indefinite and fictitious numbers.",
            "0002",
            1
        );
    }
}
// TODO: Add strings which actually match multiple regexes

/**
  Builders
**/

#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum Matcher {
    Exact,
    Contains,
}

impl Matcher {
    fn format(self, s: String) -> String { match self {
        Matcher::Exact => format!("{}", s),
        Matcher::Contains => format!(".*?{}.*?", s),
    }}
    fn max_inputs(self) -> usize { match self {
        Matcher::Exact =>   10_000, // Note: RegexSet::CompiledTooBig @ 37_500
        Matcher::Contains => 2_500, // Note: RegexSet::CompiledTooBig @  3_200
    }}
}

pub struct RegexSet(Vec<Regex>);

impl RegexSet {
    fn new(res: impl Iterator<Item=String>) -> Result<RegexSet, ()> {
        let regexes = res.map(|p| Regex::new(&p).unwrap()).collect::<Vec<Regex>>();
        Ok(RegexSet(regexes))
    }
    fn matches(&self, needle: &str) -> Vec<usize> {
        self.0.iter().enumerate().filter(|(_, re)| re.is_match(needle)).map(|(i, _)| i).collect()
    }
}

fn build_stressor_input<'a>(max: usize, matcher: Matcher) -> impl Iterator<Item=String> {
    let padding: usize = max.to_string().len();
    (1..=max)
        .map(move |n|
            format!("{:0width$}", n, width = padding)
        )
        .map(move |s|
            matcher.format(s)
        )
}
cached!{
    BUILD_STRESSOR_REGEXES;
    fn build_stressor_regexes(max: usize, matcher: Matcher) -> std::sync::Arc<RegexSet> = {
        let stdout = std::io::stdout();
        let mut stdout = stdout.lock();

        let mut build_pb = ProgressBar::on(&mut stdout, max as u64);
        build_pb.message("Build: ");
        let mut skip_pb: u16 = 0;
        let set = RegexSet::new(build_stressor_input(max, matcher).inspect(|_| {
            skip_pb = skip_pb.wrapping_add(1);
            if skip_pb == 0 { build_pb.add(u16::max_value().into()); }
        })).unwrap();
        build_pb.finish();
        std::sync::Arc::new(set)
    }
}

cached!{
    BUILD_STRESSOR_REGEX_SET;
    fn build_stressor_regex_set(max: usize, matcher: Matcher) -> std::sync::Arc<regex::RegexSet> = {
        let stdout = std::io::stdout();
        let mut stdout = stdout.lock();

        let mut build_pb = ProgressBar::on(&mut stdout, max as u64);
        build_pb.message("Build: ");
        let mut skip_pb: u16 = 0;
        let set = regex::RegexSet::new(build_stressor_input(max, matcher).inspect(|_| {
            skip_pb = skip_pb.wrapping_add(1);
            if skip_pb == 0 { build_pb.add(u16::max_value().into()); }
        })).unwrap();
        build_pb.finish();
        std::sync::Arc::new(set)
    }
}

@yazaddaruvala I don't have a lot of time available to me, and I'm not finding your benchmark particularly accessible. Please make it easier for others to help you. Here are some ideas:

Show the regexes explicitly somewhere.
Use as few external dependencies as possible. Ideally, just regex and probably lazy_static.
Reduce or eliminate the use of macros.
Focus on as few benchmarks are possible.
Create a new issue.

You claim RegexSet uses aho-corasick when applicable, yet this is documented nowhere. The docs simply state that the runtime is O(nm) where n is the size of the haystack and m is the size of the regex set, which kinda implies that aho-corasick is not used.

which kinda implies that aho-corasick is not used

No it doesn't. Big-O notation describes worst case, and the use of Aho-Corasick is an implementation detail and is correctly not part of the public API documentation.

Your comment is not helpful. If no regexes are used, then that isn't the worst case, but the worst case is much better. I am writing a wrapper currently that uses RegexSet only if regular expressions are used. If it was mentioned in the documentation, there'd be no need for me to implement this wrapper.

If you're going to criticize me for being unhelpful, then you might consider starting with the problem you're trying to solve instead of trying to pick at technical nits. I don't know what you're doing, what you're working on or what problem you're trying to solve. From my perspective, you looked like a drive by pedant. If instead you started with the problem you're trying to solve, then I could have just told you that there is no guarantee that Aho-Corasick is used if a RegexSet is just an alternation of literals. It only might be used if the very primitive literal extraction optimizations kick in. There is no theoretical reason why this is true today; it is one of many problems that are a result of a sub-par implementation that I'm trying to fix, but doing so takes a lot of work.

I am writing a wrapper currently that uses RegexSet only if regular expressions are used. If it was mentioned in the documentation, there'd be no need for me to implement this wrapper.

If I were doing this, I'd go about this in the exact same way given today's current implementation. So no, there does not exist any documentation I could add that would change this. Indeed, my globset crate does something quite similar. Ideally, globset wouldn't need to do much if anything, and just let RegexSet pick the fastest path, but the implementation just isn't that good yet.

I need to match a small to moderate sized list of patterns (~between 5 and 200 entries, partly regexes, partly not) defined by a user, against a potentially very large list (~10 mio entries) of small strings (between ~5 and 60 characters each), finding all entries that match.


Edit: Disney Channel (India)

Channel ID (required)
DisneyChannel.in
Channel Name
Disney Channel
Alternative Names
No response
Network
No response
Owners
The Walt Disney Company
Country
IN
Subdivision
No response
City
No response
Broadcast Area
c/IN
Languages
eng, Hindi, Telugu, Tmil
Categories
kids
NSFW
None
Launched
No response
Closed
No response
Replaced By
No response
Website
http://disney.in/
Logo
https://upload.wikimedia.org/wikipedia/commons/thumb/f/f4/Disney_Channel_logo_(2014).svg/512px-Disney_Channel_logo_(2014).svg.png
Notes
No response

There is more languages available in Disney India. T added those languages into this.

Please update your request:

language code is incorrect

https://github.com/iptv-org/database/blob/master/CONTRIBUTING.md#channels


A11y

#111

I don't know how to go about separating the commits for each branch.


Typescript support

any typescript support?

Mmmm sorry don’t think so. I fought typescript was build upon javascript. Can you just use a js library?

would not actually support Typescript... but to create type definitions.


updates to pvacseq

We will want to make updates to support the following additions to pvacseq 3.1 and 4:

Support for BLAST and peptide scanning of reference proteome (peptide version is much faster) --run-reference-proteome-similarity, ....
Support for problematic amino acids: --problematic-amino-acids.
Support for --aggregate-inclusion-binding-threshold
Support for --allele-specific-anchors

This will require some changes to the pvacseq.wdl tool and to immuno to pass in the options.

Ensure that the phased VCF is an output
Incorporate coverage & readcount support for pVACfuse
Run Arriba in addition to AGfusion (run pVACfuse twice)

TBD:

Switch to reference proteome fasta instead of BLASTp for reference proteome similarity


Roll Engine from 6ed357c8b3cb to 04b77dab2662 (9 revisions)

https://github.com/flutter/engine/compare/6ed357c8b3cb...04b77dab2662
2020-11-25<EMAIL_ADDRESS>Roll Fuchsia Linux SDK from eyiA9UhTG... to gkfmiRsIl... (flutter/engine#22733)
2020-11-25<EMAIL_ADDRESS>Roll Skia from ee792d6c96d9 to 36d06a806f69 (9 revisions) (flutter/engine#22732)
2020-11-24<EMAIL_ADDRESS>Roll Dart SDK from ed9894865fa3 to cd7b857e70a7 (1 revision) (flutter/engine#22727)
2020-11-24<EMAIL_ADDRESS>[embedder][glfw] Add support for locales to glfw shell (flutter/engine#22657)
2020-11-24<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from QKCl4nBGL... to aXfbrLuUK... (flutter/engine#22726)
2020-11-24<EMAIL_ADDRESS>Roll Skia from 6c5e78d09940 to ee792d6c96d9 (8 revisions) (flutter/engine#22724)
2020-11-24<EMAIL_ADDRESS>Request quickReject results from correct drawing canvas (flutter/engine#22674)
2020-11-24<EMAIL_ADDRESS>Fix use of uninitialized memory in animator (flutter/engine#22714)
2020-11-24<EMAIL_ADDRESS>Roll Skia from 4dfa9774300c to 6c5e78d09940 (6 revisions) (flutter/engine#22719)
Also rolling transitive DEPS:
fuchsia/sdk/core/linux-amd64 from eyiA9UhTGepa to gkfmiRsIlyNL
fuchsia/sdk/core/mac-amd64 from QKCl4nBGL2cI to aXfbrLuUKHry
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Commit queue failed; closing this roll.


fix: count in optionalDependencies in autoExternal.

Summary

Count in https://docs.npmjs.com/cli/v10/configuring-npm/package-json#optionaldependencies.
No need to count https://docs.npmjs.com/cli/v10/configuring-npm/package-json#bundledependencies since it's intended as a complement to dependencies.

Related Links

Checklist

[ ] Tests updated (or not required).
[ ] Documentation updated (or not required).

Benchmark CI failed due to the upgrade in https://github.com/CodSpeedHQ/action/blob/016456b513677f9d4a1c509c7f8a38d8dd55b2b0/.github/workflows/ci.yml#L19. Will fix in next PR, merge for now.

Benchmark CI failed due to the upgrade in<EMAIL_ADDRESS>Will fix in next PR, merge this ahead.

@SoonIter cc


Java indexer: isolate all exceptions caused by a single file [phab:D1800]

Created by schroederc at 2017-07-25 19:56:15:

fromberger accepted this revision at 2017-07-25 21:43:56

schroederc closed via commit 7dfbd8666c177d8e8f09f47451c6ffcae440f632 at 2017-07-25 21:58:05


[IoT] Change certificate loading to encode to b64 strings by default

Related command
az iot dps certificate create
az iot hub certificate create
az iot dps certificate update
az iot hub certificate update
Description
I am changing how certificates are opened to the older way of just encoding the contents to a b64 string and sending that string to the service. The service accepts more certificates this way. This is a response to a customer issue.
Testing Guide
Added a test case to both the iot hub and dps certificate lifecycle tests. An extra certificate, which just has the certificate body copied twice, is created to mimic a chain certificate. This chain certificate is uploaded as a test that the service can handle the certificate (if the certificate body is not encoded in a b64 string, it would fail).
The test recordings for test_dps_certificate_lifecycle and test_certificate_lifecycle were regenerated.

if not encoded as a b64

Also ran azdev test iot

History Notes
[IoT] Change certificate loading to encode to b64 strings by default

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

IoT


The export-datasources-and-dashboards process keeps crashing

After running "make up" and connecting to http://localhost:80 I cannot see any data in my charts.
It looks like the export-datasources-and-dashboards process keeps crashing.
Any ideas on what to do here? Thanks!
2017-12-29 05:15:32,874 INFO exited: export-datasources-and-dashboards (exit status 1; not expected)

I modified export-datasources-and-dashboards.sh to ignore if one or more exports failed since it just happens after everything has been exported the first time. It fails because one or more dashboards already exists.
#!/bin/bash
# sleeping for 10 seconds to let grafana get up and running
sleep 10 ; wizzy export datasources ; wizzy export dashboards
exit 0

I don't suppose there's a flag we can pass to stop it from generating the default boards in the first place?


Use api subdomain when sending heartbeats

Would https://wakatime.com/api/v1/ be accidentally unavailable?

No, it's just api.wakatime.com is optimized for incoming heartbeats while wakatime.com is optimized for serving website pages.


Corrupted-tflite-weights while getting a model from huggingface

System Info
System: MacOS
Onnx: 1.14
tensorflow: 2.11

While converting a model from hugging face to tflite using huggingface-cli, the model conversion ran okay, but later in inferencing(in python and on edge-device), the model started producing random results, as if it wasn't trained at all.
Virtually seeming the weights are corrupted

Who can help?
No response
Information

[X] The official example scripts
[ ] My own modified scripts

Tasks

[x] An officially supported task in the examples folder (such as GLUE/SQuAD, ...)
[ ] My own task or dataset (give details below)

Reproduction
minimum reproducible example
optimum-cli export tflite --model unitary/toxic-bert --sequence_length 128 toxic_bert/
After tflite conversion is done, simply do an inference in python using WordPiece Bert tokenizer.
Detailed logs while conversion process
2023-06-17 02:53:29.604798: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
/Users/saurabhkumar/opt/anaconda3/lib/python3.7/site-packages/sklearn/externals/joblib/externals/cloudpickle/cloudpickle.py:47: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
  import imp
2023-06-17 02:53:54.973334: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
/Users/saurabhkumar/opt/anaconda3/lib/python3.7/site-packages/sklearn/externals/joblib/externals/cloudpickle/cloudpickle.py:47: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
  import imp
Loading PyTorch model in TensorFlow before exporting.
2023-06-17 02:54:06.422503: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
Some weights of the PyTorch model were not used when initializing the TF 2.0 model TFBertForSequenceClassification: ['bert.embeddings.position_ids']
- This IS expected if you are initializing TFBertForSequenceClassification from a PyTorch model trained on another task or with another architecture (e.g. initializing a TFBertForSequenceClassification model from a BertForPreTraining model).
- This IS NOT expected if you are initializing TFBertForSequenceClassification from a PyTorch model that you expect to be exactly identical (e.g. initializing a TFBertForSequenceClassification model from a BertForSequenceClassification model).
All the weights of TFBertForSequenceClassification were initialized from the PyTorch model.
If your task is similar to the task the model of the checkpoint was trained on, you can already use TFBertForSequenceClassification for predictions without further training.
Using TensorFlow: 2.11.0
Overriding 1 configuration item(s)
	- use_cache -> False
WARNING:absl:Found untraced functions such as embeddings_layer_call_fn, embeddings_layer_call_and_return_conditional_losses, encoder_layer_call_fn, encoder_layer_call_and_return_conditional_losses, pooler_layer_call_fn while saving (showing 5 of 420). These functions will not be directly callable after loading.
2023-06-17 02:55:02.650365: W tensorflow/compiler/mlir/lite/python/tf_tfl_flatbuffer_helpers.cc:362] Ignored output_format.
2023-06-17 02:55:02.650918: W tensorflow/compiler/mlir/lite/python/tf_tfl_flatbuffer_helpers.cc:365] Ignored drop_control_dependency.
2023-06-17 02:55:02.652373: I tensorflow/cc/saved_model/reader.cc:45] Reading SavedModel from: /var/folders/q4/dklkx0m970scm0m4w3m_nzvc0000gn/T/tmpod9lpuk_
2023-06-17 02:55:02.718684: I tensorflow/cc/saved_model/reader.cc:89] Reading meta graph with tags { serve }
2023-06-17 02:55:02.718712: I tensorflow/cc/saved_model/reader.cc:130] Reading SavedModel debug info (if present) from: /var/folders/q4/dklkx0m970scm0m4w3m_nzvc0000gn/T/tmpod9lpuk_
2023-06-17 02:55:02.945563: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:357] MLIR V1 optimization pass is not enabled
2023-06-17 02:55:02.997217: I tensorflow/cc/saved_model/loader.cc:229] Restoring SavedModel bundle.
2023-06-17 02:55:03.837625: I tensorflow/cc/saved_model/loader.cc:213] Running initialization op on SavedModel bundle at path: /var/folders/q4/dklkx0m970scm0m4w3m_nzvc0000gn/T/tmpod9lpuk_
2023-06-17 02:55:04.101335: I tensorflow/cc/saved_model/loader.cc:305] SavedModel load for tags { serve }; Status: success: OK. Took 1448966 microseconds.
2023-06-17 02:55:04.855024: I tensorflow/compiler/mlir/tensorflow/utils/dump_mlir_util.cc:268] disabling MLIR crash reproducer, set env var `MLIR_CRASH_REPRODUCER_DIRECTORY` to enable.
2023-06-17 02:55:08.966247: I tensorflow/compiler/mlir/lite/flatbuffer_export.cc:2111] Estimated count of arithmetic ops: 22.532 G  ops, equivalently 11.266 G  MACs
Validating TFLite model...
	-[✓] TFLite model output names match reference model (logits)
	- Validating TFLite Model output "logits":
		-[✓] (1, 6) matches (1, 6)
		-[✓] all values close (atol: 1e-05)

Expected behavior
Expected behaviour is to get tflite conversion without any issues

Hi @saurabhkumar8112 , thank you for the bug report. Could you provide a minimal reproduction script?


QAGNN should belong to the 'LLM as Encoder' category?

Sorry, I might get it wrong, but should QAGNN belong to the 'LLM as Encoder' category?

Hi there,
Thank you for your comments!
Yes, I think both ways make sense. :)


depsolve-dnf: enable weak deps selection

The import of dnf-json came from osbuild-composer, as we sadly have/had multiple copies this wasn't the right version as it was lacking previous work to disable weak dependencies.

FTR: this is a port of https://github.com/osbuild/images/pull/39


Getting a type error when trying to start the candy machine locally

After cloning the repo I did:
yarn install
yarn build
yarn start
I created a .env file in the /src/ directory as recommended in this issue (though I'm not entirely sure what to put in for CANDY_MACHINE_ID).
When I run yarn start, I get this error:

Getting the same issue is it a dotenv config issue?


[otbn,dv] Cover known and unknown CSRs with randomly generated instruction streams

We've already got coverage points for these (e.g. csr_cross in insn_csrrw_cg). When doing this, add an explicit coverage point to match the UNIMP instruction that we added with PR #7923.

I believe this was mostly handled by https://github.com/lowRISC/opentitan/commit/b51084435ad3a7de7a7719899172ec597d130698 (thanks @prajwalaputtappa!) and for the last little tweaks I opened up https://github.com/lowRISC/opentitan/pull/13451. @GregAC : If you have any suggestions about some more things to do for this one, please let me know.

Closing this as it's discussed as done in OTBN planning meeting


Add error notifications in the crawler

The parsers have methods that will run when an error is encountered. These methods need to be updated to log the error and notify the user.
Files to be updated:

[ ] src/backend/expungeservice/parsers/record_parser.py#L53

[ ] src/backend/expungeservice/parsers/param_parser.py#L34

More files to be added soon

@cameron2018 This issue should not be closed. It needs to be at some point in the future.


Requesting GPUs fails due to invalid gres request

Here is an the error I received:
16:35:43 19-06-2024 -       slurm_client:_has_openapi_errors -    ERROR -     : description='Batch job submission failed' error='Invalid generic resource (gres) specification' error_number=2072 source='slurm_submit_batch_job()'

The only difference was I specified gpus=1 in JobResources. This leads to 'tres_per_task': 'gres/gpu:1', which seems to not be correct. I've created a branch adding a couple of tests that add gpus for a simple example add-gpu-tests

'tres_per_job': 'gres/gpu:1' works, so something is odd with specifying tres_per_task.

I agree. Adding tasks fully specifies the requested allocation so SLURM will be happy.


components.md 'trigger', not 'broadcast'

Small typo, the docs were referencing a broadcast method from the preceding example, but it was supposed to be trigger.

Thanks!


Automated Package Upgrade

:tada: This PR is included in version 28.5.67 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


yFactory (Aug-Sep-Oct)

Scope
Factory LP vaults serve as ideal collateral for lending protocols, including leverage protocols such as Abracadabra. While Yearn's v3 vault codebase offers many improvements for single-asset vaults, for LP vaults with a constant strategy, the benefits of using the newer v3 codebase are less significant, especially if these vaults are to be used to back other assets on-chain. Thus, the factory vaults fall into a space that is not-quite v3 but not-quite v2. With this proposal, we aim to clarify the place of factory vaults within the Yearn fee/revenue structure and outline a path to continue their growth as a part of Yearn's ecosystem across multiple chains.

yFactory team will own and manage permissionless vault factories and their associated contracts (global, vaults, strategies, periphery)

Curve Global
Balancer Global
Velodrome Global

Features, bug fixes, and product lifecycle

Monitor daily and adjust as needed credit available, debt allocation for vaults with multiple strategies (curve/convex), and harvest trigger settings
Deploy new template strategies as needed for breaking changes in interfaces, update sidechain strategies with MEV-resistant swap option like ySwaps, etc.
Aim for factory vaults to be immutable(ish) over time (burned or perhaps token-holder-only governance)

Continue support of routing legacy Curve => factory vaults
Apply for grants from protocols and foundations to facilitate further revenue generation for Yearn
Work with partners to add factory vaults as collateral

Lending markets and CDPs
Oracle development, collateral recommendations, DD, etc.

Develop V3 support if/when needed, including v2 => v3 adapters

Current v3 architecture doesn't offer substantial benefit for factory vaults, but this may change in the future

Work with partners to deposit POL in factory vaults whenever possible
Continue deploying new factories for appropriate protocols

In-progress: Aerodrome (Base), Equilibre (Kava)
Potential targets: Pendle (Ethereum/Arbitrum), PancakeSwap v3 (Ethereum), Pearl (Polygon), Ramses (Arbitrum)

Support one-off LP vault creation and integration for chains without need for factories (Primarily Curve and Balancer/Beethoven)

Plan
The following deliverables will be met as part of this plan:

Integrations

Collaborate with Abra to add Curve and Balancer factory and non-factory (sidechain) vaults as collateral
Factory Velodrome vaults added as collateral on Optimism lenders (Abra, QiDao, Iron Bank, Sonne) where possible

Planned following oracle development (in progress)
Support an Abra launch on Optimism as needed (discussions ongoing, launch likely 4-6 weeks out)

Equilibre (Kava) factory vaults as collateral on Abra

Apply for KAVA grant (in progress)

Explore collateral options with other protocols if/when opportunities arise

Code

Equilibre factory on Kava (in discussions with protocol)
Aerodrome factory on Base (in discussions with protocol)
Additional Curve and Balancer vaults as needed outside mainnet

Optimism/Kava to support MIM pool
Curve/Balancer to help support v3 launch on Polygon

Deadline
2023-11-01
People
corn, dudesahn. both will work together to produce all code, apply for external grants to boost vault yield, and collaborate with partners to add assets as collateral and deposit POL into factory vaults.
Money
No salary, only revenue sharing.

0% for Curve (live prior to switch to budget requests)
20% for Balancer, Velodrome, and future protocols

Amount
0 DAI, 0 YFI
Wallet address
TBD
Reporting
Monthly

replaced by #162


onError method for NativeAdsManager

onError method for NativeAdsManager. Is there plans to be implemented?
https://github.com/callstack-io/react-native-fbads/blob/master/src/ios/CTKNativeAdManager.m#L78

Yup, as long as we know how to handle such case. Do you have any ideas how typical reference implementation could look like?

related to older version


Chrome window appears although headless option is on

By default, devtools option is true for tabs, which  forces headless to false.
Set devtools option to false.
Add argument --disable-search-engine-choice-screen to prevent selection of the default search engine, which is  irrelevant for generating PDFs.

Fixed in version 0.1.8.


Does not build on IOS

It works beautifully on android but when I try build on IOS it fails. it says its something to do with the main activity code of the plugin.

Please provide mor valuable information, such as native log or share your project files(using github or bitbucket).

Hi,
Cordova 6.0.0 iOS set to 8.0 ionic1
Master branch of your plugin
Everytime i got a wall of error

It seems you fails install the plugin.

I resolved this by uninstalling and re installing platforms and plugin.


Update federatednamespace-template.yaml

The sample namespace used for the user guide wasn't federated yet.

I singed it

@gyliu513
When following the userguide, the namespace is only made in the first cluster.
for r in configmaps secrets service deployment serviceaccount job; do
for c in cluster1 cluster2; do
echo; echo ------------ ${c} resource: ${r} ------------; echo
kubectl --context=${c} -n test-namespace get ${r}
echo; echo
done
done
This command should show resources but because there is no namespace test-namespace in the second cluster none of the resources are made in the second cluster.
------------ cluster1 resource: configmaps ------------
NAME             DATA   AGE
test-configmap   1      40s
------------ cluster2 resource: configmaps ------------
No resources found.

Namespaces working fine after @klingeleersbenjamin using master build.


Review info exposed through healthz/status endpoint

Endpoint gives app-specific info but also includes info about the host (hostname, network interfaces including IPs, memory usage, cores) which I question the security of.
Should review all information provided through the endpoint & remove anything that doesn't need to be there.
I'll also note that the top level host & port fields are left blank and should either be filled out or removed.

The intent is for this endpoint to be behind auth once we implement it. Also the other intent of the endpoint would be that we ship this information to a Status service that can provide us observability across the services.

Thank you for clarifying. Even behind auth I think some data could be removed such as network config but the issue exists to review all this content, if you're fine leaving it to be revisited later.
I personally believe CPU & memory metrics should be left to the orchestration platform, however I don't feel strongly either way. At the very least I'd like to see CPU details like # of cores & model name removed.

Can I hide all the Downward API info behind the debug flag? Or maybe its own flag? Then a normal deployment would have minimal information available on the endpoint.

IMO the debug flag should influence logging, not behavior. If we did hide info based on a flag then I'd suggest it control a dedicated field in the resp (like debugInfo). That way it'd be clear when it's included or not, should any downstream scripting try to make assumptions about the schema.

Agreed. How about --status-debug? Pretty specific. If not then I will rip the info block out and go back to a minimum status. Probably axe db config as well

I still feel the info should be ripped out, keeping the resp minimal & app specific. If you feel strongly about keeping this info in, then I'd propose keeping it all under --debug. When saying

it'd be clear when it's included or not

I meant from the perspective of someone parsing the resp body, not someone running the server. I'm also thinking about this from a k8s perspective where resource & network monitoring are likely handled by separate tooling. When all you have is a hammer, everything looks like a nail.

Based on this discussion I am removing the Downward API info from the status PR #44


⚠ Jenkins Plugins Artifactory has degraded performance

In 8c1d641, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1486 ms

Resolved: Jenkins Plugins Artifactory performance has improved in f636da8 after 33 minutes.


Known Issue: Members page - members card > date label on user profile card looks clickable on hover

This has been deployed on BETA env. (https://sancho.constitution.gov.tools/).


Fixes #564 - Distributions now re-activate a deleted item

So there was some discussion about this, but here's what I settled on:
When an item is de-activated, if a distribution had it previously and is re-claimed, it will re-activate that item.
There's tests added to StorageLocation model and Distribution feature specs

@armahillo I think you forgot to run Rubocop. If you run rubocop -a it should fix all this.


simplify tagging

From previous release

My very first pull request was working https://github.com/hannesa2/js2p-gradle/releases/tag/0.2

Please avoid this v is tag. It's obsolete

ah, I haven't know that v is obsolete in the tag, I'll try again.

My very first pull request was working https://github.com/hannesa2/js2p-gradle/releases/tag/0.2

so I reverted that part. My bad, that I haven't looked into your repo

And next time I'll write something to fields ;P

Now it looks better

We could delete 1.2 and 1.2.1 release and tag from master again. What do you think ?

Yes, let's do it, Actually the new plugin is pending for the review

Ho did you made this release ? It still differs from full auto-release
https://github.com/jsonschema2dataclass/js2d-gradle/releases/tag/1.2.2

It looks like you did it manually, am I right ?

Yes, I did it via release button. I'm happy to learn about autoreleases

git tag -a 1.2.2 -m "Your text"
git push --tags
and you are done

My goodness, it's sooo easy!


[24.12.1 RN] Action Plans & Secrets

Please always provide the GitHub issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix #
Test URLs:

Before: https://main--prisma-cloud-docs--hlxsites.hlx.page/
After: https://--prisma-cloud-docs--hlxsites.hlx.page/
Worker: https://prisma-cloud-docs-production.adobeaem.workers.dev/?branch=

Request to add Note about Action Plans phased rollout by Kunal Sharda via Slack
Secrets moved from LGA to GA


HSEARCH-2164 Changing properties for ES backend so they work globally…

… and/or per index
Only the "host" property is not "supported officially" per index. Likely it would still work if you know what you are doing (no queries across cluster boundaries), but I'd prefer to just promise a single cluster for now. I still opted to use the "default" syntax in order to avoid having users to change it down the road.

Looks great, thanks! Merging..
Had to fiddle a bit with conflicts, hopefully got it right.

P.S. conflicted with your own work on HSEARCH-2214


OSX Playback stops, window goes black

OS:
OSX 10.11.5 (15F34)
Issue Descriptions:
Playback will stop, interface will go black. only quitting and re-launching the app will allow you to start playback again.
Steps to Reproduce:
Open App, play music. Works as expected for a while, but eventually stops. Playback stops within first few seconds of a new song, and it seems to be after an advertisement plays, but I will have to confirm.

This is a chromium bug upstream.  Should be fixed in the next chromium version bump inside electron

I was seeing the same issue after basically every ad, but yesterday I updated to 10.11.6 and haven't seen the issue since.

Updated to 10.11.6, this is still occurring routinely for me

I must have just been getting lucky or something, because it just happened to me again.


channeldb/db: prevent filtering channels with unconfirmed close txs

In this commit, we address an issue with the FetchWaitingCloseChannels
method where it would not properly return channels that are unconfirmed
and also have an unconfirmed closing transaction because they were
filtered out. We fix this by modifying the filtering logic to only apply
when the channel has already confirmed.
Related to #2217.

Ping!

@Roasbeef @halseth test added!


Add get repository commits feature

Adding a method to return the commits for a repository.

Hi, I know this repo hasn't had seen much change lately and I also know many others Bitbucket API wrapper projects exist. But I still like this and appreciate its existence! So, hopefully you might want to merge this in. Thanks, Alan


5ttgen gives error in mrtrix reconstruction

Hi,
5ttgen gives an error when I run qsiprep 0.13.0RC1 on my data. It runs for all other subjects but errors on this one.
Here is my command:
screen docker run -ti \ -v /Users/neurouser1/Documents/TMS_Aphasia/bids_directory/:/data \ -v /Users/neurouser1/Documents/TMS_Aphasia/qsiprep_detdsistudio/:/out \ -v /Users/neurouser1/Documents/fs_files/:/license \ -v /Users/neurouser1/Documents/TMS_Aphasia/scratch/:/scratch \ -v /Users/neurouser1/Documents/TMS_Aphasia/qsiprepout_dwionly/qsiprep/:/recon_input \ pennbbl/qsiprep:0.13.0RC1 \ /data /out participant \ --participant_label sub-TMSA59 \ --recon_input /recon_input/ \ --recon_only \ --recon_spec dsi_studio_gqi \ --fs-license-file /license/license.txt \ -w /scratch/ \ --output-resolution 1.3 \ --n_cpus 15 \ --omp-nthreads 8 \ --mem_mb 150000 \
Here is my error:
5ttgen: Changing to temporary directory (/scratch/qsirecon_wf/sub-TMSA59_mrtrix_multishell_msmt/anat_ingress_wf/create_5tt/5ttgen-tmp-P7Q2VB/) 5ttgen: [WARNING] Voxel size larger than expected for T1-weighted images ([1.3, 1.3, 1.3]); note that ACT does not require re-gridding of T1 image to DWI space, and indeed retaining the original higher resolution of the T1 image is prefe rable Command:  mrconvert input.mif T1.nii -strides -1,+2,+3 Command:  mrcalc T1.nii mask.mif -mult T1_masked.nii.gz Command:  fast T1_masked.nii.gz 5ttgen: [WARNING] Generating 1mm isotropic T1 image for FIRST in hope of preventing failure, since input image is of lower resolution Command:  mrresize T1.nii T1_1mm.nii -voxel 1.0 -interp sinc Command:  run_first_all -m none -s L_Accu,R_Accu,L_Caud,R_Caud,L_Pall,R_Pall,L_Puta,R_Puta,L_Thal,R_Thal -i T1_1mm.nii -o first 5ttgen: [ERROR] FSL FIRST has failed; only 8 of 10 structures were segmented successfully (check /scratch/qsirecon_wf/sub-TMSA59_mrtrix_multishell_msmt/anat_ingress_wf/create_5tt/5ttgen-tmp-P7Q2VB/first.logs) 5ttgen: Changing back to original directory (/scratch/qsirecon_wf/sub-TMSA59_mrtrix_multishell_msmt/anat_ingress_wf/create_5tt) 5ttgen: Contents of temporary directory kept, location: /scratch/qsirecon_wf/sub-TMSA59_mrtrix_multishell_msmt/anat_ingress_wf/create_5tt/5ttgen-tmp-P7Q2VB/ Return code: 1
Could you please advise?
Thank you
Best,
Apoorva

Hi,
I was wondering if you had any suggestions to solve this issue.
I tried re-running the subject but am getting the same error.
Any insight is greatly appreciated.
Thank you
Best,
Apoorva


Visual representation of artefacts

Porter has many of the same artefacts as Duffle - claims, credentialsets, etc.  These are represented in the same way as Duffle but are different sets of artefacts, stored in different places.  We should represent these visually in the Porter extension, in the same way as we do in the Duffle extension.

is this the same issue? I want Porter vs code extension to recognize duffle artifacts, and at the very least, read them into the environment. both porter instances and duffle claims should be visible, and creds as well. Not sure how FAST this should happen, as the priority is not yet high, but should be an objective.
conversely, it is not a goal to have duffle-vscode recognize anything porter.


fix: don't override existing highlight definition

Currently, if i define LocalHighlight in my colorscheme, then this plugin override's it

Cool.
Can you please add some information in the README where this hl group is mentioned?
10x

I think you've already done this:

Indicate that if the group is already defined, it will not be overwritten.

👍🏼


[WIP]  	Fetch corefx lab sources and compile them into kestrel

I tried it locally and it exploded

@natemcmaster source package would be much cleaner but other part of this PR trying to avoid going through coreclr gate to reduce roundtrip time for pipeline fixes.


Get target text from accessibilityLabel prop if it's present

Issue description
We've started using accessibilityLabel prop for all components for automatic datadog tracking. We're not using this accessibilityLabel prop for mixpanel tracking though. We can update this library, so it uses accessibilityLabel prop as well.
Changes

updated logic to use accessibilityLabel as target text if it's present

@storm2513 any chance we should upgrade the underlying library at some point? Does it offer any value?

any chance we should upgrade the underlying library at some point? Does it offer any value?

@Wittiest there are no changes in tracking logic, so there is no value right now in upgrading it. Last time we did that was when library became incompatible with new react version. As long as it works I wouldn't touch it