Custom Label "app" not populating for Some Reports (Trivy Vulnerability)

probably related to #191
For some reports, the k8s labels are populated perfectly (when the count of the distinct labels > 35 / 40) .. howver, for some others not .. what am I missing?
Checking the POLR CRDs, it seems to me like all reports have the k8s labels already .. could it be a bug related to the number of values? .. in some other UI instance that I have with like only two or three testing apps, the labels are populated successfully.
Unfortunately neither the API nor the UI pods are showing any special logs determining if there's an issue.

So you mean that not all labels available in the ui but correctly set on the CRDs?

Yeah exactly .. It's really weird as it's happending in my case only for one category of reports. The label is there on the report CRD but not visible in the UI. Actually the UI isn't showing any value at all.
Is there a way to debug more what could be the reason for that? Maybe you can simulate more than like 40 reports or so with distinct app label values and see if that works for you?

Can you open the network tab and have a look if there is any issue in the console or if some requests failing? Sounds like an issue in the API

Nothing much .. I got a bunch of 301s and 200s .. nothing that might indicate an error .. The Console Tab is completely error free.

just one thing that got me curious .. why do I actually get that many 301s? is that a standard behavior?

The UI backend works mostly as proxy. So the requests to the UI backend are redirected to the actual API.
Are there any results in the report-labels or report requests?

The report payload request returned the report fine .. however, with the data needed to display it in the UI; that's without the labels. Howver, I believe that's the expected behavior.

Okay, thanks for your feedback. I will have a look if I find a possible reason.

Ah, just one question, did you try to kill the policy-reporter core pod, to trigger a reprocessing of your reports?

Just killed the Policy Reporter / Policy Reporter UI pods now .. unfortunately the same result.

just one thing I noticed right now: the UI pod is throwing the following error: 2023/01/16 11:18:31 http: proxy error: context canceled .. not sure if that's related.

okay, thanks for this. Maybe the API is to slow in your env and didn't respond. I will check that.

Maybe one thing you could test, forward the core app and try to access the API directly and see if it comes to an timeout or issue.
http://localhost:8080/v1/namespaced-resources/report-labels?sources=Trivy%20Vulnerability

@fjogeleit thanks for getting back to me on this. Really weird the API (in just 39 ms) returns an empty list 😢 .. For the Trivy ConfigAudit as well as on my other smaller cluster, the API responds just fine with the correct list of labels. I think we ruled out the possibility that it's a UI issue. Somehow the API isn't able to retrieve the list from the CRDs, don't know why 😭

let me know if I should close this ticket and open another one for the API (Policy Reporter Project) ..

That's 100% correct. That's my case yes.

I am started a build of the core app with v2.12.0-dev. It has no fix yet but logs the conversion of the labels to json and the other way arround. I want to be sure that there is no misbehavior. It would be great if you could use this version as image.tag 2.12.0-dev and check the core app logs when accessing the API.
If no logs are shown it would ensure that the values itself a correctly persisted and read.

sure thing can do so. Can you tell me when the job pushes? .. I checked that one here https://github.com/kyverno/policy-reporter/actions/runs/3938402839/jobs/6737046086 but seems like it failed.

Yep, sorry. I fixed the build and it is done now.

will try right away and send you my feedback

@fjogeleit unfortunately the same result .. got 200 success in under 40 ms with an empty list and no logs .. Do I need to increase the log level or so?

no you don't but thats fine. So I know that the labels are persisted and retrieved correctly. So I will check the query next and see if I find an edge case which explains the issue.

great! .. Just if that might help you: on the level of the Prometheus metrics (and of course the dashboards), checking e.g. for the metric `` using e.g. http://localhost:8080/metrics gets the correct result with the correct App Label.
policy_report_result{app="platform-demo",category="Vulnerability Scan",kind="ReplicaSet",name="platform-demo-6d9b8565f4",namespace="my-namespace-1",policy="CVE-2017-14159",report="trivy-vuln-polr-replicaset-platform-demo-6d9b8565f4",rule="",severity="low",source="Trivy Vulnerability",status="warn",team=""} 2

Okay, thanks. This is good to know.

Hey, one question, what configuration in the  Trivy Operator do you use to apply resource labels to the Trivy Operator Reprot CRDs?

