AnalyticsAdminServiceClient.create should not requires users to install Developer Tools

This is a re report of #8892 with a bit more context.
Our product, Screaming Frog SEO Spider, integrates with Google Analytics 4. When users authorise they get the following pop up, shown here with our application for context:

This is confusing for users - they have no idea what "install_name_tool" is and why they would need it. If they accept this dialog Command Line Tools is installed. If they click cancel they can continue and everything works as expected.
However, we have had 3 users who have experienced a crash at this point. This is not a crash in Java application code, but in some native code causing a JVM exit, triggering a send to Apple dialog. We have logs for 2 of these cases:

103165.txt
104866.txt

Asking users to uninstall Command Line Tools resolved the issue in both cases, we are still waiting on feedback from the third.
For us it's unexpected behaviour for the AnalyticsAdminServiceClient to be triggering/requiring the installation of Command Line Tools, and a further issue that this sometimes crashes.

@ejona86 This appears to be connected to gRPC. Have you seen something like this before?

Thanks, @ejona86! @liamsharp I will close this, since there's nothing we can do on our side.

Thanks for looking into this @meltsufin and @ejona86, much appreciated.
This unfortunately leaves us in a difficult situation with customers, which is likely to get worse as more users move over from Universal Analytics (Due to be deprecated in July 2023) and move over to Google Analytics 4. The popping up of the dialog is annoying, but the crashing is a huge issue. Some customers will contacts us, others will just give up. Those that do contact us, it's likely to be time consuming on both sides to get Command Line Tools installed and working for them.
When we are faced with a similar situation with a dependency of our product causing issues for customers that can't be fixed, we look for an alternative. In this case we have no other option other than to use Googles official Java client. Is there an alternative that you can use to the netty library to solve this issue? If not, are we saying that Google can't really support GA4 for Java on macOS?

@liamsharp Would you be able to open a Google Cloud Support ticket so that your issue can go through the proper channels? Thanks!

@meltsufin thanks again for coming back to me, really appreciate it. I'm finding it hard to work out exactly where I should file this - I've landing on this page https://cloud.google.com/support/docs/issue-trackers which has lots of different issue trackers listed, could you point me at the correct one please?

You could start here.

Thanks @meltsufin - that just leads us to the same list I mentioned before. I contacted Sales on that page, to see if they can advise and I'm now waiting on them to email and suggest next steps.

Setting -Dio.grpc.netty.shaded.io.netty.native.tryPatchShadedId=false stops the pop up happening, and thus hopefully stops any further crashes.

@liamsharp Thanks for the update! This will be useful for anyone coming across this issue in the future!


Extend AssetLoader to support more features of anim8 library

The anim8 library has a ton of features of which many would be useful for us to have in our AssetLoader.

[ ] Frame display time
[ ] Frame by frame display time
[ ] End animation on finish
[ ] Bounce back and forth between frames

This is good, and we'll run aground of it when we start implementing animations in the game. I'll keep this off of the Milestone track for now though.


Segmentation Fault (Core Dumped)

I try to start the command to see the rendered result, However I get the trouble above.
I have no idea about it, how should i work it out?
Thanks~

Hi， have you solved this problem? I have the same issue.

Hi， have you solved this problem? I have the same issue.

Actually NO. This situation happened when I use the remote server, I am not sure whether it has some relationship with it. How about u?

Hello, I also encountered the same issue. Have you found a solution?

maybe you should use CUDA>=11.1


Appveyor build failure

Causes lots of Appveyor builds to fail right at the start:
Build started
git clone -q https://github.com/quasar-analytics/quasar.git C:\projects\quasar
git fetch -q origin +refs/pull/3138/merge:
git checkout -qf FETCH_HEAD
IF "%APPVEYOR_PULL_REQUEST_NUMBER%"=="" (.\sbt clean)
.\sbt ++"2.11.8" test:compile
BITSADMIN version 3.0 [ 7.7.9600 ]
BITS administration utility.
(C) Copyright 2000-2006 Microsoft Corp.
BITSAdmin is deprecated and is not guaranteed to be available in future versions of Windows.
Administrative tools for the BITS service are now provided by BITS PowerShell cmdlets.
Transfer complete.
Error while downloading https://oss.sonatype.org/content/repositories/releases/io/get-coursier/coursier-cli_2.11/1.0.0-RC13/coursier-cli_2.11-1.0.0-RC13-standalone.jar: C:\Users\appveyor\AppData\Local\Coursier\cache\v1\.structure.lock (The system cannot find the path specified), ignoring it
Command exited with code 1

Restarting the build doesn't help

Anyone object to merging PRs even if AppVeyor is failing for the time being.
This has happened on every single of my PRs pretty much.

Same here.
Yeah, I think most people are ignoring AppVeyor builds right now


Tests fail on .NET Framework 4.6.1: IIS Express fails to start

To repro:
build.cmd
Error
Failed   Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests.NtlmAuthenticationTests.NtlmAuthentication_Clr_X64
Error Message:
 System.InvalidOperationException : Failed to start IIS Express

Starting IIS Express ...
Initializing the W3 Server Started CTC = 125077906
W3 Server initializing WinSock.  CTC = 125077906
W3 Server WinSock initialized.  CTC = 125077906
W3 Server ThreadPool initialized (ipm has signalled).  CTC = 125077906
Failed processing with hr = 800700c1
Error loading global modules.  hr = 800700c1
Terminating W3_SERVER object
Start listenerChannel http:0
Initializing the W3 Server Started CTC = 125079031
W3 Server initializing WinSock.  CTC = 125079046
W3 Server WinSock initialized.  CTC = 125079046
W3 Server ThreadPool initialized (ipm has signalled).  CTC = 125079046
Failed processing with hr = 800700c1
Error loading global modules.  hr = 800700c1
Terminating W3_SERVER object
InitComplete event signalled
Process Model Shutdown called
Unable to start iisexpress.

OS
Windows 10.0.16299 (Windows insiders build)
.NET Framework version: 4.7.1
Let me know if you want more logs or info to try and repro.

I'm not seeing this test fail locally. @Tratcher though it is most likely an AMCM dependency, have you ever run into tests failures when running on full framework?

The old tests were working fine on full framework.

This is still consistently failing for me. Have you seen this on other machines in the last month? If not, it might be bad machine state.

I haven't still. I am not sure what is causing this regression. I have seen it on my machine in the past.

This fails in the same way on our Win10 agent, so I think we have strong evidence for a "bad machine state" problem.

What version of Win 10 is that agent using? I wonder if this is related to the fall creator update?

It is using the fall creators update, though I believe I saw this fail before locally on my machine. It's an issue with either dotnet publish or the IISExpress deployer in hosting.

Issue fixed with https://github.com/aspnet/Hosting/commit/9f1e6607dd1b3d15bc6c42146629677c6b455fd0 because of net471 issues (net471 implementation of IsOS64bit is incorrect for some reason).


Kiosk page version 2

Put in the updated version of ./docs/kiosk.md and related images.
Pending actions:

[ ] Insert share dialog image with updated kiosk button and circle it.
[ ] Insert share dialog image with updated kiosk button and Kiosk ID typed in.
[ ] Rename kiosk-v2.md to kiosk.md before merging.

Closes #5554

Alrighty, I have the images here for you @ganicke -


VF-ttf goes from ~330kb to ~3mb after simple addFeatureVariation

This seems excessive.
Archive.zip

You need to use only one substitution dict per condition:
### Based on a script by Stephen Nixon

import os
import sys
import fontTools
from fontTools.ttLib import TTFont
from fontTools.varLib.featureVars import addFeatureVariations

inputTTF = sys.argv[1]
# style = sys.argv[2]

f = TTFont(inputTTF)

condSubst = [
    ([{"wght": (0.158, 0.564)}], {"uniF8FF": "uniF8FF.001"}),
	([{"wght": (0.564, 1)}], {"Adieresis.titl": "Adieresis.titl.136_230",
	                          "Udieresis.titl": "Udieresis.titl.136_230"}),
    ([{"wght": (0.424, 1)}], {"Odieresis.titl": "Odieresis.titl.106_230"}),
    ([{"wght": (0.868, 1)}], {"uni20B5": "uni20B5.201_230",
                              "cent": "cent.201_230",
                              "colonmonetary": "colonmonetary.201_230",
                              "dollar": "dollar.201_230",
                              "uni20B2": "uni20B2.201_230",
                              "dollar.tf": "dollar.tf.201_230",
                              "cent.tf": "cent.tf.201_230"}),
    ([{"wght": (0.71, 1)}], {"uni20A6": "uni20A6.169_230",
                             "peseta": "peseta.169_230",
                             "uni20A9": "uni20A9.169_230"}),
    ([{"wght": (0.564, 1)}], {"uni20B1": "uni20B1.136_230"}),
    ([{"wght": (0.424, 1)}], {"uni2761": "uni2761.79_230",
                              "paragraph": "paragraph.79_230"}),
]

addFeatureVariations(f, condSubst)

outputTTF = inputTTF.replace('.ttf', '-swap.ttf')
f.save(outputTTF)

This adds a mere 2336 bytes to the font.
This could possibly be automated by addFeatureVariations(). Let's keep this issue open.

I see, thank you for the explanation!

Yeah the space partition code should be smarter.
Even without space partitioning, maybe we should just hack the current code to merge same ranges.

Yes, I'll work on a PR, shouldn't be too hard.

Done already. :)

Awesome, thanks :)


Some questions about  ”# to add current directory to python path run“

Hello, I am very interested in your work! But I had some problems when I reappeared. In # to add current directory to python path run, I found my path_to_env, but after adding it,
”echo $PWD > </home/anaconda3/envs/pt/lib/python3.7/site-packages/simsg.pth“
While I was training, the problem of "Modulenotfounderror: no module named' scripts. train'" still appeared. Has anyone ever encountered the same problem? How should it be solved?
Looking forward to hearing from you very much

Hi there,
You should remove the "<" around the python path. It was just there to indicate that you set your own python_path. Try this:
echo $PWD > /home/anaconda3/envs/pt/lib/python3.7/site-packages/simsg.pth

Thank you very much for your reply!
I followed your prompt to add the current directory to the python path to run, but now the problem seems to have not been solved:
from scripts.train import argument_parser
ModuleNotFoundError: No module named 'scripts.train'
Do you know what went wrong?

Hello, I checked simsg.pth again just now. It is really under the correct path, and it contains the path information "/home/zlq/simsg", which corresponds to the path content under my file. But now the problem has not been solved.

I see.. are you sure that you are using python 3.7 in your environment, like the path indicates?

Hello! I just checked the environment configuration, using python3.7.7 version

Hello! I just checked the environment configuration, using python3.7.7 version

I meet the same issue. Did you solve it?

Hello! I just checked the environment configuration, using python3.7.7 version

I meet the same issue. Did you solve it?


Run Docker registry in kubernetes using SSL certificates

I have a problem. I am trying to run a private docker registry on my server in kubernetes. To do this, I am using Ingress-Nginx with a LetsEncrypt issuer. I have setup the Ingress resource and the LetsEncrypt issuer has succesfully obtained a certificate. After that I ran the following 3 commands:
kubectl get secret project-docker-tls -n project-utility \
  -o jsonpath='{.data.tls\.crt}' | base64 --decode > /mnt/data/project/docker-registry/certs/tls.crt

