rawContent containing RT @@handle some text

sometime rawContent contain things like RT @@handle @otherhandle [...] some text.
Maybe related to this code: https://github.com/vladkens/twscrape/blob/745bc59b662b72e46b0f5277e369767f2b318c06/twscrape/models.py#L237C48-L237C48

@vladkens I don't have fully understand the annotation # if login changed, old login can be cached in rawContent, so use less strict check but the actual code always produce RT with incorect syntax (when truncated) as rt_msg = f"{prefix}{rt.rawContent}" with prefix = "RT @" always throw things like : RT @the original message.
for me the correct code seems to be:
--- a/twscrape/models.py	(revision 745bc59b662b72e46b0f5277e369767f2b318c06)
+++ b/twscrape/models.py	(date<PHONE_NUMBER>100)
@@ -230,12 +230,8 @@
         # issue #42 – restore full rt text
         rt = doc.retweetedTweet
         if rt is not None and rt.user is not None and doc.rawContent.endswith("…"):
-            # prefix = f"RT @{rt.user.username}: "
-            # if login changed, old login can be cached in rawContent, so use less strict check
-            prefix = "RT @"
-
-            rt_msg = f"{prefix}{rt.rawContent}"
-            if doc.rawContent != rt_msg and doc.rawContent.startswith(prefix):
+            rt_msg = f"RT @{rt.user.username}: {rt.rawContent}"
+            if doc.rawContent != rt_msg:
                 doc.rawContent = rt_msg

         return doc

Patch https://github.com/vladkens/twscrape/pull/76 merged in v0.9. Thanks @stygmate


When  i select something in the editor, it will automatically paste the selected content.

Issue Type: Bug
When selecting something in the editor, there will be automatically paste the selected content, when you right-click the editor, and then left-click will appear automatically paste the selected content. When I select something in the editor , automatically paste selected content when switching vscode from another application.
My expansion has been closed, and this situation will still appear
VS Code version: Code - Insiders 1.24.0-insider (8a07c8d935998d1b1153dde0c5b337189d35cea0, 2018-05-08T05:16:07.736Z)
OS version: Windows_NT x64 10.0.17134

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz (8 x 1800)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: disabled_softwarevideo_decode: enabledvideo_encode: enabledvpx_decode: enabledwebgl: enabledwebgl2: enabled

Memory (System)
3.88GB (1.15GB free)

Process Argv
D:\Program Files\Microsoft VS Code Insiders\Code - Insiders.exe

Screen Reader
no

VM
0%

Extensions (36)

Extension
Author (truncated)
Version

ng-template
Ang
0.1.9

vscode-database
baj
1.5.1

vscode-wxml
cod
0.1.9

dart-code
Dar
2.12.1

flutter
Dar
2.12.2

vscode-eslint
dba
1.4.8

gitlens
eam
8.2.4

tslint
eg2
1.0.28

php-debug
fel
1.12.3

php-intellisense
fel
2.3.1

code-runner
for
0.9.3

vscode-cosmosdb
ms-
0.7.0

vscode-language-pack-zh-hans
MS-
1.23.4

windowsiot
ms-
0.0.20

sqlops-debug
ms-
1.0.2

anaconda-extension-pack
ms-
1.0.0

python
ms-
2018.4.0

azure-account
ms-
0.4.0

cpptools
ms-
0.17.0

csharp
ms-
1.14.0

github-issues-prs
ms-
0.9.0

Go
ms-
0.6.79

js-atom-grammar
ms-
0.1.14

jscs
ms-
0.1.9

mono-debug
ms-
0.15.8

PowerShell
ms-
1.7.0

typescript-javascript-grammar
ms-
0.0.41

quantum-devkit-vscode
qua
0.2.18022202

java
red
0.24.0

vscode-yaml
red
0.0.11

rust
rus
0.4.2

vscode-java-debug
vsc
0.9.0

vscode-java-pack
vsc
0.3.0

vscode-java-test
vsc
0.6.1

vscode-maven
vsc
0.7.0

debug
web
0.22.0

(1 theme extensions excluded)

。

Please try reproducing this with all extensions disabled

I have disabled all the extensions and this will still appear.

I don't know if this is a bug or not. When I select something in the editor area, I haven't done anything else. I don't want to copy it. VSCode will automatically copy the selected content.

@czfadmin do you still run into this issue with latest version?

@rebornix I have not encountered this situation in the latest version. 👍

@czfadmin thanks! Close this one for now but if you run into it again, let's reopen it.


Error: 13 INTERNAL: Received RST_STREAM with code 0

Description
This error occurred randomly when making a transfer transaction or token association.
I tried to wrap the transaction in a retry loop with a delay of 6000 ms but still having the same result.
Should I override the behavior with .setNodeAccountIds() on retry when this error occurred ?
Steps to reproduce
/* Retry the Associate Function 4 times with 6000 ms of delay between each */
   this.retryOperation(this.associate(accountId, tokenId, client, privateKey), 6000, 4)

/* Function to Associate a Token */
    async associate(accountId, tokenId, client, privateKey) {
        // Associate a token to an account
        const tx = new TokenAssociateTransaction()
            .setAccountId(accountId)
            .setTokenIds([tokenId])
            .freezeWith(client);

        // Sign with the private key of the account that is being associated to a token
        const signTx = await tx.sign(await PrivateKey.fromString(privateKey));

        // Submit the transaction to a Hedera network
        const txResponse = await signTx.execute(client);

        // Request the receipt of the transaction
        const receipt = await txResponse.getReceipt(client);

        // Get the transaction consensus status
        const transactionStatus = receipt.status;
    }

Additional context
No response
Hedera network
mainnet
Version
v2.0.30
Operating system
Linux

Can you capture the entire error being throw because I'm not able to reproduce it at the moment. Perhaps this only occurs occasionally. This is how I've been testing to see if any exception is thrown: https://github.com/hashgraph/hedera-sdk-js/pull/640/files#diff-e94ce93d4b27da34a565aa431a5d3179f5ea862641f33bfe2a0fd7b0a326bb37R247

Hi, thanks for your answer. This is actually the entire error captured. This error is hard to reproduce because it occurs occasionally. But you need to try with TokenAssociateTransaction() instead because I never get that error with AccountBalanceQuery

Just tried
        await new AccountCreateTransaction()
            .setKey(pkey.publicKey)
            .setInitialBalance(Hbar.fromTinybars(1))
            .execute(client);

on mainnet against node 0.0.4 (<IP_ADDRESS>)
got
(node:64282) UnhandledPromiseRejectionWarning: Error: 13 INTERNAL: Received RST_STREAM with code 0 at Object.callErrorFromStatus (/Volumes/Samsung_X5/dev/github.com/hashgraph/hedera-sdk-js/node_modules/@grpc/grpc-js/build/src/call.js:31:26) at Object.onReceiveStatus (/Volumes/Samsung_X5/dev/github.com/hashgraph/hedera-sdk-js/node_modules/@grpc/grpc-js/build/src/client.js:179:52) at Object.onReceiveStatus (/Volumes/Samsung_X5/dev/github.com/hashgraph/hedera-sdk-js/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:336:141) at Object.onReceiveStatus (/Volumes/Samsung_X5/dev/github.com/hashgraph/hedera-sdk-js/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:299:181) at /Volumes/Samsung_X5/dev/github.com/hashgraph/hedera-sdk-js/node_modules/@grpc/grpc-js/build/src/call-stream.js:145:78 at processTicksAndRejections (internal/process/task_queues.js:75:11) (Use `node --trace-warnings ...` to show where the warning was created)

with latest SDK pulled from github.

@gregscullard I added a test which checks the shouldRetryExceptionally is called twice meaning the query did retry on the first attempt when it received the error https://github.com/hashgraph/hedera-sdk-js/pull/689/files#diff-0dcd5935b81b021bc0d8b1f940c95746832e8a08f8fc8a634ad83a81853172eeR33

@teacoat Are you running the latest version of the SDK?

Another question worth asking is are you guys running this from a browser context or node?

@teacoat Are you running the latest version of the SDK?

I am running it in node, and it seems I haven't updated it from 2.0.13

If you can, can you please update to the latest release. I know we recently fixed an issue with unpaid queries (AccountBalanceQuery and TransactionReceiptQuery) which retired using the same nodes instead of retrying on the next node which might be the cause of this.

15 Oct Greg tested this on 2.1.1 and reproduced the RST_STREAM error https://discord.com/channels/373889138199494658/616725732650909710/898526564684296222
Issues re-occurred recently when node 0.0.25 was down.  Workaround remains to use custom node list let client = Client.forNetwork(sdkNetwork);
Any update or eta on this?
btw is there a way to read the list of operational nodes from status.hedera.com eg is this part of the webhook or feeds, any docs or tips welcome thanks!

@topshef Have you tried using version 2.3.0 or 2.4.1? I believe this is when this issue was resolved. For any version before those you'd need to remove the nodes from the network manually.

btw is there a way to read the list of operational nodes from status.hedera.com eg is this part of the webhook or feeds, any docs or tips welcome thanks!

Unfortunately, I this is not possible right now. However, we are currently working on implementing support for multiple IPs per node account ID which would then allow us to use the full network from Hedera instead of just one IP per node account ID. This would then allow us to at the very least hard code the entire network from status.hedera.com

@danielakhterov I'm using version 2.4.1 and consistently get this error when I run the scheduled-transaction-multi-sig-threshold example on testnet.
If I set the nodeAccountID to "0.0.4" for all transactions, the error disappears.

I am also regularly getting errors trying to do topic creation and message submission on Testnet using the .forTestnet() default nodes.

I'm also on 2.4.1 and getting this error every time I try to make a transfer on the testnet.

@derdis14 @scalemaildev @tim-dewit I believe the reason you hit those errors was because the network was down during the weekend.

@hashaxis This is on the latest version? Is this being run on node or browser?

@hashaxis This is on the latest version? Is this being run on node or browser?

This is occurring almost 100times per day on the official Hedera Mirror node for us.

That's not really answering the question. Perhaps I should clarify, is your application running in Node JS or within a browser context? Also, are you using mainnet, testnet, or previewnet?