hey there .. I am using the Trivy Operator Helm Chart (currently using v0.10.1) (https://github.com/aquasecurity/trivy-operator/blob/v0.10.1/deploy/helm/values.yaml) .. To set that I am using the property trivyOperator.reportResourceLabels setting it to team,app
e.g.:
trivyOperator:
   ....
  # reportResourceLabels comma-separated scanned resource labels which the user wants to include in the Prometheus
  # metrics report. Example: `owner,app`
  reportResourceLabels: "team,app"

With that I get something like:
apiVersion: aquasecurity.github.io/v1alpha1
kind: VulnerabilityReport
metadata:
  annotations:
    trivy-operator.aquasecurity.github.io/report-ttl: 24h0m0s
  creationTimestamp: '2023-01-19T16:04:58Z'
  generation: 1
  labels:
    app: platform-demo
    resource-spec-hash: 54b7bb76df
    trivy-operator.container.name: platform-demo
    trivy-operator.resource.kind: ReplicaSet
    trivy-operator.resource.name: platform-demo-5579b74cd9
    trivy-operator.resource.namespace: my-namespace
  managedFields:
    ...
  vulnerabilities:
    - class: os-pkgs
      cvss:
        nvd:
          V2Score: 4.3
          V2Vector: AV:N/AC:M/Au:N/C:N/I:P/A:N
          V3Score: 3.7
          V3Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
      fixedVersion: ''
      installedVersion: <IP_ADDRESS>
      links: []
      packageType: debian
      primaryLink: https://avd.aquasec.com/nvd/cve-2011-3374
      resource: apt
      score: 3.7
      severity: LOW
      target: >-
<PHONE_NUMBER>86.dkr.ecr.eu-central-1.amazonaws.com/red-kite-cockpit/platform-demo:v2.0.12
        (debian 10.13)
      title: >-
        It was found that apt-key in apt, all versions, do not correctly valid
        ...
      vulnerabilityID: CVE-2011-3374
    .....
    - class: os-pkgs
    ......

    - class: lang-pkgs
      cvss:
        ghsa:
          V3Score: 6.5
          V3Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
        nvd:
          V3Score: 6.5
          V3Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
        redhat:
          V3Score: 6.5
          V3Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
      fixedVersion: '1.32'
      installedVersion: '1.29'
      links: []
      packageType: jar
      primaryLink: https://avd.aquasec.com/nvd/cve-2022-41854
      resource: org.yaml:snakeyaml
      score: 6.5
      severity: MEDIUM
      target: Java
      title: 'dev-java/snakeyaml: DoS via stack overflow'
      vulnerabilityID: CVE-2022-41854

Note here that I currently have set only the app label on the service and not the team yet.

To debug a bit further I created a PR with 2 new APIs to list the actual Policy Report information, including the persisted labels.
I will prepare an image for it again, it would be great if you could use it, port forward the core app and see if

Policy Report information of your Vulnr Reports are persisted correctly
Your labels are persisted correctly

I let you know as soon as the image is available.
The APIs are paginated, the API and the query parameters are:
http://localhost:8080/v1/policy-reports?namespaces=<namespace>&offset=20&page=1

sure thing .. let me know and I am happy to test it.

btw you mentioned 2 new debugging APIs, one of them would be this one http://localhost:8080/v1/policy-reports?namespaces=<namespace>&offset=20&page=1 .. what's the other one?

The same for cluster policy reports
v1/cluster-policy-reports

I found one issue in the v1/namespaced-resources/report-labels API, not sure if it will fix your issue but I prepared an image tag 2.12.0-dev3. So you can try it out. If it is still not working - I also added a namespaces query filter to the API, so it would be good if you could try the API for a single or subset of namespaces.
v1/namespaced-resources/report-labels?namespaces=<namespace1>&nameapaces=<namespace2>

@fjogeleit I just tried the new image .. thanks for that ..
The outcome is now a bit strange .. I currently have two namespaces with reports .. for namespace 1 e.g. my-namespace (http://localhost:8080/v1/namespaced-resources/report-labels?namespaces=my-namespace) I get results as shown below ..

For my other namespace my-namespace-2 I don't get anything .. nevertheless for that other namespace I have plenty of reports (Vuln and ConfigAudit) present (also confirmed by http://localhost:8080/v1/policy-reports?namespaces=my-namespace-2&offset=100&page=1).

When I do a combined call (http://localhost:8080/v1/namespaced-resources/report-labels?namespaces=my-namespace&namespaces=my-namespace-2) I also get an empty list (similar to above).

Okay also it is not working when you try to get the labels for this concrete namespaces and the only difference are the amount of reports but the habe basically the same labels and values?

No, when I explicitly called the API filtering for that second namespace I got an empty list.
Both namespaces are identical .. Trivy currently is configured to scan only those two. The only difference is obviously the name of the namespace (one is called x-y and the other one (not working one) is called a-b-c .. the number of reports in the non working namespace is larger, yes .. and of course the label values are unique in each namespace.

@fjogeleit I just noticed the second part of the question .. sure thing I can send you these privately .. let me know how and I am happy to do it.

Would be very helpful, thanks. You can send it via email to me<EMAIL_ADDRESS>

Just in case that it is really related to the amount of reports and results I reworked the schema and query a bit, so no join is necessary and the query should perform in general a bit better.
I created the tag v2.12.0-dev4 to test it out.

I will try that new image out .. in the worst case that it's still not working, I will send you the generated PolicyReport objects in that namespace in question

thanks a lot

@fjogeleit WOHOO that last change worked perfectly! I assume it had to do with the count! ..

I had for that namespace in question 113 reports (combined Vuln and ConfigAudit) .. Also confirmed by http://localhost:8080/v1/policy-reports?namespaces=my-namespace-2&offset=200&page=1
Now all API calls are working perfectly!

http://localhost:8080/v1/policy-reports?namespaces=my-namespace-2&offset=200&page=1
http://localhost:8080/v1/namespaced-resources/report-labels?namespaces=my-namespace-2
http://localhost:8080/v1/namespaced-resources/report-labels?namespaces=my-namespace&namespaces=my-namespace-2
http://localhost:8080/v1/namespaced-resources/report-labels

I also checked the UI and it works like a charm!
Thanks a lot for your really deep and detailed help on that one! Much appreciated.
Is there a way we can know the breaking limit of this? .. It's of course great that it now works .. but let's say tomorrow in one namespace I get 300 or even more reports, how can we ensure that this won't be an issue? .. Especially that the response times of the API were like under 40ms ..
I will also leave it up to you when this ticket can be closed (maybe you need to do some clean-up work on the APIs or so).

Great news, really happy that it is working now. I can not really say if it was related to the amount of reports / results or a special case with the old query.
The last version joined the policy report table with the results table. Because each report can have a lot of results, this Influenced the query a lot. Now that the policy-report table has all needed information the JOIN is no longer needed and the query should scale much better. I don't think that 200 reports or more are a problem now - even though I unfortunately cannot verify this.
I will continue working on performance and scalability and hope it will work as it should.
I will let the APIs stay as they are, the additional filters do not harm and can also help in other debug situations. I will close the issue as soon as I released the new version with all fixes.

Sounds amazing! .. BTW I was thinking, maybe the query param filters are also useful for something like nested queries (or nested drop-downs) .. basically I select a certain namespace or a certain report type, severity, .. etc., I could get only the relevant app or whatever labels in that namespace matching that (those) report types or severity (severities) I selected.
Maybe a new ticket for a new future use case? what do you think?

You mean the label values depending on the values of other filters? Would be possible for namespaces other values are related to results, so I would need to join them again.

Yeah basically label values based on some other selected criteria .. if you have to join again and we get back to square 0 then forget what I said .. maybe that whole topic of filtering is a for another day .. as you said one could start with namespace filtering and then for other stuff, there could be another way in the future.

Correct, also the rework of the complete UI is on the roadmap for this year. So any feedback is very appreciated.

Awesome .. in that case I will then open a new ticket and maybe you can put it under the rework planned if it fits. I will try to express some "wishes" that I see with regards to filtering and will also mention that efforts there need to respect the query performance and avoid joins as much as possible. It won't be urgent by any means and you can start it whenever suitable.

Sure, as you like. The "main" ticket is https://github.com/kyverno/policy-reporter/issues/222
The rework can also include restructering / reorganization of information. For example I think about organize results based on source rather than the type of Report.
So you have a page per source and don't jump between PolicyReport and ClusterPolicyReport pages.

Maybe I put the detailed idea as a comment there or so. Will figure something out tomorrow or in the next few days.

Take your time. I will also do some research before starting this topic

Released with Helm Chart Version 2.15.0


philips xiaomi light + Docker HA 0.63

Have a philips xiaomi light.
I upgrade homeassistant to 0.63 version.
My log:
Sun Feb 11 2018 16:24:46 GMT+0200 (EET)
Error while setting up platform xiaomi_miio
Traceback (most recent call last):
File "/usr/src/app/homeassistant/helpers/entity_platform.py", line 84, in async_setup
SLOW_SETUP_MAX_WAIT, loop=hass.loop)
File "/usr/local/lib/python3.6/asyncio/tasks.py", line 358, in wait_for
return fut.result()
File "/usr/local/lib/python3.6/asyncio/futures.py", line 243, in result
raise self._exception
File "/usr/local/lib/python3.6/asyncio/tasks.py", line 180, in _step
result = coro.send(None)
File "/usr/local/lib/python3.6/asyncio/coroutines.py", line 212, in coro
res = func(*args, **kw)
File "/usr/src/app/homeassistant/components/light/xiaomi_miio.py", line 77, in async_setup_platform
device_info = light.info()
File "/config/deps/lib/python3.6/site-packages/miio/device.py", line 271, in info
return DeviceInfo(self.send("miIO.info", []))
File "/config/deps/lib/python3.6/site-packages/miio/device.py", line 216, in send
m = Message.build(msg, ctx)
TypeError: build() takes 2 positional arguments but 3 were given
python-miio (0.3.5)
construct (2.9.28)

Which docker image do you use? This error isn't from python-miio 0.3.5.

homeassistant/home-assistant
https://hub.docker.com/r/homeassistant/home-assistant/

I remove all docker container and reinstall homeassistant.
I continue to see an error

I assume the container is equipped with obsolete packages.

what packages should I install?
What versions?

/usr/src/app# ls -1 /config/
automations.yaml
bin-sensors.yaml
bkups
configuration.yaml
customize.yaml
deps
entity_registry.yaml
graph.yaml
groups.yaml
history.yaml
home-assistant.log
input-select.yaml
known_devices.yaml
notify.yaml
recorder.yaml
scripts.yaml
sensors.yaml
switch.yaml
tts
www
xiaomi.yaml
zones.yaml
Configuration.yaml :
light:

platform: xiaomi_miio
name: Philips Ceiling Lamp
host: <IP_ADDRESS>
token: 3d5f7ae53b51aa312e464b150b37453b

/usr/src/app# cat /usr/local/lib/python3.6/site-packages/miio/version.py
flake8: noqa
version = "0.3.5"
cat /usr/local/lib/python3.6/site-packages/construct/version.py
version = (2,9,29)
version_string = "2.9.29"
release_date = "2018.02.11"
You have construct version 2.9.28.
My container have construct 2.9.29.
downgrade construct to 2.9.28
My log:
Sun Feb 11 2018 18:21:00 GMT+0200 (EET)
Error while setting up platform xiaomi_miio
Traceback (most recent call last):
File "/usr/src/app/homeassistant/helpers/entity_platform.py", line 84, in async_setup
SLOW_SETUP_MAX_WAIT, loop=hass.loop)
File "/usr/local/lib/python3.6/asyncio/tasks.py", line 358, in wait_for
return fut.result()
File "/usr/local/lib/python3.6/asyncio/futures.py", line 243, in result
raise self._exception
File "/usr/local/lib/python3.6/asyncio/tasks.py", line 180, in _step
result = coro.send(None)
File "/usr/local/lib/python3.6/asyncio/coroutines.py", line 212, in coro
res = func(*args, **kw)
File "/usr/src/app/homeassistant/components/light/xiaomi_miio.py", line 77, in async_setup_platform
device_info = light.info()
File "/config/deps/lib/python3.6/site-packages/miio/device.py", line 271, in info
return DeviceInfo(self.send("miIO.info", []))
File "/config/deps/lib/python3.6/site-packages/miio/device.py", line 216, in send
m = Message.build(msg, ctx)
TypeError: build() takes 2 positional arguments but 3 were given

Thanks for the help.
I deleted the folder /config/deps and it all worked.


added clarifications and a little configurability

on getFollowsStateless() following/follower and setting nodeURL

the commit notes should be self-explanatory

Great work ser


Building minHook and this project with latest toolset and sdk causes "Invalid DisplaySize"

Solution and dependencies targeted for the following -
Windows SDK: 10.0 (latest)
Platform Toolset: Visual Studio 2019 (v142)
Language Standard: C++ 17
Error upon injection: "Assertion Failed: 'Invalid DisplaySize value!'

it doesn't even build for me at all

@glubdos I will take a look on it tonight, but you can use a debugger or the windows core dump files to debug it next time ;) have a good day


Test Danger in Develop

Test Danger in Develop
New Component Checklist

[x] Includes unit tests for ALL required FDS use cases
[x] Does not mute any top level API props in React
[x] Includes an explanation for any changes to Jest snapshots (should be a PR tag automatically added if this happens)
[x] Component uses React.forwardRef() when a single DOM node is returned, AND it makes React-sense to access that DOM node

This was just for testing purposes.


Different P and A sizes cause Matlab to crash

When passing matrices P ([n x n]) and A ([m x n_1]) to problem setup function, if one accidentally defines matrix A in a way that n_1 != n (false optimizer size), Matlab crashes instead of reporting an error. In case no one reported it earlier, I think this is something which could easily be fixed and would improve the usability of the software.

Are you using the current master branch version of this repository, or the released 0.6.0 zip file? I believe there was a change after 0.6.0 was released that might fix this.

I have just tried this on v0.6 and can't reproduce the error.   If you still see the error on v0.6, please post a MWE and we will make a fix.

I also have v0.6 and in cases when P and q are of the same size, but different from A, l and u, Matlab simply crashes. I have given this to two of my colleagues and they replicated my error. Here is the code example:
P = ones(6);
q = ones(6,1);
A = rand(10,5);
low = rand(10,1);
upp = low + rand(10,1);

prob = osqp;
prob.setup(P, q, A, low, upp);

Strange.  I have just tried this myself and the matlab interface catches the error, i.e. I get

Error using osqp/setup (line 208)
Incorrect dimension of A

Line 208 of osqp.m is this:

assert(size(A, 2) == n, 'Incorrect dimension of A');

which seems like it should catch your error.   Can you put a breakpoint there and see if it gets that far?
Have you perhaps pulled the v0.6 version but not rebuilt the solver using the make_osqp.m script?
If none of the above helps, can you post the OS and matlab version you are using?

That error handling was added after 0.6.0 was released, so the source zip file of 0.6.0 doesn't include them. To get the error handling you need to use the current master branch - hence my question about if they were using master or the source zip.

@imciner2 OK, I see the problem.   In that case just grabbing the file osqp.m direct from the git master should solve the problem, since it doesn't look like any of the C-side mex interface changed when that update was made.

You were both right. It solves the problem. Thank you for your answers :)


Fixing Hardhat conversion

Implemented TS throughout
Removed redundant code
Issue was that the Mock_Router wasn't assigning any values to the return variables.
Hardhat would indicate the error in solidity but only for versions 0.5.1 and above thus the error was general

Thanks for taking care of this @RyRy79261 ! Merging now.


[Ready for Review] Add decaching to read comment count timestamp update view

This fixes the comment count not being decached when users open the comment slide-out by decaching the users' url.
The core problem is that the URL that is used to retrieve the users comment count is inside the /v2/nodes namespace and the URL to set/reset the comment count is in the /v1/api/user namespace. When a user posts their comment read timestamp to their /v1/api I purge their user, this PR makes it also purge the Node in question.
@sloria @nicipfeiffer

This was cherry-picked into release/0.66.0 with #5207


Add a constructor for alternative initialization

Added a constructor that executes a lambda member function, to enable composition with a block instead of periods:
val verex = VerEx {
    startOfLine()
    then("http")
    maybe("s")
    then("://")
    maybe("www")
    anythingBut(" ")
    endOfLine()
}

The empty constructor is still available, but you have to admit - this looks much cooler.

Neat, thanks!


[turbopack] [tailwind] warnings and slow build time with tailwind