kubectl get secret project-docker-tls -n project-utility \
  -o jsonpath='{.data.tls\.key}' | base64 --decode > /mnt/data/project/docker-registry/certs/tls.key

kubectl create secret generic docker-registry-certs \
  --from-file=tls.crt=/mnt/data/project/docker-registry/certs/tls.crt \
  --from-file=tls.key=/mnt/data/project/docker-registry/certs/tls.key \
  --namespace project-utility

This creates a secret using the obtained certificate so that I can use that in my private docker registry deployment. The deployment has the following config:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: private-docker-registry
  namespace: project-utility
  labels:
    app: private-docker-registry
spec:
  replicas: 1
  selector:
    matchLabels:
      app: private-docker-registry
  template:
    metadata:
      labels:
        app: private-docker-registry
    spec:
      containers:
      - image: registry:2
        name: private-docker-registry
        imagePullPolicy: IfNotPresent
        ports:
        - name: docker
          containerPort: 443
        env:
        - name: REGISTRY_HTTP_ADDR
          value: <IP_ADDRESS>:443
        - name: REGISTRY_HTTP_TLS_CERTIFICATE
          value: /certs/tls.crt
        - name: REGISTRY_HTTP_TLS_KEY
          value: /certs/tls.key
        volumeMounts:
        - mountPath: /var/lib/registry
          name: registry-dir
        - mountPath: /certs
          name: registry-certs
          readOnly: true
      volumes:
      - name: registry-dir
        hostPath:
          path: /mnt/data/project/docker-registry/images
      - name: registry-certs
        secret:
          secretName: docker-registry-certs

Now I would expected that when I deploy this the docker registry would be live under https, but when I try to reach the site, I get a HTTP ERROR 400. Using Postman I get to see more of the issue: Client sent an HTTP request to an HTTPS server.. Why is this registry still not running in https. I am forwarding the Ingress traffic over port 443, then my service will forward the same traffic to the deployment-app, with both port and targetPort set to 443.
I did go into the pod using SSH and checked if the certs where actually there, and they are! This cluster runs behind a reverse proxy which also has letsencrypt certficiates on a different server. That server redirects all traffic to the server where I am running my cluster on. This means that there are 2 sets of certificates, but I have never had problems with this setup and all my other domains are SSL secured correctly!
This is the logfile of the running deployment:
time="2023-02-03T18:05:08.9413721Z" level=warning msg="No HTTP secret provided - generated random secret. This may cause problems with uploads if multiple registries are behind a load-balancer. To provide a shared secret, fill in http.secret in the configuration file or set the REGISTRY_HTTP_SECRET environment variable." go.version=go1.16.15 instance.id=6ef19c75-24f3-487c-85c0-9b77b3157d91 service=registry version="v2.8.1+unknown"
time="2023-02-03T18:05:08.941420813Z" level=info msg="redis not configured" go.version=go1.16.15 instance.id=6ef19c75-24f3-487c-85c0-9b77b3157d91 service=registry version="v2.8.1+unknown"
time="2023-02-03T18:05:08.941460195Z" level=info msg="Starting upload purge in 57m0s" go.version=go1.16.15 instance.id=6ef19c75-24f3-487c-85c0-9b77b3157d91 service=registry version="v2.8.1+unknown"
time="2023-02-03T18:05:08.949181275Z" level=info msg="using inmemory blob descriptor cache" go.version=go1.16.15 instance.id=6ef19c75-24f3-487c-85c0-9b77b3157d91 service=registry version="v2.8.1+unknown"
time="2023-02-03T18:05:08.949362477Z" level=info msg="restricting TLS version to tls1.2 or higher" go.version=go1.16.15 instance.id=6ef19c75-24f3-487c-85c0-9b77b3157d91 service=registry version="v2.8.1+unknown"
time="2023-02-03T18:05:08.949412205Z" level=info msg="restricting TLS cipher suites to: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_AES_128_GCM_SHA256,TLS_CHACHA20_POLY1305_SHA256,TLS_AES_256_GCM_SHA384" go.version=go1.16.15 instance.id=6ef19c75-24f3-487c-85c0-9b77b3157d91 service=registry version="v2.8.1+unknown"
time="2023-02-03T18:05:08.94967035Z" level=info msg="listening on [::]:443, tls" go.version=go1.16.15 instance.id=6ef19c75-24f3-487c-85c0-9b77b3157d91 service=registry version="v2.8.1+unknown"

What am I missing here?

Nevermind, the problem was in the Ingress resource, which forwarded all traffic within the network to HTTP protocol. I added nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" and now everything works!


Ingestor testing environment

Currently the ingestor is tested on the production environment. As it is a critical component of the ESS FAIR data system, we need to set up a CI/CD pipeline.
Automated testing is the first step towards it.
The next image should be a good representation at high level of what is needed for testing.

@nitrosx I'm not sure if you want a monitor or a test from this.

We can probably do sth similar to ECDC integration tests
https://gitlab.esss.lu.se/ecdc/ess-dmsc/kafka-to-nexus/-/blob/main/.gitlab-ci.yml?ref_type=heads#L151-179


Clean up some misc things in the homepage

some
 tags were unnecessary

 tags should be written out as such, not with an additional slash
an empty comment was removed

Oops, didn't realize there wasn't a LICENSE in this repo. Consider this PR blocked until there is one - please don't submit.

I've added the MIT license to this repository. Can I merge in this pull request now?

Yep, thanks!


Private DNS Resolver

Hi,
Just noticed that there isn't a resource abbreviation for DNS Private Resolver yet. Is this something you'll be adding to the document soon?
Thanks

It would be great if you could add a link to the documentation you are taking a look? This would help us to understand. Thanks!!

Closing because the document where the improvement was proposed it is not identified.
#please-close

DNS Private Resolver is now on the abbreviations list - I added it a few weeks ago - thanks for pointing it out!
cc: @v-fearam


Feature/add space prop channel value

Fixes PXBLUE-2442.

Changes proposed in this Pull Request:

[X] Add unitSpace prop with auto, show, hide. Default auto.
[X] Add knob in with full config storybook
[X] Update testcases.
[X] Update changelog

Screenshots:

To Test:

Storybook URL
http://localhost:6006/?path=/story/components-channel-value--with-full-config

Would you please also update the storybook channel value anatomy to this pic?

Would you please also update the storybook channel value readme anatomy to this pic?


Can't initiate the plugin.  jQuery(...).gridstack is not a function in my angular  5 project

ERROR TypeError: jQuery(...).gridstack is not a function
at GridStackComponent.ngAfterContentInit (index.js?4484:244)
at callProviderLifecycles (core.js?593e:12684)
at callElementProvidersLifecycles (core.js?593e:12658)
at callLifecycleHooksChildrenFirst (core.js?593e:12641)
at checkAndUpdateView (core.js?593e:13791)
at callViewAction (core.js?593e:14138)
at execComponentViewsAction (core.js?593e:14070)
at checkAndUpdateView (core.js?593e:13793)
at callViewAction (core.js?593e:14138)
at execEmbeddedViewsAction (core.js?593e:14096)

Hi ! Same issue here
core.es5.js:1020 ERROR ReferenceError: jQuery is not defined
    at GridStackComponent.webpackJsonp.538.GridStackComponent.ngAfterContentInit (index.js:244)
    at callProviderLifecycles (core.es5.js:11170)
    at callElementProvidersLifecycles (core.es5.js:11147)
    at callLifecycleHooksChildrenFirst (core.es5.js:11131)
    at checkAndUpdateView (core.es5.js:12254)
    at callViewAction (core.es5.js:12599)
    at execComponentViewsAction (core.es5.js:12531)
    at checkAndUpdateView (core.es5.js:12257)
    at callViewAction (core.es5.js:12599)
    at execEmbeddedViewsAction (core.es5.js:12557)

My code :
dashboard.component.ts :
import { Component, OnInit, ViewChildren, QueryList, ViewChild, ChangeDetectorRef } from '@angular/core';
import { GridStackItem, GridStackOptions, GridStackItemComponent, GridStackComponent} from 'ng4-gridstack';

@Component({
    selector: 'app-dashboard',
    templateUrl: './dashboard.component.html',
    styleUrls: ['./dashboard.component.scss']
})
export class DashboardComponent implements OnInit {
    public alerts: Array<any> = [];
    public sliders: Array<any> = [];

    public widget= new GridStackItem();
    @ViewChild('gridStackMain') gridStackMain: GridStackComponent;
    options: GridStackOptions = new GridStackOptions();

    constructor() {

    }
    ngOnInit() {
        this.widget.width = 6;
        this.widget.height = 4;
        this.widget.x = 0;
        this.widget.y = 0;
    }

}

My html file :
<grid-stack #gridStackMain class="grid-stack" [options]="options">
    <grid-stack-item [option]="widget" class="grid-stack-item"  >
        blahhh
    </grid-stack-item>
  </grid-stack>

Hi, have you included the gridstack.full.min.js in your project index.html
or angular-cli.json or angular.json
On Wed, Sep 12, 2018 at 6:34 PM jessica curpen<EMAIL_ADDRESS>wrote:

Hi ! Same issue here
core.es5.js:1020 ERROR ReferenceError: jQuery is not defined
at GridStackComponent.webpackJsonp.538.GridStackComponent.ngAfterContentInit (index.js:244)
at callProviderLifecycles (core.es5.js:11170)
at callElementProvidersLifecycles (core.es5.js:11147)
at callLifecycleHooksChildrenFirst (core.es5.js:11131)
at checkAndUpdateView (core.es5.js:12254)
at callViewAction (core.es5.js:12599)
at execComponentViewsAction (core.es5.js:12531)
at checkAndUpdateView (core.es5.js:12257)
at callViewAction (core.es5.js:12599)
at execEmbeddedViewsAction (core.es5.js:12557)
My code :
dashboard.component.ts :
import { Component, OnInit, ViewChildren, QueryList, ViewChild, ChangeDetectorRef } from '@angular/core';
import { GridStackItem, GridStackOptions, GridStackItemComponent, GridStackComponent} from 'ng4-gridstack';
@Component({
selector: 'app-dashboard',
templateUrl: './dashboard.component.html',
styleUrls: ['./dashboard.component.scss']
})
export class DashboardComponent implements OnInit {
public alerts: Array = [];
public sliders: Array = [];
public widget= new GridStackItem();
@ViewChild('gridStackMain') gridStackMain: GridStackComponent;
options: GridStackOptions = new GridStackOptions();

constructor() {

}
ngOnInit() {
    this.widget.width = 6;
    this.widget.height = 4;
    this.widget.x = 0;
    this.widget.y = 0;
}

}
My html file :
<grid-stack #gridStackMain class="grid-stack" [options]="options">
<grid-stack-item [option]="widget" class="grid-stack-item"  >
blahhh

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ramyothman/ng4-gridstack/issues/4#issuecomment-420714588,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACnlBJ01V1zm0ZZ1X_xgPqXA5So5mNARks5uaTepgaJpZM4WYYU6
.