It's a Node js application connecting to mainnet through the standard SDK for selecting consensus nodes.
Issue is intermittent when fetching from mirror node: https://mainnet.mirrornode.hedera.com/


How to encrypt file using a public key before add it to IPFS ?

Is it possible to encrypt a file using a public key before add it to IPFS?
Example:
Alice want to add file that only Bob can open it.
Alice encrypt file using Bob pubkey than add it to IPFS.
Bob get the file hash and download the file, than decrypted using its private key.

You could use tweetnacl.js. See example here: https://github.com/dchest/tweetnacl-js/wiki/Examples

tweetnacl is an external library. I need to encrypt file using public key of the IPFS node.

tweetnacl is an external library

yep - is that an issue?

I need to encrypt file using public key of the IPFS node.

You can get hold of the public key for your node using (await ipfs.id()).publicKey

I meant I wont use an external library for encryption,
I want to use the keys of IPFS for encryption. the question is how to encrypt data using IPFS keys.


Feature/controllers specs

This PR is raised to implement the following tasks:

[x] Add RSpec as a gem to your project.
[x] Create a Request spec file for all your controllers.
[x] Make sure that for each action you check:

If response status was correct.
If a correct template was rendered.
If the response body includes correct placeholder text.

Thank you so much @TuyishimireEric for the thorough review 🥳


Only Works for Some Users

The scripts appears to work for some of my users but other users still have the ability to create groups within the Teams app.  I reran the script and it definitely displays EnableGroupCreation = False on the last line.  I am unsure why it only partially works in my environment.

Closing this issue as it is a duplicate to issue #1532


Docker and Docker Compose install instructions are out of date

The Docker link has moved, and https://www.docker.com/community-edition#/download is no longer valid. It redirects to https://www.docker.com/products/docker-engine and now requires an account to download the Docker installers.
Compose is not an extra install on OS X:

"Install Compose on macOS
Docker for Mac and Docker Toolbox already include Compose along with other Docker apps, so Mac users do not need to install Compose separately."

Ok, maybe we can find a simpler way to install with something like Homebrew.


delete repository and image tag

There is some additional information that would be helpful.
What role or permission is required to delete a repository within a registry?
What role or permission is required to delete an image/tag within a repository?

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

ID: ce2b8b02-584a-d113-0ed4-d2c4821ba774
Version Independent ID: c3743237-6fcc-d649-2585-02522ec3132f
Content: Azure Container Registry - roles and permissions
Content Source: articles/container-registry/container-registry-roles.md
Service: container-registry
GitHub Login: @dlepow
Microsoft Alias: danlep

Thanks for the feedback! We are currently investigating and will update you shortly.

@doug-fish to delete a repository you would need Owner or Contributor role.
For deleting an image/tag I believe you also need owner or contributor.
I will let @dlepow confirm and also, we might consider adding some more option to the table to help clarify all scenarios.

@doug-fish - Thanks for pointing out the omission. According to the ACR engineering team, the Owner, Contributor, or AcrPush role has permissions to delete either a repository or image.
I'll update the article to include that information.
#in-progress

I published a documentation update to mention this case. Thanks again @doug-fish for pointing it out. Please note that more fine-grained ACR roles may be added in the future, and we'll continue to update the article with the latest information.
#please-close


Recursively scan and convert any classes in event.properties

An edge case for when we're processing instances of classes with our cloning utilities occurs where the clone won't be properly made. The code introduced here is the code from the klona/lite package that Facade depends on, but changing this line to spread the properties of the class onto a new object instance, instead of a new class instance: https://github.com/lukeed/klona/blob/master/src/lite.js#L8
I'm wondering if there are other ways to address this issue and I'm open to feedback. We'll effectively be cloning objects twice now, and I'm wondering if we're better off doing some in-place replacement of any class instances with objects instead of full copies.

@pooyaj I rather do that as well tbh. I think everything would be fixed if that one line where klona calls the constructor would pass proper arguments. I'm just not sure what the timeline would look like re: merge and deploy

Here's what I'm thinking - let's port over the klona/lite code to facade, with the fix applied where we change this line to:
tmp = new x.constructor({...x})
That should fix the issue as well as keep all the rest of the functionality in place. I think per @chrisradek's points, we would need the whole library locally in order to account for every case, and per your point @pooyaj , this will probably add too much to the bundle size.
Simultaneously, I can open up a PR against klona to fix the issue on their end and we won't have to depend on a third party library's schedule to get this fix out to our client.

I'm for removing klona alotgether. It's setting __proto__ which we really shouldn't rely on (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/proto).
I think instead of instantiating a new class based on the constructor, we can create a new object using Object.create() and then copy the props over.
Something like:
function crazyCopyIdea(properties) {
  if (Object.prototype.toString.call(properties) === '[object Object]') {
    let temp = {};
    if (
      properties.constructor !== Object &&
      typeof properties.constructor === 'function'
    ) {
      temp = Object.create(properties);
    }
    for (const key in properties) {
      temp[key] = crazyCopyIdea(properties[key]);
    }
    return temp;
  } else if (Array.isArray(properties)) {
    return properties.map(crazyCopyIdea);
  } else {
    return properties;
  }
}

Object.create(properties) and {...properties} are functionally similar iirc, I'm not entirely sure if there's perf differences anymore (I believe Object.create used to be slightly better), but tbh there's nothing very wild about your suggestion, @chrisradek. It's just an easier-to-read, simplified version of the big chunk of logic in klona, with our fix applied.

Closing this PR in favor of https://github.com/segmentio/facade/pull/168, can move discussion there.


[FLINK-14624][table-blink] Support computed column as rowtime attribute

What is the purpose of the change
Support computed column as rowtime attribute, i.e. the watermark statement can apply on a computed column.
Brief change log
The commits message describe the change log.
Verifying this change
This change is already covered by existing tests and added some new cases for computed column as rowtime attribute.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

Please rebase and resolve conflicts, I will review this.

Hi @KurtYoung , I have rebased the pull request.

The failed cases seem not relative to this PR.

Hi @godfreyhe , actually, the StreamExecWatermarkAssigner is responsible for (maybe minibatch-ed) watermark assigner on rowtime. So one is emitting minibatch event (we use watermark to represent it), the another one is emitting watermark event.
The reason to merge minibatch-ed event-time watermark assigner into StreamExecWatermarkAssigner is that it is still a watermark assigner, it only adjust the emit interval, no semantic changes to non-minibatched watermark assginer. If we merge it into StreamExecMiniBatchAssigner, the StreamExecMiniBatchAssigner will change the RowType which changes the semantic, and we will have more duplicate code in it (like code generate watermark emitter).

So IIUC StreamExecWatermarkAssigner only cares about the emit interval, right? Could we make this physical operator takes this interval as parameter, and we don't have to touch any of the minibatch concept inside this operator?

As discussed offline, we will make StreamExecWatermarkAssigner and StreamExecMiniBatchAssigner independent, i.e. split the original minibatched-watermark-assigner into WatermarkAssigner -> MiniBatchAssigner two nodes.

We introduced XmlOutput as a temporary solution to get a right plan XML. Will be removed in FLINK-15064.

The watermark part LGTM

LGTM for the mini-batch part. cc @cshuo

rebased to resolve conficts.

@wuchong LGTM.

Travis is passed: https://travis-ci.org/wuchong/flink/builds/621562944
Merging...


cheapest?

well, obviously you write about "object storage" which you assume is cheapest in B2, but if you consider cloud storage, than B2 is VERY costly.
According to B2 pricing:
https://www.backblaze.com/b2/cloud-storage-pricing.html#
The cost of just storing 10TB would be more about $700 per year.
In OVH with their solution "hubic", the cost of operations at 10TB scale, per year is only Eur 50.
https://hubic.com/en/offers/
Besides of that, your library is excellent on its own, so if you would consider in the future adding another cloud providers (i.e. hubic) it would be more than superb.

This is a B2 library, not a general storage library, not an S3 library, not a hubic library.

Considering that hubic's website is completely broken so I can't even tell if they are cloud storage or not (they appear to be P2P) and I am basing my claim of cheapest off of Backblaze's claim, I am giing to close this.  As also said, this is a backblaze only library, not a general storage library. Take care!


Change layout without re-render page

Hi,
would it be possible to change layout of a dynamic template WITHOUT render again the whole page?
This could be very handy (at least to me ;) )
Thanks a lot,
Alessandro

You can achieve this with manual switching in and out dynamic templates

+1 for this feature.
Currently, if you  run BlazeLayout.render() with a different layout, the whole page is re-rendered, although the new page might be the same with minor differences (consider, for example, 2 areas arranged vertically or horizontally).


[master] update unity version to 2017.2.1p2

Update the toolkit's unity version to match the recommendation on https://docs.microsoft.com/en-us/windows/mixed-reality/install-the-tools

We agreed that we would only move the project to full releases of Unity, and not patches.
Although, I do like the idea that we should keep in line with the dev docs.

Alignment with the dev docs is 100% the goal. Customers that install recommended tools should not have to see the "the versions don't match" dialog. :)

Related to #1628.

not patches

We shouldn't arbitrarily move to the latest patch, but Unity has put many MR-specific fixes into patches, often making them the recommended version.
Our current version (2017.2.1f1) was never an officially recommended version for MR development, due to bug fixes that never made it in out of the MRTP builds (motion controllers not being detected when playing from the editor, among others). These bug fixes did make p2.

Definitely not advocating to updating for every patch that is released. Only to match the recommended guidance on the Windows Mixed Reality documentation.


improve yurtstaticset upgrade for existing static pod

What type of PR is this?

Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespace from that line:
/kind bug
/kind documentation
/kind enhancement
/kind good-first-issue
/kind feature
/kind question
/kind design
/sig ai
/sig iot
/sig network
/sig storage

/kind enhancement
What this PR does / why we need it:
When user want to upgrade static pod by yurtstaticset, if the environment already have static pod, and the yurtstaticset.spec.template is also not change when first time make, the controller will still make some worker pod to upgrade static pod even if the pod is not change.
So we need to improve the upgrade calculate way, except hash.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

/assign @rambohe-ch
Does this PR introduce a user-facing change?

other Note

