Extension Causing Console Errors for Adobe Launch

Please include, if available:

the URL of the page with an error
https://www.peacocktv.com

the dataslayer export, if possible (click the file icon on the right of the panel, then export to a JSON file)
unable to attach JSON file

any errors in the console for the page
Uncaught TypeError: Cannot read property 'then' of null

any errors in the console (and, if possible, the full log) for dataslayer (you can access this by right-clicking in the
dataslayer panel, clicking "Inspect", and looking in the new DevTools instance that pops up)
None observed

your Chrome version and dataslayer version
Chrome 90.0.4430.93
dataSlayer 1.5.0

Please be advised that this issue results in failure of Adobe Launch actions (e.g. tracking calls not sent, etc.)
Images below for illustration of observations

We also experienced this issue, and I did some debugging. It happens if you have Data Elements that result in the value null. Having undefined, a function, a string, a number etc. works fine, but null leads to this error.
Line 82+83 of the Extension do that:
typeof cleanValue === 'object' &&
typeof cleanValue.then === 'function'
This check is not enough, because typeof cleanValue === 'object' will still work for null, but typeof cleanValue.then === 'function' is the JavaScript error. The extension needs to be modified to:
      typeof cleanValue === 'object' &&
      **cleanValue != null &&**
      typeof cleanValue.then === 'function'

This would fix the error. You can fix the error on Launch side if you avoid null in your Data Elements for now.

Hi all
@jaredrileysmith thanks for flagging this issue, and @sschaefa thank you for digging in and identifying the solution. Frustratingly, this is an issue that was initially fixed a few months ago, but I apparently missed another location where it could occur. This will be fixed in dataslayer 1.5.1 which I am sending to the web store momentarily.
Best
Sean


pre-trained model

Hi, your work is great!
But i can't find the pre-trained model that you refer to 'model.tar', can you give a link? Thank you very much!!

Sorry for the confusion. I didn't plan to release the pre-trained models. I have fixed the statement in README.


Collect NodeJS

https://github.com/nodejs/security-wg/tree/master/vuln

Note that we had also #101 but these seem complementary

https://github.com/nodejs/security-wg/tree/master/vuln/npm is collected from a more fresh source   in  our current npm importer. That leaves https://github.com/nodejs/security-wg/tree/master/vuln/core . Btw what should be package name for these?

@sbs2001 We discussed the same issue for Ruby (or Rust? or both? don't remember) and decided to leave out the upstream tarballs of the language toolchain itself for now.
Apart from the questions of what package-url attributes we should use for them, it's also unclear how a user of VulnerableCode would programmatically determine that they are using them. Meaning, if I download ruby-2.5.7.tar.gz and run ./configure && make && make install (or whatever the equivalent is), how can a tool like scancode or ORT later detect that and query the VulnerableCode API accordingly?
I thnk we should remove this ticket (and similar ones) from the milestone.


Migrate to CircleCI 2.0

I think we just need to follow the migration guide:
https://circleci.com/docs/2.0/migrating-from-1-2/

Yes. Seems like you're already on it.


Add Meta advertising tag / Matomo Tag manager in Site Settings

One possibility is to add Meta advertising tag now, and Matomo tag manager later
Another possibility is to add Matomo Tag Manager now
Please add this explanatory text to the Site Settings box:
"Currently this feature only works on devices using JavaScript (eg basic featurephones are not supported), and does not work with MNO zero-rating or Meta Free Basics."

As previously discussed, I think it is worth integrating Matomo Tag Manager into IoGT because it is very likely to provide additional value in the longer term because it will allow site owners/admins to update tags on their own, without developer intervention. The caveat to that is that a JavaScript-enabled client is required for the Tag Manager to work, so it does not cover all the situations in which IoGT is expected to be used. Additional work would have to be done to extend the Tag Manager so that it would work with clients that do not have JavaScript enabled, and it is understood that this work is not in scope here.
The vast majority of the work required to implement the Meta tag vs Matomo Tag Manager is the same. If the Tag Manager is not usable, the work done could be reused to implement the Meta tag. Since there is a bit of time pressure on this, I think we can push for a release by next Wednesday.
Actual tags will be required for testing, both for Tag Manager and Meta. Please send them across privately i.e. not via this issue.

The Meta tag should now be in place, but I'm not seeing anything when accessing the site.

I see this error in Dev Tools

Possibly we need to implement the Matomo Container Tag differently to be CSP compatible?
https://matomo.org/faq/general/faq_20904/

The CSP would have to change to accommodate the scripts that might be loaded via Tag Manager. In this case, the Meta tag needs to be allowed to load. I have made changes to the sandbox that should allow just the Meta tag to work - following Meta's recommendation. After the change, I still see the CSP blocking the loading of a resource at "www.facebook.com", but it is likely that merely sending the request is sufficient, so it shouldn't be a problem.
There is a more general way to allow any tag loaded through Tag Manager to work, but it requires us to set the CSP in the IoGT app instead of in the Nginx proxy, as it is currently.
I think we can ignore the errors related to unisitetracker because we should be proxying those anyway. These errors are probably related to the default Matomo tag that is automatically set up in Tag Manager - which I thought would be removed.
In any case, let me know if the Meta tag is working now.

There was a misconfigure of a Matomo tag within the Container Tag - I removed it and we should no longer be getting the unisitetracker CSP error
Meta is still not working unfortunately. I think you should be able to accurately check the Meta tag using "Meta Pixel Helper" Chrome plugin https://developers.facebook.com/docs/meta-pixel/support/pixel-helper/

The documentation is not complete because the tag requires access to 'www.facebook.com' as well. It should be working now.


fix(nuxt): merge options with public runtime config

🔗 Linked issue

❓ Type of change

[ ] 📖 Documentation (updates to the documentation, readme or JSDoc annotations)
[x] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality like performance)
[ ] ✨ New feature (a non-breaking change that adds functionality)
[ ] 🧹 Chore (updates to the build process or auxiliary tools and libraries)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description
Hi 👋
Currently module options are not public, so config.public.motion is always undefined in the Vue plugin.
This PR makes options public.
📝 Checklist

[ ] I have linked an issue or discussion.
[ ] I have added tests (if possible).
[ ] I have updated the documentation accordingly.

@Tahul @BobbieGoede Can we merge it soon? This is a fairly simple fix

Good find, thanks!
I think this change fixes/allows users to also provide/exclude directives with the motion key in nuxt.config.ts, options provided through runtimeConfig.public.motion should have been working as expected https://github.com/vueuse/motion/blob/main/src/nuxt/runtime/templates/motion.ts#L8 without this change.

@BobbieGoede I think it makes sense to show the example with motion key and not runtimeConfig in the Installation section of the docs, WDYT?
// nuxt.config.ts
export default defineNuxtConfig({
  motion: {
    directives: {
      'pop-bottom': {
        initial: {
          scale: 0,
          opacity: 0,
          y: 100,
        },
        visible: {
          scale: 1,
          opacity: 1,
          y: 0,
        }
      }
    }
  }
})

Typically, runtimeConfig is an alternative, but not the primary option.

I agree, runtimeConfig is nice but secondary to configuration by key and modules array, we should update the docs.
We should probably consider deprecating runtimeConfig for the next major version and instead support and recommend configuring directives/presets in app.config since changes will update reactively without restarting the Nuxt server.


Replacing raw unicode with JS escaped unicode

https://app.clubhouse.io/featurepeek/story/2432/escape-raw-unicode


feat: make bazel-lib the source-of-truth for Aspect recommended bazelrc settings

Is there an advantage to having the .aspect paths on these files?

It indicates the recommended locations as well off the bat


Add encryption module 1.0

When adding encryption, I think it would be a good idea to also reach out to Apache and ask if this makes Appache TsFile affected by some encryption-export-regulatory things. I know Apache products containing encryption parts might require getting some sort of ID assigned in order to be tracked.


Raise error when tokenizer encounters empty strings

Closes #60

Hi, @xhluca . From my perspective, raising an error when tokenizing an empty string is not a good practice. In real-world data distribution, it's common for data to be imperfect and contain null values (or empty strings), so it's normal for data to include empty strings.
Raising an error directly for empty strings might frustrate developers, who would then have to clean the data before using bm25s.
Additionally, I experimented with Elasticsearch, and inserting data with empty strings didn't cause any issues. Even if all the data were empty strings, searching wouldn't result in an error.

You are right. I've removed the valueerrror and instead use make the empty string into an accepted vocab token.
Can you let me know if that works on your end?

@zhuwenxing I tried running your example, however there was a few things i had to change, i also removed jieba to make it more generic (since the problem can be found in english as well), here's the updated code:
import bm25s
from bm25s.tokenization import Tokenizer

# Create an empty corpus
corpus = ["", "", "", ""]
# Create a list of queries
queries = ["what is the meaning of life?"]

# The tokenizer will return a list of list of tokens
tokenizer = Tokenizer()
corpus_tokens = tokenizer.tokenize(corpus, return_as="tuple", allow_empty=True)
print("Corpus tokens:", corpus_tokens)

query_tokens = tokenizer.tokenize(queries, return_as="ids", update_vocab=False, allow_empty=True)
print(f"Query tokens: {query_tokens}")

retriever = bm25s.BM25()
retriever.index(corpus_tokens)

results, scores = retriever.retrieve(query_tokens, corpus=corpus, k=2)
print("Results:", results)


Bug: relation "rbac_policy_data" does not exist

📜 Description
Got an error while trying to install devtron from helm
{"level":"info","ts":1702365981.9867072,"caller":"sql/connection.go:66","msg":"connected with db","db":{"Addr":"postgresql-postgresql.devtroncd","Port":"5432","User":"postgres","Password":"********","Database":"orchestrator","ApplicationName":"orchestrator","LogQuery":true,"LogAllQuery":false,"ExportPromMetrics":false,"QueryDurationThreshold":5000}}
2023/12/12 07:26:22 casbin Policies Loaded Successfully
{"level":"error","ts":1702365982.0373101,"caller":"repository/RbacPolicyDataRepository.go:44","msg":"error in getting policy data for all roles","err":"ERROR #42P01 relation \"rbac_policy_data\" does not exist","stacktrace":"github.com/devtron-labs/devtron/pkg/user/repository.(*RbacPolicyDataRepositoryImpl).GetPolicyDataForAllRoles\n\t/go/src/github.com/devtron-labs/devtron/pkg/user/repository/RbacPolicyDataRepository.go:44\ngithub.com/devtron-labs/devtron/pkg/user/repository.(*RbacDataCacheFactoryImpl).SyncPolicyCache\n\t/go/src/github.com/devtron-labs/devtron/pkg/user/repository/RbacDataCacheFactory.go:99\ngithub.com/devtron-labs/devtron/pkg/user.NewUserCommonServiceImpl\n\t/go/src/github.com/devtron-labs/devtron/pkg/user/UserCommonService.go:61\nmain.InitializeApp\n\t/go/src/github.com/devtron-labs/devtron/cmd/external-app/wire_gen.go:138\nmain.main\n\t/go/src/github.com/devtron-labs/devtron/cmd/external-app/main.go:29\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:250"}
{"level":"error","ts":1702365982.0380378,"caller":"repository/RbacRoleDataRepository.go:46","msg":"error in getting role data for all roles","err":"ERROR #42P01 relation \"rbac_role_data\" does not exist","stacktrace":"github.com/devtron-labs/devtron/pkg/user/repository.(*RbacRoleDataRepositoryImpl).GetRoleDataForAllRoles\n\t/go/src/github.com/devtron-labs/devtron/pkg/user/repository/RbacRoleDataRepository.go:46\ngithub.com/devtron-labs/devtron/pkg/user/repository.(*RbacDataCacheFactoryImpl).SyncRoleDataCache\n\t/go/src/github.com/devtron-labs/devtron/pkg/user/repository/RbacDataCacheFactory.go:120\ngithub.com/devtron-labs/devtron/pkg/user.NewUserCommonServiceImpl\n\t/go/src/github.com/devtron-labs/devtron/pkg/user/UserCommonService.go:62\nmain.InitializeApp\n\t/go/src/github.com/devtron-labs/devtron/cmd/external-app/wire_gen.go:138\nmain.main\n\t/go/src/github.com/devtron-labs/devtron/cmd/external-app/main.go:29\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:250"}
{"level":"info","ts":1702365982.048012,"caller":"auth/UserAuthOidcHelper.go:56","msg":"auth starting with dex conf","conf":{"DexHost":"http://argocd-dex-server.devtroncd","DexPort":"5556","DexClientID":"argo-cd","DexServerAddress":"http://argocd-dex-server.devtroncd:5556","Url":"","DexClientSecret":"5ztHwvyXWB0p8HtdyhGeCPjhl8NzYhROsw8k3Ata","ServerSecret":"Dh+wQi1sHi7mHfYEKh6UWJ1PObarTfIDgm/50jK/jA8=","UserSessionDurationSeconds":86400,"ADMIN_PASSWORD_MTIME":"0001-01-01T00:00:00Z","DexConfigRaw":"","DevtronSecretName":"devtron-secret"}}
time="2023-12-12T07:26:22Z" level=info msg="proxy server address:  http://argocd-dex-server.devtroncd:5556"
time="2023-12-12T07:26:22Z" level=info msg="Creating client app (argo-cd)"