Hi! Same issue here
I have added reference to jQuery, lodash and gridstack.all.js as follows
<script src="assets/vendor_scripts/jquery.min.js"></script>
  <script src="assets/vendor_scripts/lodash.min.js"></script>
  <script src="assets/vendor_scripts/gridstack.all.js"></script>

gridstack.all.js:8 Uncaught ReferenceError: jQuery is not defined
    at gridstack.all.js:8
    at gridstack.all.js:8
(anonymous) @ gridstack.all.js:8
(anonymous) @ gridstack.all.js:8
core.js:13606 Angular is running in the development mode. Call enableProdMode() to enable the production mode.
DashboardComponent.html:46 ERROR ReferenceError: jQuery is not defined
    at GridStackComponent.push../node_modules/ng4-gridstack/index.js.GridStackComponent.ngAfterContentInit (index.js:244)
    at callProviderLifecycles (core.js:18847)
    at callElementProvidersLifecycles (core.js:18828)
    at callLifecycleHooksChildrenFirst (core.js:18818)
    at checkAndUpdateView (core.js:19749)
    at callViewAction (core.js:19986)
    at execComponentViewsAction (core.js:19928)
    at checkAndUpdateView (core.js:19751)
    at callViewAction (core.js:19986)
    at execEmbeddedViewsAction (core.js:19949)

Please Uwe the new library ngx-gridstack
On Thu, Nov 22, 2018, 13:45 Milan Stamenkovic<EMAIL_ADDRESS>wrote:

Hi! Same issue here
I have added reference to jQuery, lodash and gridstack.all.js as follows

gridstack.all.js:8 Uncaught ReferenceError: jQuery is not defined
at gridstack.all.js:8
at gridstack.all.js:8
(anonymous) @ gridstack.all.js:8
(anonymous) @ gridstack.all.js:8
core.js:13606 Angular is running in the development mode. Call enableProdMode() to enable the production mode.
DashboardComponent.html:46 ERROR ReferenceError: jQuery is not defined
at GridStackComponent.push../node_modules/ng4-gridstack/index.js.GridStackComponent.ngAfterContentInit (index.js:244)
at callProviderLifecycles (core.js:18847)
at callElementProvidersLifecycles (core.js:18828)
at callLifecycleHooksChildrenFirst (core.js:18818)
at checkAndUpdateView (core.js:19749)
at callViewAction (core.js:19986)
at execComponentViewsAction (core.js:19928)
at checkAndUpdateView (core.js:19751)
at callViewAction (core.js:19986)
at execEmbeddedViewsAction (core.js:19949)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ramyothman/ng4-gridstack/issues/4#issuecomment-441019835,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACnlBK3rQVYasqgzNba_gYII5zqFnLAWks5uxpxPgaJpZM4WYYU6
.


HADOOP-16380: test to show that it is the root directory where the "tombstone problem" can be replicated

You don't get it on deeper paths because the full prefix is returned "/test/dir/deleted", which doesn't match the short name of a tombstone.
this helps explain why we only see it on the root dir tests.
Change-Id: I6e00b39684b7f3ff76eb84ee877128fa01c0f2bc
This is not the fix
This test replicates the problem as seen in the IDE when debugging root dir test failures

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
165
Docker mode activated.

_ Prechecks _

+1
dupname
0
No case conflicting files found.

+1
@author
0
The patch does not contain any @author tags.

+1
test4tests
0
The patch appears to include 2 new or modified test files.

_ trunk Compile Tests _

+1
mvninstall
1399
trunk passed

+1
compile
36
trunk passed

+1
checkstyle
22
trunk passed

+1
mvnsite
41
trunk passed

+1
shadedclient
807
branch has no errors when building and testing our client artifacts.

+1
javadoc
28
trunk passed

0
spotbugs
69
Used deprecated FindBugs config; considering switching to SpotBugs.

+1
findbugs
66
trunk passed

_ Patch Compile Tests _

+1
mvninstall
33
the patch passed

+1
compile
30
the patch passed

+1
javac
30
the patch passed

+1
checkstyle
18
the patch passed

+1
mvnsite
35
the patch passed

+1
whitespace
0
The patch has no whitespace issues.

+1
shadedclient
843
patch has no errors when building and testing our client artifacts.

+1
javadoc
23
the patch passed

+1
findbugs
65
the patch passed

_ Other Tests _

+1
unit
282
hadoop-aws in the patch passed.

+1
asflicense
28
The patch does not generate ASF License warnings.

4032

Subsystem
Report/Notes

Docker
Client=18.09.7 Server=18.09.5 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1079/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/1079

JIRA Issue
HADOOP-16380

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle

uname
Linux ebf201665f4f 4.15.0-52-generic #56-Ubuntu SMP Tue Jun 4 22:49:08 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
personality/hadoop.sh

git revision
trunk / 9cec023

Default Java
1.8.0_212

Test Results
https://builds.apache.org/job/hadoop-multibranch/job/PR-1079/1/testReport/

Max. process+thread count
318 (vs. ulimit of 5500)

modules
C: hadoop-tools/hadoop-aws U: hadoop-tools/hadoop-aws

Console output
https://builds.apache.org/job/hadoop-multibranch/job/PR-1079/1/console

versions
git=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1

Powered by
Apache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

thanks Steve for creating a test that reproduces the issue. I'm looking into how to solve this.

the tests will pass if I change the return new S3AFileStatus(Tristate.TRUE, path, username); to return new S3AFileStatus(Tristate.FALSE, path, username); at org.apache.hadoop.fs.s3a.S3AFileSystem#s3GetFileStatus (org/apache/hadoop/fs/s3a/S3AFileSystem.java:2760). I'll update my PR with a test against this.

OK. Is there any other issue which this problem creates.
I'm worried about whether if there's a file /test/dir1/file.avro under, say, /test, and there's a tombstone for /test, will the file get found in a listing, and is that behaviour different in the root path from elsewhere?. I know a listFiles() is likely to find it, I'd expect a treewalk with listStatus() will miss it just because the topmost directory listing won't find the /test dir to scan

I have to create a test to be sure. We created a tad bit complex to just say no or yes to your question :(

OK. Is there any other issue which this problem creates.
I'm worried about whether if there's a file /test/dir1/file.avro under, say, /test, and there's a tombstone for /test, will the file get found in a listing, and is that behaviour different in the root path from elsewhere?. I know a listFiles() is likely to find it, I'd expect a treewalk with listStatus() will miss it just because the topmost directory listing won't find the /test dir to scan

If there's a tombstone for /test it won't be visible, but we should expect that behaviour.
This is why we have tombstone expiry. So eventually we don't have this problem - if /test/ has bee created by an OOB operation (I guess that's why we have a tombstone and still have the directory structure behind it) then the metadata and tombstone expiry will be eventually solved.
The problem starts to surface if we have a /test1/ tombstoned, and we also have /test9, or even /test2/dir1/file.avro. I will write a test for that.

Also note that
    // PUT child to store
    Path child = new Path(firstPath, "child");
    StoreContext ctx = fs.createStoreContext();
    String childKey = ctx.pathToKey(child);
    String rootKey = ctx.pathToKey(root);
    AmazonS3 s3 = fs.getAmazonS3ClientForTesting("LIST");

    createEmptyObject(fs, childKey);

is an out of band operation by definition in your test.
The test will fail even without it - commenting out
      //createEmptyObject(fs, childKey);

and the check for it:
      // the listing has the firstDir path as a prefix, because of the child
      //Assertions.assertThat(listing.getCommonPrefixes())
      //    .describedAs("The prefixes of a LIST of %s", root)
       //   .contains(firstDir + "/");

Why do you add a child object to the store?

I'm explicitly adding a child as that was the situation I was seeing; if you can replicate the problem in a different way, then that'd be another piece of information.
The key point: a file under a tombstone was enough to convince the client that the directory was empty

superceded by #1123


[NPU] fix static kernel: slice, index_sample

fix static kernel:
(1) slice_kernel.cc  -> SliceGradRawKernel  -> padD, unit test: test_slice_op_npu.py
(2) index_sample_kernel.cc -> IndexSampleGather-> concat(D), unit test: test_concat_op_npu.py

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.xuanyuanminzheng seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Speed up string printing

I am working on porting this benchmark to Rust. This change makes about 20-30% difference in citm_catalog.json and twitter.json which are heavy on strings.
Side note: together with #87 and #88 this brings us within 10% of RapidJSON which is the fastest C/C++ implementation (as measured by that benchmark).

awesome!
Implementation lgtm. Have you played around with unchecked indexing and/or a u8 -> [u8; 2] mapping instead of mapping the nibbles? It's not great for the caches, but they should be big enough to hold a 512 byte array.
@homu r+

:pushpin: Commit fc436eb has been approved by oli-obk

:zap: Test exempted - status

I have not, but at this point I would like to turn my attention to parsing. There is a lot more to improve there.


Can't run it in VSCodium

Hi,
I can't get this extension to run on VSCodium v1.91.1 on windows,

Tried installing from VSIX v0.1.5, - silent fail.
Tried installing from extensions pane inside VSCodium, version on offer is v0.1.2 - got the message "Can't install •urin.vscode-web-visual-editor• extension because it is not compatible with the current version of VSCodium (version 1.91.1)."

Thanks.

Refer VSCodium releases and update it.
Supported VSCode version is 1.92.
It seems that lowering the supported version on Microsoft Marketplace is not possible.
You can also work around this by unpacking the .vsix file, modifying the "engine" in the package.json, and then repackaging it.

Yes.
I upgraded my VSCodium to v1.95.2 and now the extension is loading correctly.
Thank you!


[FEATURE] Death Pits

[Please do not close the request after a revision release is posted. Request will be closed by the developer when it is implemented to the base version or when it is flagged as not planned]
Feature
It's kind of weird that the bottomless pits that kill enemies only teleport V1 back with a slap on the wrist. That's a bit too merciful for a pain enthusiast like me.

Extras
Maybe implement an option in memes for a funny sound effect when falling to your death?