@JameKeal  Hi,  I tested this in Kind env, but it didn't turn out as expected.
Static Pod
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
    - name: web
      image: nginx:1.19.1
      imagePullPolicy: IfNotPresent

YSS
apiVersion: apps.openyurt.io/v1alpha1
kind: YurtStaticSet
metadata:
  name: nginx
spec:
  staticPodManifest: nginx
  template:
    metadata:
      name: nginx
    spec:
      containers:
      - name: web
        imagePullPolicy: IfNotPresent
        image: nginx:1.19.1

It do upgrade after I deploy the yss instance above, which I don't expect.
Will the creationTimestamp field in metadata affect this?

@JameKeal Hi, I tested this in Kind env, but it didn't turn out as expected.
Static Pod
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
    - name: web
      image: nginx:1.19.1
      imagePullPolicy: IfNotPresent

YSS
apiVersion: apps.openyurt.io/v1alpha1
kind: YurtStaticSet
metadata:
  name: nginx
spec:
  staticPodManifest: nginx
  template:
    metadata:
      name: nginx
    spec:
      containers:
      - name: web
        imagePullPolicy: IfNotPresent
        image: nginx:1.19.1

It do upgrade after I deploy the yss instance above, which I don't expect. Will the creationTimestamp field in metadata affect this?

yes, you are right, i test this condition, but forget sync the code, my fault

@rambohe-ch @JameKeal  LGTM


feat: Expose variant in delete and save modals

Codecov Report

Merging #27 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #27   +/-   ##
=======================================
  Coverage   93.06%   93.06%
=======================================
  Files          61       61
  Lines         880      880
  Branches      138      137    -1
=======================================
  Hits          819      819
  Misses         61       61

Impacted Files
Coverage Δ

...n-typescript/src/components/Modals/DeleteModal.tsx
100.00% <ø> (ø)

...mon-typescript/src/components/Modals/SaveModal.tsx
100.00% <ø> (ø)

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 7ed4e0b...63666cf. Read the comment docs.


Add avx2_vnni_2 check for bf16 and fp16 support on SRF

add avx2_vnni_2 check for bf16 and fp16 support on SRF
add bf16/f16 backward check on SRF

Related tests: https://github.com/intel-innersource/frameworks.ai.pytorch.ipex-cpu/pull/1979


Support customization of  injected containers for taskrun

In my internal on premise k8s , there is enforcement that each container should have resource request and limit specified.
While making pod for taskrun, additional init containers  will be injected into pod. This will cause the pod creation failure.
Is it possible to make such kinds of injected containers customizable?

I just notice this PR https://github.com/tektoncd/pipeline/pull/767. It may solve my issue. I will try and update later.


Help with PROJ 9.3 CRS comparison issue

Code Sample, a copy-pastable example if possible
See full context here: https://github.com/pytroll/pyresample/issues/539
In [1]: from pyproj import CRS

In [2]: crs1 = CRS.from_proj4("+proj=laea +lat_0=90 +lon_0=0 +a=6371228.0 +units=m")

In [3]: crs2 = CRS.from_epsg(3408)

In [4]: crs1.to_proj4()
/usr/lib/python3/dist-packages/pyproj/crs/crs.py:1293: UserWarning: You will likely lose important projection information when converting to a PROJ string from another format. See: https://proj.org/faq.html#what-is-the-best-format-for-describing-coordinate-reference-systems
  proj = self._crs.to_proj4(version=version)
Out[4]: '+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +R=6371228 +units=m +no_defs +type=crs'

In [5]: crs2.to_proj4()
/usr/lib/python3/dist-packages/pyproj/crs/crs.py:1293: UserWarning: You will likely lose important projection information when converting to a PROJ string from another format. See: https://proj.org/faq.html#what-is-the-best-format-for-describing-coordinate-reference-systems
  proj = self._crs.to_proj4(version=version)
Out[5]: '+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +R=6371228 +units=m +no_defs +type=crs'

In [6]: crs1.to_epsg()
Out[6]: 3408

In [7]: crs2.to_epsg()
Out[7]: 3408

In [8]: crs1 == crs2
Out[8]: False

Problem description
The above code with PROJ 9.2.x does not produce an EPSG code for crs1. In PROJ 9.3, it does. The equality is False in both cases...but I'm not sure it should be in the 9.3 case if PROJ 9.3 is able to think of them as equivalent EPSG codes.
Expected Output
Either no EPSG code for crs1 (the from PROJ.4 string) or equality between the two.
NOTE: This has only been tested on PROJ 9.3 by @avalentino on their test system. I do not have 9.3 running locally (yet).
@snowman2 Can you help me file a bug with PROJ with a C example? Or do you not consider this a bug?
Environment Information

Output from: pyproj -v

Output from: python -m pyproj -v

Output from: python -c "import pyproj; pyproj.show_versions()"

pyproj version (python -c "import pyproj; print(pyproj.__version__)")
PROJ version (python -c "import pyproj; print(pyproj.proj_version_str)")
PROJ data directory (python -c "import pyproj; print(pyproj.datadir.get_data_dir())")
Python version (python -c "import sys; print(sys.version.replace('\n', ' '))")
Operation System Information (python -c "import platform; print(platform.platform())")

Installation method

conda, pip wheel, from source, etc...

Conda environment information (if you installed with conda):

Environment (conda list):

$ conda list proj

Details about  conda and system ( conda info ):

$ conda info

@sebastic FYI

$ docker run --rm -it osgeo/proj:latest bash
root@7aa0aa098f43:/# apt update && apt install python3-pip
root@7aa0aa098f43:/# python3 -m pip install pyproj
root@7aa0aa098f43:/# python3 -c "from pyproj import CRS; crs1 = CRS.from_proj4('+proj=laea +lat_0=90 +lon_0=0 +a=6371228.0 +units=m'); crs2 = CRS.from_epsg(3408); print(crs1.to_epsg() or "None"); print(crs2.to_epsg()); print(crs1 == crs2)"
None
3408
False
root@7aa0aa098f43:/# pyproj -v
pyproj info:
    pyproj: 3.6.0
      PROJ: 9.2.1
  data dir: /usr/local/lib/python3.10/dist-packages/pyproj/proj_dir/share/proj
user_data_dir: /root/.local/share/proj
PROJ DATA (recommended version): 1.14
PROJ Database: 1.2
EPSG Database: v10.088 [2023-05-13]
ESRI Database: ArcGIS Pro 3.1 [2023-19-01]
IGNF Database: 3.1.0 [2019-05-24]

System:
    python: 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0]
executable: /usr/bin/python3
   machine: Linux-6.4.6-76060406-generic-x86_64-with-glibc2.35

Python deps:
   certifi: 2023.7.22
    Cython: None
setuptools: 59.6.0
       pip: 22.0.2

@avalentino This example above doesn't seem to produce an EPSG code. And just like in the pyresample issue it lists PROJ 9.2.1 even though I think it should be using PROJ from the system. Maybe?

@djhoese to use libproj v9.3rc1 in debian you should enable "experimental" and then run:
# apt -t experimental  install libproj-dev libproj25 proj-bin proj-data

Just install libproj-dev & proj-bin from experimental, the rest get pulled in via the dependencies.

I was able to build a version of pyproj from source (github from main) and run the same command I showed above. Even the pyproj command showed it was using PROJ 9.3.0, but still that crs1 did not produce an EPSG code.
Then I used debian:sid, added the experimental repository (along with some certificate packages to get GPG to work), then installed libproj-dev and proj-bin. I then installed python3-pip and python3-pyproj. Running my example command from that showed that crs1 produced an EPSG code.
Then I uninstalled python3-pyproj, installed git, and did python3 -m pip install --break-system-packages --force-reinstall git+https://github.com/pyproj4/pyproj. And this too produced an EPSG code for crs1.
So...to me this means either:

In my first test case using the PROJ docker image, I wasn't ever actually using PROJ 9.3.0 even though I'm pretty sure I was.
There is a major difference between PROJ 9.3.0 in the PROJ images versus the experimental debian repos.

There is a major difference between PROJ 9.3.0 in the PROJ images versus the experimental debian repos.

The PROJ images may have grids from PROJ-data installed which are not available in Debian.

Hhhmmm any idea if/why that would cause a CRS to not resolve to an EPSG code? If they were missing then I'd guess that an EPSG couldn't be found, but this is the opposite.

While digging into this, consider:

Note warning: UserWarning: You will likely lose important projection information when converting to a PROJ string from another format. PROJ strings are not good for comparing CRS.
See:  min_confidence parameter in CRS.to_epsg. Set it to 100 to see if it is an exact match.
Notice the difference in datums:

>>> crs1
<Projected CRS: +proj=laea +lat_0=90 +lon_0=0 +a=6371228.0 +units= ...>
Name: unknown
Axis Info [cartesian]:
- E[south]: Easting (metre)
- N[south]: Northing (metre)
Area of Use:
- undefined
Coordinate Operation:
- name: unknown
- method: Lambert Azimuthal Equal Area (Spherical)
Datum: unknown
- Ellipsoid: unknown
- Prime Meridian: Greenwich

>>> crs2
<Projected CRS: EPSG:3408>
Name: NSIDC EASE-Grid North
Axis Info [cartesian]:
- X[south]: Easting (metre)
- Y[south]: Northing (metre)
Area of Use:
- name: Northern hemisphere.
- bounds: (-180.0, 0.0, 180.0, 90.0)
Coordinate Operation:
- name: US NSIDC Equal Area north projection
- method: Lambert Azimuthal Equal Area (Spherical)
Datum: Not specified (based on International 1924 Authalic Sphere)
- Ellipsoid: International 1924 Authalic Sphere
- Prime Meridian: Greenwich

Thanks @snowman2! I know about the PROJ.4 string warning, but that's why I'm confused with this behavior. It is close enough to be considered the same EPSG with to_epsg, but not when doing equality. I did not know about min_confidence, but I would have assumed that in cases like this it would default to a value that would handle the round trip decently well.
The original issue started in Pyresample and how it bounces between EPSG and PROJ.4 strings when exporting to on-disk formats. I think bumping up the min_confidence would be a "good enough" workaround.
I'm currently trying to build PROJ from source in the PROJ docker container and see if that gives me different results. I tried syncing the proj-data in the debian:sid image and that doesn't change the final result (crs1 still produces an EPSG code).