👟 Reproduction steps
helm uninstall devtron -n devtroncd
k delete -f pv1-devtron-volume.yaml
k delete -f pv2-devtron-volume.yaml
k delete -f pv3-devtron-volume.yaml
k delete -f pv4-devtron-volume.yaml
k delete ns argo devtroncd devtron-cd devtron-ci devtron-demo
helm install devtron devtron/devtron-operator --create-namespace --namespace devtroncd --set installer.modules={cicd} --set argo-cd.enabled=true
👍 Expected behavior
all PODs should have run well
👎 Actual Behavior
POD devtron Back-off restarting failed container
☸ Kubernetes version
1.24.4
Cloud provider

On premises

🌍 Browser
Edge
🧱 Your Environment
No response
✅ Proposed Solution
No response
👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find any similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

AB#7437

Hi @emoxam can you share the output of kubectl get job -n devtroncd

kubectl get job -n devtroncd
NAME                               COMPLETIONS   DURATION   AGE
app-sync-job-6dvkg                 0/1           16m        16m
devtron-housekeeping               1/1           4m15s      4m32s
postgresql-migrate-casbin          0/1           9m20s      9m20s
postgresql-migrate-casbin-lpglt    1/1           8m25s      16m
postgresql-migrate-devtron         0/1           9m27s      9m27s
postgresql-migrate-devtron-t0cll   0/1           16m        16m
postgresql-migrate-gitsensor       1/1           2m25s      9m13s
postgresql-migrate-lens            1/1           14s        9m6s
postgresql-miscellaneous           1/1           18s        8m59s

Also, can you share the output of helm ls -n devtroncd

@prakarsh-dt
helm ls -n devtroncd
NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                           APP VERSION
devtron devtroncd       1               2023-12-12 10:23:06.669461972 +0300 MSK deployed        devtron-operator-0.22.60        0.6.21

Although you are installing a 4 months old version of devtron, can you share the logs/status of jobs which are still not completed?
postgresql-migrate-casbin and postgresql-migrate-devtron

I am folowing the manual from the https://docs.devtron.ai/install/install-devtron-with-cicd-with-gitops
Now the picture is different
kubectl get job -n devtroncd
NAME                               COMPLETIONS   DURATION   AGE
app-sync-job-6dvkg                 0/1           34m        34m
devtron-housekeeping               1/1           4m15s      22m
postgresql-migrate-casbin          1/1           9m28s      27m
postgresql-migrate-casbin-lpglt    1/1           8m25s      34m
postgresql-migrate-devtron         1/1           10m        27m
postgresql-migrate-devtron-t0cll   0/1           34m        34m
postgresql-migrate-gitsensor       1/1           2m25s      26m
postgresql-migrate-lens            1/1           14s        26m

k describe job postgresql-migrate-devtron-t0cll -n devtroncd
Name:                     postgresql-migrate-devtron-t0cll
Namespace:                devtroncd
Selector:                 controller-uid=2dbb9ebf-99db-40de-b98a-af156b30d57c
Labels:                   app.kubernetes.io/managed-by=Helm
                          job=postgresql-migrate-devtron
Annotations:              meta.helm.sh/release-name: devtron
                          meta.helm.sh/release-namespace: devtroncd
Parallelism:              1
Completions:              1
Completion Mode:          NonIndexed
Start Time:               Tue, 12 Dec 2023 10:23:10 +0300
Active Deadline Seconds:  1500s
Pods Statuses:            0 Active (1 Ready) / 0 Succeeded / 1 Failed
Pod Template:
  Labels:  controller-uid=2dbb9ebf-99db-40de-b98a-af156b30d57c
           job-name=postgresql-migrate-devtron-t0cll
  Containers:
   postgresql-migrate-devtron:
    Image:      quay.io/devtron/migrator:ec1dcab8-149-13278
    Port:       <none>
    Host Port:  <none>
    Environment Variables from:
      postgresql-migrator  Secret  Optional: false
    Environment:
      GIT_BRANCH:          main
      SCRIPT_LOCATION:     scripts/sql/
      GIT_REPO_URL:        https://github.com/devtron-labs/devtron.git
      DB_TYPE:             postgres
      DB_USER_NAME:        postgres
      DB_HOST:             postgresql-postgresql.devtroncd
      DB_PORT:             5432
      DB_NAME:             orchestrator
      MIGRATE_TO_VERSION:  0
      GIT_HASH:            f1cf1ba4a9000f084ac6fdd669501f57d1ef4f2d
    Mounts:                <none>
  Volumes:                 <none>
Events:
  Type     Reason            Age   From            Message
  ----     ------            ----  ----            -------
  Normal   SuccessfulCreate  35m   job-controller  Created pod: postgresql-migrate-devtron-t0cll-qrdrn
  Normal   SuccessfulDelete  10m   job-controller  Deleted pod: postgresql-migrate-devtron-t0cll-qrdrn
  Warning  DeadlineExceeded  10m   job-controller  Job was active longer than specified deadline

@prakarsh-dt
app-sync-job-6dvkg-x4fb2 POD is pending
app-sync-job-6dvkg JOB is pending
postgresql-migrate-devtron-t0cll JOB is failed.
What can i do ?

Can you check logs of failed job?


Deprecate ASN1_sign(), ASN1_verify() and ASN1_digest()

These are old functions that fell out of use with OpenSL 0.9.7.
It's more than time to deprecate them.

hooray!

travis error is a timeout.

Rebased on new master.  CHANGES.md got updated with the changes i previously had in CHANGES

Reconfirmed approval

Merged
12d99aac973e5e6723f62f19b07b9c8bcc81c57b Deprecate ASN1_sign(), ASN1_verify() and ASN1_digest()


Is HttpApi with payload version 2.0 supported ?

I have seen convertEvent function do some transformation with a few keys present in httpapi event(like routeKey) but i am not sure. I was able to get it to work for payload version 1.0(since the eventobject is same as RestAPI) but not 2.0.

Should be, if not, we should definitely make some changes to support it. Can I recommend trying it out and seeing if you notice any issues?

I have tried it, the handler works for payload version 1.0 but fails when I use payload version 2.0.
I have attached an image here I am using payload version 2.0

Hmm, thanks for the validation. I guess for now, just use the 1.0 version, unless there was some reason you needed the 2.0. in any case, this is a problem so we'll fix it. If you're interested in having this, we would appreciate a PR, if you are up for it.

Ok thanks. Although I don't understand everything from the package I can try this and create a PR.

Adding anything would be helpful, we can take it from there.

when I try to push a branch to this repo it says I don't have permission. What should I do ?

The process for creating PRs in GitHub is to first fork the repository and push to your fork, then open a PR.

Hi, I was able to create a PR. Look into when you have time. Thanks

Hello, You can see I have added/updated test for HttpAPI payload version 2.

Thanks for this, was able to use that code to deploy a new version. Check it out once it is ready to see if that fixes your issue. It should be version 5.2.38.

Hi, I hope i was there to assist on further queries as well (I saw the event object was not right in the test). But I am glad I was of help. I have checked it in aws as well and works great. Thanks😊


'easyquotation' has no attribute 'use'

code

import easyquotation
quotation = easyquotation.use('sina') # 新浪 ['sina'] 腾讯 ['tencent', 'qq']

error

  Message=partially initialized module 'easyquotation' has no attribute 'use' (most likely due to a circular import)
  Source=C:\Users\someuser\TestStock\TestStock_Python\easyquotation.py
  StackTrace:
  File "C:\Users\someuser\TestStock\TestStock_Python\easyquotation.py", line 3, in <module> (Current frame)
    quotation = easyquotation.use('sina') # 新浪 ['sina'] 腾讯 ['tencent', 'qq']
  File "C:\Users\someuser\TestStock\TestStock_Python\easyquotation.py", line 1, in <module>
    import easyquotation

version

python 3.9.4
easyquotation 0.7.4

测试文件和库重名了


Pubsub runs before dapr API is available

/area runtime

/area operator
/area placement
/area docs
/area test-and-release

What version of Dapr?

0.6.x
Expected Behavior
When running an app that subscribes to a pubsub topic, the Dapr API should be available before the topic handler is called.
Actual Behavior
There is a race condition that means that the app's handler can be invoked (if there is a message already on the topic) before the Dapr HTTP/gRPC API is available. If that handler happens to try and call the Dapr API i.e. a binding or state api it will crash.
Steps to Reproduce the Problem

Run redis.
Push messages onto a topic.
Run an app that subscribes to this topic.
Have the app's topic handler send a request back to the Dapr API.
Retry initialization until race condition occurs and crashes.

Thanks @jjcollinge to file the issue. We must have an automated e2e test for this.

Yeh, this is likely an issue for input bindings too.


TypeError while using Python3.6 with python-rsa

I tried to use python-adb with Python3.6 and python-rsa, then I got the TypeError while connecting to the device:
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
  File "D:\DevTools\python-adb-master\adb\adb_commands.py", line 76, in ConnectDevice
    return cls.Connect(handle, **kwargs)
  File "D:\DevTools\python-adb-master\adb\adb_commands.py", line 99, in Connect
    device_state = cls.protocol_handler.Connect(usb, banner=banner, **kwargs)
  File "D:\DevTools\python-adb-master\adb\adb_protocol.py", line 299, in Connect
    signed_token = rsa_key.Sign(str(banner))
  File "D:\DevTools\python-adb-master\adb\sign_pythonrsa.py", line 69, in Sign
    return rsa.sign(data, self.priv_key, 'SHA-1-PREHASHED')
  File "D:\ProgramFiles\Python\Python36\lib\site-packages\rsa\pkcs1.py", line 275, in sign
    cleartext = asn1code + hash
TypeError: can't concat str to bytes