Interesting idea, not sure if its possible to implement (I just reply, I don't actually code lol) but it would be an interesting addition.
In regards to the Extras section, could you provide an example of a funny sound effect? The only one that comes to mind for me is the Falling Metal Pipe sound.

Yeah could do that, but wrath could be a problem when the tail throws the player in the ocean

A special exception could be made for that level, either by default or have it be configurable via the Leviathan section (or wherever you see fit, as I don't know if you plan on having a lot of Level/Hazard changes)


Ffc replay support

Replay module to support OAK FFC by specifying ports (instance num)

Note: We need to remove those AVI files


WireMock demo and workaround for Quarkus 3 and MockServer issue.

This is not really a PR, but helps to see what I changed. It contains the discussed Wiremock approach
https://github.com/quarkiverse/quarkus-pact/issues/60 and also a fix for https://github.com/quarkiverse/quarkus-pact/issues/73
There might be different approaches how to init the proxy setup for WireMock. At the moment it is called in all test methods. I was struggling with the order of the extensions. I hope it helps.

Logs look like this:
2023-07-06 21:43:53,067 INFO  [org.she.kni.wir.WireMockQuarkusTestResource] (qtp1762722116-85) 🍄 [WireMock] Proxying: POST http://localhost:65023/wool/order
2023-07-06 21:43:53,451 INFO  [org.she.kni.wir.WireMockQuarkusTestResource] (qtp1762722116-85) 🍄 [WireMock] Request received:
<IP_ADDRESS> - POST /wool/order

Content-Type: [application/json]
User-Agent: [Resteasy Reactive Client]
Content-Length: [34]
Host: [localhost:65021]
{"colour":"pink","orderNumber":16}

Matched response definition:
{
  "status" : 200,
  "proxyBaseUrl" : "http://localhost:65023"
}

Response:
HTTP/1.1 200
Date: [Thu, 06 Jul 2023 19:43:53 GMT]
Content-length: [17]
Content-Type: [application/json]


CV recording?

Is there any plan to include CV recording into an updates?

Thanks James, I thought as much but wasn't sure. It's not a feature I currently use but the use of the min/max adjustment, I wouldn't expect anything less from Simon.
Thanks.

Closing this as I think its a non-issue.


[cypher-dsl-parser] Not all expressions visible in ResultStatement

In some scenarios, ResultStatement::getIdentifiableExpressions doesn't return all visible expressions.
Failing test ( only id is identified ) :
    @Test
    void getIdentifiableElementsIssue() {
        var cypher = """
                    MATCH (n)-[:PING_EVENT]->(e)
                    WITH n, e WHERE e.date CONTAINS "-"
                    WITH n, e, date(e.date) AS date
                    WITH n, e ORDER BY date
                    WITH n, head(collect(e)) AS event
                    RETURN id(n) AS id, datetime(event.date + 'T23:59:59Z') AS lastSeenDate
                """;
        var statement = CypherParser.parse(cypher);
        var returnedNames = statement.getIdentifiableExpressions().stream().map(e -> ((AliasedExpression) e).getAlias()).toList();
        assertThat(returnedNames).contains("lastSeenDate");
    }

I went over our dev environment to gather some queries people use, here is a test in which 9 of the 16 queries are failing to return the correct number of identifiable elements
package dev.ikwattro;

import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import org.neo4j.cypherdsl.core.AliasedExpression;
import org.neo4j.cypherdsl.core.SymbolicName;
import org.neo4j.cypherdsl.parser.CypherParser;

import java.lang.reflect.Modifier;
import java.util.Arrays;
import java.util.stream.Stream;

import static org.assertj.core.api.Assertions.assertThat;

public class IdentifiableExpressionsTest {

    @ParameterizedTest
    @MethodSource("queriesToTest")
    void testGetIdentifiableElementsFromQuery(String query) {
        var statement = CypherParser.parse(query);
        var elements = statement.getIdentifiableExpressions().stream().map(e -> {
            if (e instanceof AliasedExpression) {
                return ((AliasedExpression) e).getAlias();
            }
            return ((SymbolicName) e).getValue();
        }).toList();
        assertThat(elements.size()).isGreaterThan(1);
    }

    private static Stream<Arguments> queriesToTest() {
        var fields = Arrays.stream(TestQueries.class.getDeclaredFields())
                .filter(f -> Modifier.isStatic(f.getModifiers()))
                .toList();

        return fields.stream().map(f -> {
            try {
                return Arguments.of(f.get(String.class.getDeclaredConstructor().newInstance()));
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        });
    }

    public static class TestQueries {
        public static String QUERY1 = """
            MATCH (n)-[:PING_EVENT]->(e)
                    WITH n, e WHERE e.date CONTAINS "-"
                    WITH n, e, date(e.date) AS date
                    WITH n, e ORDER BY date
                    WITH n, head(collect(e)) AS event
                    RETURN id(n) AS id, datetime(event.date + 'T23:59:59Z') AS lastSeenDate
            """;

        public static String QUERY2 = """
            MATCH (p:Person)
                where id(p) = $id
                with p
                MATCH (p)-[:KNOWS]-(kp:Person)
                WITH p, count(distinct kp) AS knows_people_count
                MATCH (p)-[:KNOWS]-(kpc:Person)-[:PARTY_TO]->(:Crime)
                WITH p, knows_people_count, count(distinct kpc) as knows_criminals_count
                WITH p, toInteger((100*knows_criminals_count/toFloat(knows_people_count))) as score

                CALL apoc.when(
                EXISTS((p)-[:PARTY_TO]->(:Crime)),
                'RETURN 100 as score',
                'RETURN score as score',
                 {p:p, score: score}) YIELD value

                return id(p) as id,  value.score as criminalRiskScore
            """;

        public static String QUERY3 = """
            MATCH (p:Person)
                where id(p) = $id
                with p
                MATCH (p)-[:KNOWS]-(kp:Person)
                WITH p, count(distinct kp) AS knows_people_count
                MATCH (p)-[:KNOWS]-(kpc:Person)-[:PARTY_TO]->(:Crime)
                WITH p, knows_people_count, count(distinct kpc) as knows_criminals_count
                WITH p, toInteger((100*knows_criminals_count/toFloat(knows_people_count))) as score
                return id(p) as id,  score as criminalRiskScore
            """;

        public static String QUERY4 = """
            MATCH (p:Person)-[:PARTY_TO]->(c:Crime)
                WHERE id(p) = $id
                RETURN $id AS id, True AS criminal
            """;

        public static String QUERY5 = """
            match (l:Location)<-[]-(c:Crime)<-[]-(v:Vehicle)
                where id(v) = $id
                return id(v) as id, l.geospatial as location
            """;

        public static String QUERY6 = """
                MATCH (n) WHERE id(n) = $id
                RETURN n.name STARTS WITH 'Ar' AS badLink, $id AS id
                """;

        public static String QUERY7 = """
                MATCH (k:Keyword)-[:DESCRIBES]->(a)
                WHERE id(k) = $id
                WITH k, collect(DISTINCT a.time) AS timestamps
                RETURN timestamps, id(k) as id
                """;

        public static String QUERY8 = """
                MATCH (k:Keyword)-[:DESCRIBES]->(a)
                WHERE id(k) = $id
                WITH k, size(collect(DISTINCT a.time)) AS numberOfRoles, [1, 2, 3] AS roles
                RETURN apoc.coll.randomItems(roles, numberOfRoles, true) AS roles, id(k) AS id
                """;

        public static String QUERY9 = """
                MATCH (n) WHERE id(n) = $id + 10000
                RETURN id(n) AS id, 'Reviewed' IN labels(n) AS reviewed
                """;

        public static String QUERY10 = """
                MATCH (n) WHERE id(n) = $id
                RETURN $id AS id, COUNT { (n)-[:INVESTED]->() } AS totalInvestments
                """;

        public static String QUERY11 = """
                MATCH (n:Person)-[:HAS_PHONE]->(p:Phone)
                where id(p) = $id
                return id(p) as id, n.full_name as owner
                """;

        public static String QUERY12 = """
                MATCH (e:Entity)-[:IN_CLUSTER]->(c)
                WHERE id(c) = $id
                RETURN $id as id, point({latitude: avg(e.latitude), longitude:avg(e.longitude)}) as coordinates_cluster
                """;

        public static String QUERY13 = """
                MATCH (o)<-[:ORG_GROUP]-(:Organization)<-[:AWARDED_TO]-(g:Grant)
                WHERE id(o)= $id
                WITH distinct g, o
                RETURN id(o) as id, sum(g.amount) as `grant_amount`
                """;

        public static String QUERY14 = """
                MATCH (p:Person)-[:LIVES_IN]->(l:Location)
                WHERE id(p) = $id
                RETURN $id AS id, p.pleasant_temperature_threshold <= l.ga_day_temp as IsTemperatureOK
                """;

        public static String QUERY15 = """
                MATCH (p:Person) WHERE p.email = $node.values.email
                MATCH (c:Certification) WHERE c.name="Neo4j Certified Professional"
                RETURN $id as id, exists((p)-[:HAS_CERTIFICATION]->(c)) as neoCertified
                """;

        public static String QUERY16 = """
                MATCH (n) WHERE id(n) = $id
                RETURN 'https://www.google.com/search?q=' + replace(n.name,' ','+') AS googleSearchUrl, $id AS id
                """;
    }
}


Ensuring stable sort of route rules used for matching URLs.

This is the fix for #2501.

Wow, nice! Thanks for doing the research on this. We were just gonna roll back #1585, but this seems like a better solution for sure. /cc @christopherthielen

I really do like the idea of ordering the rules by specificity by default.  We should definitely do that for 1.0.
My main concern with #1585 is that it's a legitimate breaking change from 0.2.15.  For years we've told people that url rules are checked in the order that they were registered, and that they should re-order the registration of those rules if they need to change match priority.
Because sorting rules was a BC for 0.2.x, however, I think we should do one of three things for 0.2.18:

roll back #1585 completely
allow users to select which strategy

insertion order
specificity sort order, including #2502

allow users to provide their own sorting algorithm

Yeah, fair enough. @cdriscol Update the PR to point to feature-1.0 and we'll merge it. @christopherthielen Yeah, fair enough. We'll just roll back #1585 for .18, merge this for 1.0, and implement sort strategies when we get time.

could this fix be released with a quick minor update soon?

@nateabele - I will get this into the feature-1.0 branch when I get some time in the next couple days.
will be good to get the sort rolled back in 0.2.18

It would be good to release a new version for this soon. I found that it breaks a lot of stuff

@sebastiannm Yup, that's why it's going into 1.0 only, and the previous version is being rolled back.

@nateabele When do ya think the 0.2.18 release will come out? Just noticed this broke my app so had to revert to .15

@JetFault Hard to say. We have this and one or two other BC breaks to patch up.


Simplify the creation of the Epinio private CA

we were creating the empty secret to be able to write the Kubed
annotation on it. This was needed for TraefikForwardAuth which we no
longer use. Now we let cert-manager create the secret.
This commit also fixed a log message refering to the wrong yaml

The regular flake #1005 . Merging.


[Event Request] Application “Tests-Cash Flow”, Codeunit 139315 "CF Forecast Wizard Tests"

[Event Request]Application “Tests-Cash Flow”, Codeunit 139315 "CF Forecast Wizard Tests"
Could you please insert the OnTestInitialize Event at the beginning of the Initialize procedure:

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Renaming asyncio-mqtt to aiomqtt

@mossblaser has kindly offered to pass the nicer aiomqtt name on to the asyncio-mqtt project, thank you again! 😎
There are some projects depending on aiomqtt, so if necessary, Jonathan wants to keep the option to publish bugfixes. That does not affect asyncio-mqtt due to the lower version number (aiomqtt is on 0.1.3).
As for migrating to the new name, my idea would be:

Publish the package both under the asyncio-mqtt and the aiomqtt name
Change all references in the documentation to aiomqtt and log deprecation warning when asyncio-mqtt instead of aiomqtt is imported
Stop publishing to asyncio-mqtt on the first major release

@frederikaalund, @JonathanPlasse what do you think?

Hey Felix, really great initiative!
I'm currently on vacation until mid next week. I'll have a more detailed look at that time.
~Frederik

From: Felix Böhm @.>
Sent: Wednesday, March 29, 2023 2:08:44 PM
To: sbtinstruments/asyncio-mqtt @.>
Cc: Frederik Aalund @.>; Mention @.>
Subject: [sbtinstruments/asyncio-mqtt] Renaming asyncio-mqtt to aiomqtt (Issue #202)
@mossblaserhttps://github.com/mossblaser has kindly offered to pass the nicer aiomqtt name on to the asyncio-mqtt project, thank you again! 😎
There are some projects depending on aiomqtt, so if necessary, Jonathan wants to keep the option to publish bugfixes. That does not affect asyncio-mqtt due to the lower version number (aiomqtt is on 0.1.3).
As for migrating to the new name, my idea would be:

Publish the package both under the asyncio-mqtt and the aiomqtt name
Change all references in the documentation to aiomqtt and log deprecation warning when asyncio-mqtt instead of aiomqtt is imported
Stop publishing to asyncio-mqtt on the first major release

@frederikaalundhttps://github.com/frederikaalund, @JonathanPlassehttps://github.com/JonathanPlasse what do you think?
—
Reply to this email directly, view it on GitHubhttps://github.com/sbtinstruments/asyncio-mqtt/issues/202, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAEFFD4ZLFFC7TSR5WSO4JTW6QX5ZANCNFSM6AAAAAAWL6PESA.
You are receiving this because you were mentioned.Message ID: @.***>

Alright, I'm back. :) Sorry for the delay.
Pros:

Reduces the number of libraries in the "async mqtt implementations in Python" space. There are plenty already so convergence is a good thing IMHO.

Cons:

A rename causes user inconvenience/confusion in the short run.

Personally, I think that the pros outweigh the cons. I also think that the proposed migration steps make sense. Hopefully, this minimizes user inconvenience/confusion. I vote that we aim for a long migration period before we disable/remove asyncio-mqtt in favor of aiomqtt. Like at least a year.
@JonathanPlasse What are your thoughts on this? :)

This is great!🥳

It is good with me.

Great! We all agree to do this. :)
@empicano do you want to take lead on this?

Sure, I'll do this with with the switch to poetry, I think that goes well together 😋 Could take a few days until I have time for it, though.

Great to hear! Let me know if you need help from me at any point. :)

Anything holding this up?  Is there a list / milestone I can reference?  Anything we can assist with to make this happen sooner?

Hi there, thanks for the offer! There's some more info in the linked PR about the holdup, mainly I'm waiting on Frederik to disable the pre-commit GitHub App to be able to test the updated GitHub workflows.

Yeah, that's on me. 😅  I just suspended the pre-commit app (see #210 for details).

I was using it in my requirements file and I noticed the change:
asyncio-mqtt @ git+https://github.com/sbtinstruments/asyncio-mqtt

Should be replaced to
``
aiomqtt @ git+https://github.com/sbtinstruments/aiomqtt

Correct?

I notice you've released a package with version 0.17.0 to PyPI. I thought the plan was to use the v1.0.0 release as a clean division between my "old" aiomqtt and this new version? Would it still be possible to do this (and to perhaps delete the v0.17.0 package to make restricting to the "old" package easier)?
Cheers!

Oh, doing a 1.0.0 release was not my original intention, but I see how that can be inferred from the third bullet point in my first comment, sorry for the misunderstanding! The clean division to the original aiomqtt sounds reasonable in retrospect.
I'd be nervous to rush a major version as I don't think we're ready. We could roll this back and reapply it when we get there, but I don't know if that'll make things even messier. @frederikaalund what do you think?

It may not be my place to say but a change in name is pretty much a major version anyway (it is a breaking change ;)) if that helps?