The min_confidence defaults to 70, which I would have assumed to be equivalent. If you need to be able to roundtrip, I would change it to 100. Alternatively, a WKT2 is also a good format for storing a CRS if you need to roundtrip.
If you are confident that the CRS are equivalent, I can help you create an issue upstream with PROJ to ask what their thoughts are on it.

I tried syncing the proj-data in the debian:sid image and that doesn't change the final result

That is only for transfomations. proj.db is all you need for CRS information.

The min_confidence defaults to 70, which I would have assumed to be equivalent. If you need to be able to roundtrip, I would change it to 100. Alternatively, WKT2 is also a good format for storing a CRS if you need to roundtrip.

Sounds good. I wouldn't say I need roundtripping in normal user use cases, but the pyresample tests assume it can be done sometimes. I understand WKT2 would be good for a roundtrip, but human readability/parse-ability is also something we'd like to have.

The other question here is what is different between the two systems (debian:sid with experimental libproj-dev versus osgeo/proj:latest) that is causing an EPSG code to be used or not.

I don't recommend using osgeo/proj:latest as it doesn't work how you would expect: https://github.com/pyproj4/pyproj/pull/1085

Hhhmmm in the 9.3.0 case it was showing the proper version.

I haven't been able to figure out what's going on here. I installed PROJ from github on both systems and pyproj from github on both and pointing to the PROJ which was in a custom prefix in PROJ_DIR and I get an EPSG code for crs1 in the debian:sid container but not the osgeo/proj:latest which I think is Ubuntu-based.
Bumping up min_confidence from 70 to 71 causes there to be no EPSG code generated on the debian system.

@snowman2 Do you have a suggested way of investigating the proj.db database? Or verifying that it is the same version between PROJ installations? I was about to post on the PROJ mailing list about this issue, specifically that one platform is getting an EPSG code and one is not. But then I realized I should know more about the proj_identify function used by pyproj and about the proj.db used in each installation.
https://proj.org/en/9.2/development/reference/functions.html#c.proj_identify
Is there a way to update the proj.db for an installation?

Or verifying that it is the same version between PROJ installations?

import pyproj

print(pyproj.show_versions())

or
python -m pyproj -v

Is there a way to update the proj.db for an installation?

That is not recommended as it may not be compatible with a different PROJ version.

Well when I do md5sum /path/to/proj.db with installations from source (both from github and from the RC1 tarball posted on the mailing list) the md5sums are the same on a particular platform but different between them (debian versus the ubuntu-based osgeo/proj container). Any ideas what would lead to that? It would have to be some dependency or something available on one platform and not the other.

It would have to be some dependency or something available on one platform and not the other.

sqllite3 is the only one I can think of that would impact that.

@snowman2 I just did:
rm -r /usr/local/lib/python3.10/dist-packages/pyproj/proj_dir

And now I'm getting the EPSG code in the crs1 case (from PROJ.4). When does proj_dir get created in the pyproj package and when does it use the system version?

Ok so I'm going with a corrupt installation. We've got a workaround for the EPSG roundtrip inequality from Even here: https://github.com/OSGeo/PROJ/pull/3879
If/when that makes it through then the pyresample tests should pass with it. @snowman2 @avalentino I don't think I want to change the to_epsg confidence used in pyresample since the general purpose is to have it "magically" replace old PROJ.4 versions people were using that lacked datum information with some level of standard EPSG versions of these projections/CRSes. Thoughts?

When does proj_dir get created in the pyproj package and when does it use the system version?

This is what is included in the wheel. If you install pyproj with --no-binary pyproj ref it will compile using the system PROJ and won't include proj_dir.

I don't think I want to change the to_epsg confidence used in pyresample since the general purpose is to have it "magically" replace old PROJ.4 versions people were using that lacked datum information with some level of standard EPSG versions of these projections/CRSes. Thoughts?

I would be careful when "magically" replacing PROJ strings with EPSG versions. Unintended changes may occur that could result in differences in transformations. This is likely why Even is nervous about the change ref.

Point taken. The main purpose of the code in pyresample is to gently replace users understanding of their PROJ.4 string that they've used for the last 10 to 20 years and to recognize there is something more accurate and explicit in at least some kind of standard. By that I mean, many users probably copied PROJ.4 strings from the EPSG site many years ago only because that's what we supported back then. Now that EPSG strings/codes are actually supported we're "helping" the user realize that.
I think I can close this and when things break I'll come back and ask you to save us.


Add fermion sign functions

This PR puts in functions which can be customized from outside of NDTensors to put in fermion minus signs in crucial places. By itself, this PR should not change any behavior of NDTensors, since the functions called have trivial defaults which do things like returning a tensor unchanged or just returning the number +1.
Here is a complete list of the changes:

blocksparse/blocksparsetensor.jl:

define scale_blocks! and permfactor
call permfactor in permutedims! (R has same blocks as T)
define compute_alpha
call compute_alpha in _threaded_contract!
call compute_alpha in contract!

blocksparse/combiner.jl:

define before_combiner_signs
define after_combiner_signs
call before_combiner_signs and after_combiner_signs in three places in combiner contract function

blocksparse/diagblocksparse.jl:

call compute_alpha in contract!

blocksparse/block.jl:

define getindex(B::Block{N}, R::UnitRange{Int64})

combiner.jl

add cind and isconj fields to Combiner
make conj of Combiner reverse isconj field

Thanks, glad to see how minimal this is!

Tests are passing on the master branch

Good comments - thanks. I'll address them all or ask questions about ones I can't.


fix(TDI-39620):tSalesforceInput fields of schema case sensitive for query mode

What is the current behavior? (You can also link to an open issue here)

Some tujs was broken by #1082 : "type" root element should be ignored in value map
SalesforceInput aggregate query also need to be fix

What is the new behavior?
Fix all those issue
Please check if the PR fulfills these requirements

[x] The commit message follows Talend standard
[x] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features) ?
[x] The code coverage on new code >75%
[x] The new code does not introduce new technical issues (sonar / eslint)

What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build / CI related changes
[ ] Other... Please describe:

Does this PR introduce a breaking change?

[ ] Yes
[x] No

Pull request test result: success :star:
Sonar results


Context manager for ConnectionPool#connection method

ATM to use connection we need to write the following code:
connection_pool = psqlpy.ConnectionPool()
conn = await connection_pool.connection()
conn.execute("SELECT * from users")

But it would be more pythonic to use context manager here like:
connection_pool = psqlpy.ConnectionPool()
async with connection_pool.connection() as conn:
    conn.execute("SELECT * from users")

Hi!
Thank you for the issue.
This idea is great, but It has some cons.
We have an asynchronous connection() method because we need to make an asynchronous call to the database pool.
When we get a connection that can be used in a context manager, it must have some magical method and access to the ConnectionPool.
If we want to have 2 ways of connection declaration, we need to be available to start it explicitly, like Transaction has a begin method.
Example:
# First without context manager
...
conn = connection_pool.connection()
await conn.start()

# Second with a context manager
...
async with connection_pool.connection() as conn:

It seems a bit complicated to me with some start method for connection.
If you have another opinion please share it.

I've started implementing this, but I'm faced with performance issues.
https://github.com/qaspen-python/psqlpy/pull/36
So, it will take time to understand how to do it in another way.

It's implemented in release https://github.com/qaspen-python/psqlpy/releases/tag/0.7.0 with the acquire method.


fix indentation

sorry, this PR contained incorrect value. This is the correct one

I fooled myself while testing your last PR :joy: thanks


perf(transformer/arrow-function): reduce string comparisons

Experiment. Try avoiding string comparisons in most cases for IdentifierReferences and BindingIdentifiers. Not sure if this will be faster or not.