If you take the latest github release there are only 2 minimal changes necessary to get it running under python3.6:
diff --git a/adb/adb_commands.py b/adb/adb_commands.py
index eb454ce..e0fc71d 100644
--- a/adb/adb_commands.py
+++ b/adb/adb_commands.py
@@ -67,7 +67,7 @@ class AdbCommands(object):
     If serial specifies a TCP address:port, then a TCP connection is
     used instead of a USB connection.
     """
-    if serial and b':' in serial:
+    if serial and ':' in serial:
         handle = common.TcpHandle(serial, timeout_ms=default_timeout_ms)
     else:
         handle = common.UsbHandle.FindAndOpen(
diff --git a/adb/common.py b/adb/common.py
index 9e1fc17..e43c9ec 100644
--- a/adb/common.py
+++ b/adb/common.py
@@ -291,8 +291,8 @@ class TcpHandle(object):

     Host may be an IP address or a host name.
     """
-    if b':' in serial:
-      (host, port) = serial.split(b':')
+    if ':' in serial:
+      (host, port) = serial.split(':')
     else:
       host = serial
       port = 5555

@Myonium, if you make that a pull request I'll accept it asap :)
Also, include a change to CONTRIBUTORS

@Myonium It can resolve the TypeError thrown in TcpHandle, but it cannot resolve the TypeError thrown in python-rsa.


[Modern] - Side menu remains open when device is selected

Describe the bug
In mobile viewpoint - After a device is selected in the side menu the centre info box appears but the side menu doesn't close.
To Reproduce
Select any device from side menu using mobile viewpoint
Expected behavior
Device is selected -> centre info box is shown -> side menu closed -> device centred on map
Screenshots

Smartphone
All mobile viewpoints

It's not really a bug. Why do you expect it to close? What if you want to go through the list?

I would say the flow is counter intuitive compared to the the majority of mobile apps / websites when you select something you'd expect to see what is selected which also matches the desktop UI. Having the info box overlaid over the menu also makes it harder to use as if you catch this when scrolling it then tries to scroll the whole page instead of just the list, until you click on another device.
By go through the list do you mean select each device, or just scroll to choose one?
https://user-images.githubusercontent.com/72134131/170829908-82baf195-30e7-4d07-87de-87ab1c87d5de.mp4

when you select something you'd expect to see what is selected

But you do see it.
What I'm saying is that you're focusing on one flow, but there's also another where you're not really interested in the map, but more in the details for several devices. That's why we don't close it. We're actually thinking of making it either configurable or double click to show the map.


Deploying to existing fleet build fails

Describe the problem
Deploying the new balena-sound version 3.10.0 to an existing fleet, the build fails. Attached is the log:
balena-sound_release-log_build overview-3.10.0.txt
To Reproduce
Steps to reproduce the behavior:

Deploy via deploy token

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Device information

Board (hardware info): Raspberry Pi 3
Device type (as seen in balenaCloud): Raspberry Pi 3
balenaOS version: balenaOS 5.2.2+rev1

Additional context
Add any other context about the problem here.

Ok, today I tried again after a reboot of all devices on the fleet and it just builded. Don't know why but that's it...


Experiment Home's Samples Table needs cleanup

On the project home page (and carrying over to the Experiment home page), the Tab Bar (with: Home, Experiments, Samples, Files, Settings), when clicking Samples shows the Samples Table. These are currently the headings of the columns of the table:  Sample (the sample name), Description, Composition, Modified (date), # Files, and # Processes. The Description can be removed (as the user has no way of setting or changing the description). The Composition always shows up as Unknown. I recommend that we remove the Description, and adding the compound information. Also, is we show Modified date, we need to update it when the sample is Modified - what ever that means.

Removed column.


Web: consider ignoring parsed u-url

We hit an example recently where u-url was wrong: https://www.oh.mg/2024/02/crossing-the-street-and-getting-hit-by-a-car/ and https://www.oh.mg/2024/02/farscape-and-capitalism/ both have incorrect u-url of https://www.oh.mg/2024/02/ .

https://pin13.net/mf2/?url=https://www.oh.mg/2024/02/crossing-the-street-and-getting-hit-by-a-car/
https://pin13.net/mf2/?url=https://www.oh.mg/2024/02/farscape-and-capitalism/

What should we do about this? Should we ignore u-url and always use fetched url? But then we'd miss cases where u-url correctly points to a different canonical URL. Do those cases actually happen? Does consolidating them actually matter?

Got another report of this: https://blimps.xyz/@KayOhtie/112453839615140876

Further chiming on this. It seems like any u-url links are added as profile links eg in Mastodon, like when someone defines multiple links in a bio config. It's very confusing seeing this visual facet of the profile also be a problem for the functional facet of it.

Sorry this is confusing! microformats like u-url do go in the HTML class attribute, but they're functional, not visual. class is for more than just CSS.
Bridgy Fed does add u-url(s) from your h-card as profile links in your generated fediverse profile. u-url is for the canonical URL of the current element, eg your web profile (probably your web site's home page) for your h-card, or the post's permalink for h-entry. This is often the current page, but not always, eg when you're rending your h-card somewhere other than your home page, or an h-entry in a feed.
If you're linking to your other profiles elsewhere, you'd generally use rel=me, not u-url.

Plot twist! Turns out I was wrong about h-card u-url all along: https://chat.indieweb.org/microformats/2024-05-23#t1716482532021200 . Guess I got misled by what it means in h-entry, which is different. 🤷 No matter though, just more motivation to handle this on Bridgy Fed's end!


Inconsistent payload data types documented in Resque_Job

See this line, which states that the $payload property has an object type, versus this line, which states that the $payload property has an array type.
I believe array to be correct. I'm guessing that this type was changed at some point and that particular type referenced was simply overlooked when updating documentation?

I'm not certain the inline documentation was ever really looked at too hard.  In all honesty, though, it could easily be either, since the payload gets JSON-encoded between enqueue and work start.
That said, a PR with array would probably be accepted.  @chrisboulton is pretty busy lately, though, so I can't speak to how quickly, though.

Submitted #246.

Thanks :)


Unable to clean up log entries created during system testing

The projects.logs.delete API is returning 404s for logs which plainly exist.
>>> from gcloud.logging import Client
>>> client = Client()
>>> entries, token = client.list_entries(filter_='logName:system-tests')
>>> len(entries)
6
>>> loggers = set([entry.logger for entry in entries])
>>> len(loggers)
3
>>> [logger.name for logger in loggers]
[u'system-tests-logger-1458748033415', u'system-tests-logger-1458757743657', u'system-tests-logger-1458843354552']
>>> for logger in loggers:
...     logger.delete()
...
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
  File "gcloud/logging/logger.py", line 130, in delete
    method='DELETE', path='/%s' % self.full_name)
  File "gcloud/connection.py", line 343, in api_request
    error_info=method + ' ' + url)
gcloud.exceptions.NotFound: 404 Requested entity was not found. (DELETE https://logging.googleapis.com/v2beta1/projects/citric-celerity-697/logs/system-tests-logger-1458748033415)

I can't delete those logs via the "Try It!" form for projects.logs.delete, either.
@jgeewax who is the back-end API contact person for logging?

@jgeewax Bump

@jgeewax who is the back-end API contact person for logging?

@jgeewax this issue blocks merging the logging-api branch by EOQ (we have consistent system test failures).

@munangst can you help out with this? Apparently logs that exist are 404'ing when we try to delete them ?

Weird, my logging system tests just started passing:
$ PYTHONPATH="_testing" .tox/system-tests/bin/python system_tests/run_system_test.py --package=logging
test_create_metric (logging_.TestLogging) ... ok
test_create_sink_bigquery_dataset (logging_.TestLogging) ... ok
test_create_sink_storage_bucket (logging_.TestLogging) ... ok
test_list_metrics (logging_.TestLogging) ... ok
test_log_struct (logging_.TestLogging) ... ok
test_log_text (logging_.TestLogging) ... ok
test_reload_metric (logging_.TestLogging) ... ok
test_reload_sink (logging_.TestLogging) ... ok
test_update_metric (logging_.TestLogging) ... ok
test_update_sink (logging_.TestLogging) ... ok

----------------------------------------------------------------------
Ran 10 tests in 33.164s

OK

The teardown for test_log_struct and test_log_text had been failing with a 404 consistently until just now.

My first guess is that there's some sort of eventual-consistency race condition between creating a log stream (by writing the first entry to it) and deleting it. I checked our API logs and I couldn't find any entries being written to the log name in the original problem report, but for another log in your project projects/citric-celerity-697/logs/system-tests-logger-1459356049383 I see the following API calls:
2016-03-30 09:41:02.568378 200 POST /v2beta1/entries:write HTTP/1.1
2016-03-30 09:41:04.824128 404 DELETE /v2beta1/projects/citric-celerity-697/logs/system-tests-logger-1459356049383 HTTP/1.1
2016-03-30 09:41:05.031395 200 POST /v2beta1/entries:write HTTP/1.1
2016-03-30 09:41:09.191566 404 DELETE /v2beta1/projects/citric-celerity-697/logs/system-tests-logger-1459356049383 HTTP/1.1

That's not very much time between the initial write and the delete (2-4 sec), so you might be tickling a consistency problem between two backends. We'll investigate and see if we can reproduce it.

Opened Google internal bug 27931629 to track this.

@munangst FWIW, note that in between the write and the delete, there was also a GET call to list entries for the logName used in the system test:  that call succeeds.


Clean up druid-shell info and add new info to Cargo.toml.

 This PR addresses that.
I also added better example scraping for docs, which is ported over from the latest druid-shell.

I confirmed that image isn't used at all and neither was im, so I removed these completely.


Cargo failed to install the mdbook.

Install mdbook
I would like to use mdbook and I am trying to understand how to use and configure it.
The guide says that you need to install rust first.
Steps

I installed RUST from the command line: curl --proto '= https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Cargo is installed with version "1.41.0"
RUST is installed with version "1.41.1"
Install mdbook with the command: cargo install mdbook
But it gives me an error.

Error
Updating crates.io index
Installing mdbook v0.3.5
Compiling libc v0.2.67
Compiling cfg-if v0.1.10
Compiling proc-macro2 v1.0.9
Compiling unicode-xid v0.2.0
...
...
...
Running rustc --crate-name build_script_build /Users/...
error: linking with cc failed: exit code: 1
...
error: aborting due to previous error
error: could not compile log.
...
warning: build failed, waiting for other jobs to finish...
error: linking with cc failed: exit code: 1
...
error: aborting due to previous error
error: could not compile libc.
...
error: aborting due to previous error
error: could not compile syn.
...
error: linking with cc failed: exit code: 1
...
error: aborting due to previous error
error: failed to compile mdbook v0.3.5, intermediate artifacts can be found at /var/folders/sh/.../T/cargo-installQcUbqz

Thanks for the report! It looks like most of the error logs was snipped out though, can you provide a more complete error log?

Hi alexcrichton,
thank you.
I hadn't reported the whole log file because I'm not sure if there was some private data.
Can I proceed safely?
However, maybe it could depend on something wrong, some missing steps
After installing rust all I have to do is install mdbook with command ?
Or I should have add Cargo's bin directory to my PATH before? How?
After installing rust he tells me:

Rust is installed now. Great!
To get started you need Cargo's bin directory ($HOME/.cargo/bin) in your PATH
environment variable. Next time you log in this will be done
automatically.

Also if I use cargo check command it returns the following error:
error: could not find Cargo.toml in /Users/emiliano/Applications or any parent directory

Ah well it's up to you how much data you'd like to upload. Given what we can see of the log this doesn't look like a Cargo issue, but rather it's most likely a system configuration issue or something like that.

doesn't look like a Cargo issue, but rather it's most likely a system configuration issue or something like that.

I'm sure too
But i'm not sure about insert all the whole log file. What do you suggest?
Based on what I wrote I did all the steps correctly then?
Do I have to set any cargo's bin directory in my path? How?
I tried to reinstall rust and now after redoing the steps described above it gives me this error:
...
...
error: could not compile `libc`.
warning: build failed, waiting for other jobs to finish...
error: could not compile `syn`.
warning: build failed, waiting for other jobs to finish...
error: linking with `cc` failed: exit code: 1
  |
= note: "cc" "-m64" "-L" "/Users/emiliano/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib"...
...
...
= note: xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

error: aborting due to previous error

error: failed to compile `mdbook v0.3.5`, intermediate artifacts can be found at `/var/folders/sh/cbbm5nwx55qdss9hzv03536m0000gn/T/cargo-installJLJD6U`

Caused by:
  could not compile `proc-macro2`.

There could be a massive number of things that are possibly going wrong here, there's really no great way to help narrow it down without more information. I'd recomend probably trying to compile simple C programs and see if that works out. If that doesn't work then it's likely an issue independent of rustc/cargo.

Now it works!!!
After upgrading to MacOS X 10.15 Catalina I had to reinstall the command line tools:
$ xcode-select --install

Thanks for posting the solution! Worked for me as well :)