What version of Turbopack are you using?
alpha
What package manager are you using / does the bug impact?
npm
What operating system are you using?
Windows
Describe the Bug
Hello. I'm trying to use Turbopack with Tailwind.
I execute next dev --turbo --show-all,
and after i open localhost:3000 on my browser im getting those errors:
warning - [parse]
  node_modules\postcss\lib\input.js
    node_modules\postcss\lib\input.js:44:20  lint TP1006 path.resolve(???*0*) is very dynamic
        40 |         isAbsolute(opts.from)
        41 |       ) {
        42 |         this.file = opts.from
        43 |       } else {
           |                     v
        44 +         this.file = resolve(opts.from)
           |                     ^
        45 |       }
        46 |     }
        47 |
        48 |     if (pathAvailable && sourceMapAvailable) {

    - *0* ???*1*["from"]
      ⚠  unknown object
    - *1* opts
      ⚠  pattern without value

  node_modules\postcss\lib\previous-map.js
    node_modules\postcss\lib\previous-map.js:88:8  lint TP1004 fs.existsSync(???*0*) is very dynamic
        84 |   }
        85 |
        86 |   loadFile(path) {
        87 |     this.root = dirname(path)
           |         v
        88 +     if (existsSync(path)) {
           |         ^
        89 |       this.mapFile = path
        90 |       return readFileSync(path, 'utf-8').toString().trim()
        91 |     }
        92 |   }

    - *0* arguments[0]
      ⚠  function calls are not analysed yet

    node_modules\postcss\lib\previous-map.js:90:13  lint TP1004 fs.readFileSync(???*0*, "utf-8") is very dynamic
        86 |   loadFile(path) {
        87 |     this.root = dirname(path)
        88 |     if (existsSync(path)) {
        89 |       this.mapFile = path
           |              v
        90 +       return readFileSync(path, 'utf-8').toString().trim()
           |              ^
        91 |     }
        92 |   }
        93 |
        94 |   loadMap(file, prev) {

    - *0* arguments[0]
      ⚠  function calls are not analysed yet

Couldn't find anything about it.
Im new to those techs, and i'm sorry if i've just done something wrong
Expected Behavior
Expected fast build and no warnings.
To Reproduce
I just followed instructions on https://tailwindcss.com/docs/guides/nextjs
Reproduction Repo
https://github.com/Soraka-TheBanshee/imdb-clone

This seems to be an issue with<EMAIL_ADDRESS>to<EMAIL_ADDRESS>fixed this issue for me.

This seems to be an issue with<EMAIL_ADDRESS>to<EMAIL_ADDRESS>fixed this issue for me.

Oh, am not alone

Hmm, still error after downgrade, but works faster. Maybe i just downgraded it in a wrong way, huh

I have the same issue

I use pnpm for package management and have had same problems.
Here is the project I am creating with next13.
https://github.com/kkhys/me/tree/30338efc136064b7991d16c31ecff2458d6cce15

I have the same problems. Next13.2.3-Turbopack-Tailwind. Everything works fine with Webpack.

This seems to be an issue with<EMAIL_ADDRESS>to<EMAIL_ADDRESS>fixed this issue for me.

Worked for me

This seems to be an issue with<EMAIL_ADDRESS>to<EMAIL_ADDRESS>fixed this issue for me.

Worked for me too

Same for me with<EMAIL_ADDRESS>and<EMAIL_ADDRESS>

The warnings should no longer display by default in the latest canary. @Soraka-TheBanshee When say the build time is slow, what are you experiencing?

I am receiving these errors when attempting to use turbopack under the Next 13.2.5-canary.13
warning - [parse]
node_modules\postcss\lib\input.js
node_modules\postcss\lib\input.js:44:20  lint TP1006 path.resolve(???0) is very dynamic
40 |         isAbsolute(opts.from)
41 |       ) {
42 |         this.file = opts.from
43 |       } else {
|                     v
44 +         this.file = resolve(opts.from)
|                     ^
45 |       }
46 |     }
47 |
48 |     if (pathAvailable && sourceMapAvailable) {
- *0* ???*1*["from"]
  ⚠  unknown object
- *1* opts
  ⚠  pattern without value

node_modules\postcss\lib\previous-map.js
node_modules\postcss\lib\previous-map.js:88:8  lint TP1004 fs.existsSync(???0) is very dynamic
84 |   }
85 |
86 |   loadFile(path) {
87 |     this.root = dirname(path)
|         v
88 +     if (existsSync(path)) {
|         ^
89 |       this.mapFile = path
90 |       return readFileSync(path, 'utf-8').toString().trim()
91 |     }
92 |   }
- *0* arguments[0]
  ⚠  function calls are not analysed yet