Hi everyone, sorry about the delay.
Felix and I talked the issue through over e-mail and discussed the possible mitigations. :) @empicano, thanks for pinging me here so that we can get this issue sorted out. 👍
Long story short: I'll yank 0.17.0 from PyPI right after I write this comment. Then, I'll issue a 1.0.0 release (it's about time anyhow).
My apologies to all the user of mossblaser's aiomqtt that was inconvenienced by this renaming. I'll sort it out right away. Thanks for raising your voice!


Works fine in Opera

I run it as an unpacked extension in Opera 25. Should maybe add this to the Opera extension store (Opera also based on Chromium).

Please comment if it needs to be re-opened.


Add documentation for ClientInformation

Accurate as of https://github.com/ably/specification/commit/6f67b8443eda3759c129d90f0cdb474ad8db4498. Needs editing by tech writers.
I’m not quite sure how to word the piece of advice about how to check the library version without referring to a specific client library, but I wanted to highlight this use case.

Accurate as of ably/specification@6f67b84. Needs editing by tech writers.
I’m not quite sure how to word the piece of advice about how to check the library version without referring to a specific client library, but I wanted to highlight this use case.

Yes, I think if tech writers review this, there will be lot of cases where description needs to be changed.  One recent merged PR -> https://github.com/ably/sdk-api-reference/pull/29


typo

significat -> significant

@markzxu Can you update your repo with our base branch and later we can merge this.


Update to stabilized -C instrument-coverage

Closes #129
Support for -Z instrument-coverage in the old nightly will also be kept for compatibility.

bors r+


Team1: default avator for recent activity feed; script to add test users

Pull Request Test Coverage Report for Build #215

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 93.969%

Totals

Change from base Build #200:
0.0%

Covered Lines:
2976

Relevant Lines:
3167

💛  - Coveralls


ARGV: kegs: error on empty arguments

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.
[ ] Have you successfully run brew tests with your changes locally?

When an argument is empty, Formulary.to_rack(name.downcase) returns HOMEBREW_CELLAR, then the list of kegs dirs become the list of racks, which is wrong, and leads to the bewildering behavior in #1138.
We need to error out on an empty argument, but whether NoSuchKegError is the most appropriate error here is debatable.
Fixes #1138.

Alternatively this can be fixed in Formulary.to_rack. I wonder what's the appropriate error there; FormulaUnavailableError? Anyway, as it currently stands, Formulary.to_rack does very little for validation, so not sure we should enforce non-emptiness there.

Seems like ArgumentError would be a better choice here. Also, NoSuchKegError doesn't seem to be rescued anywhere, that would have been something to consider.

ArgumentError

Sure.

I ended up changing it to a UsageError which seems most appropriate when an arg that shouldn't be empty is empty (and I can't think of a case where an empty argument is valid for a brew command).
ArgumentError isn't handled in brew.rb except as a generic exception that leads to a "Please report this bug:", which isn't right (although we can certainly change that).


Tflite: issue with dilated convolution in a dynamic shape CNN

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Windows 10 (for model creation)
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: OnePlus 8 (Android 11), Sony Xperia 10 (Android 10)
TensorFlow installed from (source or binary): from pip
TensorFlow version (use command below): 2.5.0 (v2.5.0-rc3-213-ga4dfb8d1a71 2.5.0)
Python version: 3.7
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version: 11.3
GPU model and memory: Geforce RTX 3060

Describe the current behavior
I'm trying to use a pre-trained model for image processing in my android app. The input shape is [None, None, None, 3]
and the output shape is inferred from the input shape. My issue happens when the model has a convolution layer with
dilation (same models without dilation work fine).
The android code I use for inference is has the following part:
interpreter.resizeInput(0, new int[]{1, height, width, 3});
interpreter.allocateTensors();
Tensor tensor = interpreter.getOutputTensor(0);
int[] outShape = tensor.shape();

My issue is that the content of outShape is always [1, 1, 1, outChannels]. I'm also not able to recover the output
of the model with interpreter.runForMultipleInputsOutputs even if I provide arrays with the correct output sizes.
Describe the expected behavior
The content of shape should depend on the input (in the example I provide it should be [1, height, width, 16])
Standalone code to reproduce the issue
Here is a link to minimal models which show the issue I described:
dilated_conv.zip
I've tried 3 different quantization options but it doesn't change anything.
Here is the python code I used to produce the tflite models.
import tensorflow as tf
import numpy as np

def convert(model, fname, quantize_level=0):
    converter = tf.lite.TFLiteConverter.from_keras_model(model)
    if quantize_level > 0:
        converter.optimizations = [tf.lite.Optimize.DEFAULT]
        if quantize_level > 1:
            converter.target_spec.supported_types = [tf.float16]
            fname = "{}_quantized_f16".format(fname)
        else:
            fname = "{}_quantized_default".format(fname)

    tflite_model = converter.convert()
    with open("{}.tflite".format(fname), 'wb') as f:
        f.write(tflite_model)

x = tf.keras.layers.Input([None, None, 3], dtype=tf.float32)
conv = tf.keras.layers.Conv2D(filters=16, kernel_size=(3, 3), padding="same", dilation_rate=6, activation=None)
conv.build(x.shape)
conv.set_weights([np.random.rand(3, 3, 3, 16), np.random.rand(16)])
y = conv(x)
model = tf.keras.Model(x, y)

for i in range(3):
    convert(model, "dilated_conv", quantize_level=i)

I have also tried to add a reshape layer but it doesn't make any difference:
x = tf.keras.layers.Input([None, None, 3], dtype=tf.float32)
conv = tf.keras.layers.Conv2D(filters=16, kernel_size=(3, 3), padding="same", dilation_rate=6, activation=None)
conv.build(x.shape)
conv.set_weights([np.random.rand(3, 3, 3, 16), np.random.rand(16)])
y = conv(x)
y = tf.reshape(y, tf.shape(x))
model = tf.keras.Model(x, y)

For the android part, I am using the java API and the issue is there with tflite versions 2.2.0, 2.3.0 and 2.5.0.
Just creating an interpreter from one of the above models (without GPU or NNApi delegate) and trying to resize the
input shows the behavior I described. (if you feed it an image it will do some computations and produce an output with the
wrong shape)

@haozha111 Do you have time to take a look? or feel free to rebalance this to other people. Thanks

I think this might be an issue happened during shape propagation after you call ResizeInput. Have you tried to set the input shape as a static shape (instead of None in the dimensions) and see whether the output tensor has the expected shape?

Yes, my issue is specifically for dynamic shapes. If I use static shapes to prepare the model and then convert it it works*, but I need dynamic shapes in my app.

actually if I set a static shape with the batch size set to 1, I get a crash on the default delegate and the NNApi delegate, but it works well on the GPU one. Batch size set to None works with all delegate but is then slower on the GPU one. I feel like this is a different issue though and it is less critical to my use case. Should I report this as a separate issue?

@haozha111 Any idea why this happens? By the way the problem seems to be specific to the android tflite library, and not to the model itself. I tried to run the same model with the python interpreter and it works as expected.

Thanks for the info. If the issue only happens in the android tflite library, and not reproducible on desktop with the python interpreter, then I guess it's probably not caused by the dilated conv in the model. Have you tried the latest tf-nightly and see if the problem fixes?

Thank you for the answer.
I just tried with tf-nightly and it gives the same results.

it's probably not caused by the dilated conv in the model

I'm not sure what you mean by that, but the issue doesn't happen with other layers. In the minimal model I provided, which is only one convolutional layer, if you remove dilation then the bug doesn't happen. Similarly in my actual model (which has many more layers), if the bug only happens if there is some dilation somewhere.
What's weird is that I have tried adding a reshape layer after the dilated convolution to enforce the correct shape but it doesn't change anything.

Sure. So the issue is gone if you use the python interpreter (on desktop) ?

Yes, the python interpreter has the correct shape, and give the same output as the original tensorflow (not lite) model.