yeah it worked for me too. Thanks


fix: add helpful error message to AssociationTree

Add helpful error message when trying to eager load "past" a polymorphic association. Currently, trying to eager load past a polymorphic association in the console receives:
NoMethodError: undefined method `associations' for nil:NilClass
	from (irb):2

Which is difficult to diagnose.

Hmm. Apparently RuboCop doesn't like the long text.

Great, thanks!  I think the message is missing an end parenthesis.  It would be good to have a spec to cover this exception case.
For the long line, you should be able to use backslashes in the string like this:
fail "Cannot eager load \"past\" a polymorphic association. \
(since the association can return multiple models, we don't how to handle the \"#{spec}\" association." unless model

@cheerfulstoic thanks, I didn't know about using a single \ inside a string to split it between lines.
Spec added.

Codecov Report

Merging #1488 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #1488      +/-   ##
==========================================
+ Coverage   96.85%   96.85%   +<.01%
==========================================
  Files         205      205
  Lines       12621    12626       +5
==========================================
+ Hits        12224    12229       +5
  Misses        397      397

Impacted Files
Coverage Δ

spec/e2e/association_proxy_spec.rb
100% <100%> (ø)
:arrow_up:

...o4j/active_node/query/query_proxy_eager_loading.rb
100% <100%> (ø)
:arrow_up:

lib/neo4j/active_node/has_n/association.rb
95.94% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

🎉

Released as 9.1.7


[ACM-5782][release-2.8] Added resync for required managedcluster labels

Updated rbac-query-proxy resync to prevent adding the labels name and cluster.open-cluster-management.io/clusterset to managedcluster label ignore list.

/override ci/prow/test-e2e
Overriding the prow test to ensure that the fix is merged. There is an issue with Observability deploying in the cluster from the cluster pool. We will need to spend time to debug that issue within a separate PR.


[DISCUSS] Multi-backend Dispatching in Relax

Motivation
To run a deep learning model, the mainstream approach in TVM is to do code generation with an auto-tuner, which make the performance optimization process easier for developers without domain knowledge. But, the auto-tuner approach also comes with some limitation:

Performance issue. The vendor library can utilize the latest hardware features to deliver hardware-native performance. Experienced engineers are also willing to hand-optimize kernels in order to squeeze the ultimate performance for the most important workloads.
Enablements on customized accelerators. Usually, accelerator vendors need to spend several months of development effort to modify and adapt the TVM to ingest, optimize and execute models on their accelerators. In the meantime, the handmade kernel library, which is often born with the accelerator design, appears easier to use.
The prolonged auto-tuning time. It usually takes several hours to tune all workloads in the ResNet50 model.
For these reasons, an automatic dispatching mechanism for multi-backend (code generation, vendor library, kernel written manually) is required in TVM, assuming that those approaches need to be coexisted in the short term.

Existing Approaches
There are already some efforts to bridge the gap between auto-tuner and other approaches in TVM:

CUDNN Integration. The CUDNN is integrated as opaque packed functions first, then a dispatching rule is implemented on the TE schedule level. When the target triple is specified as built with CUDNN, the code will be generated as a call to the cudnn packed functions.

https://github.com/apache/tvm/blob/main/src/runtime/contrib/cudnn/conv_forward.cc
https://github.com/apache/tvm/blob/main/python/tvm/topi/cuda/conv2d.py#L51
https://github.com/apache/tvm/blob/main/gallery/how_to/work_with_relay/using_external_lib.py#L498

BYOC (Bring Your Own CodeGen). The BYOC workflow implements: pattern matching, annotation, cost-based partitioning mechanism, to allow user to specify which part in the graph should be offloaded to the accelerator and how to do code generation for them. BYOC can handle a subgraph beyond a single kernel, so make it possible to do fusion, tuning for the subgraph.

https://arxiv.org/abs/2105.03215

BOLT. The Bolt follows BYOC's approach but is designed for general GPU devices and uses CUTLASS, a templated designed vendor library, as the backend to provide hardware native performance.

https://arxiv.org/abs/2110.15238#

Those approaches demonstrated their feasibility on different applications, but lacks a global mechanism to dispatch between different backends automatically for different devices. For example, although BOLT allows users to specify which part to be computed by cutlass, it is still more friendly to let the framework decide whether to use code generation or cutlass from a user's perspective.
Design Goals
In summary, there are two design goals:

D0: A declarative approach that can describe what pattern can be computed by different backends on the specific target.

D0A: The patterns can be overlapped, for example, replacing a node or a subgraph.
D0B: The pattern should be able to describe the shape and data type of a node, since some kernels are only capable of handling specific shape input.

D1: An automatic evaluation loop that can decide which backend will be used according to their performance.

Proposal
P1: Pattern Specification for Target
The core API would be register(backend, target, pattern, fcodegen).

backend specifies the name of backend, for example, "cudnn", "cutlass", "tensorrt", "autotir", etc. This name can be used as a key for priority configuration;
target specifies the targeting hardware, which can be "cuda -lib=cudnn", "arm-cpu -lib=ethos-n";
pattern specifies the dataflow pattern that can be converted to such backend, for kernel library like cudnn, the pattern can be only a single operator, for other stronger backend, the pattern can be a subgraph like conv2d + arbitrary_elementwise_operator. As we state in D0, the pattern needs to be able to represent a subgraph, also properties like specific shape/dtype.
fcodegen is a callback function, whose signature should be fcodegen(target, pattern) -> packedfunc. It means given the target and pattern, returning the optimal kernel with such backend. The callback design makes it possible to do kernel fusion and tuning in the fcodegen.

Here are some examples (target and pattern would be complicated data structure, I use string here for simplification):

register("cudnn", "cuda -lib=cudnn", "conv2d", lambda target, op: return packed_func("cudnn.conv2d"))
register("cutlass", "cuda -lib=cutlass", "conv2d+add+relu", fusion_and_tune_in_culass)

P2: Automatic Evaluation and Dispatching
With P1, we can specify many graph patterns that can be converted to some specific backends. The next question is, how to choose the best backend for the final model.
P2A: priority configuration for different backends
First, we can allow users to specify the priority for different backends. For example:
priority_config = {
  "cutlass": 3,
  "tensorrt": 2,
}

The framework will use high priority backend (if it is enabled on the target hardware) to replace patterns in the model first, then try low priority backend. This is also useful when we want to lower some pattern to accelerator forcefully.
P2B: evaluation for same priority backends
If there are multiple backends which hold the same priority, and some pattern can be converted to them both, the framework will evaluate the generated packed function, then choose the better one according to their performance.
Benefits from Relax's New Design
The proposal can benefit from features brought by Relax's new design:

Unify the abstraction for cross-layer optimizations
Incremental compilation

These two new features make it possible to lower some parts of the graph to a specific backend ( represented by a call_packed function), which we can still lower the other part with different backend like autotir.
cc @Laurawly @xqdan @comaniac @junrushao1994 @tqchen

CC: @sunggg

We adopted an approach similar to P1 in Meta and do have an approach similar to P2 in our roadmap, although we haven't dived into the detail plan of P2 due to no urgent requirements nor obvious performance gain.
One challenge for the pattern in P1 is variants. For example, we have a case TVM GeLU can only run with FP32 due to the accuracy issue of erf. As a result, the IR in AMP may look like:
%1 = matmul(...); // output FP16
%2 = cast(%1, "float32");
%3 = gelu(%2); // output FP32

The above IR cannot match the pattern specified in CUTLASS that only considers matmul+gelu, even CUTLASS GeLU does support FP16. As a result, when writing the CUTLASS pattern, the developer has to consider such cases and makes the corresponding implementations, which could be tedious and hard to be aware.
Other than that, the overall design looks good to me. As I mentioned, we have a very similar design already implemented in Meta.

@comaniac Thanks for the comment!
For the AMP case, I think it is might be addressable by enhancing the pattern matcher, to make it support more general pattern like conv + arbitrary number of element-wise operator just like regex.
Glad to hear that many parties are adopting the same approach. I also just learnt that @sunggg have explored some similar approach before. I do think it is a good opportunity to have a converged global solution in relax with everyone's effort together.

Hi, @ZihengJiang. I'm also glad to see that we are looking into the same direction. My collaborators and I developed an automated solution to handle such problems and observed some decent improvement compared to conventional approaches. It would be great if we can investigate this direction with relax together!

Thanks @ZihengJiang! We proposed a minimum build pipeline design https://github.com/tlc-pack/relax/issues/49. This minimum build could enable flexible and customized compilation pipelines, and help explore ideas as you suggested in P2B.
For example, users can write feedback for loops in python to explore search-based customized optimization, which requires measuring the execution cost of candidates during the exploration. The custom rewrite pass is outside of the minimum build, so users can write a python script as below:
# mod: input relax program (computational graph)
def search_based_opt(mod):
    while search_budget > 0 and not converge:
        new_mod = relax.transform.SomeCustomRewritePass()(mod)

    	rt_mod = tvm.build(new_mod, target)
    	vm = relax.VirtualMachine(rt_mod, tvm.cpu())
    	execution_time = measure_perf(vm.run())
    return best_candidate

Thanks @ZihengJiang! The proposal is helpful for us, with it, it's possible to do graph heterogeneous planning and execution among cpu, gpu and npu. BTW some inputs of our NPU requirement, we need to do buffer fusion for very large subgraph as much as possible, which means for our NPU, we need more flexible for the whole graph compalition. The design here provide a fine grain heterogeneous solution, do we plan to have a coarser grain one?

Hi @sunggg and @YuchenJin
Thanks for the comments. I did not come up with a concrete proposal about the automatic searching part before, and here is the proposal for this part after I think more based on your comments.
The general question can be expressed as:
given the constraints (the supported patterns by different backends considering priority), how can we find the optimal feasible graph partition strategy to achieve the best performance for the whole graph.
There are two design points worth considering in terms of the compilation infrastructure:

Decouple the partition strategy with the real lowering. This means we will generate the partition strategy first, based on the constraints, then execute the lowering pipeline to replace part of the graph with packed function step by step.
Search based partition strategy generation. This means the partition strategy should be generated according to the feedback of the evaluation results of the whole graph. Different search algorithm can be applied here to accelerate this procedure.

The pseudo code looks like the for-loop proposed by Yuchen, but one unclear decision is whether we should put TensorRTRewrite, CUTLASSRewrite, those things in the normal build pipeline.

Some thoughts:
the fcodegen might not need to be restricted to return a packed function. We can change it to returning a CallNode instead, so that we can use a call_dps to call packed functions while being more general to represent more graph transformation pattern.

I agree that overall it is useful to have a pattern language infrastructure that matches and enumerates the matched possibilities.
The particular codegen signature (e.g. fcodegen) could use a bit more thinking, e.g. ideally we want to preserve the IRModule=>IRModule property to make it composable(as a rewrite of Expr=>Expr), but still have proper followup benchmark and feedback information available to guide such a decision.
My guess is that we will end up want to enable a collection of different strategies. So focusing on the foundation infrastructure(pattern matching and enumeration, automation benchmarking of a subgraph decision) would be solid steps towards that which then can be used to quickly prototype strategies we talked abit

Hey Ziheng, thanks for putting up this proposal!
I have a few questions:

Have you considered ways to make this more modular/extensible? It seems to me that we will end up with lots and lots of registrations, and I imagine that many of those registrations could be quite similar. For example, similar targets may have the same set of patterns. As we add more and more backends, I could see us ending up in a situation where we have hundreds of these registrations which are all slightly different and require lots of maintenance.

It is cool that the fcodegen function can do tuning itself. However, for the average user adding a new pattern, manually adding that tuning infrastructure to every fcodegen function would be super repetitive. What tuning infrastructure will you provide to make taking advantage of tuning easier?

Are you just going through the backends in the priority config in order and matching those patterns? Do you have plans to make selecting what patterns to use smarter in the future?

Will you using the Relay pattern matcher to identify patterns? The Relay pattern matcher can’t do backtracking, so if you do want to use search to identify what to partition in the future, you will either have to extend the pattern matcher or implement a different algorithm to do matching. @mbs-octoml, @mikepapadim, @sunggg and I discussed the feasibility of extending the pattern matcher to do backtracking for the purpose of doing operator fusion, and we concluded that it would probably be easier (and more maintainable) to write a standalone algorithm because we'd have to over specialize the pattern matcher to the behavior of the operator fuser. (Happy to expand on this more if you want, but this response is already getting a bit long).

Also, just curious, could you explain a bit about the motivation for doing this in Relax instead of in main?
To me, you proposal seems not very different from what we have in main today in its method (but the implementation is different), so I'm wondering if we could make the change in main. Additionally, I'm sure our collaborators at ARM would like to be involved in the discussion of this design, and that can better happen in main (my understanding is that they also have an interest in operator fusion). Thanks!

Hey @electriclilies . Thanks for the comment!
For Q1, I would expect that the support pattern is limited, as we saw in the contrib module(https://github.com/apache/tvm/tree/main/src/runtime/contrib) and external codegen module (https://github.com/apache/tvm/tree/main/src/relay/backend/contrib) in current tvm. We can organize them in separate folders and reduce repetitive code by functions.
For Q2, the need of tuning come up in some backends in real deployment, for example, in the cutlass BYOC, some parameters in the cutlass kernel are also tunable, and they usually have their own internal tuning function in the framework. We can also consider making our tuner part more general so that can be reused by  other project easily.
For Q3, yes, we definitely want to make this part automatically and smart. You can refer to the discussion above as @sunggg  and @YuchenJin has raised. But our first goal is to build the underlying infra as a playground that we can experiment different search algorithm easily in the future.
For Q4, yes I will reuse relay's pattern matcher. And would love to discuss with you more when we had some progress!
I prefer to do this on the relax development branch since: 1. we can utilize new features in relax's design like  "unify the abstraction for cross-layer optimizations" and "incremental compilation". 2. On the other hand, this part also can inspire us how to improve relax's design, which is easier to update than the upstream.


Assigning to 'id _Nullable' from incompatible type 'AppDelegate *const __strong'

I have configured this library as described in documentation and I see this Warning
Assigning to 'id _Nullable' from incompatible type 'AppDelegate *const __strong'
after adding Inside didFinishLaunchingWithOptions
// Define UNUserNotificationCenter   UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];   center.delegate = self;
on iOS Deployment Target 10.0+ I have even more Warnings:
'UIUserNotificationSettings' is deprecated: first deprecated in iOS 10.0 - Use UserNotifications Framework's UNNotificationSettings
'UILocalNotification' is deprecated: first deprecated in iOS 10.0 - Use UserNotifications Framework's UNNotificationRequest

As per Apples's documentation UNUserNotificationCenter is only available from iOS 10+. You'll need to check iOS version in conditional. Additionally this block is only needed if you want to handle notifications when app is in the foreground.

@dominiczaq actually you will see this warning no matter the target is.
I think that the documentation an also the library itself need some updates because some statements is either not supported or deprecated..

I believe there is no warning when I've changed the  target to iOS 10+.
Documentation should probably mention that this part is only needed for foreground notification handling and it only supports iOS 10+ (the rest of lib works fine in iOS 9)

@dominiczaq the warning is still there

Any updates regarding this warning?

Added this to my AppDelegate.h and the warning went away:
#import <UserNotifications/UNUserNotificationCenter.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate, UNUserNotificationCenterDelegate>

Added this to my AppDelegate.h and the warning went away:
#import <UserNotifications/UNUserNotificationCenter.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate, RCTBridgeDelegate, UNUserNotificationCenterDelegate>

This one is works for me Thank you

i am getting this error with react native version 0.71.13 and my AppDelegate.h file is using RCTAppDelegate.
I am trying to upgrade from 0.70.5 so can't use
// @interface AppDelegate : UIResponder <UIApplicationDelegate,UNUserNotificationCenterDelegate>
in my AppDelegate.h file

@Abfareye See this instructions: https://github.com/react-native-push-notification/ios/pull/392/files

Added this to my AppDelegate.h and the warning went away:
#import <UserNotifications/UNUserNotificationCenter.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate, RCTBridgeDelegate, UNUserNotificationCenterDelegate>

this worked thanks :
#import <UserNotifications/UNUserNotificationCenter.h>
@interface AppDelegate : RCTAppDelegate <UIApplicationDelegate, RCTBridgeDelegate, UNUserNotificationCenterDelegate>


Make pool-incentives queries show % of incentives

Background
Make pool incentives query show % of incentives going to that gauge ID
Acceptance Criteria

[ ] Either an existing query is amended, or a new query is added, to show % of total incentives going towards a particular gauge

Hi @ValarDragon, i can work on this

Awesome, ty!

Hi @ValarDragon @mattverse is "% of incentives" the same as gauge_size? If so how do i calculate it?
Also, how do i test whether the query returns the % incentives or not? Do i run starport chain serve and test the query or is there an alternate way?

By % of incentives, it would probably be gauge_size / total_incentive_amount *100
per testing, you can use starport, or I usually use local osmosis, create the necessary environment I need and then test if queries return output I'm expecting


fceux: 2.2.2 -> 2.2.3

Semi-automatic update. These checks were performed:

built on NixOS
ran /nix/store/27q1wf9bs3qp60l2q0b2pyzf6ykijarj-fceux-2.2.3/bin/fceux -h got 0 exit code
ran /nix/store/27q1wf9bs3qp60l2q0b2pyzf6ykijarj-fceux-2.2.3/bin/fceux --help got 0 exit code
ran /nix/store/27q1wf9bs3qp60l2q0b2pyzf6ykijarj-fceux-2.2.3/bin/fceux -h and found version 2.2.3
ran /nix/store/27q1wf9bs3qp60l2q0b2pyzf6ykijarj-fceux-2.2.3/bin/fceux --help and found version 2.2.3
found 2.2.3 with grep in /nix/store/27q1wf9bs3qp60l2q0b2pyzf6ykijarj-fceux-2.2.3
found 2.2.3 in filename of file in /nix/store/27q1wf9bs3qp60l2q0b2pyzf6ykijarj-fceux-2.2.3

@GrahamcOfBorg build fceux

Failure on x86_64-darwin (full log)
Partial log (click to expand)
Package ‘fceux-2.2.3’ in /Users/graham/nix-borg/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/grahamc-ndnd/pkgs/misc/emulators/fceux/default.nix:31 is not supported on ‘x86_64-darwin’, refusing to evaluate.

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowBroken = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowBroken = true; }
to ~/.config/nixpkgs/config.nix.

Success on aarch64-linux (full log)
Partial log (click to expand)
g++ -o fceux-net-server -Wl,-rpath,/nix/store/bqjfwi16gpizbprlh4vcdpafs487gqp9-SDL-1.2.15/lib -Wl,--as-needed fceux-server/server.o fceux-server/md5.o fceux-server/throttle.o -L/nix/store/bqjfwi16gpizbprlh4vcdpafs487gqp9-SDL-1.2.15/lib -L/nix/store/hfnl6pk21bczw78syrc82piz2plzpw34-libX11-1.6.5/lib -lz -lSDL -lpthread -ldl -lX11
Install file: "fceux-net-server" as "/nix/store/dncd169c6vr8pi6zsaxvqykxw80w2253-fceux-2.2.3/bin/fceux-net-server"
Install file: "fceux.desktop" as "/nix/store/dncd169c6vr8pi6zsaxvqykxw80w2253-fceux-2.2.3/share/applications/fceux.desktop"
Install directory: "output" as "/nix/store/dncd169c6vr8pi6zsaxvqykxw80w2253-fceux-2.2.3/share/fceux"
Install file: "src/auxlib.lua" as "/nix/store/dncd169c6vr8pi6zsaxvqykxw80w2253-fceux-2.2.3/share/fceux/auxlib.lua"
Install file: "documentation/fceux-net-server.6" as "/nix/store/dncd169c6vr8pi6zsaxvqykxw80w2253-fceux-2.2.3/share/man/man6/fceux-net-server.6"
Install file: "documentation/fceux.6" as "/nix/store/dncd169c6vr8pi6zsaxvqykxw80w2253-fceux-2.2.3/share/man/man6/fceux.6"
Install file: "fceux.png" as "/nix/store/dncd169c6vr8pi6zsaxvqykxw80w2253-fceux-2.2.3/share/pixmaps/fceux.png"
scons: done building targets.
/nix/store/dncd169c6vr8pi6zsaxvqykxw80w2253-fceux-2.2.3

Success on x86_64-linux (full log)
Partial log (click to expand)
g++ -o fceux-net-server -Wl,-rpath,/nix/store/mqv18f5368cj4f4rs1cl2hlfpqavgj5f-SDL-1.2.15/lib -Wl,--as-needed fceux-server/server.o fceux-server/md5.o fceux-server/throttle.o -L/nix/store/mqv18f5368cj4f4rs1cl2hlfpqavgj5f-SDL-1.2.15/lib -L/nix/store/nhdz0xslz3p73k467lcakn8xspbg5kwv-libX11-1.6.5/lib -lz -lSDL -lpthread -ldl -lX11
Install file: "fceux-net-server" as "/nix/store/nygy2aqnr2cn1bxbbwnlflcy5ss3lnrm-fceux-2.2.3/bin/fceux-net-server"
Install file: "fceux.desktop" as "/nix/store/nygy2aqnr2cn1bxbbwnlflcy5ss3lnrm-fceux-2.2.3/share/applications/fceux.desktop"
Install directory: "output" as "/nix/store/nygy2aqnr2cn1bxbbwnlflcy5ss3lnrm-fceux-2.2.3/share/fceux"
Install file: "src/auxlib.lua" as "/nix/store/nygy2aqnr2cn1bxbbwnlflcy5ss3lnrm-fceux-2.2.3/share/fceux/auxlib.lua"
Install file: "documentation/fceux-net-server.6" as "/nix/store/nygy2aqnr2cn1bxbbwnlflcy5ss3lnrm-fceux-2.2.3/share/man/man6/fceux-net-server.6"
Install file: "documentation/fceux.6" as "/nix/store/nygy2aqnr2cn1bxbbwnlflcy5ss3lnrm-fceux-2.2.3/share/man/man6/fceux.6"
Install file: "fceux.png" as "/nix/store/nygy2aqnr2cn1bxbbwnlflcy5ss3lnrm-fceux-2.2.3/share/pixmaps/fceux.png"
scons: done building targets.
/nix/store/nygy2aqnr2cn1bxbbwnlflcy5ss3lnrm-fceux-2.2.3


Fix the /paths from absolute to relative in HTMLFix paths

For StackStorm/stackstorm.com#5
A few caveats/heads-up/feedback:

The #community URL fragment is linked with a target="_blank" attribute, which could still make sense for other pages, but on the home page that the fragment belongs to, it looks weird.
There is an odd link that look likes an email but is put under the current directory's path (/2021/12/16/stackstorm-v3-6-0-released/Aaron.jonen@cypherint.com). I left it as it is. Not sure if there are more like that.
There are broken links found across the repo (such as /start-now/ and /news-events/) mostly directly below the root level. I have fixed the relative path for them anyway. I haven't found/made a note of all such broken links.
There are also a couple other broken links caused by what seem to be obsolete/time-sensitive pages that are no longer there (example: /meeting-registration-tuesday-july-22-1130-pdt at /2014/07/23/stackstorm-devops-automation-interactive-webinars-register-today/index.html. I have fixed their relative paths as well, FWIW.
There is a broken reference to a non-existent wp-json directory/file in so many <link> tags across the codebase, but never within an <a> tag. I left it as it is.

 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.You have signed the CLA already but the status is still pending? Let us recheck it.


fix: useShape re-renders on where state change

The useShape hook is behaving strangely when switching between different where conditions. I noticed that the const latestShapeData = useRef(parseShapeData(shape)) was not updating when the underlying where parameters changed, while the other values within the useShape hook like shape, shapeStream, etc. were updating correctly. I propose adding the shapeHash in the UseShapeResult, as well as as a second argument to parseShapeData, so when the useShape is rendered we can determine wether we need to reset the UseShapeResult/parseShapeData reference.
nice work on this project all!

Nice just wanted to start working on it and saw you already did, good stuff!


Turn on Pages

Currently, GitHub pages is turned off in this repo. When we are ready to serve the manuscript, we'll need to turn this setting on.

✅  https://alexslemonade.github.io/ScPCA-manuscript/


⚠ GitHub has degraded performance

In 0d3a498, GitHub (https://www.githubstatus.com/api/v2/status.json) experienced degraded performance:

HTTP code: 200
Response time: 232 ms

Resolved: GitHub performance has improved in 426724c.


🌐 Add Russian translation for docs/ru/docs/fastapi-people.md

https://github.com/tiangolo/fastapi/pull/5577
:globe_with_meridians: Add Russian translation for docs/ru/docs/fastapi-people.md.
The last PR #5324 with this page lost commits...

Awesome, thanks @Xewus! :rocket:
Thanks for the reviews @Winand , @spacesphere and @Kirilex :coffee:

:dancer:


feat: youtube_scraper

Adding scrap_youtube.py and config_youtube.py as scripts to scrap youtube videos. Adding csv files in data_public as an output of the scrap_youtube.py script for January 23rd, 2023

Great work Thibault! Your code is clean and easy to grasp! Thank you for your contribution 👨🍼
I will merge this and implement the workflow

https://github.com/dataforgoodfr/quotaclimat/pull/51


[Bug]: Issue with @default Tag in Latest Nestia Version and Swagger Generation

Describe the bug
In previous versions, the `@default tag was successfully converted to the default value in Swagger. However, it seems that in the latest version, this conversion is no longer working.
export interface ICreateUserRequestDto {
  /**
   * User's email address
   *
   * @pattern<EMAIL_ADDRESS>   * @maxLength 320
   * @default<EMAIL_ADDRESS>   *
   */
  email: string;