node_modules\postcss\lib\previous-map.js:90:13  lint TP1004 fs.readFileSync(???*0*, "utf-8") is very dynamic
    86 |   loadFile(path) {
    87 |     this.root = dirname(path)
    88 |     if (existsSync(path)) {
    89 |       this.mapFile = path
       |              v
    90 +       return readFileSync(path, 'utf-8').toString().trim()
       |              ^
    91 |     }
    92 |   }
    93 |
    94 |   loadMap(file, prev) {

- *0* arguments[0]
  ⚠  function calls are not analysed yet

warning - [analyze]
<EMAIL_ADDRESS>unexpected export *
export * used with module<EMAIL_ADDRESS>(ecmascript) which has no exports
Typescript only: Did you want to export only types with export type { ... } from "..."?
<EMAIL_ADDRESS>unexpected export *
export * used with module<EMAIL_ADDRESS>(ecmascript) which has no exports
Typescript only: Did you want to export only types with export type { ... } from "..."?
Unhandled errors that happened during execution of application code.
1 of 1
Error: Failed to load chunk _next/static/chunks/node_modules_react-icons_gi_index.esm_8f1fce.js from module [next]/entry/app/hydrate.tsx/(PAGE)/[project]/app/page.tsx (ecmascript) (ecmascript)

Downgrading to next 13.1.6 worked for me.

I'd really like to not downgrade, as I am using the new routing feature under Next 13.2
Is there a way to disable the warning to not show in the browser?

I'd really like to not downgrade, as I am using the new routing feature under Next 13.2 Is there a way to disable the warning to not show in the browser?

how

my issue resolved after i updated versions of packages like next to canary version next@canary and also upgrading postcss@latest and my issue resolved

This issue is related to linters of turborepo.
add this texts in file named postcss.config.js
/* eslint-disable */ at start of file and /* eslint-enable */ at the end of file.
my file looked like this
/* eslint-disable */
module.exports = {
  plugins: {
    tailwindcss: {},
    autoprefixer: {},
  },
};
/* eslint-enable */

hi
did you solve the problem ?
im getting this error :
`Turbopack compiled with warnings
1 of 4
lint TP1004 fs.readFileSync(???0, "utf-8") is very dynamic
warning - [parse]<EMAIL_ADDRESS>/node_modules/.pnpm/postcss@8.4.21/node_modules/postcss/lib/previous-map.js:90:13  lint TP1004 fs.readFileSync(???0, "utf-8") is very dynamic
86 |   loadFile(path) {
87 |     this.root = dirname(path)
88 |     if (existsSync(path)) {
89 |       this.mapFile = path
|              v
90 +       return readFileSync(path, 'utf-8').toString().trim()
|              ^
91 |     }
92 |   }
93 |
94 |   loadMap(file, prev) {

0 arguments[0]
⚠  function calls are not analysed yet
`

hi
did you solve the problem ?
im getting this error :
Turbopack compiled with warnings
1 of 4
lint TP1004 fs.readFileSync(???*0*, "utf-8") is very dynamic
warning - [parse]<EMAIL_ADDRESS>/node_modules/.pnpm/postcss@8.4.21/node_modules/postcss/lib/previous-map.js:90:13  lint TP1004 fs.readFileSync(???*0*, "utf-8") is very dynamic
      86 |   loadFile(path) {
      87 |     this.root = dirname(path)
      88 |     if (existsSync(path)) {
      89 |       this.mapFile = path
         |              v
      90 +       return readFileSync(path, 'utf-8').toString().trim()
         |              ^
      91 |     }
      92 |   }
      93 |
      94 |   loadMap(file, prev) {

  - *0* arguments[0]
    ⚠  function calls are not analysed yet

yeah i got the same issue and it's resolved by updating the postcss.config.js as per https://github.com/vercel/turbo/issues/3972#issuecomment-1499396061

Same issues, more than 7 seconds to compile route (i'm using turbopack, mui and tailwind)
problem in next.js 13.2.6 and 13.3

Still an issue
next - 13.4.3
react - 18.2.0

Issue 1

Issue 2

"eslint": "^8.42.0",
"eslint-config-next": "13.4.4",
"next": "^13.4.5-canary.9",
"postcss": "^8.4.24",
The problem persists

Going to close this as Tailwindcss is supported now and the related tests are passing, if you're still running into problems please open a new issue with a reproduction. Thanks!

I had that problem with readFile, and it worked after changing from this:
const fileString = await fs.readFile(filePath, 'utf8');
to this:
const absolutePath = path.join(process.cwd(), filePath);
const fileString = await fs.readFile(absolutePath, 'utf8');

Thanks @thiagobarbosa 👍
Adding const absolutePath = path.join(process.cwd(), filePath); solved my issue.


Avalon Media System: Community and Sustainability

Jon Dunn, David Schober
<EMAIL_ADDRESS>Over the last two years, the Avalon Media System team at the libraries of Indiana University and Northwestern University has worked toward developing a model of sustainability for a large open source project as part of a grant funded by the Institute of Museum and Library Services (IMLS). As the grant comes to a close, the Avalon team will review the efforts undertaken over the course of the two-year cycle, discussing the challenges faced by the Avalon team, as well as points of success. The Avalon team will reflect upon the experience and how opportunities provided by the grant to take on new technical changes to the system, develop code in partnership, work toward better integration with the the larger Samvera community, and develop a smaller, focused community of Avalon users and stakeholders all pointed us toward how Avalon will proceed in the years going forward. The presentation will focus on our path forward focusing on Avalon on Hyrax, new features in recent releases, additional new features being developed on the current code base, and the challenges of aligning complex projects.

8/27 Jon Dunn registered

8/28  If it’s helpful, we can adjust the title to make that a bit more clear. Something like: Avalon Media System: Community and Sustainability

9/12 - Dave S. registered


New Hungarian Translation Progress

Maintainer List

@balazsorban44
@gergely-nagy
@punkah

For New Translators
To translate a page:

Check that no one else has claimed your page in the checklist and comments below.
Comment below with the name of the page you would like to translate. Please take only one page at a time.
Clone this repo, translate your page, and submit a pull request!

Before contributing, read the glossary and style guide (once they exist) to understand how to translate various technical and React-specific terms.
Please be prompt with your translations! If you find that you can't commit anymore, let the maintainers know so they can assign the page to someone else.
For Maintainers
When someone volunteers, edit this issue with the username of the volunteer, and with the PR. Ex:

[ ] Quick Start (@tesseralis) #12345

When PRs are merged, make sure to mark that page as completed!
Main Content
To do before releasing as an "official" translation. Please translate these pages first.
Note that each section has an index page, which needs to be translated too.
Learn React

[ ] Quick Start

[ ] Tutorial: Tic Tac Toe
[ ] Thinking in React

[ ] Installation ( @gergely-nagy )

[ ] Start a New React Project
[ ] Add React to an Existing Project
[ ] Editor Setup
[ ] React Developer Tools

[ ] Describing the UI

[ ] Your First Component
[ ] Importing and Exporting Components
[ ] Writing Markup with JSX
[ ] JavaScript in JSX with Curly Braces
[ ] Passing Props to a Component
[ ] Conditional Rendering
[ ] Rendering Lists
[ ] Keeping Components Pure

[ ] Adding Interactivity

[ ] Responding to Events
[ ] State: A Component's Memory
[ ] Render and Commit
[ ] State as a Snapshot
[ ] Queueing a Series of State Updates
[ ] Updating Objects in State
[ ] Updating Arrays in State

[ ] Managing State

[ ] Reacting to Input with State
[ ] Choosing the State Structure
[ ] Sharing State Between Components
[ ] Preserving and Resetting State
[ ] Extracting State Logic into a Reducer
[ ] Passing Data Deeply with Context
[ ] Scaling Up with Reducer and Context

[ ] Escape Hatches

[ ] Referencing Values with Refs
[ ] Manipulating the DOM with Refs
[ ] Synchronizing with Effects
[ ] You Might Not Need an Effect
[ ] Lifecycle of Reactive Effects
[ ] Separating Events from Effects
[ ] Removing Effect Dependencies
[ ] Reusing Logic with Custom Hooks

API Reference

[ ] react: Hooks

[ ] useCallback
[ ] useContext
[ ] useDebugValue
[ ] useDeferredValue
[ ] useEffect
[ ] useId
[ ] useImperativeHandle
[ ] useInsertionEffect
[ ] useLayoutEffect
[ ] useMemo
[ ] useReducer
[ ] useRef
[ ] useState
[ ] useSyncExternalStore
[ ] useTransition

[ ] react: Components

[ ] <Fragment> (<>)
[ ] <Profiler>
[ ] <StrictMode>
[ ] <Suspense>

[ ] react: APIs

[ ] createContext
[ ] forwardRef
[ ] lazy
[ ] memo
[ ] startTransition

[ ] react-dom: Components

[ ] Common (e.g. <div>)
[ ] <input>
[ ] <option>
[ ] <progress>
[ ] <select>
[ ] <textarea>

[ ] react-dom: APIs

[ ] createPortal
[ ] flushSync
[ ] findDOMNode
[ ] hydrate
[ ] render
[ ] unmountComponentAtNode

[ ] react-dom/client: Client APIs

[ ] createRoot
[ ] hydrateRoot

[ ] react-dom/server: Server APIs

[ ] renderToNodeStream
[ ] renderToPipeableStream
[ ] renderToReadableStream
[ ] renderToStaticMarkup
[ ] renderToStaticNodeStream
[ ] renderToString

Navigation and UI
We suggest to leave most of the UI translation until the end. We plan to do some invasive changes to the website folder layout and components, so postponing this until your translation is almost complete would make it easier to merge the changes from our side later. It might make sense to translate the homepage above the fold early, but leave the rest for later. As individual pages get translated, you can change the page titles in the corresponding sidebar files. Finally, when you're translating the navigation, make sure to test both desktop and mobile layouts.

[ ] Homepage (currently in HomeContent.js)
[ ] Sidebars (currently in src/sidebar*.json)
[ ] Top-level navigation (currently in TopNav.tsx)

When You're Ready...
After everything above is translated, add your language to deployedLanguages in Seo.tsx of the original reactjs/react.dev repository.
Secondary Content
These API pages should ideally be translated too, but they're less urgent and can be done after the others:

[ ] Legacy React APIs

[ ] Children
[ ] cloneElement
[ ] Component
[ ] createElement
[ ] createFactory
[ ] createRef
[ ] isValidElement
[ ] PureComponent

Optional Content
These aren't the main translation targets, but if you'd like to do them, feel free to expand the list to include their subpages:

[ ] Community
[ ] Blog
[ ] Warnings

Thanks for the checklist! I'll start looking into it. 🙏

Hello, I'm still here to help you with the translation 🚀

Hi, I would be happy to contribute to this translation. Let me know if I can help you.

Hey there 👋! I'd be happy to help out if you guys are open to it.

Where is the Hungarian content?
git grep -e 'ÁÉÍÓÖŐÚÜŰáéíóöőúüű' returns no files.

Hey everyone! 👋
I'd love to contribute to the translation. I'd like to start by translating the "Quick Start" page if it's still available. It seems like no one has claimed it yet, but if someone already has, please let me know. Otherwise, I'll get started right away!
Looking forward to helping out!


return type of extracting seems to be wrong in the presense of wildcard generics

This
List<Object> numbers = Arrays.asList("String", 23);
assertThat(numbers).extracting(n -> n.getClass()).containsExactly(String.class, Integer.class);

does not compile, although I think it should:
no suitable method found for containsExactly(java.lang.Class<java.lang.String>,java.lang.Class<java.lang.Integer>)
 method org.assertj.core.api.ObjectEnumerableAssert.containsExactly(java.lang.Class<capture#1 of ? extends java.lang.Object>...) is not applicable
   (varargs mismatch; java.lang.Class<java.lang.String> cannot be converted to java.lang.Class<capture#1 of ? extends java.lang.Object>)
 method org.assertj.core.api.AbstractIterableAssert.containsExactly(java.lang.Class<capture#1 of ? extends java.lang.Object>...) is not applicable
   (varargs mismatch; java.lang.Class<java.lang.String> cannot be converted to java.lang.Class<capture#1 of ? extends java.lang.Object>)

The following does work and qualifies as a workaround:
assertThat(numbers).extracting(n -> (Class)n.getClass()).containsExactly(String.class, Integer.class);

I don't have a clean solution for that, your workaround is ok.
The only way to solve this issue would be to remove generics in containsExactly but I'm not sure users are ok with that.

I came to the same conclusion :-/
I guess closing the issue as won't fix is fine.

I will do a poll at some point to see if users are ok to get rid of generics, we had a few other issues like yours.


KAFKA-16856 : Adding new exception

Resolves : https://issues.apache.org/jira/browse/KAFKA-16856

Adding new exception TIERED_STORAGE_DISABLEMENT_IN_PROGRESS / TieredStorageDisablementInProgressException

Committer Checklist (excluded from commit message)

[X] Verify design and implementation
[X] Verify test coverage and CI build status
[X] Verify documentation (including upgrade notes)

@clolov would you like to take a look at this one pls ?

@gharris1727 would you like to take a look at this one ? Thanks.

We are pausing development on ZK-related KIP-950 development, so I will close this PR. I will update the tickets on JIRA so you can pick something from there!

We are pausing development on ZK-related KIP-950 development, so I will close this PR. I will update the tickets on JIRA so you can pick something from there!

Ah ok. thanks.


steamdb stopped to work at all on mobile

_Browser name and version: _ Firefox 68
Device (mobile or desktop):  Mobile
Page where the issue happens: any

Describe the bug
Please complete the security check to access SteamDB

Please stand by, while we are checking your browser...

Page just refreshes every few seconds

Try a newer Firefox version.

It says "install_failed_insufficient_storage" when trying to install newer version

Well that's a problem with your phone, not the site.
It's not impossible that Cloudflare once again broke something with the security check in Firefox, but I can't really do anything about it, especially when you're using an old browser version.

Yes, you can, but apparently you don't want to: #763.
There are active checks especially for older browsers, so their users could pass the check if an automatic one fails. But the problem is that they are broken and nobody bothers to fix them. Or even test before releasing (yes, Cloudflare, I'm looking at you...).


Parameters are not type-checked before being operated upon

While there is good support for making sure that literals in an expression make sense lexically, there is no type safety or rules about which operators work on which values.
For instance, there is no intuitive or unambiguous behavior to checking if a string is ">=" another string, nor is there well-defined behavior for what negating a bool (-(1 > 2)) would do.
Currently if any operation isn't evaluable in golang itself, this library will panic. Panics are bad. Instead, an error should be returned in cases where operations against a type don't make sense.

Implemented as of b7437d9078c4d2959fbcf61f1cbe569a88e4b0ac . Firmly tested by 88e68a12b0c63300aaa081cd186103d6634d12f1


bump golang version to v1.22.8

Do we eventually want to automate this using dependabot?

Unfortunately dependabot can only update docker images when it detects a full image ref path. It cannot update a variable statement based on the availability of a new docker image release


made card component

created the card component with image title and description

created the card component with image title and description

Well done 👍

Merged

This is an automated message from Fork, Commit, Merge [BOT].

Thank you for your contribution! Your pull request has been merged. The files have been reset for the next contributor.
What's next?
If you're looking for more ways to contribute, I invite you to check out my other projects. Just click here to find more. These projects contain real issues that you can help resolve. You can also check out the Influences section in the README to find more projects similar to this one.
Also please leave a star to this project if you feel it helped you, i would really appreciate it.
I look forward to seeing your contributions!


Code review on merged pull request

In GitHub there's an option to review a PR after it was merged.
I didnt saw the extension supports it.
It would be really helpful because there are companies that first merge a PR (if all tests are valid) and only afterwards review it. And off course there are urgent merges that being reviewed afterwards..

This looks like a duplicate of https://github.com/microsoft/vscode-pull-request-github/issues/2014, let's track it there


State of the history-tabs

The History window should save it's state - whether the table or the chard was viewed the last time.

Implemented https://github.com/holgerkrupp/networkLight/commit/1f098d8ccdc67921edff0233f2d97956e407cb81


Test-ExePreReqs gives no indication of failure.

Commands like Connect-Vault depend on Test-ExePreReqs. If my prereqs fails, neither Test-ExePreReqs nor Connect-Vault generate any information stating I have a failure.
I can see either update Test-ExePreReqs with a Write-Warning stating something is missing from the PreReqs or updating Connect-Vault (and any other command that depends on it) to display a message stating something is missing.

Good shout @BrandonLundt - would be a definite enhancement.
I feel another module update brewing.....


service/headers: Fix race in TestCoreListener

Attempts fix for #453
It is not locally reproducible so we will have to run the CI several times, but I applied the same fix as in #342. I am assuming this issue stems from the same issue addressed in that PR.

@renaynay Try with
go test ./service/header/ -count 1000 -run TestCoreListener -v -race


Use rayon for parallel compilation

Here's an attempt to add support parallel compilation (See #90).

Thanks for the PR! I find it kinda crazy that it amounts to a 2-line change when using crates like rayon to add parallelization here...
I'd like to also handle features like NUM_JOBS, however, to limit parallelism and I'd personally like to keep the dependencies of gcc-rs pretty lean (rayon pulls in rand/num_cpus/libc as well).
I think I'll probably just do this via a small "custom thread pool" which is a little bit more code but shouldn't be too bad! I'll post a commit in a few minutes.

Bah nevermind, too complicated, crates are easy!

@alexcrichton note that Rayon does allow you to configure the number of helper threads

I think you can either set it globally, or make a special pool of a fixed size and install it using TLS, I forget exactly :)

Ok hm I'm having second thoughts now, so I've moved rayon to a Cargo feature called parallel which is off by default for now (in the theory that most C code is actually very small). This can be enabled though via:
[build-dependencies]
gcc = { version = "0.3", features = ["parallel"] }

Yep makes sense! I also had some qualms about adding a dependency to a build step, but feature gating seems like a good tradeoff for now. Thanks!


Update CI tests

I started with some GitHub Actions versions update and went on fixing stuff and enabling others, so I'm submitting for you consideration and see if anything else should be changed.
Heads up: errors popped up.
Summary of my changes:

Updated actions/checkout and actions/setup-python to latest versions (post-nodejs v12 deprecation in github actions)
Enabled added workflow_dispatch even trigger (allows manual start of the test), disabled fail-fast (run all matrix strategies, do not cancel all if one fail), enabled max-parallel 5 (to not run all matrix combinations at once)
Enable Python 3.11 in tox and CI to pop up errors, and looks like I found
Enable Python 3.10 in CI (was in tox already)
Reorganize matrix.tox values; GitHub workflow editor was complaining that "matrix values must contain primitive values", so replaced 'tox' (py_version and env) with 'py_version' including 'env'
Run flake8, mypy and black envs in all Python versions, instead of Python 3.8 only

Issues brought up:

ubuntu-latest image (now 22.04) does not support Python 3.6 — note this doesn't affect macos-latest (yet);
flake8 fails in all but Python 3.7 and 3.6 (only macos-latest due to above issue)
Python 3.11 fails in "test_exclude_directory" test (both ubuntu and macos)

Error outputs:

Click for flake8 error output.

 ERROR: invocation failed (exit code 1), logfile: /home/runner/work/Potodo/Potodo/.tox/flake8/log/flake8-0.log
================================== log start ===================================
Traceback (most recent call last):
  File "/home/runner/work/Potodo/Potodo/.tox/flake8/bin/flake8", line 8, in
    sys.exit(main())
             ^^^^^^
  File "/home/runner/work/Potodo/Potodo/.tox/flake8/lib/python3.11/site-packages/flake8/main/cli.py", line 23, in main
    app.run(argv)
  File "/home/runner/work/Potodo/Potodo/.tox/flake8/lib/python3.11/site-packages/flake8/main/application.py", line 198, in run
    self._run(argv)
  File "/home/runner/work/Potodo/Potodo/.tox/flake8/lib/python3.11/site-packages/flake8/main/application.py", line 186, in _run
    self.initialize(argv)
  File "/home/runner/work/Potodo/Potodo/.tox/flake8/lib/python3.11/site-packages/flake8/main/application.py", line 165, in initialize
    self.plugins, self.options = parse_args(argv)
                                 ^^^^^^^^^^^^^^^^
  File "/home/runner/work/Potodo/Potodo/.tox/flake8/lib/python3.11/site-packages/flake8/options/parse_args.py", line 53, in parse_args
    opts = aggregator.aggregate_options(option_manager, cfg, cfg_dir, rest)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/Potodo/Potodo/.tox/flake8/lib/python3.11/site-packages/flake8/options/aggregator.py", line 30, in aggregate_options
    parsed_config = config.parse_config(manager, cfg, cfg_dir)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/Potodo/Potodo/.tox/flake8/lib/python3.11/site-packages/flake8/options/config.py", line 131, in parse_config
    raise ValueError(
ValueError: Error code '#' supplied to 'extend-ignore' option does not match '^[A-Z]{1,3}[0-9]{0,3}$'
ERROR: InvocationError for command /home/runner/work/Potodo/Potodo/.tox/flake8/bin/flake8 tests/ potodo/ (exited with code 1)

Click for py311 error output.

ERROR: invocation failed (exit code 1), logfile: /home/runner/work/Potodo/Potodo/.tox/py311/log/py311-0.log
================================== log start ===================================
============================= test session starts ==============================
platform linux -- Python 3.11.0, pytest-7.2.0, pluggy-1.0.0
cachedir: .tox/py311/.pytest_cache
rootdir: /home/runner/work/Potodo/Potodo
collected 20 items
tests/test_exclude.py ..F.                                               [ 20%]
tests/test_potodo.py ..                                                  [ 30%]
tests/test_potodo_args_errors.py .....                                   [ 55%]
tests/test_potodo_default_args.py .........                              [100%]
=================================== FAILURES ===================================
____________________________ test_exclude_directory ____________________________
capsys = <_pytest.capture.CaptureFixture object at 0x7fb6fa785c10>
base_config = {'above': 0, 'below': 100, 'counts': False, 'exclude': ['excluded/*'], ...}
def test_exclude_directory(capsys, base_config):
    base_config["exclude"] = ["excluded/*"]

  exec_potodo(**base_config)

tests/test_exclude.py:26:

potodo/potodo.py:203: in exec_potodo
non_interactive_output(
potodo/potodo.py:88: in non_interactive_output
po_files_and_dirs = get_po_stats_from_repo_or_cache(path, ignore_matches, no_cache)
potodo/po_file.py:82: in get_po_stats_from_repo_or_cache
all_po_files: List[Path] = [
potodo/po_file.py:83: in
file for file in repo_path.rglob("*.po") if not ignore_matches(str(file))
potodo/potodo.py:155: in
return lambda file_path: any(r.match(file_path) for r in rules)
potodo/potodo.py:155: in
return lambda file_path: any(r.match(file_path) for r in rules)
.tox/py311/lib/python3.11/site-packages/gitignore_parser.py:147: in match
if re.search(self.regex, rel_path):
/opt/hostedtoolcache/Python/3.11.0/x64/lib/python3.11/re/init.py:176: in search
return _compile(pattern, flags).search(string)
/opt/hostedtoolcache/Python/3.11.0/x64/lib/python3.11/re/init.py:294: in _compile
p = _compiler.compile(pattern, flags)
/opt/hostedtoolcache/Python/3.11.0/x64/lib/python3.11/re/_compiler.py:743: in compile
p = _parser.parse(p, flags)
/opt/hostedtoolcache/Python/3.11.0/x64/lib/python3.11/re/_parser.py:980: in parse
p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
/opt/hostedtoolcache/Python/3.11.0/x64/lib/python3.11/re/_parser.py:455: in _parse_sub
itemsappend(_parse(source, state, verbose, nested + 1,

source = <re._parser.Tokenizer object at 0x7fb6fa7b6a10>
state = <re._parser.State object at 0x7fb6fa7c00d0>, verbose = 0, nested = 1
first = True
def _parse(source, state, verbose, nested, first=False):
    # parse a simple pattern
    subpattern = SubPattern(state)

                            import warnings
                            warnings.warn(
                                "bad character in group name %s at position %d" %
                                (repr(condname) if source.istext else ascii(condname),
                                 source.tell() - len(condname) - 1),
                                DeprecationWarning, stacklevel=nested + 6
                            )
                    state.checklookbehindgroup(condgroup, source)
                    item_yes = _parse(source, state, verbose, nested + 1)
                    if source.match("|"):
                        item_no = _parse(source, state, verbose, nested + 1)
                        if source.next == "|":
                            raise source.error("conditional backref with more than two branches")
                    else:
                        item_no = None
                    if not source.match(")"):
                        raise source.error("missing ), unterminated subpattern",
                                           source.tell() - start)
                    subpatternappend((GROUPREF_EXISTS, (condgroup, item_yes, item_no)))
                    continue

                elif char == ">":
                    # non-capturing, atomic group
                    capture = False
                    atomic = True
                elif char in FLAGS or char == "-":
                    # flags
                    flags = _parse_flags(source, state, char)
                    if flags is None:  # global flags
                        if not first or subpattern:

                          raise source.error('global flags not at the start '

                                               'of the expression',
                                               source.tell() - start)

E                               re.error: global flags not at the start of the expression at position 1
/opt/hostedtoolcache/Python/3.11.0/x64/lib/python3.11/re/_parser.py:841: error
=========================== short test summary info ============================
FAILED tests/test_exclude.py::test_exclude_directory - re.error: global flags...
========================= 1 failed, 19 passed in 6.79s =========================
ERROR: InvocationError for command /home/runner/work/Potodo/Potodo/.tox/py311/bin/coverage run -m pytest (exited with code 1)
=================================== log end ====================================
✖ FAIL py311 in 24.09 seconds

(also attaching because the output was HTML-formatted a bit: py311.txt)
Ideas:

Want me to add 3.12-dev as well, to spot issues before next Python release?
Drop Python 3.6 (which is already EOL) tests ? (if yes, I'd recommend updating setup.cfg as well)

Want me to add 3.12-dev as well, to spot issues before next Python release?

I don't know to be honest. @JulienPalard, what do you think ?

Drop Python 3.6 (which is already EOL) tests ? (if yes, I'd recommend updating setup.cfg as well)

I think this is a good idea though.

Just to complement, my idea regarding 3.12-dev is to use https://github.com/deadsnakes/action (its README has the syntax: if suffix has -dev then run deadsnakes's Python image)
Also, it seems 1 workflow awaiting approval is require. You may want to do it so the tests are run.

Thanks a lot @rffontenelle!
Don't worry about enhancing too much the .github/workflow (the 3.12 thing via deadsnakes) as this repo will probably move soon out of github (we're moving to our https://git.afpy.org that we've opened because we're less and less happy to produce open-source using a close-source tool, here, at the AFPy).

@JulienPalard does this applies to all poutils-related software?

@JulienPalard does this apply to all poutils-related software?

It applies to all poutils-related software hosted under https://github.com/AFPy/Potodo, yes.
Ultimately it could apply to all repositories under https://github.com/AFPy (I don't see the point of keeping our open-source code in a close-source environment now that we have a self-hosted open-source alternative).


Linking gdal Library/Frameworks

Description
In OSX when trying to create the environment  numpy can not be loaded, this can be solved by adding openblas to the environment. But then libSymuVia.dylib cannot be loaded.
Reproduce
In order to reproduce

Git clone, checkout dev
conda env create -f conda/env.yaml # fix env by adding openblas first
python -c "import numpy" should be ok
See error OSError: dlopen(/Users/andresladino/opt/anaconda3/envs/symupy/lib/libSymuVia.dylib, 6): Library not loaded: /Library/Frameworks/GDAL.framework/Versions/2.1/GDAL

Expected behavior
Loading library
Context

Operating System and version: OSX

Current behavior
>>> cdll.LoadLibrary(DEFAULT_LIB_OSX)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/andresladino/opt/anaconda3/envs/symupy/lib/python3.9/ctypes/__init__.py", line 460, in LoadLibrary
    return self._dlltype(name)
  File "/Users/andresladino/opt/anaconda3/envs/symupy/lib/python3.9/ctypes/__init__.py", line 382, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: dlopen(/Users/andresladino/opt/anaconda3/envs/symupy/lib/libSymuVia.dylib, 6): Library not loaded: /Library/Frameworks/GDAL.framework/Versions/2.1/GDAL
  Referenced from: /Users/andresladino/opt/anaconda3/envs/symupy/lib/libSymuVia.dylib
  Reason: image not found

@floriangc  Ok for numpy! Thanks! Still getting the GDAL error though

❯ otool -L /Users/andresladino/opt/anaconda3/envs/symupy/lib/libSymuVia.dylib
/Users/andresladino/opt/anaconda3/envs/symupy/lib/libSymuVia.dylib:
	@rpath/libSymuVia.dylib (compatibility version 0.0.0, current version 0.0.0)
	/Library/Frameworks/GDAL.framework/Versions/2.1/GDAL (compatibility version 22.0.0, current version 22.3.0)
	@rpath/libSymuCore.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_date_time.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_locale.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_log.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_thread.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_wserialization.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_filesystem.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_system.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_program_options.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_python39.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libxqilla.2.dylib (compatibility version 7.0.0, current version 7.0.0)
	@rpath/libxerces-c-3.2.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libodbc.2.dylib (compatibility version 3.0.0, current version 3.0.0)
	@rpath/libpython3.9.dylib (compatibility version 3.9.0, current version 3.9.0)
	@rpath/libboost_chrono.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_atomic.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_regex.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_serialization.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 904.4.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.0.0)

Ok, cmake didn't take the package from conda .. I will check that.
Adding the tests at the conda build stage could be nice for this kind of problem.

Just did something here but not sure if other changes in dev are ready to go to master, I could also just take the ci commits and put them in a new branch to merge to master.

Adding the tests at the conda build stage could be nice for this kind of problem.

Added in #60

Ok I think that the last commit in dev fix this: https://github.com/licit-lab/symudev/commit/36ddee51bcb01c22346e71e3fc6198acd2979016
Result of otool on the libSymuvia of the conda package:
otool -L lib/libSymuVia.dylib
lib/libSymuVia.dylib:
	@rpath/libSymuVia.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libgdal.28.dylib (compatibility version 29.0.0, current version 29.1.0)
	@rpath/libSymuCore.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_log.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_thread.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_wserialization.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_python39.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libxqilla.2.dylib (compatibility version 7.0.0, current version 7.0.0)
	@rpath/libxerces-c-3.2.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libodbc.2.dylib (compatibility version 3.0.0, current version 3.0.0)
	@rpath/libpython3.9.dylib (compatibility version 3.9.0, current version 3.9.0)
	@rpath/libboost_serialization.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libc++.1.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.100.1)

I pushed the package on anaconda.


fix cpu_count is NOT correct under container environment! #110

Description
when under container environment, os.cpu_count() get the host cpu count, which may be too large for the container to use.
Fixes:
use cgroup to compute the virtual cpu the container use

There's a lot of system-specific paths and configuration here that I'd rather not have to maintain. This really feels like it should belong in a separate package on PyPI that aiomultiprocess can just use to get an appropriate cpu count.


Update AzureContainerAppsV0 with latest changes

Task name: AzureContainerAppsV0
Description: Bringing the changes from our AzureContainerAppsRC task into the V0 version of this task
Documentation changes required: Y
Added unit tests: Y
Attached related issue: N
Checklist:

[x] Task version was bumped - please check instruction how to do it
[x] Checked that applied changes work as expected

Replaced by https://github.com/microsoft/azure-pipelines-tasks/pull/18055


Remove value function from SAC

Recent SAC implementations do not explicitly learn value function and estimate it from soft-Q function instead.
Follow the recent implementation from author's repo

Hi,
I have made these changes regarding this issue. I haven't forked your code yet so I am going to copy paste the code here.
Thanks for your time.
    @tf.function
    def _train_body(self, states, actions, next_states, rewards, dones, weights):
        print("[DEBUG] initializing {_train_body SAC}")
        with tf.device(self.device):
            assert len(dones.shape) == 2
            assert len(rewards.shape) == 2
            rewards = tf.squeeze(rewards, axis=1)
            dones = tf.squeeze(dones, axis=1)

            not_dones = 1. - tf.cast(dones, dtype=tf.float32)

            with tf.GradientTape(persistent=True) as tape:
                # Compute loss of critic Q
                current_q1 = self.qf1(states, actions)
                current_q2 = self.qf2(states, actions)
                sample_next_actions, next_logp = self.actor(next_states)
                next_q1_target = self.qf1_target(next_states, sample_next_actions)
                next_q2_target = self.qf2_target(next_states, sample_next_actions)
                next_q_min_target = tf.minimum(next_q1_target, next_q2_target)
                soft_next_q = next_q_min_target - self.alpha * next_logp
                target_q = tf.stop_gradient(rewards + not_dones * self.discount * soft_next_q)

                td_loss_q1 = tf.reduce_mean((target_q - current_q1) ** 2)
                td_loss_q2 = tf.reduce_mean((target_q - current_q2) ** 2)
                td_loss_q = td_loss_q1 + td_loss_q2

                sample_actions, logp = self.actor(states)  # Resample actions to update V
                current_q1_policy = self.qf1(states, sample_actions)
                current_q2_policy = self.qf2(states, sample_actions)
                current_min_q_policy = tf.minimum(current_q1_policy, current_q2_policy)

                # Compute loss of policy
                policy_loss = tf.reduce_mean(self.alpha * logp - current_min_q_policy)

                # Compute loss of temperature parameter for entropy
                if self.auto_alpha:
                    alpha_loss = -tf.reduce_mean((self.log_alpha * tf.stop_gradient(logp + self.target_alpha)))

            trainable_var = self.qf1.trainable_variables + self.qf2.trainable_variables
            q_grad = tape.gradient(td_loss_q, trainable_var)
            self.qf_optimizer.apply_gradients(zip(q_grad, trainable_var))

            update_target_variables(self.qf1_target.weights, self.qf1.weights, tau=self.tau)
            update_target_variables(self.qf2_target.weights, self.qf2.weights, tau=self.tau)

            actor_grad = tape.gradient(policy_loss, self.actor.trainable_variables)
            self.actor_optimizer.apply_gradients(zip(actor_grad, self.actor.trainable_variables))

            if self.auto_alpha:
                alpha_grad = tape.gradient(alpha_loss, [self.log_alpha])
                self.alpha_optimizer.apply_gradients(zip(alpha_grad, [self.log_alpha]))
                self.alpha.assign(tf.exp(self.log_alpha))

            del tape

        return target_q, policy_loss, td_loss_q2, td_loss_q1, tf.reduce_min(logp), tf.reduce_max(logp), tf.reduce_mean(
            logp)

Hi, thanks for working on this issue. Actually I just modified this part last week and applied the changes to the latest master.
https://github.com/keiohta/tf2rl/blob/master/tf2rl/algos/sac.py
I'm sorry I haven't notified the changes at this issue page.

Oh, I found the CriticV is not removed even the SAC class does not use it. I'll fix it later.

Hi, thanks for working on this issue. Actually I just modified this part last week and applied the changes to the latest master.
https://github.com/keiohta/tf2rl/blob/master/tf2rl/algos/sac.py
I'm sorry I haven't notified the changes at this issue page.

It is all my pleasure.


Add support for ARM

Was reading the README again and saw that we had listed as WIP but there was no issue made for it, so I'm making one now before I forget (again).

Time to break out the Raspberry Pis :)

Still pursuing

We now support Raspberry Pi (64 bit only).  I imagine this means we also support the MacOS M-series chips but I've not been able to test that yet.
Closing this for now anyway seeing as how I know we can support ARM64 ISA now.


/casket command never loads, only says "OSB is thinking..."

🐛 Bug Report
Happens with any tier, any quantity. /kill sim works fine

Probably the same issue BSO was having https://github.com/oldschoolgg/oldschoolbot/pull/6071

Fixed in next update


cryptography and multiple curve support

Essentially a full line-by-line rewrite that removes PyOpenSSL entirely and transitions to cryptography with SECP384R1 support for all reasonable curves.
Please pay careful attention to changes to tests.  Some sacrifices were made to move to cryptography, such as normalizing all ip strings, everwhere, to str(ipaddress.ip_address)
this changes our filenames, see tests.
the root_ca defaults to 10 years if it is not declared, although due to my laziness, and to keep the structure of the code from changing too much all at once, it's hacked a bit.  the caveat is that currently, if you explicitly create a root_ca with a not_valid_after value exactly equal to CERT_NOT_AFTER, it will create one with the hardcoded value instead without warning you.  There is a relevant comment describing this. It would be trivial to restore the original functionality if you preferred.

actually my not_valid_after hack is just plain broken.

Thanks for this detailed rewrite! I assume motivation is just to remove the openssl dependency and update to more modern encryption libraries, right?
Perhaps the cert validity should be lower, I see there's #14 which lowered it already which didn't get a chance to merge yet..
It's been a while since updated this library, but want to make sure we get it right if for next update.

requested changes are done plus a little extra sauce. pretty sure all functionality is g2g.  its a bit unintuitive that declaring cert_not_before/after in the constructor now applies to both the ca and the host certs, but you should not actually need to do this now. easy to fix later if it proves annoying.

ack this has a print in it. hold up.

constructor now takes ca_not_before/after and hosts_not_before/after
added tests for that and for cert renewal

[ ] update docs,
[ ] figure out example usage for requests
[ ] see if there is a oneliner that will retrofit the openssl context functionality

@ikreymer  looks like 3.9, 3.10, 3.11 are not available in your appveyor? Can you add at your convenience?

back at my workstation, deleting this trash.


⚠ Samsung has degraded performance

In 974e34e, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 3093 ms

Resolved: Samsung performance has improved in 8a390bb.


Support other AWS partitions other than Commercial

Useful for deploying to GovCloud since their partition there is "aws-us-gov" instead of just "aws"
what
Support other AWS partitions by templatizing ARNs that are currently hard coded
why
So the module can be used in other AWS partitions like GovCloud
references
Closes #92

Testing this now in GovCloud, will report back, but my assumption is that this is all that is needed to support other AWS partitions.

"proof" this works

The error message without this change:

/test all


Add ability to configure application to open the GIT repository

What feature or improvement do you think would benefit Files?
Currently I can just open the GIT repository in VSCode using 'Files'. It would be great if I could configure applications that can open the repository. For example, I want to open the GIT repository using GitExtensions application.
Perhaps there is such a setting somewhere, but I didn’t find it due to the lack of searching through the settings, who knows?
Requirements

Add configurable setting which allows to change (or add) the default application to be the GIT repository opened with.

Files Version
3.4.0
Windows Version
Windows 11

Thank you for your feedback, this is an option we're actively planning. Please add a comment or subscribe to #12857 to be notified of further updates.


Stemming instead of 'Like' operator

Would it be beneficial to use stemming instead of 'Like' operator? Sure, inverted index would be bigger, but tokenization based on word boundaries is not enough sometimes. In fact, quite often.

I've created a Feature Request for Stemming here. Feel free to upvote it.

Well, no, I do not use Like operator, this is too expensive for a big data
set. Would prefer to have a proper inverted index for scalar searches.
On Wed, Dec 14, 2022, 17:01 Etienne Dilocker @.***>
wrote:

Hi @PlkMarudny https://github.com/PlkMarudny, thanks for the request.
We are thinking of introducing stemming for all text props in the inverted
index. Let me create a dedicated issue for it so it can be upvoted.
Can you also elaborate on the "instead of Like operator"? Are you
currently using Like to circumvent that? E.g. race car* to match race car
and race cars?
—
Reply to this email directly, view it on GitHub
https://github.com/semi-technologies/weaviate/issues/2428#issuecomment-1351310344,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBI2546AXIMHA6A2E4P6VTWNHAMNANCNFSM6AAAAAASZU52JY
.
You are receiving this because you were mentioned.Message ID:
@.***>

That makes sense, it's a very expensive operator. So to make sure I understand your original title for this issue; you're saying: Since there is no stemming support, I need to either accept that some similar words don't match or I would have to start using a Like operator which is too expensive. Correct?

Yes, that's correct. I had some success using "autocorrect", but well, it
is not exactly the same.
On Wed, Dec 14, 2022, 21:19 Etienne Dilocker @.***>
wrote:

That makes sense, it's a very expensive operator. So to make sure I
understand your original title for this issue; you're saying: Since there
is no stemming support, I need to either accept that some similar words
don't match or I would have to start using a Like operator which is too
expensive. Correct?
—
Reply to this email directly, view it on GitHub
https://github.com/semi-technologies/weaviate/issues/2428#issuecomment-1351806361,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBI2522ZOWYFKLR2HRTAWDWNH6QPANCNFSM6AAAAAASZU52JY
.
You are receiving this because you were mentioned.Message ID:
@.***>

To give more perspective: I have hundreds thousands of videos, some with
good description, tagged using some image recognition, audio transcripted
and so on. Vector search is a great help, of course, but sometimes pure
scalar search makes sense as well. And this is where Weaviate falls short
somehow. Imagine a situation, where an user searches for an event in a city
with unknown exact spelling. Very unlikely it can be found at all.
On Wed, Dec 14, 2022, 22:04 Tomasz Płonka @.***> wrote:

Yes, that's correct. I had some success using "autocorrect", but well, it
is not exactly the same.
On Wed, Dec 14, 2022, 21:19 Etienne Dilocker @.***>
wrote:

That makes sense, it's a very expensive operator. So to make sure I
understand your original title for this issue; you're saying: Since there
is no stemming support, I need to either accept that some similar words
don't match or I would have to start using a Like operator which is too
expensive. Correct?
—
Reply to this email directly, view it on GitHub
https://github.com/semi-technologies/weaviate/issues/2428#issuecomment-1351806361,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBI2522ZOWYFKLR2HRTAWDWNH6QPANCNFSM6AAAAAASZU52JY
.
You are receiving this because you were mentioned.Message ID:
@.***>

That makes sense; thanks for elaborating. I'm closing this one, as the "official" issue to track stemming is now #2439.


Allow more flexible targets urls

Good one, have been promising this one for a while -- so good that you've come to my rescue.
Curious about how you'll be using Resumable at Atlassian?


JSONAPI

I'm building a rails app off a tutorial I found and am trying to use a JSONAPI Active Model Serializer to generate a response of that format.
In an initializer, I've put:
ActiveModelSerializers.config.adapter = :json_api
In my gemfile:
gem 'active_model_serializers', '~> 0.10.0.rc3'
I'm expecting two resource level keys, data and relationships as per the json-api specs. However, is not separating out the relationship to its own object. This is my request for /contacts.
{
  "data": [
    {
      "id": "1",
      "type": "contacts",
      "attributes": {
        "family-name": "La",
        "given-names": "ch",
        "company": {
          "id": 1,
          "name": "Lorem Inc",
          "phone": "+1<PHONE_NUMBER>",
          "email"<EMAIL_ADDRESS>          "website": "www.lorem.inc",
          "address": "213 Main St. 94063 San Francisco, CA",
          "customer_id": "10001",
          "additional_info": "",
          "created_at": "2017-01-31T05:47:02.024Z",
          "updated_at": "2017-01-31T05:47:02.024Z"
        },
        "title": null,
        "phone": null,
        "email": null,
        "website": null,
        "address": null,
        "customer-id": null,
        "additional-info": null
      }
    }
  ]
}

Company is a belong_to for contacts. Here are my serializers.
class CompanySerializer < ActiveModel::Serializer
  attributes :id, :name, :phone, :email, :website, :address, :customer_id, :additional_info
end

class ContactSerializer < ActiveModel::Serializer
  attributes :id, :family_name, :given_names, :company, :title, :phone, :email, :website, :address, :customer_id, :additional_info
end

These are my models:
class Contact < ApplicationRecord
  belongs_to :company

  validates :family_name, presence: true
  validates :given_names, presence: true
end

class Company < ApplicationRecord
  validates :name, presence: true
end

Everything else is just default generated code from rails cli. I'm not sure what else I need to add here because it is my understanding the default rails behavior is to generate a response that will show everything in the serializer. I'm assuming that jsonapi adapter should separate that out for me.
What else do I need to do to get the jsonapi adapter working properly?

This is the issue tracker for the JSON-API specification. I think you are you looking for https://github.com/rails-api/active_model_serializers

oops @rpkilby thank you!


Added clarified notes for Jul 11th meeting

With quite some delay here come the notes for #28 - we went a little overtime on this one and so I took the time to clean up the notes.
cc. @ninabreznik
cc. @serapath
Closes #81.

"A little" overtime meeting, yes, but a very nice one :)


Problem with non blocking function

Hi, I'm trying to implement a non-blocking function for a computational intense process, but it is failing and being stuck with not apparent reason.
I have written a very basic handler which suffers the same problem:
GET 'loop' {
  function(req, resp, pathParams)
    local scheduler = Luaw.scheduler
    local thread    = scheduler.startUserThread(function()
        for i=1,1000 do print(i) coroutine.yield() end
    end)
    return "Loop"
  end
}

The output of the HTTP GET in the terminal window is the following:
starting server on port 7001 ...
1
Error: ./bin/luaw_webapp.lua:355: ./bin/luaw_webapp.lua:187: No action found for path /favicon.ico for method GET
2
3 <--- FROZEN HERE

And it is frozen in the indicated line. The unique way to continue the loop is to do another HTTP GET over a different or the same path...
Am I misunderstanding something about threads in Luaw? I don't see the reason why the thread is stucked there :(

General design philosophy  of Luaw is you should never have to yield/resume manually inside your code. Luaw does that for you automatically behind the scenes for any calls that block - read, write, connect etc. Take a look at connMT.read() and connMT.write() methods in lib/luaw_lib.lua to see how this is hooked up in Luaw's thread scheduler. If you thread makes read() on socket then Luaw will automatically swap it out when it blocks and resume it when the socket is ready with data to return.
Having said that cleanest way to achieve what you are trying to do is to use timer object. Something like this:
GET 'loop' {
  function(req, resp, pathParams)
    local scheduler = Luaw.scheduler
    local timer = Luaw.newTimer()
    local thread    = scheduler.startUserThread(function()
        for i=1,1000 do print(i) timer:sleep(1000) end   --in millis
    end)
    return "Loop"
  end
}

Luaw timer hooks up properly in luaw scheduler and it get's woken up every N milliseconds.
There is another way - closer to what you are trying - but it kinda exposes Luaw innards of Luaw and won't work as well. To go that way simply replace your coroutine.yield() with coroutine.yield(Luaw.TS_RUNNABLE). This signals Luaw scheduler that your user thread is runnable although it is yielding willingly. However, problem with this approach is this would make Luaw scheduler to add the user thread to it's run-queue but after that it will make uv_loop() call that will block till at least one event happens on any of the uv_watchers it is watching - something like socket being ready with data or client connecting on listen port etc. In absence of such event Luaw will stay blocked even though it has a runnable user thread in its queue. Once that event happens it will be unblocked and will process any ready threads from its run queue after it handles all event. You can verify this by making HTTP request to some other, unrelated handler on the same server and seeing that your original user thread proceeds by one iteration.
Using timer object avoids all this complication as the timer object is a valid event source which will unblock itself after the timeout. Of course, in real life you probably want read and write from your user thread to block/unblock your user thread.
Hope this helps.

Many thanks for the explanation, it has been very insightful :-)
So, I will use the timer, with a low value for the milliseconds condition. I hope this would suffice for my particular case. And congratulations for the architecture and design of Luaw, it is really amazing and clean.


doc: update release notes for -buildmode=shared changes

A reminder for me.

ping @mwhudson. now or never.


Fix transient Chromedriver errors.

Chromedriver installs are causing frequent build failures right now. That's what most of the master branch's latest failures are.
Specifically, the curl commands tend to fail. This PR increases timeout time and tries to improve the situation. If this problem continues, we may need to host our own binaries for Chromedriver or pull them from a proxied location that's more reliable.

Merging as this commit already passed on #421. I just separated it out to limit the scope of the other PR.


Feature/fix graph option documentation

Since cc9812c the interface to specify options has changed for the SPARQL::Client.  Unfortunately I don't know much about ruby test, so I was not able to write a test that checks that the default-graph-uri parameter is actually set.

 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.

Yes, the general change in Ruby since 2.0 has been to use **options instead of options = {}, and  some respec matchers are now complaining when they are confused. I’ve recently found more tests to be updated, but hadn’t noticed the README issue.

Coverage remained the same at 95.182% when pulling 4c15993104034693ae306995b25b5fd36917e5b2 on white-gecko:feature/fixGraphOptionDocumentation into 3f52c37075e5e9ff0e6dab610910af1238cce1c8 on ruby-rdf:develop.


support navigation for content types created by plugins

I have a plugin that creates a number of content types once installed, however when I add the following code to my model,
    "navigation": {
      "model": "navigationitem",
      "plugin": "navigation",
      "via": "related",
      "configurable": false,
      "hidden": true
    }

I get errors on pluralization error TypeError: Cannot read property 'toLowerCase' of undefined
The problem is actually in services/navigation.js, line 131.
const endpoint = isSingle ? apiName : pluralize(apiName);
Code is trying to pluralize apiName, but my plugin didn't create any APIs, so apiName is undefined in this case and throws TypeError.

       const { uid, options, info, collectionName, modelName, apiName, plugin, kind } = item;
        const pluralizeName = apiName ? apiName : modelName;

use modelName  for plugins and apiName for manually added content types seems to fix this issue. Are we able to add this?

Hi @simpian,
yep sounds easy to do. I’m working on couple other bug fixes and will include this one. Should be available in 2-3 days.


Inline Styling Issue

The overall code in the both html and css files displays as required but the presenter has been reminded to try and use html and css best practices which prohibits the use of inline styling.
Happy Coding :)

Yes Francis as we discussed, in all my future projects I am not using inline css and this was trial project so I will remove all inline styling and put it in my css file.
Thanks for your valuable peer to peer review.
Happy Coding :)


TTS and Download

I don't know if only I am facing this issue or everyone else also but whenever i try to use TTS in this app it only uses Google tts instead of system default. I don't use Google tts as default instead other different provider, so I wanna use them in app tts, so it would be great if you can give one option to use system setting like this.

And I also notice one new bug that if novel has many chapters and download stop between download and we continue it from there to download rest, then when it's converting into epub it only convert the one which download first without stopping and not the one which downloaded after starting again.

Separate your bug reports. They can't be effectively remediated if combined.


project is difficult to install

Hi,
I've been trying to get this to work for some time now. I installed all required libraries, cloned the project and ran create_wine_portable.sh. This made a wine-portable.sh, which gives me the following input once I run it:
Wine (amd64) Portable SquashFS
tar: Error opening archive: Unrecognized archive format
chmod: cannot access '/tmp/wine-portable.sh_nrb_29965/squashfuse/squashfuse-amd64/squashfuse': No such file or directory
./wine-portable.sh: line 98: /tmp/wine-portable.sh_nrb_29965/squashfuse/squashfuse-amd64/squashfuse: No such file or directory
Mounting the squashfs image failed!
I also downloaded the ready-to-go binary called wine-portable-5.15-staging-amd64.sh. Running it gives me the following issue:
Wine-Staging 5.15 (amd64) Portable SquashFS
/tmp/wine-portable-5.15-staging-amd64.sh_nrb_27179/mnt/wine.sh: line 22: /tmp/wine-portable-5.15-staging-amd64.sh_nrb_27179/mnt/wine/bin/wine: No such file or directoryWine-Staging 5.15 (amd64) Portable SquashFS
/tmp/wine-portable-5.15-staging-amd64.sh_nrb_27179/mnt/wine.sh: line 22: /tmp/wine-portable-5.15-staging-amd64.sh_nrb_27179/mnt/wine/bin/wine: No such file or directory
Could you please explain more how to install it? I'd appreciate it.

I'm using Void Linux. I installed 32-bit glibc like you told me, and wine-portable-5.15-staging-amd64.sh partially works now. If I start winecfg, it takes long for it to appear (I have freetype installed). Output:
Wine-Staging 5.15 (amd64) Portable SquashFS
002c:fixme:winediag:__wine_start_process Wine Staging 5.15 is a testing version containing experimental patches.
002c:fixme:winediag:__wine_start_process Please mention your exact version when filing bug reports on winehq.org.
0034:fixme:service:scmdatabase_autostart_services Auto-start service L"SecDrv" failed to start: 2
0040:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0040:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, hr 0x80004002
0040:err:ole:get_local_server_stream Failed: 80004002
0024:fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (<IP_ADDRESS>)
Wine cannot find the FreeType font library.  To enable Wine to
use TrueType fonts please install a version of FreeType greater than
or equal to 2.0.5.
http://www.freetype.org
004c:fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (<IP_ADDRESS>)

Wine cannot find the FreeType font library. To enable Wine to
use TrueType fonts please install a version of FreeType greater than
or equal to 2.0.5.

32-bit freetype is required to eliminate this error, maybe installing it will also fix the long launch issue.

And the first problem (i mean "tar: Error opening archive: Unrecognized archive format") is actually because in Void Linux git doesn't clone LFS object by default. It's necessary to install git-lfs:
xbps-install git-lfs

And perform this command (without root rights):
git lfs install

After that clone the repo again.

the tar issue got resolved, freetype as well. but then i run into issues like libgcc_s.so.1 is required for pthread_cancel to work and my program doesn't work. seems like installing normal wine is just going to solve the issues faster, but i like the idea of having a sane portable wine install.

Unfortunately the integrated runtime isn't perfectly tested and incomplete, so issues may arise. If you install all (or most) Wine dependencies, you can then disable the integrated libraries, which should solve most problems:
export DISABLE_RUNTIME=1
./wine-portable-5.x-staging-amd64.sh application.exe

That doesn't make much sense, but still you can do this in case you want.


Detect link to class (where object is intended)

Fixes #154

Only checking for static-methods only is not enough. Traits and abstract classes need to be allowed to link to.


Updated for latest SDL3 changes as of 14f584a94bfd49cf1524db75bf3c419fdf9436cd

@icculus has pushed https://github.com/libsdl-org/sdl2-compat/commit/77ccc859c3e5d1855d0ade3e5fc13e8316368ccd for this

Whoops, I didn't see this PR, sorry about that!

No worries, yours was a more correct implementation, thanks!


Fix issues related to holding references to autoloaded code

Verdict currently holds references to all experiments in
Verdict.respository. A common use case for Verdict is to subclass
Verdict::Experiment to add your own behaviour. This is problematic
when the subclasses are autoloaded by Rails and can cause Rails to raise
the following exception:

"ArgumentError: A copy of Some::Experiment has been removed from the
module tree but is still active!"

The fix for this is to provide a mechanism by which we can trigger
Verdict to reload its experiments via an ActiveSupport to_prepare
block in config/environments/development.rb. This PR adds the
following:

A new method Verdict.clear_repository_cache which nils out the
repository instance variable so the next call to Verdict[] will
trigger reloading all experiments. This can be called in a to_prepare
block in your Rails development config.

Changes the load strategy in Verdict.discovery from require to
load so the experiment files can be loaded again. Note that this has
the side effect that Verdict.discovery cannot be called twice without
calling Verdict.clear_repository_cache in between.

@eljojo @wvanbergen

Met with @rafaelfranca IRL. This approach makes sense.
I'll test it and see if it solves https://github.com/Shopify/shopify/pull/107787.
Unrelated to this issue:
Implementing eager_load_namespaces also makes sense, but that'll only help with eager loading.
The current behaviour of Verdict is to lazy load.

🎩  with core and it works perfectly.
I added a second commit which clears the cache right before discovery happens, so there's no exceptions if discovery is called twice.
@stephenminded if ok with you I'll go ahead and:

document this in the changelog
merge it
release a new version

and then open a subsequent PR in core that makes use of the new version.

LGTM, thanks for running with this @eljojo! :shipit:


Update Route type in +Page.mdx

Changed from Route -> RouteSync

Thank you @royalswe. (Btw. any news on sponsoring? Definitely let me know if there is something we can do to unblock.)


feat(project): update build and start scripts

I've updated the build and start script since this was still using the babel-node script which is not recommended by the creators of Babel.
You can still use npm run start to start a debug server with live reload enabled, but for the Docker build and for node --inspect you can use the npm run build:debug and npm run start:prod respectively.

@alastair I've just pushed these changes to the staging branch

lgtm!


Runtime driver downloading

Today started to implement a PDF generator based on an URL.
Then I noticed PuppeteerSharp was kind of 'replaced' by Playwright, we sounds like no problem at first. But then I noticed it doesn't work without the "runtimes" subfolder.
This is where the problem starts, we can only supply the PDF generator as a DLL, no subfolders. So it will not work.
So I have to choose between two 'evils'. PuppeteerSharp which will die, and Playwright which I can't use :)
It's like #988 but then runtime.
Any solution to this?

Hey @KoalaBear84, Playwright doesn't replace anything. They are two similar tools with different scopes and focused on different use cases.
Why can't you support the runtimes folder?

Thanks for your fast response. OK, that was not fully clear to me, mainly because it logically got quieter on the PuppeteerSharp repo :)
It's a SaaS solution we are deploying it to, it has no like (S)FTP deployment options. You can only upload a .ZIP and it will only use/unpack a DLL in it. So we are limited by that.

I'm the author of PuppeteerSharp and PlaywrightSharp. I'm now a third-party contributor to the PlaywrightSharp.
What the Playwright team would say (these are my words not them) is that Playwright is a "Testing library". They will be willing to support different scenarios but always around that use case: Testing.
What is inside the runtimes folder is the Playwright driver. So I don't think there would be a refactor around that if it's not for testing purposes.

OK, thanks. I'll switch back to PuppeteerSharp.
Already found a good way to use a newer Chromium version with a newer Revision. Sadly not a perfect match in http://omahaproxy.appspot.com/ which currently is 812852 for stable, but that one doesn't exist on https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Win_x64/
Is there a better method? Sorry that this maybe isn't related to this project.

I would move this conversation to the other project.

Thanks, closed to continue on new issue on PuppeteerSharp.


monotrails-utils crate fails to build

Steps to Reproduce
Compile rye
Since the last dependency update, rye doesn't compile anymore (at least in the nix environment).
Expected Result
The build succeeds.
Actual Result
   Compiling monotrail-utils v0.0.1 (https://github.com/konstin/poc-monotrail#9d3892a5)
error: couldn't read /build/cargo-vendor-dir/monotrail-utils-0.0.1/src/../../../resources/python_build_standalone_known_good_release.json.zst: No such file or directory (os error 2)
  --> /build/cargo-vendor-dir/monotrail-utils-0.0.1/src/standalone_python.rs:32:5
   |
32 |     include_bytes!("../../../resources/python_build_standalone_known_good_release.json.zst");
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: this error originates in the macro `include_bytes` (in Nightly builds, run with -Z macro-backtrace for more info)

   Compiling age v0.9.2
error: could not compile `monotrail-utils` (lib) due to previous error
warning: build failed, waiting for other jobs to finish...

Version Info
0.20.0
Stacktrace
No response

Which version of the rust compiler are you using?

I think that this is not a compiler version issue.
My guess is that the way we invoke cargo doesn't like this file being way out of the crate folder.
Someone told me that this would have been rejected when publishing to crates.io, but I cannot confirm that.
I reported the "issue" upstream: https://github.com/konstin/poc-monotrail/issues/64

Which version of the rust compiler are you using?

Both cargo and rustc are at version 1.75.0

This is the exact rustc invocation that fails:
rustc --crate-name monotrail_utils --edition=2021 /build/cargo-vendor-dir/monotrail-utils-0.0.1/src/lib.rs --error-format=json --json=diagnostic-rendered-an
si,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C metadata=83546ed514fa7492 -C extra-filename=-83546ed514f
a7492 --out-dir /build/source/target/x86_64-unknown-linux-gnu/release/deps --target x86_64-unknown-linux-gnu -C linker=/nix/store/khkhbch4p1wjfl1g89gw1mszvvr7bzv0-gcc-wra
pper-13.2.0/bin/cc -L dependency=/build/source/target/x86_64-unknown-linux-gnu/release/deps -L dependency=/build/source/target/release/deps --extern anyhow=/build/source/
target/x86_64-unknown-linux-gnu/release/deps/libanyhow-d90edb9316cc1465.rmeta --extern cpufeatures=/build/source/target/x86_64-unknown-linux-gnu/release/deps/libcpufeatur
es-d0410f529dcd5c8f.rmeta --extern fs_err=/build/source/target/x86_64-unknown-linux-gnu/release/deps/libfs_err-28b95d8778bb3129.rmeta --extern fs2=/build/source/target/x8
6_64-unknown-linux-gnu/release/deps/libfs2-c9bcf5e4dbcb76d8.rmeta --extern pep508_rs=/build/source/target/x86_64-unknown-linux-gnu/release/deps/libpep508_rs-0078111ce6555
829.rlib --extern regex=/build/source/target/x86_64-unknown-linux-gnu/release/deps/libregex-ecbf94c7df9f6a3f.rmeta --extern serde=/build/source/target/x86_64-unknown-linu
x-gnu/release/deps/libserde-c6ce11f3f6c7c6d1.rmeta --extern serde_json=/build/source/target/x86_64-unknown-linux-gnu/release/deps/libserde_json-cd83a1d9ba6262f6.rmeta --e
xtern tar=/build/source/target/x86_64-unknown-linux-gnu/release/deps/libtar-6e523a4276a5947b.rmeta --extern target_lexicon=/build/source/target/x86_64-unknown-linux-gnu/r
elease/deps/libtarget_lexicon-5d537f26f4bce874.rmeta --extern tempfile=/build/source/target/x86_64-unknown-linux-gnu/release/deps/libtempfile-7458f14b7e0b9b03.rmeta --ext
ern thiserror=/build/source/target/x86_64-unknown-linux-gnu/release/deps/libthiserror-7f052fe60e1233d7.rmeta --extern toml=/build/source/target/x86_64-unknown-linux-gnu/r
elease/deps/libtoml-af79289a49da2948.rmeta --extern tracing=/build/source/target/x86_64-unknown-linux-gnu/release/deps/libtracing-767207b57da18f0e.rmeta --extern unscanny
=/build/source/target/x86_64-unknown-linux-gnu/release/deps/libunscanny-9fbfca3a518e9503.rmeta --extern ureq=/build/source/target/x86_64-unknown-linux-gnu/release/deps/li
bureq-ac54b9a28938fd54.rmeta --extern zstd=/build/source/target/x86_64-unknown-linux-gnu/release/deps/libzstd-c8fc0cb764a8c299.rmeta --cap-lints allow -C target-feature=-
crt-static -L native=/build/source/target/x86_64-unknown-linux-gnu/release/build/ring-fd6fbb3813ea4ef9/out -L native=/build/source/target/x86_64-unknown-linux-gnu/release
/build/zstd-sys-afa46c1777fa843f/out

I think #577 might fix that

I think #577 might fix that

Indeed it does. Thank you for this very quick reaction :)


USB connection detection

Is there a way to detect USB cable connection and disconnection (when battery is connected)  without using the ADC?

This is not possible with current hardware.

Ok, Thanks :)