Hi,
I checked the float tflite model you shared, and I found that the dilated conv pattern is not folded (there is still the SpaceToBatchNd, and BatchToSpaceNd op in your model). This is because the BatchToSpaceNd op is taking > 1 input. Given it's not folded, I think the shape issue is not caused by the dilated conv folding pass in MLIR.
I also checked that your model's input has static shape [1, 1, 1, 3] while its shape signature is [-1, -1, -1, 3], this is correct since the first 3 dimensions are dynamic. Given that the output shape is correct when you run in python interpreter, but becomes incorrect when you run on android, I suspect this is caused by the JNI binding layer. When you call Resize in Java, I suspect something is going wrong in the JNI layer which fails to propagate the new shape to each tensor. Could you also share your Java code that resizes the model's input shape?

Hi, thank you for the answer.
I tried to extract only the relevant parts of the code, if you need more details please let me know. The models I provided are in the assets folder of the app. Here is the class responsible for running the model on a bitmap.
public class TfLiteIssue {

    private final static String TAG = "TfLiteIssue";
    private final Interpreter interpreter;

    public TfLiteIssue(Context context) throws IOException {
        this(context, "dilated_conv.tflite");
    }

    public TfLiteIssue(Context context, String modelPath) throws IOException {
        AssetFileDescriptor fileDescriptor = context.getAssets().openFd(modelPath);
        FileInputStream inputStream = new FileInputStream(fileDescriptor.getFileDescriptor());
        long startOffset = fileDescriptor.getStartOffset();
        long declaredLength = fileDescriptor.getDeclaredLength();
        FileChannel fileChannel = inputStream.getChannel();
        interpreter = new Interpreter(fileChannel.map(FileChannel.MapMode.READ_ONLY, startOffset, declaredLength),
                new Interpreter.Options());
    }

    public float[][][][] runModel(Bitmap input) {
        interpreter.resizeInput(0, new int[]{1, input.getHeight(), input.getWidth(), 3});
        interpreter.allocateTensors();
        Log.d(TAG, "Output shape " + Arrays.toString(interpreter.getOutputTensor(0).shape()));
        Map<Integer, Object> tfOutput = new HashMap<>();
        tfOutput.put(0, createOutputArray());
        interpreter.runForMultipleInputsOutputs(new float[][][][][]{asFloatArray(input)}, tfOutput);
        return (float[][][][]) tfOutput.get(0);
    }

    private float[][][][] createOutputArray() {
        Tensor tensor = interpreter.getOutputTensor(0);
        int[] shape = tensor.shape();
        return new float[1][shape[1]][shape[2]][shape[3]];
    }

    private float[][][][] asFloatArray(Bitmap bitmap) {
        int width = bitmap.getWidth();
        int height = bitmap.getHeight();
        int[] intPixels = new int[height * width];
        float[][][][] floatPixels = new float[1][height][width][3];
        bitmap.getPixels(intPixels, 0, width, 0, 0, width, height);
        for (int i = 0; i < height; i++) {
            for (int j = 0; j < width; j++) {
                int pixel = intPixels[j + i * width];
                floatPixels[0][i][j][0] = (float) (pixel & 0x00FF0000 >> 16) / 255;
                floatPixels[0][i][j][1] = (float) (pixel & 0x0000FF00 >> 8) / 255;
                floatPixels[0][i][j][2] = (float) (pixel & 0x000000FF) / 255;
            }
        }
        return floatPixels;
    }
}

In my main activity, I simply call
TfLiteIssue(getContext()).runModel(bitmap);
In the logcat this shows an output shape of [1, 1, 1, 3], instead of something with the same shape as the input image.
My bitmap comes from a content provider but it gives the same result with a constant color, for example
Bitmap image = Bitmap.createBitmap(256, 256, Bitmap.Config.ARGB_8888);
image.eraseColor(android.graphics.Color.GREEN);
TfLiteIssue(getContext()).runModel(bitmap);

@lu-wang-g Hi Lu, since this is related with the Java API, do you know if this is the recommended way to do resizing in Java? Is there any API that the TF Lite support library can provide here? Thanks!

The code snippet from @arolet looks good to me. Through I have no clue yet why this happened. I can reproduce the issue locally. I'll take a closer look at it tomorrow.

Found that the output tensor shape won't be updated until runForMultipleInputsOutputs is called. So if you move your log after inference, it will show the correct output shape. I also verified and confirmed this behaviour with the Python API.
Before this issue, I also thought allocateTensors() is good enough to update the output tensor shape. And I'm pretty sure it works for some dynamic shape models I've been before. Not sure if certain ops may break the rule. @haozha111 do you have any pointers?

From the code description here:
https://github.com/tensorflow/tensorflow/blob/411666f39a4ed530a9e9f95655de022cb675c655/tensorflow/lite/java/src/main/java/org/tensorflow/lite/InterpreterApi.java#L299
Specifically:
Note that, for graphs with output shapes that are dependent on input values, the output shape may not be fully determined until
running inference.

I think the reason is that, in your model the SpaceToBatchND op's padding input is a tensor (int32[2, 2]). The value of the padding tensor will determine the output shape of the SpaceToBatchND op, see documentation here on the role of padding:
https://www.tensorflow.org/api_docs/python/tf/space_to_batch
So I think your model's actual output shape can only be determined after the first inference run. Could you just get the output shape after inference finishes?

@lu-wang-g Thank you for your answer. On my device (a OnePlus 8 with android 11), the shape is still wrong after runForMultipleInputsOutputs. allocateTensors reshapes the outputs correctly with all the layers I tried, only convolution with dilation yields a wrong shape.
@haozha111 It could be a solution, however: 1) it doesn't work on the devices I tried and 2) it would require to run the inference twice, since with the android api we need to give buffers of the correct shape for the output (so the one inference to propagate the shape and one to actually get the output), which is quite slow. Also it should be possible to compute the output shape beforehand, since it's done correctly when there is no dilation and in any case, a convolution with padding='same' is not supposed to change the size.
Also, adding a reshape layer to force the correct shape after the dilated convolution doesn't change the issue (see the initial post). To me it shows that there is probably something more going on doesn't it?

Hi,
When you say that the output shape is still wrong after runForMultipleInputsOutputs, what's the output shape you get? Is it different from what the python API is giving to you (supposing python API is working normally).
I'm just curious why the behavior is different between the Java and python API.

@haozha111 the "wrong" output shape on android is [1, 1, 1, 16], just like before. In python the output shape is the correct one (i.e. [1, im_height, im_width, 16].

Hi @arolet, here is the code I used to run your model:
    Interpreter interpreter = new Interpreter(dilated, new Interpreter.Options());
    int[] inputDims = {1, 10, 10, 3};
    interpreter.resizeInput(0, inputDims);

    interpreter.allocateTensors();
    Map<Integer, Object> tfOutput = new HashMap<>();
    tfOutput.put(0, new float[1][10][10][16]);
    float[][][][] input = new float[1][10][10][3];
    interpreter.runForMultipleInputsOutputs(new float[][][][][]{input}, tfOutput);
    Log.d(TAG, "output shape " + Arrays.toString(interpreter.getOutputTensor(0).shape()));

The printed shape is [1, 10, 10, 16], And I verified it using a Pixel 4 device. Please check if the code snippet works for you.

Hello @lu-wang-g, thank you for your update.
That's something I actually tried before and I get an IllegalArgumentException with the following message:
Cannot copy from a TensorFlowLite tensor (Identity) with shape [1, 1, 1, 16] to a Java object with shape [1, 384, 704, 16].
Just to be sure I tried again with the 2.5.0 and nightly versions and both gave me the error. I only tried with my OnePlus 8 yet, I will check other devices later.

@arolet Do you mind to try the exactly same code I pasted above, and see if it works for you? After that, we can continue debugging your code.

@lu-wang-g your exact code works! I have tried to check what the difference with mine is and it looks like the problem only arises with non-square images.
More specifically I created this function:
    public float[][][][] runModel(int width, int height){
        Interpreter interpreter = new Interpreter(dilated, new Interpreter.Options());
        int[] inputDims = {1, height, width, 3};
        interpreter.resizeInput(0, inputDims);

        interpreter.allocateTensors();
        Log.d(TAG, "Output shape " + Arrays.toString(interpreter.getOutputTensor(0).shape()));
        Map<Integer, Object> tfOutput = new HashMap<>();
        tfOutput.put(0, new float[1][height][width][16]);
        float[][][][] input = new float[1][height][width][3];
        interpreter.runForMultipleInputsOutputs(new float[][][][][]{input}, tfOutput);
        Log.d(TAG, "output shape " + Arrays.toString(interpreter.getOutputTensor(0).shape()));
        return (float[][][][]) tfOutput.get(0);
    }

It gives the crash I described the other day if "width!=height" (width=100 and height=200 in my test). If I replace the first line with dimensions in the wrong order, then there is no crash anymore:
    public float[][][][] runModel(int width, int height){
        Interpreter interpreter = new Interpreter(dilated, new Interpreter.Options());
        int[] inputDims = {1, width, height, 3};
        interpreter.resizeInput(0, inputDims);

        interpreter.allocateTensors();
        Log.d(TAG, "Output shape " + Arrays.toString(interpreter.getOutputTensor(0).shape()));
        Map<Integer, Object> tfOutput = new HashMap<>();
        tfOutput.put(0, new float[1][height][width][16]);
        float[][][][] input = new float[1][height][width][3];
        interpreter.runForMultipleInputsOutputs(new float[][][][][]{input}, tfOutput);
        Log.d(TAG, "output shape " + Arrays.toString(interpreter.getOutputTensor(0).shape()));
        return (float[][][][]) tfOutput.get(0);
    }

I don't know if this helps. (note that dimensions are inversed only in the first line)

If you remove the Log right after allocateTensors(), it will work. Calling interpreter.getOutputTensor(0) will create the Java output tensor from the native layer immediately. Right after allocateTensors(), the output tensor shape remains [1, 1, 1, 16]. It will not be refreshed in runForMultipleInputsOutputs. Therefore you ended up with the issue that "Cannot copy from a TensorFlowLite tensor (Identity) with shape [1, 1, 1, 16] to a Java object with shape [1, 100, 200, 16].". If you don't call interpreter.getOutputTensor(0) before runForMultipleInputsOutputs , runForMultipleInputsOutputs will create the Java output tensor from native layer during the process, and by that time, the output tensor shape has been updated to [1,  100, 200, 16].
When you reversed height and width, you changed the input tensor shape,  meaning the input shape of runForMultipleInputsOutputs does not match the input shape set from resizeInput. Therefore, runForMultipleInputsOutputs triggered an implicit resize and updated both input and output tensor shape.
This is a flaw in the workflow of the Java API, and it's not easy to fix right away. So the short answer is don't trigger interpreter.getOutputTensor() before runForMultipleInputsOutputs.

@lu-wang-g oh it does work without the log, that's great thanks!!!
So as long as I know the output size before-hand it should be fine I guess. I will try with my actual model (for which the output size is not actually the same as the input size) and close the issue if it works.

I tried with my actual model, and TL;DR: it now works.
If there is an getOutputTensor() anywhere before runForMultipleInputsOutputs() though, then I get the error I described earlier, even if it is also before resizeInput() and allocateTensors(). So basically I had to remove all calls to getOutputTensor() (I had some just after the interpreter instantiation to get the number of output channels dynamically).
Thanks a lot for your help, I'm closing the issue since there is a workaround (although I still hope it gets fixed some day).

@arolet Hi, I'm currently writing a test case that checks the ability of the model to re-dim the graph as per the given input. The model you've provided could serve as the testing model.  Do you mind if I use your model?

@jonpsy sure go ahead, feel free to use any of the code too.


No redirect when signing in with second GitHub account

Dev Home version
0.1101.409.0
Windows build number
No response
Other software
No response
Steps to reproduce the bug
Navigate to Machine Configuration
Clone repositories
Clone by account - GitHub
Click account dropdown and sign in with another account
Browser says it's redirecting to the app once it's been authorized
Expected result
Dev Home should update while on the clone repo page with my second account
Actual result
There's no redirect and the second account isn't recognized in Dev Home. If I go to settings, the account does show up there.

Included System Information
No response
Included Extensions Information
No response

Sometimes the event that Dev Home is waiting for never gets fired, so there is a 30 second wait - probably logging in is happening in that 30 seconds, so waiting 30 seconds you would see the second account. Maybe should switch to 10 seconds. Re-assigning teams.


feat(toolchain): chaining actions

It's now possible to chain form_action with confirm_action
Confirm page now display previous form for confirmation

Codecov Report

:exclamation: No coverage uploaded for pull request base (alpha@67d98f9). Click here to learn what that means.
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff            @@
##             alpha        #5   +/-   ##
=========================================
  Coverage         ?   100.00%
=========================================
  Files            ?         7
  Lines            ?       426
  Branches         ?        54
=========================================
  Hits             ?       426
  Misses           ?         0
  Partials         ?         0

Flag
Coverage Δ

3.2.16
100.00% <0.00%> (?)

3.8
100.00% <0.00%> (?)

3.9
100.00% <0.00%> (?)

4.1.2
100.00% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

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


Sudo cargo valgrind

I need to test my bin by running it as sudo, but it doesn't work. Please, add possibility, to run final binary as sudo

Hello @tonyshkurenko,
I've just updated the program to (theoretically) support your use-case. If you want to, you can try the new software using the following command:
cargo install --git https://github.com/jfrimmel/cargo-valgrind --branch custom-runner

I will try it out :) thanks!