[!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

#7318  👈 (View in Graphite)
#7314
#7313
#7317
#7312
#7311
#7310
#7234
main

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

The benchmarks above are misleading. Codspeed is comparing to main, instead of PR below in stack. So result above includes the perf hit of #7234.
This does appear to help very marginally, but not enough to be worthwhile.


JBDS-3975 Support for platform specific installations

Fix adds macOS specific features for vagrant/virtualbox/jvm:

detection
validation
error messages

test this

test this

test this


Hash functions not working

Encode using Hash functions (MD5, SHA1 etc) throws errors in the output box:
Invalid UTF-8 encoded text: unexpected continuation byte at 0x1 (this last bit varies).
I am testing on recent Chrome 77.0 and Safari on Mac 10.14.

Hi @piersaitman, please make sure you use the 'Bytes' brick after the 'Hash function' brick to view the resulting hash in hexadecimal format. Example: https://cryptii.com/pipes/hash-function

Thank you. I think the site is really cool, and I'll be using it teaching kids cryptography. I think it might be a good and simple feature, seeing as I think the whole thing's front end, to automatically change the output to hex bytes if there's one encoding block and it's a hash.

I love to hear this project is being used for educational purposes. Automatic changes to the pipe are difficult, though, as they are not the expected behaviour in every scenario. In addition I think it is valuable to the kids to understand that the raw output of a hash function is binary and that the hexadecimal format you see everywhere on the web is just an interpretation of it.
What I consider to do here is adding a message to the Text brick to suggest the switch to the Bytes brick if the current content can't be decoded to text.

Hi Franz,
Yes absolutely, that sounds very sensible. When you see an apparent error, you want to know how to fix it. I think the UI of your site is really very very good and clear, and miles better than other vaguely similar sites on the web. And for educational purposes, here in UK I am teaching computing and cryptography to 10 year olds, and your site combines pretty much everything we do into one tool. Every common cipher and hash (plus loads more), encoding and decoding easily, and representation in binary. Never mind chaining them all together etc etc etc.
So thank you!
I suppose the distinction between binary and text output is a 'computery' one that kids wouldn't appreciate unless explained, and I didn't pick up on with my casual tinkering despite my amazing computer science skills. I don't know if there is a case for treating the orange and blue modules differently, so when you click on the dropdown of the blue ones you just switch between text and bytes/binary. Probably not, as that introduce some potential confusion elsewhere, or in other use cases.
Anyway, forgive my rambling, you have a really great application.
Piers

Thank you for your kind words. It is thrilling to hear what the web app is used for and by whom – especially when 10 year olds are involved in cryptography. I know exactly what you mean about the 'computery' distinction between binary and text throughput. It was a design choice to allow the combination of text-based bricks with binary ones without the need of an explicit text encoding brick in between.
I think it would make perfect sense to only offer bricks of the same type when opening the library from the brick name dropdown. Other bricks stay accessible when pressing the plus button on the pipe. In addition, as mentioned above, I will also add a button to the text brick offering the switch to the binary view when the text can't be decoded. I think this will enhance accessibility without scaring off power users.
If you encounter further opportunities for enhancements in your teaching, I would be eager to hear. Thank you!

Hi Franz,
I'm just beginning my cryptography course with the 10 year olds and we're
going to use your site. I was wondering how easy it would be to add Baudot
Code into the encoding section. This is a historically very important code
that links Morse Code to modern binary/numeric codes, it was used in
telegraphy, and as I understand it, was used on the paper tape on the first
computers such as Colossus, that were used in... cryptography.
On Sat, 12 Oct 2019 at 12:04, Fränz Friederes<EMAIL_ADDRESS>wrote:

Thank you for your kind words. It is thrilling to hear what the web app is
used for and by whom – especially when 10 year olds are involved in
cryptography. I know exactly what you mean about the 'computery'
distinction between binary and text throughput. It was a design choice to
allow the combination of text-based bricks with binary ones without the
need of an explicit text encoding brick in between.
I think it would make perfect sense to only offer bricks of the same type
when opening the library from the brick name dropdown. Other bricks stay
accessible when pressing the plus button on the pipe. In addition, as
mentioned above, I will also add a button to the text brick offering the
switch to the binary view when the text can't be decoded. I think this will
enhance accessibility without scaring off power users.
If you encounter further opportunities for enhancements in your teaching,
I would be eager to hear. Thank you!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/cryptii/cryptii/issues/57?email_source=notifications&email_token=ANNU2VLBDGWZAO5AYT2EXJLQOGVK3A5CNFSM4I6UROWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBB4ZQI#issuecomment-541314241,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANNU2VJOIZAQ3JZ4727CUDDQOGVK3ANCNFSM4I6UROWA
.

@piersaitman To keep track of individual feature requests I created an own issue for the Baudot Code to further discuss this: https://github.com/cryptii/cryptii/issues/83


Generate speech assets via NPM scripts

I love the idea of generating speech assets automatically. The only thing I find a bit odd is that I can't create them by executing an provided script: e.g. npm run build-assets
What do you think?

Yes creating of such script makes sense. The thing is that you need to include this script in the project using alexia, not in the alexia itself.
We are currently working on complete Starter project for alexia and it includes this simple script:
bin/generate.js
const app = require('path_to_your_app.js');
app.saveSpeechAssets('speechAssets');

and in the package.json:
"scripts"  {
  ...
  "gen": "node ./bin/generate.js"
}

so you can run npm run gen in your project to generate speech assets
Another option though would be to add CLI to alexia. So running for exapmle: ``alexia genoralexia build-assets` or whatever in your project root would generate speech assets for you.
You would need to specify path to your app.js though as parameter
So yes it makes sence to incorporate it into alexia, but for starter maybe just document it in README and then possibly add the CLI. In few weeks when we release Starter project it would be built in it. Would that help?

I completly agree with you 👍

We are currently working on complete Starter project for alexia
Would you give me a sneak preview? I'm not quite sure about a couple of basic things (whereas I'm well off with the documentation on how to use the intents :) ) and a rough project structure could get me started with alexia!

Would you give me a sneak preview? I'm not quite sure about a couple of basic things (whereas I'm well off with the documentation on how to use the intents :) ) and a rough project structure could get me started with alexia!

@xtools-at it's your lucky day :)
Alexia Starter Kit has just been open sourced. Check out our GitHub repo: https://github.com/Accenture/alexia-starter-kit

@xtools-at check out alexia starter kit repository https://github.com/Accenture/alexia-starter-kit

thank you very much :)

As @kubacka said, the feature is now added to the Alexia Start Kit Repo https://github.com/Accenture/alexia-starter-kit
Thx for that 👍


README example not working as expected.

The readme example throws an exception on the latest version. It requires a missing positional argument step_size in the kernel function call.
Please provide a minimal, self-contained, and reproducible example.
Please provide the full traceback of any errors.
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-1-4acbdcf584da> in <module>
     16 # Build the transition kernel
     17 srng = RandomStream(seed=0)
---> 18 kernel = nuts.kernel(
     19     srng,
     20     logprob_fn,

TypeError: kernel() missing 1 required positional argument: 'step_size'

Please provide any additional information below.
Versions and main components

Aesara version: 2.3.3
Python version: 3.10.0
Operating system: Arch
How did you install Aesara: pip

The problem seems to be:
https://github.com/aesara-devs/aehmc/blob/abcc618f91fa03c3a26bdb425619617352bb2dff/aehmc/hmc.py#L27
That argument is missing from the example.

Did you install aehmc via pip? If so can you try to see if the example works with the latest commit?
The kernel API has changed with ab5125 and there hasn't been a release since.

@zoj613 did you try to run the example with the latest commit to see if that's the issue?

It works, I get 0.9300463205925347 as the printed output. i do get a
WARNING (aesara.scan.basic): When the number of steps is fixed and equal to 1, the provided stopping condition, Elemwise{eq,no_inplace}.0 is ignored
WARNING (aesara.scan.basic): When the number of steps is fixed and equal to 1, the provided stopping condition, Elemwise{eq,no_inplace}.0 is ignored

warning but im not sure how important it is.

Getting fixed in aesara-devs/aesara#741


Add info alert to kserve on settings page

Closes #2047
Description

Previously, we only showed this alert when Multi-model serving platform was checked but unchecked later. In this PR, we apply the same behavior to Single model serving platform as well. No matter which checkbox was checked before but unchecked later, we show this info alert with the following text.

How Has This Been Tested?

Enable both single and multi model serving platforms
Uncheck either of them, but not both, see if the alert is showing

Test Impact

Add an integration test check to see if this alert also shows when single model serving platform was checked but unchecked later.
Request review criteria:

Self checklist (all need to be checked):

[x] The developer has manually tested the changes and verified that the changes work
[x] Commits have been squashed into descriptive, self-contained units of work (e.g. 'WIP' and 'Implements feedback' style messages have been removed)
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[x] The developer has added tests or explained why testing cannot be added (unit tests & storybook for related changes)

If you have UI changes:

[x] Included any necessary screenshots or gifs if it was a UI change.
[x] Included tags to the UX team if it was a UI/UX change (find relevant UX in the SMEs section).

After the PR is posted & before it merges:

[ ] The developer has tested their solution on a cluster by using the image produced by the PR to main

@kaedward @vconzola Could you check the text in the alert here? The mockup only shows the alert text when we uncheck a multi-model serving platform, however, we want to apply the same behavior to the single model serving platform. Should we use a more general text as is shown in the description for both settings or do you have any better ideas to show a different alert text for the single model serving platform?

/lgtm
Let's wait for UX first

@lucferbux @DaoDaoNoCode Is the scenario here that both boxes were checked and the user just unchecked multi-model serving? If so, I'd say some thing like, "Disabling multi-model serving means that models in new projects or existing projects with no currently deployed models will be deployed from their own model server. Existing projects with currently deployed models will continue to use the serving platform selected for that project."  @kaedward - Please review.

@vconzola It's the check for either checkbox. It also could be the user selected the single model serving platform before but unchecked it later, we also need to show the info alert, so we should either show a generic info alert for both situations or create different alert text for these 2 situations.

@DaoDaoNoCode I think it would be better to have different alert text for each scenario. For the single model serving case I'd suggest something like, ""Disabling single model serving means that models in new projects or existing projects with no currently deployed models will be deployed from a shared model server. Existing projects with currently deployed models will continue to use the serving platform selected for that project." The italics just indicate changes from the multi-model use case text.

@vconzola that sounds great!

@vconzola Thanks for the suggestion! Could you check it again?

LGTM.


Grammatical error in install-kubeadm.md

This is a Bug Report

Problem:
The statement For information how to create a cluster with kubeadm once you have performed this installation process seems grammatically incorrect due to missing "on" after "information".
Proposed Solution:
For information how to create a cluster with kubeadm once you have performed this installation process -> For information on how to create a cluster with kubeadm once you have performed this installation process
Page to Update:
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

/language en
/good-first-issue

/assign

/sig cluster-lifecycle
/triage accepted


Puppeteer request interceptor not loggin m3u8 requests

so i have noticed that the interceptor will not log any file with extension .m3u8 and i was wondering why this is ? ill give you an example on twitch.
Update i just realized that when this is enabled it just wont allow m3u8 to load period?
const puppeteer = require('puppeteer-extra');

(async () => {
  process.setMaxListeners(Infinity)
  const browser = await puppeteer.launch({
    headless: false,
    args: [  '--window-size=0x0','--ignore-certificate-errors', '--no-sandbox',
    '--disable-setuid-sandbox',
    '--disable-dev-shm-usage',
    '--disable-accelerated-2d-canvas',
    '--no-first-run',
    '--no-zygote',
    '--disable-gpu']
  });
  const page = await browser.newPage();
  await page.setRequestInterception(true);
  const urls = [];
  page.on('request', request => {
    urls.push(request.url());
    console.log(urls)
    request.continue();
  });

// you may have to change the channel because idk if this guy will be on when this is looked at
  await page.goto('https://player.twitch.tv/?channel=r3ar3ntry', {
    timeout: 0,
    waitUntil: 'load'
  });
  try {
    await page.waitForSelector('button#mature-link', /*{ timeout: 5000 }*/)
    await page.click('button#mature-link')
    await page.addStyleTag({content: '.player{display: none}'})
  } catch (error) {
    await page.addStyleTag({content: '.player{display: none}'})
  }

})()

anyone have any thoughts on this?

can anyone help me with this?

@samuelkampf any news about it? I have the same problem here, can't extract the M3U8 links from video tag embedded in an iframe.

no news its been ages since I worked on this project I did find workarounds there is away to extract the data to a log file and then filter through the log file itself using string interp. But as far as using puppeteer for it this just cant be done at this time.

@alexandresgf i replied to you but it wouldnt let me tag you in the last comment so i tagged you in this one in addition to my last post do you mind me asking where you are trying to extract m3u8 data from?

@samuelkampf my problem is similar to yours. The difference is, the sites that I'm trying to extract the M3U8 link have two behaviors: (1) the site already load an iframe element with a video tag embedded on it or (2) you'll need to click in one of the buttons, which has the video resolution like HD, SD, etc, and then it loads an iframe element with a video embedded. I was able to extract it until the last week, but since this Monday (04.05.2020) it's just stopped to work.
Here is a screenshot that I took during my tests, in the black square is the iframe, where it should be the video player.

So, my code is similar to yours, but I developed a service using JSON-RPC and Puppeteer-Cluster to enqueue and resolve the links sent by the crawlers. Follow the piece of code where I do the extractions.

module.exports = async (args, callback) => {
  let extractStream = async ({ page, data }) => {
    let streamURL = null;
    let url = data.url;
    let ext = data.ext;

    await page.setRequestInterception(true);

    page.on('request', (request) => {
      let regex = new RegExp(`/.*\.${ext}.*/`, 'i');
      let found = regex.exec(request.url());

      logger.debug('Request intercepted to %s', request.url());

      if (found) {
        streamURL = found[0];
        request.abort();
      } else {
        request.continue();
      }
    });

    logger.info('Searching for %s stream in URL %s', ext, url);
    await page.goto(url, {
      timeout: 60000,
      waitUntil: 'networkidle0',
    });

    if (isDebug) {
      await page.screenshot({ path: `logs/${Date.now()}.png` });
    }

    return streamURL;
  };

  try {
    logger.info('Enqueuing URL: %s', args.url);
    const streamURL = await args.puppeteer.execute(args, extractStream);
    logger.info(
      '%s stream %s in %s',
      args.ext,
      streamURL ? `found ${streamURL}` : 'not found',
      args.url
    );
    callback(null, streamURL);
  } catch (err) {
    logger.error(err);
    callback(null, null);
  }
};

And I already thought that could be an Puppeteer-Cluster error, but I just implemented another script with only the Puppeteer and the answer is the same. I did another try using the Pyppeteer (the port of the Puppeteer for Python) and no lucky either.

Has anyone solved this problem?

I'm having this same problem as well, puppeteer also isn't logging .ts file extensions either (an alternative to .m3u8)

I just ran into this issue as well -- I believe this is an issue with how puppeteer does request interception (something with page navigation after the first intercepted request). A way around this is to use a CDP session. Here's a working example I used to grab the m3u8 from a stream:
`const puppeteer = require("puppeteer-extra");
let stealth = require("puppeteer-extra-plugin-stealth")();
puppeteer.use(stealth);
let chromePaths = require('chrome-paths');
(async () => {
const browser = await puppeteer.launch({
headless: false,
executablePath: chromePaths.chrome,
defaultViewport: null
});
const page = await browser.newPage();
const client = await page.target().createCDPSession();

await client.send('Network.enable');
await client.send('Network.setRequestInterception', {
    patterns: [{
        urlPattern: '*'
    }]
});

client.on('Network.requestIntercepted', async ({
    interceptionId,
    request,
    responseHeaders,
    resourceType
}) => {
    if (request.url.includes('m3u8')) {
        console.log(request.url);
    }

    client.send('Network.continueInterceptedRequest', {
        interceptionId
    });
});

await page.goto('https://www.twitch.tv/videos/859777026');

})();`

I just ran into this issue as well -- I believe this is an issue with how puppeteer does request interception (something with page navigation after the first intercepted request). A way around this is to use a CDP session. Here's a working example I used to grab the m3u8 from a stream:
`const puppeteer = require("puppeteer-extra");
let stealth = require("puppeteer-extra-plugin-stealth")();
puppeteer.use(stealth);
let chromePaths = require('chrome-paths');
(async () => {
const browser = await puppeteer.launch({
headless: false,
executablePath: chromePaths.chrome,
defaultViewport: null
});
const page = await browser.newPage();
const client = await page.target().createCDPSession();

await client.send('Network.enable');
await client.send('Network.setRequestInterception', {
    patterns: [{
        urlPattern: '*'
    }]
});

client.on('Network.requestIntercepted', async ({
    interceptionId,
    request,
    responseHeaders,
    resourceType
}) => {
    if (request.url.includes('m3u8')) {
        console.log(request.url);
    }

    client.send('Network.continueInterceptedRequest', {
        interceptionId
    });
});

await page.goto('https://www.twitch.tv/videos/859777026');

})();`

I just ran into this issue as well -- I believe this is an issue with how puppeteer does request interception (something with page navigation after the first intercepted request). A way around this is to use a CDP session. Here's a working example I used to grab the m3u8 from a stream:
https://gist.github.com/pironside44/307248e1c081ef4d27ec38fa0148d4d7

I just ran into this issue as well -- I believe this is an issue with how puppeteer does request interception (something with page navigation after the first intercepted request). A way around this is to use a CDP session. Here's a working example I used to grab the m3u8 from a stream:
https://gist.github.com/pironside44/307248e1c081ef4d27ec38fa0148d4d7

I just ran into this issue as well -- I believe this is an issue with how puppeteer does request interception (something with page navigation after the first intercepted request). A way around this is to use a CDP session. Here's a working example I used to grab the m3u8 from a stream:
https://gist.github.com/pironside44/307248e1c081ef4d27ec38fa0148d4d7

I used the same method as you, however I switched completly to CDP instead, with chrome-remote-interface and chrome-launcher

I just ran into this issue as well -- I believe this is an issue with how puppeteer does request interception (something with page navigation after the first intercepted request). A way around this is to use a CDP session. Here's a working example I used to grab the m3u8 from a stream:
https://gist.github.com/pironside44/307248e1c081ef4d27ec38fa0148d4d7

I used the same method as you, however I switched completly to CDP instead, with chrome-remote-interface and chrome-launcher

A tip on getting video stream requests from iframes. Iframe is a separate target in terms of CDP, so you need to attach a CDP session to the iframe. You can use browser.targets() after page is loaded, then find one you need,  attach a session to it, and intercept requests. Hope this will be helpful for newcomers to this topic.
Additional info: https://stackoverflow.com/questions/63357370/capture-requests-xhr-js-css-from-embedded-iframes-using-devtool-protocol


Add documentation for CODY_RELEASE_TYPE environment variable

This PR adds documentation for the CODY_RELEASE_TYPE environment variable to the CONTRIBUTING.md file.
The CODY_RELEASE_TYPE environment variable is required to build the extension locally successfully. It specifies the type of release, which can be either stable or insiders.
By adding this documentation, we can ensure that contributors are aware of the requirements for building the extension locally and can avoid errors during the build process.
The error that appears due to not setting the environment variable is:

Invalid release type undefined. Valid values are: ["stable","insiders"]. Specify a a release type in the CODY_RELEASE_TYPE env var.
ELIFECYCLE  Command failed with exit code 1.

Test plan
First PR

Looks good!
Yeah, it was pretty annoying to tell you to run a script, and then have that script turn around and tell you that you did it wrong.
WDYT about setting the environment variable on the line that builds the command? That is, CODY_RELEASE_TYPE=stable pnpm release:dry-run etc.? It keeps related things together, and means you won't set it and forget it.

Your solutions sound reasonable. I will change and commit.


Add validation on exists database before created

CodeIgniter don't content any methods of checking of database exists.
Please add validation on exists database before created to Forge Class by default:
protected $createDatabaseStr = 'CREATE DATABASE IF NOT EXISTS %s';

You're right, it currently doesn't, and never has if memory serves correctly. I think this is a good addition, but not going to happen until after 4.0 final, since we've hit a feature freeze until release.


添加语言支持

可以添加中文语言支持吗？

it will be asked for a support of the chinese language *
at the moment there is probably no developer who could cultivate the chinese language.
没有支持中文的开发者。*
( * Google Translator )

To be able to focus on major/current bugs I had to close all issues. The issues section has gotten very messy to a point that I couldn't follow it anymore. Most issues are duplicates, very old or are already fixed/solved. Feel free to reopen this issue if you still have this issue on the latest version of TaskbarX to get my attention. All feature requests have been put in a list here: 💡| Feature requests #870
I hope you understand ❤


[usbdev] Check deadlines for responding to back-to-back packets

This is mostly to surface potentially hazardous assumptions about the speed of the interrupt service routine. There are some cases of back-to-back packets that depend on the ISR being fast enough to respond to the first packet and modify registers in usbdev before it's time to send the appropriate response to the second packet.
Since full-speed USB isn't particularly fast, there might not be a significant danger. However, it would be prudent to look deeper at the use case and timing, then see if design changes are needed.

Back-to-back IN transactions to the same endpoint

Only one buffer can be queued at once for a given endpoint. The interrupt for the first packet's completion would fire upon delivering the ACK to the host, and the ISR would need to enqueue the next buffer before the next IN token completes.
Deadline: ~2.8 us. (2 + 8 + 8 + 16) = 34 bit times at 12 MHz. Interpacket gap + SYNC + PID + the rest of the token packet.

Back-to-back OUT transactions, where a STALL or NAK handshake is desired for the second packet

The buffer pool for RX is shared among all the endpoints, and there is no control to automatically set a STALL or NAK response for a given endpoint after the next transaction. The ISR must respond after the first transaction is received to set up a STALL or NAK response before the handshake period of the second transaction.
Deadline: ~6.58 us. (37 + 2 + 8 + 8 + 16 + 8) = 79 bit times at 12 MHz. Token packet from above (with the EOP added) + Interpacket gap + SYNC + PID + CRC16 + 1 byte of data.

@alees24 is this something that needs fixing given the comments in https://github.com/lowRISC/opentitan/issues/17239 that we'd be 'extremely unlikely' to meet these deadlines it is something we have to address?

As far as I'm aware missing these deadlines does not induce functional failures, but it is a potential issue as far as throughput is concerned, as noted in #17239. The concern is that if the host controller receives a NAK indicating that there is no new buffer available for INput, it may not retry the endpoint in question until the next (1ms) bus frame occurs, which could substantially throttle the bandwidth in the case of not managing back-to-back IN traffic.
Back-to-back OUT transactions should not be an issue w.r.t. performance and to my knowledge there is no case where failing to activate STALL/NAK response promptly leads to a functional failure.

I've locally extended the software such that it can provide new IN packets without incurring the delay of first writing the data into the usbdev buffer memory; essentially (optional) double-buffering per endpoint in an effort to reduce the latency and increase the throughput, and I'm seeing a measured 5.6us latency in Verilator chip sim at 48MHz (synchronous Ibex and usbdev), which I estimate could drop to 3.4us. That's the time from the pkt_sent signal assertion to the configin write with the new packet description.
This is still polling-based code but modified with an eye to avoiding unnecessary work, subject to the constraint that it's still using the DIF for all hardware access within that interval, and so incurs its overheads. I'd imagine any production interrupt handler would be doing a comparable amount of work to the code that's executing at the moment, minus some of the DIF overhead.
@a-will My observations in Verilator sim (with DPI model) report that we need to be sub 3.6us to achieve back-to-back transfer and stop usbdev from NAKing IN requests, so the same ball park as your estimate; kudos!
If we really had to drop the interrupt latency low enough to achieve back-to-back transfers, I'm confident that it could be achieved by more careful coding and eliminating some of the inefficiencies, but only in the event that we're not delayed by other interrupt handlers executing. Since the data we're transferring must be coming from/going to somewhere else, there will surely be other interrupt handlers executing.
From running this code on the FPGA (with a 10MHz Ibex, so there's no way that it's achieving back-to-back transfers) it does seem that the host controller makes some effort at retrying transfers during the same bus frame. I'm seeing an average of 8.9 packet transfers per bus frame from the single endpoint being used, even though a back-to-back IN attempt will have resulted in at least one NAK.
@a-will I'm not sure that I fully understand the (possible) desire for STALL/NAK handshake on a subsequent packet; I understand that the buffers have been supplied up front, and thus modification of the registers is necessary to prevent the packet arriving. Is there some danger of a functional breakage that I've missed, or just that it may complicate the software to have packets arriving and it would be desirable to hold them off?

@alees24 STALL is sometimes used as part of a higher-layer protocol atop functions (the type that sets the halt bit). There is some danger of breakage if packet acceptance is meaningful for such functions, for example, where the host incorrectly thinks data was processed.
Without help from the other software-controlled CSRs, usbdev might not have all the up-to-date info for determining how to handle the incoming packet. If the CSRs don't update fast enough, the only dynamic info would be whether a buffer is available locally for the packet in the shared free RX buffer queue. That is not always the full set of conditions.
I'm fuzzy on particular interface classes that need this, though.

estimate 16
remaining 2023-03-23 8

Update Jan-23. This should remain open. May still have impact upon USB classes/protocols. Remains to be determined if it can induce functional failures for particular USBDEV use cases. From @alees24

@a-will I had a look through the main class specifications and could not find any reference to use of 'functional stall'
If we're concerned about packets being received inappropriately, do you think there's merit to introducing a 'set_stall_out' register that holds, per endpoint, a single bit which will cause the 'out_stall' bit to be set upon receipt of an OUT packet to the endpoint in question, mimicking the way that 'set_nak_out' presently clears the 'rxenable_out' bit?
The 'set_nak_out' already gives us per-endpoint rate limiting using NAK responses, with packet level granularity, for anything that must not accept packets before it can guarantee to handle them.
This would be a low-impact change as a contingency.

@alees24 I think I might've written this issue before I introduced set_nak_out (and it may have motivated the latter). If an endpoint is using that mode (for every packet to that endpoint), it is delaying responses to each packet until software can decide whether it is allowed to accept. Then a STALL response doesn't have to be immediate.
By contrast, a set_stall_out sounds a bit like we could end up in a similar race. It wouldn't buy software substantially more time to respond, would it?
It's been awhile since I looked at usbdev, so I could be missing things, haha. However, it sounds to me like you pointed out how set_nak_out can handle this issue already.

remaining 2024-02-27 0

No requirement to change; 'set_nak_out' should be sufficient.

Based on the comment from @alees24 - reducing total effort down - 0 remaining and closing the issue.
If this should be re-opened please do so @a-will / @alees24 .
@msfschaffner


feat: ability to specify labels on connecting lines

This is possible by defining an ontology for your link and configuring plugin settings.
Markdown inline field to define the ontology:

Plugin settings:

Thanks didn't see that.

I was wondering if labels can be added by double clicking the connecting lines from withing the graph?


Frozen when using Goto declaration from a different package

When going to a declaration from a different package, nvim freezes. In the same package it does not.
I tried it with a minimal example:
➜  ~/g/s/g/g/foo cat foo.go
package foo

import "github.com/gonzaloserrano/foo/bar"

type x string

type foo struct {
	x   x
	bar bar.Bar
}
➜  ~/g/s/g/g/foo cat bar/bar.go
package bar

type Bar string
➜  ~/g/s/g/g/foo

Goto definition of x works, but freezes when goto definition of bar.Bar. Nvim becomes unresponsive and I need it to kill the process.
I'd appreciate any help to troubleshoot this.
My env:

https://github.com/LunarVim/LunarVim
I've tried neovim 0.8.1 and v0.9.0-dev-326+gfa7e1e260-dirty (brew install nvim --HEAD).
gopls:

$ gopls version
golang.org/x/tools/gopls v0.10.0
<EMAIL_ADDRESS>h1:OGrMgGUl9LWTPaeN5ML3SotSguhrdMHbWevtM8cYN6s=

I can not reproduce this issue.
The test I using
lsp_go/fun/fun.go
package fun

type Dog struct {
    name  string
    age   int
    owner string
}

func NewDog(name string, age int) *Dog {
    return &Dog{name: name, age: age}
}

lsp_go/pkg/interface.go
package pkg

import (
	"fmt"
	"math"

	"lsp_go/fun"
	//"math"
)

type geometry interface {
	area() float64
	perim() float64
}

type rect struct {
	width  float64 `-line:"width"`
	height float64 `-line:"height"`
}

type rect2 struct {
	width  int `yml:"width"`
	height int `yml:"height"`
}

func (r rect) area() float64 {
	_ = fun.NewDog("", 2)
	return r.width * r.height
}

I have no issue jumping to newDog from pkg to fun package.

Thanks! What version of nvim and gopls are you using?

neovim: I pull the master each week. So it is more of a nightly build.
I using the same version gopls as you do.
The freeze sounds like the gopls can not response your request. But as the request is async request. I see no reason it freezes the neovim.

I noticed it gets stuck even when the references are on another file of the same package 🤦
Not on the same file, though. Anyway, closing this.


More build problems

I'm trying to do "mvn package" with the latest in master, and I'm getting these errors from the spring framework stuff:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'authenticatedRestTemplateTest': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.box.l10n.mojito.rest.resttemplate.AuthenticatedRestTemplate com.box.l10n.mojito.rest.resttemplate.AuthenticatedRestTemplateTest.authenticatedRestTemplate; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'authenticatedRestTemplate': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.box.l10n.mojito.rest.resttemplate.ResttemplateConfig com.box.l10n.mojito.rest.resttemplate.AuthenticatedRestTemplate.resttemplateConfig; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'resttemplateConfig' defined in file [/Users/ehoogerbeets/src/mojito/restclient/target/classes/com/box/l10n/mojito/rest/resttemplate/ResttemplateConfig.class]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/ValidationException
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839) ~[spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538) ~[spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766) ~[spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
        at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361) ~[spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]

Any ideas? I just cloned and did "mvn package" ... is there something else I should do instead?

Actually, I have JDK 10. I just installed and tried JDK 1.8 and it got all the way through.

yes, java 7 or 8 is required. I've added that in the getting started doc but it is not very obvious, I'm gonna look if it can be specified in maven

Couldn't find a quick solution and I don't want to spend to much time on that.
For the record,

Spring Boot 2.x will no longer support Java 7 and below, being Java 8 the minimum requirement.
It’s also the first version to support Java 9. There are no plans to support Java 9 on the 1.x branch. > > This means if you want to use the latest Java release and take advantage of this framework, Spring > > Boot 2.x is your only option.

Given that, we should probably stay on java 7/8 for some time. Ideally I'd drop Java 7 to benefit from the new feature in 8 but I suppose you (@jeeyi) are still using 7. Not super urgent but it could be nice.


Fix migration information update bug when linked github account

As title.

Codecov Report

Merging #10310 into master will decrease coverage by 0.01%.
The diff coverage is 50%.

@@            Coverage Diff             @@
##           master   #10310      +/-   ##
==========================================
- Coverage   43.72%   43.71%   -0.02%
==========================================
  Files         585      585
  Lines       81016    81016
==========================================
- Hits        35423    35413      -10
- Misses      41208    41215       +7
- Partials     4385     4388       +3

Impacted Files
Coverage Δ

services/pull/commit_status.go
5.19% <0%> (ø)
:arrow_up:

modules/templates/helper.go
40.73% <100%> (ø)
:arrow_up:

services/pull/check.go
32.92% <0%> (-5.49%)
:arrow_down:

modules/git/command.go
86.95% <0%> (-2.61%)
:arrow_down:

services/pull/temp_repo.go
29.05% <0%> (-2.57%)
:arrow_down:

services/pull/patch.go
60.37% <0%> (-2.52%)
:arrow_down:

services/pull/pull.go
32.43% <0%> (-1.51%)
:arrow_down:

modules/indexer/stats/db.go
50% <0%> (ø)
:arrow_up:

modules/git/repo.go
47.7% <0%> (+0.91%)
:arrow_up:

modules/queue/workerpool.go
60.14% <0%> (+2.13%)
:arrow_up:

... and 2 more

Continue to review full report at Codecov.

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

Please send backport :)

@techknowlogick Just found migrating reviews and reactions are supported on v1.12. So I removed backport/v1.11 label.


Where find doc of "paybyphoneapis.com"

I would like contribute to the project. I'm trying to understand the code base. I see paybybot3 use paybyphoneapis.com.
But I don't find any information about paybyphoneapis.com on Google . Is it a official REST API provided by PayByPhone? Where I can find a documentation about how using this API?

There is no documentation for this seen that this is not an official API. Code is from a reverse engineering process.
Closing.

If the maintainer of the website paybyphoneapis.com doesn't provide any documentation for his API, do you have some recommendation if I would like extends some functionnality of paybybot3?

?
paybyphoneapis.com is owned and maintained by PayByPhone company, not by unknown people. Users credentials goes to official PayByPhone API as it would do if user would use the official app.


Feature Request: Add mutable abs_repo_base to packs actions

It would be nice to select an alternative install location for st2 pack install.
I added another directory to st2.conf > [content] > packs_base_paths that I would like to use for a private set of packs. https://github.com/StackStorm/st2/blob/55e3b02b9b06720129e14316c21cff0cf7619b87/conf/st2.conf.sample#L90-L91
These private packs have ansible playbooks in them, but there's no easy way to determine whether they are in a packs.dev folder during development (like on docker) or somewhere else (like the folder that I want to put them in). So, I have a datastore key where I list the folder that contains these packs. I would prefer to keep these packs, and the playbooks that are tightly coupled to specific StackStorm actions, outside of /opt/stackstorm.
The download action has an abs_repo_base parameter: https://github.com/StackStorm/st2/blob/55e3b02b9b06720129e14316c21cff0cf7619b87/contrib/packs/actions/download.yaml#L13-L16
Could that be marked as not immutable? And can we add that parameter to packs.install?

+1
I also need this feature since I run stackstorm in a docker container and would like custom packs to be stored in an external volume mounted at container startup time.

With #3658 all packs now have a 'path' attribute so that the pack knows where it is installed. That's a good step in the direction of supporting alternative install locations.


Add --progressive-volume option. Increase volume slowly at low level,…

… faster at higher level
I use a Raspberry pi with a hifiberry.  I installed run OSMC (includes Kodi) on it and added librespot. The volume control of librespot is very dfferent from Kodi. In the first 5 percent of the volume level in librespot, the volume increases very fast to about the same level Kodi has at 50%. That is what I try to solve here.
I'm not a mathematic, so I implemented some 'by trial' algorithm.
Note: I did not know how to test the handle_volume_up() and handle_volume_down() functions in spirc.rs.

Hey, @sashahilton00, @thekr1s .
I know this PR is quite old but I just migrated from original project to this fork.
I am using Raspberry pi 3 and controlling the volume through either mac or windows spotify player. Now the first 90% of volume almost doesnt differ and the last 10% are responsible for the volume. It makes it look quite silly when you try to control the volume and a single percent has su a huge impact. At least adding back the flag to revert the behaviour would be welcome. Also @thekr1s, relevant xkcd https://xkcd.com/1172/ . If you change something without a way to keep using old flow you will always break it for somebody.

What do you mean? This new functionality is behind a flag...

@kingosticks, alright. Sorry, then something has changed in the implementation of the project itself.
I will try to inspect it then

I was afraid of that. I will add an option to get the old volume control back.

@thekr1s, It is all good. Things sometime happen. I understand that for some people this PR was necessary. :) Thank you in advance.

Knew there was someone out there using linear volume still ;) Are you ok to create the PR or do you want me to?

Never wrote a single line of rust :)
If you have some free time it would be faster for you. If not I will try to find some time in the next few days :)

I actually meant @thekr1s :) @thekr1s if you are creating the PR can you move the volume level logic into a function something like get_volume_level which returns the volume level depending on whether the user wants linear or logarithmic, so we can just have one check for the runtime flag in that function, and not a bunch of them wherever there is a volume_to_mixer call.

I have created issue https://github.com/librespot-org/librespot/issues/187 for this


chore: clean up system monitor

Description

Merge after #8461.

[ ] I updated CHANGELOG.md, or it's not applicable

Testing
How was this PR tested?

i think you can merge it into #8463  and then merge #8463 into main


CAPT-1751 Move production env variables into code

Changes in this PR
Following on from: https://github.com/DFE-Digital/claim-additional-payments-for-teaching/pull/2971
Move non-secret variables into code.

@AbigailMcP I presume it's mostly copy and paste, just my OCD, some have trailing slashes and some don't wondering if they need them, I guess if they use plain old string concatenation it could cause issues if we remove/add them for consistency.

I'll test out removing the trailing slashes today on the test env.

@AbigailMcP I presume it's mostly copy and paste, just my OCD, some have trailing slashes and some don't wondering if they need them, I guess if they use plain old string concatenation it could cause issues if we remove/add them for consistency.

@kenfodder I tested removing the trailing slash from TID_BASE_URL and it broke the DfE Identity Sign In... so I'm leaving them copy-and-pasted as is!


Update stats wiki page

Add new versions to the graph. https://github.com/zsh-users/antigen/wiki/Stats-comparative

See here and here for source.

Done!


DBUpdater crash after Update to 19.2.402.0

After Upgrade to 19.2.402.0 DBUpdater Crash

does it work in an empty xaf project where the crashed module is registered?

Closing issue for age. Feel free to reopen it at any time.
.Thank you for your contribution.


Shared disk doesnt support VM Backup as well as Azure Site Recovery

This example is for a fail-over cluster migration to Azure which uses a shared disk. Post migration best practices section is generic for an individual server and not for clusters that use shared disks, as it doesn't take into account the limitations of VM's using shared disk such as they don't support Azure VM backup, but just disk backup. Also from BCDR perspective, they don't support ASR, so it is a kind of a key limitation, unless customers accept just Disk backup as an acceptable Backup and DR alternative.
Please update the article to correct the generic best practices as highlighted above.
Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: a6285098-c9ae-46a0-3279-a57b25448457
Version Independent ID: d6fcae38-6ca7-2b3f-1ed2-3fbd1df9a877
Content: Migrate failover cluster instance - SQL Server on Azure VMs
Content Source: azure-sql/migration-guides/virtual-machines/sql-server-failover-cluster-instance-to-sql-on-azure-vm.md
Service: virtual-machines-sql
Sub-service: migration-guide
GitHub Login: @rwestMSFT
Microsoft Alias: randolphwest

@kartikesh95
Thanks for your feedback! We will investigate and update as appropriate.

@kartikesh95 Given your depth of knowledge, a pull request to update the article would be appreciated.

@kartikesh95 I was able to use your PR and give you the appropriate credit.
Once the PR is approved and merged, this issue will automatically close, and then you will see the revised article within a day or so from then.

@rwestMSFT
Thanks for your contribution.

@kartikesh95
Thanks for reporting this! @rwestMSFT has created a PR for this issue and the changes should go live soon.


Clean and improve common fit functions

Ramsey and Rabi for 2D sweeps

@dieris I'm going to assume we're working off of #64 now.


Separate display and submission formats

It would be great if I could show the user dates in dd/MM/yyyy but submit the form values as yyyy-MM-dd
Is this possible?

Yes, the datepicker models the value as a regular js Date object.
Just format it how you want before sending.
${date.getFullYear()}-${('0'+(date.getMonth()+1)).slice(-2)}-${date.getDate()}


ssh connection freezes after some commands

Windows Version
Microsoft Windows [Version 10.0.22621.3880]
WSL Version
<IP_ADDRESS>
Are you using WSL 1 or WSL 2?

[X] WSL 2
[ ] WSL 1

Kernel Version
<IP_ADDRESS>-microsoft-standard-WSL2+
Distro Version
Ubuntu 22.04
Other Software
No response
Repro Steps
From a WSL bash prompt, try to run two commands using ssh.  For 966 bytes, the command completes, but for 967 bytes, it hangs and has to be interrupted.
john@R9:~$ ssh p710.local "bash -c 'dd if=/dev/zero bs=966 count=1 2>/dev/null | base64'"
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
john@R9:~$ ssh p710.local "bash -c 'dd if=/dev/zero bs=967 count=1 2>/dev/null | base64'"
^C

Running locally, there is no problem:
john@R9:~$ bash -c 'dd if=/dev/zero bs=967 count=1 2>/dev/null | base64'
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==

Expected Behavior
Commands run via ssh in WSL should not hang.
Actual Behavior
Some ssh commands hang indefinitely and must be interrupted with Ctrl-C.  It seems to be related to the length of the output.
The same command completes successfully when run locally in WSL or via ssh to the same remote host from a Windows Command Prompt.   Other commands also hang when run through ssh, including ls /tmp and df -h.
These same commands also hang if I start an interactive ssh session from WSL and run them in the remote shell.  I can start a remote shell with ssh in Windows Command Prompt and run the commands interactively.
Diagnostic Logs
Sorry, I don't have anything, but I'm happy to collect some if it would help.

My issue was resolved by adjusting the MTU of eth0 in WSL, as suggested by this comment.

Actually, I found that switching the drivers for my Mellanox ConnectX-5 network interface from the built-in Windows 11 drivers to the nVidia drivers, I no longer have to adjust MTU for WSL networking to function properly.


Hierarchical configuration and property placeholders with jdbc backend

Description:
Consider following configuration hierarchy which I have for my cloud config server:

application.properties

[directory] dev                               <--   environment dev

application-dev.properties
[directory] microservice-1              <--- microservice

microservice-dev.properties

[directory] qa                               <--   environment qa

application-qa.properties
[directory] microservice-1              <--- microservice

microservice-qa.properties

I have the flexibility of having property placeholders and common configuration with the above hierarchy
Example :

application.properties  : has common configuration across the microservices for all environments.
application-dev.properties : has common configuration across microservices for dev environment.
microservice-dev : has specific configuration for microservice for dev environment

In case of override of properties with same key the service specific values are resolved.
Also it is possible to have placeholders to have values from other keys.
Question/Enhancement:
Usually the searchPaths configuration in spring.cloud.config is used to do this when the backend is git.
I would like to achieve the same thing using Jdbc backend, But seems like it is currently not possible.
Is there a workaround or is this already in future scope ?

I tried property placeholder with jdbc backend and that works fine.