  /**
   * Social network service type
   *
   * @default KAKA
   */
  snsType: SnsType;

  /**
   * Social network service ID
   *
   * @default<PHONE_NUMBER>
   */
  snsId: string;
}

After writing the code as above and generating the swagger.json file using the nestia swagger command, the default fields are no longer appearing in the latest version.
"ICreateUserRequestDto": {
    "type": "object",
    "properties": {
      "email": {
        "type": "string",
        "maxLength": 320,
        "pattern"<EMAIL_ADDRESS>        "default"<EMAIL_ADDRESS>        "description": "User's email address"
      },

I spent over five hours trying to find the cause in the code. When I reverted to the previous working version, 5.3.0, the default fields like "default"<EMAIL_ADDRESS>were correctly generated.
Has the `@default tag functionality been removed in the new version, or is this a bug?
Expected behavior
I expected the `@default tag to be converted in the Swagger documentation, with the expected default values included for each field
"ICreateUserRequestDto": {
    "type": "object",
    "properties": {
      "email": {
        "type": "string",
        "maxLength": 320,
        "pattern"<EMAIL_ADDRESS>        "description": "User's email address"
      },
      "snsType": {
        "type": "string",
        "enum": [
          "APPLE",
          "GOOGLE",
          "KAKAO"
        ],
        "description": "Social network service type"
      },
      "snsId": {
        "type": "string",
        "description": "Social network service ID"
      }
    },
    "nullable": false,
    "required": [
      "email",
      "snsType",
      "snsId"
    ],
    "description": "User creation request DTO"
  }

Actual behavior
The `@default tag is not being converted in the Swagger documentation, and the default values are not included for any of the fields.
Steps to reproduce
No response
Exception(s) (if any)
No response
Swashbuckle.AspNetCore version
No response
.NET Version
No response
Anything else?
No response

This hasn't been explicitly removed, and to be honest I didn't know it existed. I've also never heard of nestia.

previous working version, 5.3.0

That's a really old version (over 4 years ago), and is also a major release away, so changes made before I joined the project as a maintainer in May this year (e.g. version 6.0.0 released in 2021) could have intentionally changed something that stopped it working.
We've also updated swagger-ui by two major versions since then (see here).
As it stands, this looks like either old functionality that's been removed, or it's entirely external to Swashbuckle.AspNetCore.


Update .gitignore to exclude node_modules

Looks like this was implemented. Closing issue. @krook pls reopen if I misunderstood. Thanks.


Welcome @ethanresnick!

We've all benefited from @ethanresnick's contributions to JSON API, and now we're thrilled to welcome him to the core team.

:+1:


Document Python console scripts and instrumented runtime.

As discussed/requested on Discord here.
New sections on Python bindings:

New tip on profiling-with-tracy:

One nit: setting that environment variable also impacts python API usage (not just the tools).


[17.06] Set unpasued state when receiving 'stateExit' event

Backport fix:

moby/moby/pull/33843 Set unpaused state when receiving 'stateExit' event

With cherry pick git commit moby/moby@fe1b4cf:
$ git cherry-pick -s -x -Xsubtree=components/engine fe1b4cf

LGTM

I think we need to back port https://github.com/moby/moby/pull/34071  as well (per https://github.com/moby/moby/pull/34071#issuecomment-315014617), apparently this PR introduced an issue that's fixed by that one

can someone edit the typo in the PR title? 😅


Migrate from SQLite to PostgreSQL

Steps I Took To Migrate:

Create datadump.json - json file containing the data from sqlite db
Install PostgreSQL to OS
Create PostgreSQL DB with user and password
Install psycopg2 (has been updated in requirements.txt, can also manually pip install)
Configure DATABASES in settings.py to make PostgreSQL default
Migrate using python manage.py makemigrations and python manage.py migrate
Delete content types (mandatory):
python manage.py shell
from django.contrib.contenttypes.models import ContentType
ContentType.objects.all().delete()
Load data from datadump.json into the PostgreSQL DB

So we all need to install postgres, right? Thank you so much for doing that!

@lilyosah yup, we all need to install postgres. and yes, datadump is just loaded in once to copy the data that we had before in sqlite to postgres. I think now that I've migrated the data and changed our db, you guys don't need to run any more commands other than installing psycopg2 which I've added to requirements.txt.


Support into() for filter_map (Rust 1.12)

Hey 👋 there,
What do you think of the idea of implementing the new From for Option for some libcore functions like filter_map? The benefit would be to return just a value T instead of Some(T).
Best regards,
Sascha

I assume you mean changing the return type of the closure in Iterator::filter_map from Option<B> to a generic O: Into<Option<B>>. The problem is that even if the return type is generic, for one given closure it has to be the same in all code paths. So any closure that sometimes returns B (taking advantage of the new From<B> for Option<B> impl) instead of Option<B> has to always do so and thus acts as if it were always returning Some(_: B). In that case there is no point in using filter_map, map could be used instead.

Ah okay so it makes no sense in any case?

I makes sense in that we could do it and it wouldn’t break things, but as far as I can tell it would never be useful.

Alright, thank you for the feedback.


Added id number generator to Person Provider for the en_ZA locale

Added id number generator to Person Provider for the en_ZA locale
Added simple provider id number method unit test

Thanks!


Use soft_str in do_wordcount, to trigger undefined

Currently the wordcount filter doesn't properly fail when passed an undefined variable.
This PR updates do_wordcount to utilize soft_str so that the StrictUndefined methods are invoked.
Before:
>>> from jinja2 import Environment, StrictUndefined
>>> e = Environment(undefined=StrictUndefined)
>>> t = e.from_string('{{ undef | wordcount }}')
>>> t.render()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/matt/venvs/ansibledev/lib/python3.8/site-packages/jinja2/environment.py", line 1090, in render
    self.environment.handle_exception()
  File "/Users/matt/venvs/ansibledev/lib/python3.8/site-packages/jinja2/environment.py", line 832, in handle_exception
    reraise(*rewrite_traceback_stack(source=source))
  File "/Users/matt/venvs/ansibledev/lib/python3.8/site-packages/jinja2/_compat.py", line 28, in reraise
    raise value.with_traceback(tb)
  File "<template>", line 1, in top-level template code
  File "/Users/matt/venvs/ansibledev/lib/python3.8/site-packages/jinja2/filters.py", line 764, in do_wordcount
    return len(_word_re.findall(s))
TypeError: expected string or bytes-like object

After:
>>> from jinja2 import Environment, StrictUndefined
>>> e = Environment(undefined=StrictUndefined)
>>> t = e.from_string('{{ undef | wordcount }}')
>>> t.render()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/matt/venvs/ansibledev/lib/python3.8/site-packages/jinja2/environment.py", line 1090, in render
    self.environment.handle_exception()
  File "/Users/matt/venvs/ansibledev/lib/python3.8/site-packages/jinja2/environment.py", line 832, in handle_exception
    reraise(*rewrite_traceback_stack(source=source))
  File "/Users/matt/venvs/ansibledev/lib/python3.8/site-packages/jinja2/_compat.py", line 28, in reraise
    raise value.with_traceback(tb)
  File "<template>", line 1, in top-level template code
  File "/Users/matt/venvs/ansibledev/lib/python3.8/site-packages/jinja2/filters.py", line 764, in do_wordcount
    return len(_word_re.findall(soft_str(s)))
jinja2.exceptions.UndefinedError: 'undef' is undefined

This seems fine for a 2.11.x release, if you can rebase it to that branch.
Needs a changelog and test.

I can make that happen soon

Rebased, retargeted, changelog and tests added.


Replace .npo file with original from website

In this one some tabs were replaced by multiple spaces.
This causes the Nonparail.curve() function to fail.
Related to #38

Thanks!


Failed to fetch campaign, sync with Kanka, CORS error.

Suddenly this evening, I get an error trying to sync Foundry with Kanka.
Error:
Access to fetch at 'https://kanka.io/api/1.0/campaigns/{my-campaign}?related=1' from origin 'http://localhost:30000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
I regenerated an API key, but I'm getting the same response.

Hi huxoll.
Kanka has been experiencing DDoS attacks in the last couple of days, which causes Cloudflare (their hoster) to switch into an Anti-DDoS mode. Sadly, this breaks the API. I have been in contact with the Kanka team though, in hopes that this can be somehow resolved on their end.
If nothing else we just need to wait and hope for it to work again after a while and for the DDoS attacks to stop soon. 😞

Here's the official announcement from Kankas Discord chat:

We've been getting hit by ddos attacks all day, resulting in the app acting weirdly and some data loss. We're activating the ddos protection again, which sadly kills the API part of Kanka until the attacks stop

It seems the DDOS storm is over, I can sync again.  Thanks for looking into it.


es2015 modules take much longer to rebundle than commonjs

Do you want to request a feature or report a bug?
I'm not sure if this is a bug or intended behaviour, but it was very surprising to find rebuild times halved by using commonjs versus es2015.

What is the current behavior?
Using es2015 instead of commonjs modules increases rebuild times proportionally to application size. The extra time taken seems to be in the seal phase.
On a toy application the seal phase took twice as long (300ms with es2015 but only 157ms with commonjs). On a medium sized application (https://github.com/angular/angular/tree/master/aio) the seal phase took six times as long (1150ms with es2015 but only 182ms with commonjs).
If the current behavior is a bug, please provide the steps to reproduce.
A minimal reproduction with no loaders can be found at https://github.com/filipesilva/webpack-harmony-commonjs-exports.
git clone https://github.com/filipesilva/webpack-harmony-commonjs-exports
cd webpack-harmony-commonjs-exports
npm install
npm run serve-es2015 # for the es2015 app
npm run serve-commonjs # for the commons app

CPU profiles for rebuilds are also included in the repo, as well as instructions on how to obtain your own CPU profiles.

What is the expected behavior?
Rebuilding es2015 apps should be on par with rebuilding commonjs apps.
If this is intended behaviour, it would be helpful to indicate using commonjs modules for development builds instead of es2015 modules.
If this is a feature request, what is motivation or use case for changing the behavior?
Rebuild speed is very important for development cycles.
Please mention other relevant information such as the browser version, Node.js version, webpack version and Operating System.
Chrome 61, Node 6.11.1, Webpack 3.8.1, Windows 10

typo?

rebuild speeds halved by using commonjs versus es2015

half speed == twice the time

Yes, that's wrongly worded. I'll fix it by saying times instead of speeds.

Hey @filipesilva I have a theory. See this code example:
/**
* @fileoverview This file is generated by the Angular template compiler.
* Do not edit.
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride}
* tslint:disable
*/
import * as i0 from "@angular/core";
import * as i1 from "./app.module";
import * as i2 from "./app.component";
import * as i3 from "./app.component.ngfactory";
import * as i4 from "@angular/common";
import * as i5 from "@angular/platform-browser";
import * as i6 from "@angular/animations/browser";
import * as i7 from "@angular/platform-browser/animations";
import * as i8 from "@angular/animations";
import * as i9 from "@angular/cdk/bidi";
import * as i10 from "@angular/cdk/platform";
import * as i11 from "@angular/cdk/scrolling";
import * as i12 from "@angular/material";
import * as i13 from "@angular/http";
import * as i14 from "@angular/cdk/a11y";
import * as i15 from "@angular/cdk/overlay";
import * as i16 from "@angular/cdk/observers";
import * as i17 from "@angular/cdk/portal";
var AppModuleNgFactory = i0.ɵcmf(i1.AppModule, [i2.AppComponent], function (_l) { return i0.ɵmod([i0.ɵmpd(512, i0.ComponentFactoryResolver, i0.ɵCodegenComponentFactoryResolver, [[8, [i3.AppComponentNgFactory]], [3, i0.ComponentFactoryResolver], i0.NgModuleRef]), i0.ɵmpd(5120, i0.LOCALE_ID, i0.ɵm, [[3, i0.LOCALE_ID]]), i0.ɵmpd(4608, i4.NgLocalization, i4.NgLocaleLocalization, [i0.LOCALE_ID, [2, i4.ɵa]]), i0.ɵmpd(4608, i0.Compiler, i0.Compiler, []), i0.ɵmpd(5120, i0.APP_ID, i0.ɵf, []), i0.ɵmpd(5120, i0.IterableDiffers, i0.ɵk, []), i0.ɵmpd(5120, i0.KeyValueDiffers, i0.ɵl, []), i0.ɵmpd(4608, i5.DomSanitizer, i5.ɵe, [i4.DOCUMENT]), i0.ɵmpd(6144, i0.Sanitizer, null, [i5.DomSanitizer]), i0.ɵmpd(4608, i5.HAMMER_GESTURE_CONFIG, i5.HammerGestureConfig, []), i0.ɵmpd(5120, i5.EVENT_MANAGER_PLUGINS, function (p0_0, p0_1, p1_0, p2_0, p2_1) { return [new i5.ɵDomEventsPlugin(p0_0, p0_1), new i5.ɵKeyEventsPlugin(p1_0), new i5.ɵHammerGesturesPlugin(p2_0, p2_1)]; }, [i4.DOCUMENT, i0.NgZone, i4.DOCUMENT, i4.DOCUMENT, i5.HAMMER_GESTURE_CONFIG]), i0.ɵmpd(4608, i5.EventManager, i5.EventManager, [i5.EVENT_MANAGER_PLUGINS, i0.NgZone]), i0.ɵmpd(135680, i5.ɵDomSharedStylesHost, i5.ɵDomSharedStylesHost, [i4.DOCUMENT]), i0.ɵmpd(4608, i5.ɵDomRendererFactory2, i5.ɵDomRendererFactory2, [i5.EventManager, i5.ɵDomSharedStylesHost]), i0.ɵmpd(5120, i6.AnimationDriver, i7.ɵc, []), i0.ɵmpd(5120, i6.ɵAnimationStyleNormalizer, i7.ɵd, []), i0.ɵmpd(4608, i6.ɵAnimationEngine, i7.ɵb, [i6.AnimationDriver, i6.ɵAnimationStyleNormalizer]), i0.ɵmpd(5120, i0.RendererFactory2, i7.ɵe, [i5.ɵDomRendererFactory2, i6.ɵAnimationEngine, i0.NgZone]), i0.ɵmpd(6144, i5.ɵSharedStylesHost, null, [i5.ɵDomSharedStylesHost]), i0.ɵmpd(4608, i0.Testability, i0.Testability, [i0.NgZone]), i0.ɵmpd(4608, i5.Meta, i5.Meta, [i4.DOCUMENT]), i0.ɵmpd(4608, i5.Title, i5.Title, [i4.DOCUMENT]), i0.ɵmpd(4608, i8.AnimationBuilder, i7.ɵBrowserAnimationBuilder, [i0.RendererFactory2, i5.DOCUMENT]), i0.ɵmpd(6144, i9.DIR_DOCUMENT, null, [i5.DOCUMENT]), i0.ɵmpd(4608, i9.Directionality, i9.Directionality, [[2, i9.DIR_DOCUMENT]]), i0.ɵmpd(4608, i10.Platform, i10.Platform, []), i0.ɵmpd(5120, i11.ScrollDispatcher, i11.SCROLL_DISPATCHER_PROVIDER_FACTORY, [[3, i11.ScrollDispatcher], i0.NgZone, i10.Platform]), i0.ɵmpd(5120, i11.ViewportRuler, i11.VIEWPORT_RULER_PROVIDER_FACTORY, [[3, i11.ViewportRuler], i11.ScrollDispatcher]), i0.ɵmpd(5120, i12.FocusOriginMonitor, i12.FOCUS_ORIGIN_MONITOR_PROVIDER_FACTORY, [[3, i12.FocusOriginMonitor], i0.NgZone, i10.Platform]), i0.ɵmpd(5120, i12.MdIconRegistry, i12.ICON_REGISTRY_PROVIDER_FACTORY, [[3, i12.MdIconRegistry], [2, i13.Http], i5.DomSanitizer]), i0.ɵmpd(4608, i14.InteractivityChecker, i14.InteractivityChecker, [i10.Platform]), i0.ɵmpd(4608, i14.FocusTrapFactory, i14.FocusTrapFactory, [i14.InteractivityChecker, i10.Platform, i0.NgZone]), i0.ɵmpd(5120, i14.LiveAnnouncer, i14.LIVE_ANNOUNCER_PROVIDER_FACTORY, [[3, i14.LiveAnnouncer], [2, i14.LIVE_ANNOUNCER_ELEMENT_TOKEN], i10.Platform]), i0.ɵmpd(4608, i15.ScrollStrategyOptions, i15.ScrollStrategyOptions, [i11.ScrollDispatcher, i11.ViewportRuler]), i0.ɵmpd(5120, i15.OverlayContainer, i15.ɵa, [[3, i15.OverlayContainer]]), i0.ɵmpd(4608, i15.ɵf, i15.ɵf, [i11.ViewportRuler]), i0.ɵmpd(4608, i15.Overlay, i15.Overlay, [i15.ScrollStrategyOptions, i15.OverlayContainer, i0.ComponentFactoryResolver, i15.ɵf, i0.ApplicationRef, i0.Injector, i0.NgZone]), i0.ɵmpd(5120, i15.ɵc, i15.ɵd, [i15.Overlay]), i0.ɵmpd(4608, i16.MdMutationObserverFactory, i16.MdMutationObserverFactory, []), i0.ɵmpd(512, i4.CommonModule, i4.CommonModule, []), i0.ɵmpd(1024, i0.ErrorHandler, i5.ɵa, []), i0.ɵmpd(1024, i0.APP_INITIALIZER, function (p0_0) { return [i5.ɵh(p0_0)]; }, [[2, i0.NgProbeToken]]), i0.ɵmpd(512, i0.ApplicationInitStatus, i0.ApplicationInitStatus, [[2, i0.APP_INITIALIZER]]), i0.ɵmpd(131584, i0.ApplicationRef, i0.ApplicationRef, [i0.NgZone, i0.ɵConsole, i0.Injector, i0.ErrorHandler, i0.ComponentFactoryResolver, i0.ApplicationInitStatus]), i0.ɵmpd(512, i0.ApplicationModule, i0.ApplicationModule, [i0.ApplicationRef]), i0.ɵmpd(512, i5.BrowserModule, i5.BrowserModule, [[3, i5.BrowserModule]]), i0.ɵmpd(512, i7.BrowserAnimationsModule, i7.BrowserAnimationsModule, []), i0.ɵmpd(512, i12.CompatibilityModule, i12.CompatibilityModule, []), i0.ɵmpd(512, i9.BidiModule, i9.BidiModule, []), i0.ɵmpd(256, i12.MATERIAL_SANITY_CHECKS, true, []), i0.ɵmpd(512, i12.MdCommonModule, i12.MdCommonModule, [[2, i5.DOCUMENT], [2, i12.MATERIAL_SANITY_CHECKS]]), i0.ɵmpd(512, i10.PlatformModule, i10.PlatformModule, []), i0.ɵmpd(512, i11.ScrollDispatchModule, i11.ScrollDispatchModule, []), i0.ɵmpd(512, i12.MdRippleModule, i12.MdRippleModule, []), i0.ɵmpd(512, i12.StyleModule, i12.StyleModule, []), i0.ɵmpd(512, i12.MdButtonModule, i12.MdButtonModule, []), i0.ɵmpd(512, i12.MdIconModule, i12.MdIconModule, []), i0.ɵmpd(512, i12.MdFormFieldModule, i12.MdFormFieldModule, []), i0.ɵmpd(512, i12.MdInputModule, i12.MdInputModule, []), i0.ɵmpd(512, i12.MdProgressBarModule, i12.MdProgressBarModule, []), i0.ɵmpd(512, i14.A11yModule, i14.A11yModule, []), i0.ɵmpd(512, i17.PortalModule, i17.PortalModule, []), i0.ɵmpd(512, i15.OverlayModule, i15.OverlayModule, []), i0.ɵmpd(512, i12.MdSidenavModule, i12.MdSidenavModule, []), i0.ɵmpd(512, i16.ObserversModule, i16.ObserversModule, []), i0.ɵmpd(512, i12.MdTabsModule, i12.MdTabsModule, []), i0.ɵmpd(512, i12.MdToolbarModule, i12.MdToolbarModule, []), i0.ɵmpd(512, i1.AppModule, i1.AppModule, [])]); });
export { AppModuleNgFactory as AppModuleNgFactory };

The import * as ... syntax makes me believe this could be a slower form of dependency analysis for webpack.
If you manually made these 'import ... from' instead, and you bundle.the results, do you see the same time issues?

Seem to be caused by the Tree Shaking analysis (FlagDependencyUsagePlugin), which follows imports/exports to detect which exports are used. This is not done for CommonJs exports/requires.
I'll check if the algorithm can be improved or disabled for development.

Having a way to disable it for development would be nice. A lot of people already use different configs for development and for production, so it shouldn't be too hard to incorporate.

done for webpack 4


Disable sessionLostComponent replacing current page and add onSessionLost

sessionLostComponent replace page, but I want to stay on the page (and show message(react-toastify) about session lost)
How can I do this? Maybe need to add onSessionLost to OIDCProvider to ability call functions?
Versions
Release v5.3.1
Expected

Current Page: /user
...session lost
Current Page: /user

Actual

Current Page: /user
...session lost
Current Page - sessionLostComponent

Hi @p0stw3b, I have already thougth about this feature. I think, i will use the children props of sessionlost to display the page content. So the override will have the choice to do anything they want. I am on holiday, May you wait next week for this feature?
Thank you very much for the issue. It is a very nice think to do!

Hi @p0stw3b, I have already thougth about this feature. I think, i will use the children props of sessionlost to display the page content. So the override will have the choice to do anything they want. I am on holiday, May you wait next week for this feature?
Thank you very much for the issue. It is a very nice think to do!

Yea, sure! Thank you!

I have update the documentation and the demo.
https://github.com/AxaGuilDEv/react-oidc/tree/master/packages/context
The multi auth page now use it => https://black-rock-0dc6b0d03.1.azurestaticapps.net/multi-auth
You can use the children property too.
Does it help you for your use case ?

I have update the documentation and the demo. https://github.com/AxaGuilDEv/react-oidc/tree/master/packages/context
The multi auth page now use it => https://black-rock-0dc6b0d03.1.azurestaticapps.net/multi-auth
You can use the children property too.
Does it help you for your use case ?

I tried, but in my case it's not help, because components are re-render.
Like in the example below, SampleComponent re-render after session lost (and call console.log second time)
const SampleComponent = () => {
  console.log('SampleComponent')

  return
SampleComponent

}

function App() {
  const [show, setShow] = React.useState(false);
  return (
    <OidcProvider configuration={configurationIdentityServer}>
      <Router>

          @axa-fr/react-oidc-context
          <button className="navbar-toggler" type="button" onClick={() => setShow(!show)} data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">

          </button>

                <Link className="nav-link" to="/">Home</Link>

                <Link className="nav-link" to="/profile">Profile</Link>

                <Link className="nav-link" to="/profile-secure-component">Secure Profile Component</Link>

                <Link className="nav-link" to="/profile-secure-hoc">Secure Profile Hoc</Link>

                <Link className="nav-link" to="/user-fetch-secure-hoc">Secure User Fetch Hoc</Link>

                <Link className="nav-link" to="/user-fetch-secure-hook">Secure User Fetch Hook</Link>

                <Link className="nav-link" to="/multi-auth">Multi Auth</Link>

        <SampleComponent/>

          <Route exact path="/" component={Home} />
          <Route exact path="/profile" component={Profile} />
          <Route exact path="/profile-secure-component" component={SecureProfile} />
          <Route exact path="/profile-secure-hoc" component={withOidcSecure(Profile)} />
          <Route exact path="/user-fetch-secure-hoc" component={FetchUserHoc} />
          <Route exact path="/user-fetch-secure-hook" component={FetchUserHook} />
          <Route path="/multi-auth" component={MultiAuthContainer} />

      </Router>
    </OidcProvider>
  );
}

Thank you again @p0stw3b for your feedback, I can reproduce it.
I'am losing my children state. I know how to fix it, I have some internal refactorisation to do.

Hi @p0stw3b, it seem to be impossible with react to keep the same children :(
Your onSessionLost idea is the best, I will implement it as quickly as i can.

I just push an 5.5.0-alpha0 version tell me if i do the job for you.

Hi!) @guillaume-chervet
What about create simple OidcProvider without routing and add events (Oidc.eventNames) to useOidc hook?

OidcProvider has own routing and react apps often have own routing - this duplication seems wrong
With event names in useOidc developer can use/or not this in his own routing, call toastify or something else

It is a good idea. It can be a good alternative. I have to think about this more.
May aim is to implement the library in order to enforce security the more as possible.
I also aim an uniformisation of the base application code at AXA France..
If routing is not at top level and configurable with mistake it can impact the security.
The react library is very small and also the vanilla library version is fully usable with react for more flexible case.
I aim to clean it and document it more.
I have to think more about this good idea ;)


play tone for edison generates invalid code, if the frequency is no number constant

write a program playing a tone.

if the frequency is a constant (e.g. 2000), the code generated contains an expression 8000000/2000, which is evaluated by the compiler. The result fits into a number.
if the frequency is a variable (e.g. x), the code generated contains an expression 8000000/x, which fails, because 8000 doesn't fit into a number.

Duplicate of #540

is already solved


Space in mandatory param gives 400

Environment info:

KrakenD version: 3
System info: docker
Hardware specs: 4,8G
Backend technology: Java
Additional environment information:

Describe the bug
A clear and concise description of what the bug is.
Your configuration file:
{
  "version": 3,
   "endpoint": "/allSearch/{filter}",
  "output_encoding": "json",
  "method": "GET",
  "input_query_strings": [
    "*"
  ],
  "backend": [
    {
      "url_pattern": "{{.envConfig.host}}/customer?id={filter};party.id={filter};name={filter}",
      "method": "GET",
      "encoding": "safejson",
      "host": [
         "{{.envConfig.host}}"
      ],
      "mapping": {
        "collection": "customers"
      },
      "extra_config": {
        "backend/http": {
          "return_error_details": "backend_customer"
        }
      }
    },
    {
      "url_pattern": "{{.envConfig.host}}/acount?param={filter}",
      "method": "GET",
      "encoding": "safejson",
      "host": [
        "{{.envConfig.host}}"
      ],
      "mapping": {
        "collection": "acounts"
      },
      "extra_config": {
        "backend/http": {
          "return_error_details": "backend_account"
        }
      }
    }
  ]
}

Commands used
How did you start the software?
#Example:
using helm install

Expected behavior
Merged result of the response.
Logs
{
    "error_backend_billingAccount": {
        "http_status_code": 400
    },
    "error_backend_customer": {
        "http_status_code": 400
    }
}

Additional Context
when the path param is like: "string" the Api works fine
but when the path param is like:  "string 123" it gives the above mentioned here

I tried with multiple ways including string%20123 BUT IT worked with string+123


Enable comments

After some reflection, I think this is an important feature, and would be very easy to add. I recall hearing twitter as an alternative to enabling in-post comments, but that limits commenters to 140 characters, and it's a bit awkward to comment on a specific article outside of the article. Disqus is the most common solution.

:+1: disqus

@rnicholus comments are not appearing on http://engineering.widen.com/blog/2015/08/27/AWS-Lambda-Runtime-Configuration/

@dbeg This is intentional. @feltnerm Wanted comments off for his post. Notice the comments: false frontmatter added to his post in c64fd46.

I think I'd prefer people writing me an email or their own blog post rather than just submitting a comment... i'm weird tho

Seems a bit odd to have a disparity between posts instead of a site-wide feature.

I think it's reasonable to expect that some posters may not want random people commenting on their writing.


Add asset metadata to equippable data

Description
When getting the equippable slots, using getEquippableSlotsFromParent from RMRKEquipRednerUtils the child and parent asset were not being returned. As adding them is useful to the frontend developers, they were added.
Actions
Extend EquippableData with childMetadata and parentMetadata.
Bonus
The assetsWithSlots variable was renamed to equippableData.
Checklist

[x] Verified code additions
[x] Updated NatSpec comments (if applicable)
[x] Regenerated docs
[x] Ran prettier
[x] Added tests to fully cover the changes

Can we call them childAssetMetadata and parentAssetMetadata instead? Without it makes me think of tokenURI.

Makes sense, yeah. I renamed them ✅


save all pipeline json config kv to mysql ?

as I know streamsets save/update piepline config info and offset as json file at local dir
does streamsets support save them into mysql  ?
how to keep High Availability ?

You would use DPM for this - see https://streamsets.com/products/dpm/


Linked Data / Solid Resource Version?

Hi everyone! I was curious wether this repo has any Linked Data (turtle, jsonld) or any Solid Resource equivalent versions.
I am familiar with Jeff Zucker's work (https://jeff-zucker.solidcommunity.net/sp4/) but are there any official Solid or Linked Data resources to represent these teams, people and work?
If not, I think it would be incredibly valuable for app developers (like me) who would like to share the work you're doing, while making the data in this repo dynamic, updated and save time when having to manually transcribe it.
If no one is working on this at this time, we could gladly volunteer for a proposal  😋
Excited to know if this could be valuable 🤗

@danielbakas Jeff's work is the work you are talking about. As a Solid member, he was spearheading this topic mostly alone. If you want to help maybe I can set up a meeting between you and @jeff-zucker.

So happy to read you @timea-solid! And I'd love to!
I know @jeff-zucker is now busy with the web-id spec, but I'm eagerly waiting for him and Vi to finish so I can dip into this, although if there's anything I can do in the meantime I'm really interested!!! 🤩
I've been working on a sort of custom version of it which I have now rendered at https://www.semantyk.com/solid (it might take a bit to load and it will be really slow, I need to optimize it 🙈)

Daniel -  I am in the process of re-evaluating my role in the Solid community.  My vision is to put the structure of the Solid Project as an organization into RDF in a way that can show other organizations how they can present themselves through RDF.  Your help will be invaluable.  I need to get a few other ducks in a row first, but perhaps we can meet to discuss a game plan in early March.

That sounds perfect! I'll drop you a msg on Gitter to make it happen. Thanks so much @jeff-zucker!

The actual work is tracked I believe here:https://github.com/solid/solidproject.org/issues/582 so I will close this ticket as duplicate.


Need better x-axis label formatting.

I'm not sure if I'm missing an option but I am struggling to get useable x-axis labels. It appears that no matter what my input data set is, I always have 13 labels on the x-axis. I'm running into an issue when the labels are rather large (large numbers like 4400), they overlap one another if their isn't enough space (making them unreadable. I would also like the option to only use the first and last x-axis label or at least know from my labelFunction if the input is the first or last value. Let me know if anything like this is in your roadmap or if I've missed or misused existing features.

I have a similar problem, but having less ticks is not a solution for me since my labelFunction returns Strings which I always need to have displayed under the columns in my charts. And since I have many columns in my charts, this automatically means that my Ox labels overlap.
Is there any recommended workaround or solution available in order to have my Ox label Strings visible and not overlapping?
I have a hack in mind, that is rotating the labels on the Ox axis by overriding the default CSS. However, I would prefer a cleaner solution if available and also, considering this hack, I would not be quite happy with the way the chart would look in charts with less columns for which no actual Ox axis label rotation would be needed.