how does the "react-native-vault" works behind the scenes?

Hi!
Interested to know how does the "react-native-vault" works behind the scenes, and specifically - in what way it is secured?
Thanks!
Ofer

Hi,
@mattperls-code is away currently, so he won't be able to answer your question.
I won't step on his behalf since I did not write the library, and I do not want to spread misinformation.
He will be back to answer your question in the fall.
All the working code is index.js, if you're confused about something, you could contact me via Github issues and I will try to answer your questions accurately.
Thank you

Thanks @Gitter499! I will look a bit on the index.js

The security of react native vault is pretty simple. All of the data is stored under the key in async storage and is encrypted with the provided encryption key. Internally, this library uses react-native-crypto-js for encryption, specifically the AES.encrypt and AES.decrypt methods. Async storage is inherently not the safest, as it can be accessed fairly easily, but the entirety of the data is encrypted, so as long as the encryption key is strong there should be no security issue.
If you have any more questions or concerns let me know. Also if you have any suggestions for making this library more secure I would be happy to hear them.


Feedback for "Privileges and Permissions"

https://help.sap.com/docs/SAP_DATASPHERE/9f804b8efa8043539289f42f372c4862/d7350c6823a14733a7a5727bad8371aa.html?locale=en-US
Clearify:
-for Permisson of Analytical Model and connectiosn
Whats the difference in haveing CRUD and/or Manintain Authorizations
-for Permisson of Activity LogWhats the difference in haveing R and/or Manintain Authorizations

Dear SAP Datasphere User

for Permission of Analytical Model and connections (what are the differences between having CRUD and/or Maintain Authorizations?)
Sorry, I do not understand your question. Could you please rephrase your question? Can you also please write the names of the privileges exactly like the are written in the page so that I know what you’re referring to? Thanks for your help.

-for Permisson of Activity Log  (What is the difference in having R and/or Manintain Authorizations?)
As stated in the page, the “Activity Log” privilege does not include the permission “Maintain”. This privilege only includes the permissions “Read” and “Delete”.
Thank you and best regards
Cindy

Hello,
soma taks have Maintain ( and Manage) permissions.
These permissions seem to be redundant, conflicting or contradictionary
to the Create Read Update Delete Permssions if switched entirely or partitally on.
For example:
Fort he task „Analytical Models“ exist the permissions Maintain permisson and Maintain
What is the difference in the permssions if Create Read Update Delete is switched On partially or entriely and if the Maintain permisson is siwtched ?
What does the Permission Maintain do what the Create Read Update Delete Permission ( if set ) does no do ?
What is if Create Read Update Delete Permissions are set partially and the Maintain permisson is set ?
The same question for any Task which has Maninatin permssions
A Clearification and/or Defintion of the Maintain and Manage Permission in the SAP Help would be helpfull .
What do they do ? Especiylly in coopertaion with Create Read Update Delete Permssions switched entirely or partitally on.
Vielen Dank !  Thank You !
Viele Grüße ! Best Wishes  !
Dipl.Ing. Martin Sautter
SAP Analytics Beratung
USt Nr DE326947352
Steuernr 18641172
ANALYTICS4YOU.NET
Über der Klause 12
D 81545 München
0049 089 6 42 37 28
0049 0176 87 58 09 66
@.> @.
Von: CindyVenet @.>
Gesendet: Freitag, 12. Mai 2023 11:12
An: SAP-docs/sap-datasphere @.>
Cc: MartinSautterAnalytics4you @.>; Author @.>
Betreff: Re: [SAP-docs/sap-datasphere] Feedback for "Privileges and Permissions" (Issue #11)
Dear SAP Datasphere User

for Permission of Analytical Model and connections (what are the differences between having CRUD and/or Maintain Authorizations?)
Sorry, I do not understand your question. Could you please rephrase your question? Can you also please write the names of the privileges exactly like the are written in the page so that I know what you’re referring to? Thanks for your help.

-for Permisson of Activity Log (What is the difference in having R and/or Manintain Authorizations?)
As stated in the page, the “Activity Log” privilege does not include the permission “Maintain”. This privilege only includes the permissions “Read” and “Delete”.
Thank you and best regards
Cindy
—
Reply to this email directly, view it on GitHub https://github.com/SAP-docs/sap-datasphere/issues/11#issuecomment-1545431268 , or unsubscribe https://github.com/notifications/unsubscribe-auth/A67PLIRN6LZVOWE6ABYXL23XFX5FVANCNFSM6AAAAAAX6BE4OA .
You are receiving this because you authored the thread.  https://github.com/notifications/beacon/A67PLIUIVVVMTXIX5DTJL5DXFX5FVA5CNFSM6AAAAAAX6BE4OCWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTS4DVUOI.gif Message ID: @.*** @.***> >

Dear SAP Datasphere user
Thanks again for your feedback.
You can see the definition of each permission at the end of the topic Privileges and Permissions:
https://help.sap.com/docs/SAP_DATASPHERE/9f804b8efa8043539289f42f372c4862/d7350c6823a14733a7a5727bad8371aa.html#permissions
Please let me know if the definition for Maintain and Manage are not clear.
Some privileges are inherited from SAP Analytics Cloud. This is the case of “Analytic Model”.
You can see information about this in this topic of the SAP Analytics Cloud help: https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/00f68c2e08b941f081002fd3691d86a7/93fec5646f144e109745ce74fd492c3f.html
Please let me know if this helps.
Best regards
Cindy for the User Assistance team

Hi Cindy,
if You look more into the table some stuff gets clearfied but more holes in the SAP Help appear,
its not up to date.
I give You some hints what You have to improve:
-for privilege  type Users, privilege   Manage:
The table explains Manage
-for privilege  type teams, privilege  Manage,:
explanation missing in table
-Privilege Type: "Connection" , Public-,Private-, Deleted Files, Ownership of Content
-where what files ?

does not exits in the SAP Help , pl. add

-for privilege  type lifecyell, privilege  Manage, and others
explanation missing in table ( for all Permission), please add, not underrstandable what this should do
-guessing remains  for Privilege Type: Spaces:
SAP HELP:
"Manage: When granted on Spaces and Space Files, permits full control over all spaces and the data inside these spaces."
Is MANAGE is redundant to CRUD or not  ?
not understandabke needs to be overworked good
-Privilege Type: Space File
according to
"When granted on Spaces and Space Files, permits full control over all spaces and the data inside these spaces."
CRUD is the same than Manage.
Clearify.
further:
Chapter "Example: Space Management App Permissions" clearly not understanable what concept what it shows.
News syntax added wo definition and so on.
Let me know when You have overworked it.
I can read than over it.
Best Martin

Dear SAP Datasphere user,
Thanks again for your valuable feedback.
Some of the  issues you've identified are linked to issues in the user interface, which we’ve reported to the development team.
For privileges Spaces and Space Files, the Manage permission is intended only for tenant administrators in order to give them access to all spaces. They need in addition the relevant CRUD permissions to create, update or delete spaces. We’ve amended the documentation accordingly.
The section “Example: Space Management App Permissions" has been rewritten and will appear as a section in the topic Privileges by App and Feature.
Please note that these changes will be available in the Help Portal in version 2023.14.
Also, we’ll continue to update the documentation as we receive answers from our development team.
Best regards,
Olivia, from the User Assistance team


Server Instance as configuration parameter

First of all, I really like the navcontainerhelper module, it's very helpfull!
But I've one additional request / question. Is it possible to add the Server Instance as a parameter for New-NavContainer cmdlet? We've the following scenario. We've a one let me call it "Docker Host" Server. This is a very powerful machine and we would like to host all our demo and development environments in docker containers.
This works pretty well and we can connect to machines, using Windows/Web Clients, etc., using the DNS name of the "Docker Host". Right now we're giving each "instance" a specific port range and mapping the public ports to the specific docker container (using additionalParameters in New-NavContainer cmdlet.
Well it works, but to know the specific port for the specific instance with overall +100 currently running instances/containers it's not that easy. It would be much easier to rename the "NAV" default instance. Is it possible to extend this?
Thanks Chris

Ok, thanks for explaination. Well, I will try to implement the public IP configuration.


Post process updates

From comments in #6476.

@bagnell, thanks for the pull request! Maintainers, we have a signed CLA from @bagnell, so you can review this at any time.

I am a bot who helps you make Cesium awesome! Contributions to my configuration are welcome.
:earth_africa: :earth_americas: :earth_asia:

@lilleyse This is ready.

makeZipFile seems to be failing here, but also in master.
Otherwise looks good.


Expect only first parameter as List in Batched

Only first argument should be List (this fixes #93)

Thanks for the PR - would you mind adding a test that ensures this won't break in the future?

Just faced the same issue this PR fixes, thanks for fixing it already! Any ETA on Maven Central?

Any updates?

Thanks for merging @apottere!


feat: add sequential and other properties

sequential: to sequentially start path animations
pause: to pause animation at the end of an animation, or at the half point when rewinding
customSvgProps (for AnimatedSVGPaths): to allow the customizations of path properties inside an array of paths

It absolutely did, such a nice library! I also hope I will add value with my PR! ;)

@73R3WY I attached an animated gif to the original description of this PR, feel free to use it.


internal complier error

there seems to be an issue when trying to pull out transactions

You're going to have to give us a lot more information than that.
What issue, what error, with what code, using what version?


B 19724 add emplid to office queues

Agility ticket
https://www13.v1host.com/USTRANSCOM38/story.mvc/Summary?oidToken=Story%3A945422
Summary
Add the EMPLID column to all the office user queues and searches.  The filter should work for the column and also sorting.
Setup test data
You will need to create several Coast Guard service members, or go into the DB and give some existing CG members an emplid.
How to test

Login as a Service Counselor that has some moves available in the Counseling Queue from Coast Guard members.
Verify that I can see the new EMPLID column and it's populated.
Verify that the column sorts and that I can filter by the entire EMPLID and get the expected results back.
Navigate to the PPM Closeout Queue (Note, you will need to be logged in as a SC that has the USCG GBLOC).
Run through steps 2-3 above.
Navigate to the Move Search for SC, search for a move or customer, Run through steps 2-3 above.
Navigate to the Customer Search for SC, search for a customer, Run through steps 2-3 above.
Login as a TOO, run through steps 2-3 to verify that the column is as expected in the Task Order Queue.
As a TOO, navigate to the Search, search for a move or customer, run through steps 2-3 above.
Login as a TIO, run through steps 2-3 to verify that the column is as expected in the Payment Request Queue.
As a TIO, navigate to the Search, search for a move or customer, run through steps 2-3 above.
Login as a QAE user, search for a move or customer, run through steps 2-3 above.

Warnings

:warning:
This PR does not include changes to unit tests, even though it affects app code.

  Generated by :no_entry_sign: dangerJS against 66633b9fd33171782bb1d6db46b1c162de60605c

Just a note, this will have a few slight differences than the INT PR due to order of stories going into INT vs Main.  The only differences are in the 'handlers/ghcapi/internal/payloads/model_to_payload.go' and 'swagger-def/ghc.yaml' files.  We had overlap of work with this story and 19723.  And then of course that affects a couple of the gen files having differences as well.
19723 made it to INT first, but is not ready for Main yet.  This story has the go ahead from PO.


Create a new controller to apply the clusterrole and clusterrolebinding by hub-of-hubs-agent

fixed: https://github.com/stolostron/backlog/issues/24616

/hold
Will add UT soon

/retest

/retest

/retest

/unhold

/assign @morvencao

/retest


Grievous

#12 Improve music classification system
#53 Upgrade to Node.js 13, using ES modules instead of CommonJS in the backend

Added wiki documentation that specifies the music classification system:
https://github.com/technology-ebay-de/zapperment/wiki/Zapperment-Track-Definition#channelsmidibus


Door handle seperates from door

The white door handle block can get seperated from the actual door. This might happen when something (for instance the body of the player) is blocking the door but not the handle

I am having trouble re-creating this bug to see what is causing it. Any particular cabinet that does this consistently?

Only had this once, when someone else was playing. Not sure which cabinet it was but there should be no difference as they are all the same prefab.

Unable to recreate so lets close for now


xlsx.utils.read different results for same numbers

example.xlsx
here is the file, thanks

Those are the actual numbers stored in the file:
      <c r="F1" s="4">
        <v>4.0000000000000007E-4</v>
      </c>
      <c r="F2" s="6">
        <v>7.9600000000000004E-2</v>
      </c>
      <c r="F3" s="6">
        <v>4.0000000000000002E-4</v>
      </c>

The w field is the formatted text (which should look like what you see in Excel), but under the hood Excel is storing those values because 0.0004 and 0.0008 cannot exactly be represented in IEEE754 floating point

@SheetJSDev  Thank you for your reply.


Common implementation of type registry and serializer.

This pr attempts to introduce a common implementation of the type registry and the serializer pattern.
The TypeRegistry class remembers any str <-> type mapping. It also provides a type parameter that restricts the acceptable types (checked by the static type checker).
The Serializable interface provides a common way to serialize/deserialize objects.
The PrimitiveSerializer convertes nested Serializable objects into a data with only builtin types, which can be passed to other string serializer, e.g., json.dumps().

@neubig changed registry to test_registry


ollama

Feature details
make support for local work using ollama

See:

https://www.alfredforum.com/topic/21483-chatgpt-dall-e-openai-integrations/#comment-111557
https://www.alfredforum.com/topic/21544-using-local-models-with-chatgpt-dall-e-workflow/


Neuron pruning based on registration date of UID

Description
This introduces a change to how the current get_neuron_to_prune function works. For ties with the lowest pruning score, the neuron that was registered oldest is chosen instead. If all neurons are immune, the same rules apply.

includes a test function test_burn_registration_pruning_scenarios for testing out different scenarios.
includes new utility function get_neuron_is_immune

Related Issue(s)

Closes #697

Type of Change

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update
[ ] Other (please describe):

Breaking Change
There are not any breaking changes to my knowledge.
Checklist

[X] I have performed a self-review of my own code
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have run cargo fmt and cargo clippy to ensure my code is formatted and linted correctly
[X] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[X] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes
[X] Any dependent changes have been merged and published in downstream modules

Screenshots (if applicable)
Please include any relevant screenshots or GIFs that demonstrate the changes made.
Additional Notes
Please provide any additional information or context that may be helpful for reviewers.

Hello and thank you for your contribution!
It looks like the CI is failing due to some linting issues. Could you please address these by running
cargo clippy --workspace --all-targets --all-features -- -D warnings and making the necessary changes?

Alright, linting issues should be resolved now.


issues with docker version and nvidia

I have a ubuntu20 I want to try the containerized version on.
I have successfully run OTHER nvidia accelerated containers on this box.
And when I run nvidia-smi inside the container, it correctly detects my gpu as:
0  Quadro P620
Also,
python3 torch.cuda.device_count()
returns 1
BUT.
The ComfyUI instance it tries to start, fails.
ComfyUI error: Traceback (most recent call last):
ComfyUI error:   File "/dlbackend/ComfyUI/main.py", line 72, in <module>
 ....
ComfyUI error:     return torch.device(torch.cuda.current_device())
ComfyUI error:                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
ComfyUI error:   File "/dlbackend/ComfyUI/venv/lib/python3.11/site-packages/torch/cuda/__init__.py", line 769, in current_device
ComfyUI error:     _lazy_init()
ComfyUI error:   File "/dlbackend/ComfyUI/venv/lib/python3.11/site-packages/torch/cuda/__init__.py", line 298, in _lazy_init
ComfyUI error:     torch._C._cuda_init()
ComfyUI error: RuntimeError: CUDA unknown error - this may be due to an incorrectly set up environment, e.g. changing env variable CUDA_VISIBLE_DEVICES after program start. Setting the available devices to be zero.

help please

apologies: problem was hardware on my end.
after laptop went to sleep, it disabled cuda access.
power cycle fixed the issue, docker containers run fine now


[WFLY-15590] Add READMEs for the 'galleon-shared' and 'galleon-local'…

… modules
This doesn't do everything that could be done for this issue, but the other modules in these directories are more self-explanatory.
https://issues.redhat.com/browse/WFLY-15590

Thanks @jasondlee


Update Firefox to 38.0

see https://www.mozilla.org/en-US/firefox/38.0/releasenotes/

Merged #11147 already.

Too bad ... :disappointed:


[Azure Storage] Support resuming for File upload

When we talk about uploading a big file on the azure storage the resuming capability for the upload is always part of the dicussion with our customer.
Unfortunatly, the uploadData function of the BlockBlobClient interface of the sdk doesn't support resuming.
The issue is due to the fact that only the last upload block are commited to the storage,not the previous uncommited block already uploaded.
A solution could be to give the possiblity to send a list of uncommited block  to the uploadData function in order to let the function committed all blocks when the transfert will be completed.
This will be more easy to still use UploadData compare to recreate a custom code to perform the upload by using stageBlock and commitBlockList
The caller of "uploadData" function can retrieve the existing uncommited block by using "getBlockList" then slice the file to start the transfert of only the remaining data.
example:
const blockList = await blockBlobClient.getBlockList('uncommitted');
let alreadyUploadedBytes = 0;
uncommittedBlocks.forEach( ub => alreadyUploadedBytes += ub.size);
const file = fileToUpload.slice(alreadyUploadedBytes);
await blockBlobClient.uploadData(file,**uncommittedBlocks**);  // the parameter 'uncommittedBlocks' is the new thing to allow

Impact on the SDK source code.
propage the list of uncommited block parameter to "uploadSeekableInternal" function in https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/storage/storage-blob/src/Clients.ts
then remplace the BlockList variable initialisation inside of this function
const blockList: string[] = [];
by
const blockList = uncomittedBlockList ?  uncomittedBlockList.map(b => b.name): [];
so that all block will be commited at line
return this._client.commitBlockList(blockList, updatedOptions);
thanks

I like this scenario; it seems like an interesting case to consider for enhancement. /cc @jeremymeng

Hi @AL1068469 ,
Just want to understand more details about the scenario.
If I understand it wrong, please correct me. From my understand the scenario is: customer may want to upload a big file with upload method in the SDK, but due to some reason ( for example transient network issue) the uploading failed. Customer may want to upload the remaining content instead of upload to the file from the very beginning.
Customer just wants to be able to resume from a checkpoint, it may not be necessary to implement with the uncommitted block list, right?  For example, if the upload method can return an offset to which it has completed uploading, customer can pass the offset to the upload method when they want to resume the operation.  This solution should also be able to meet customer's requirement, right?
Thanks
Emma

The idea of using uncommited block is to be able to resume the upload even if the browser is closed or user press F5 by mistake. In this situation you will lost your context in javascript. So by querying the uncommitted block list before the upload i am able to know if some data are already uploaded or not, without having to keep that state on my side.
Then the issue with the UploadData method from the SDK is that all previous uncommitedblock will be discard. that why i propose to be able to specified it to support this resuming scenario
Thanks
Fabien


Query loses its result type when using setLockMode or setHint

When using setLockMode()  or setHint() on a Query, PHPStan stop inferring the result type.
GOOD TYPE
$user = $entityManager
    ->getRepository(User::class)
    ->createQueryBuilder('user')
    ->where('user.id = :userId')
    ->getQuery()
    ->getResult();

\PHPStan\dumpType($user); // -> Dumped type: array<App\User>

MIXED TYPE
$user = $entityManager
    ->getRepository(User::class)
    ->createQueryBuilder('user')
    ->where('user.id = :userId')
    ->getQuery()
    ->setLockMode(LockMode::PESSIMISTIC_READ) // <- Add this line
    ->getResult();

\PHPStan\dumpType($user); // -> Dumped type: mixed

Hi @noemi-salaun, this can be fixed directly on doctrine/orm.
The return type is self but the phpdoc should be more precise.
https://github.com/doctrine/orm/blob/2.13.x/lib/Doctrine/ORM/Query.php#L775
Adding /** @return $this */ will solve the issue.
I opened the PR https://github.com/doctrine/orm/pull/10238

This will be fixed in 2.14 version of doctrine