Rule priorities are based on total rule length, not individual path prefix

Do you want to request a feature or report a bug?
A bug. I believe Traefik uses incorrect logic to decide on routing rules priority.
What did you do?
Consider Traefik is configured to watch for Docker containers (a very basic config that essentially boils down to [docker] watch = true), and observes the following configuration in their labels (as a snippet from Docker Compose file):
web:
    ...
    labels:
        traefik.enable: "true"
        traefik.backend: "web"
        traefik.frontend.rule: "Host:one.example.org,one.example.net,old.one.example.net,old.one.example.org"

web-ng:
    ...
    labels:
        traefik.enable: "true"
        traefik.backend: "web-ng"
        traefik.frontend.rule: "Host:one.example.org,one.example.net,PathPrefix:/api/v2/,/o/"

What did you expect to see? What did you see instead?
I've expected a request to one.example.org/api/v2/ to be routed to the web-ng container, as it has more specific PathPrefix.
However, requests were sent to web instead. This was the case until I've made the web-ng's rule look like "Host:one.example.org,one.example.net,PathPrefix:/api/,/o/,/a-long-string-to-make-this-rule-more-specific/".
I've expected Traefik to compare path prefixes of all matching rules rather than rules themselves. I.e. compare "" (longest PathPrefix that matches from the web's rules - empty in this case) vs "/api/" (longest PathPrefix that matches from the web-ng's rules). I haven't looked at the code but it seems that this isn't the case. I've experimented a little and can tell that traffic is routed to web-ng only when the whole rule's length is greater or equal to the web's frontend rule's length.
Output of traefik version:
Version:      v1.3.0-rc3
Codename:     raclette
Go version:   go1.8.2
Built:        2017-05-24_01:39:53PM
OS/Arch:      linux/amd64

Looking at the code, it does really seem like we're using the entire rule content length in order to define the priority.
This does seem wrong. @emilevauge, is this a bug for you too?

Ouch, indeed, we added multiple rules separated by , after priorities... newRoute.Priority(serverRoute.route.GetPriority() + len(route.Rule)) should definitely be moved to rules.go.

I've tried to create a test that checks for this behavior. Here's what I came with: https://gist.github.com/drdaeman/b37478e2d07207047dd1432229b9e637 (not a PR, because I'm not exactly sure the code's correct)
Unless I've messed up somewhere and misunderstanding things, the final router for two rules, one with "PathPrefix:/foo,/bar,/foobarbaz" and another with "PathPrefix:/foobar" would still looks like this (very rough schematic representation):
Router.routes:
  - matchers:
    - Router.routes:
      - matchers:
        - matcher: template: "/foo"
      - matchers:
        - matcher: template: "/bar"
      - matchers:
        - matcher: template: "/foobarbaz"
    - Router.routes.matchers:
      - matchers:
        - matcher: template: "/foobar"

Nested subRouters are created in Rules.pathPrefix, so each rule is separate. Whenever a request for "/foobar" comes, it would be caught by the first subrouter and that would still result in an incorrect match with "/foo". Or, depending on priorities/sorting, it could be backwards - request for "/foobarbaz" would match at the wrong subrouter.
As I understand it, the structure must be flattened to work correctly, and subrouters should be created only for host-level rules - with multiple path rules targeting the same host merged together under the single router.
This seems to be a significantly big change :(

Same issue here:

traefik.frontend.rule: Host:foo.bar,bin.baz
traefik.frontend.rule: Host:foo.bar:PathPrefix:/sidebar
traefik.frontend.rule: Host:bin.baz:PathPrefix:/ws
traefik.frontend.rule: Host:bin.baz:PathPrefix:/v2

Every request will be forwarded to 1.

Just discovered this bug myself and was glad to find this issue.
In my opinion this odd behaviour is very significant, and as long as the underlying design has not been corrected,  it should be documented (in the official documentation).

https://docs.traefik.io/v1.6/basics/#priorities

Oops.. Well, should have RTFM ;) Sorry.

Hi @jbdoumenjou, I was wondering why you removed the bug label from this issue?
This doesn't seem like an enhancement to me.

I still have and issue have to services linked as:

Host("example.org", "www.example.org") && Path("/app")
Host("example.org", "www.example.org")
Path www.example.org/app goes to second instead of first.

Just my 2c: I spent three hours on this problem. Just by adding a new hostname to a service, the app stopped working. I believe this rule of using the lenght of the  route rule to set priority is against the principle of least surprise.
Or maybe to make the debugging easier, in the traefik dashboard, the list of routes could be sorted by priority, with the priority being written next to the route name?

I'll add in that this seems to add an extra layer of complexity that is really unnecessary. I would suspect the optimal solution would be to use something like the sum of characters that match the rule, with a higher number being a correct priority. Looking at the length of a rule, doesn't necessarily imply a more specific URL match, because there can be simple OR and AND logic added in. Consider:
Host(`domainthatisreallylong.org`)
vs
Path(`/path`)

While the Host is a longer rule, it's not more specific. In this scenario, it would be assumed that the Host is already inclusive if only hosting 1 domain. If multiple, then someone may need a rule that includes the domain as well to be more specific - or perhaps may want to easily handle the same redirect for multiple domains.
I would propose a weighting mechanism to add MORE weight to something like a path/prefix than host for example. And then additionally beyond that, have each part of the rule that does in fact match, count for say a percentage of the whole match.
So if URL is 20 char, and 10 are of the root domain - this is 50% match, and the other 10 are the path - this is 50%. However in this scenario, a path/prefix would get more weight to imbalance the 1:1 battle of decision. Obviously there is more to this to think through such as a path only being 10% but matching the scenario above would fail.
The short term fix it seems, is to pick an arbitrary high number to put on rules evaluation much shorter than others in precedence. Or in a scenario where a rule is longer (higher number) set it with an extremely low priority in static config.

Is it possible to just display the calculated router priority in the traefik dashboard ?

Is it possible to just display the calculated router priority in the traefik dashboard ?

Is it possible to just display the calculated router priority in the traefik dashboard ?

This has been discussed in the past and was declined due to the additional real estate it would take in the UI given the possible range of numbers in the rule (I believe it's a signed 32bit integer, iirc). Calculated priorities also do not seem to be provided via the API, however, manually specified values are.

Is it possible to just display the calculated router priority in the traefik dashboard ?

This has been discussed in the past and was declined due to the additional real estate it would take in the UI given the possible range of numbers in the rule (I believe it's a signed 32bit integer, iirc). Calculated priorities also do not seem to be provided via the API, however, manually specified values are.

Is it possible to just display the calculated router priority in the traefik dashboard ?

This has been discussed in the past and was declined due to the additional real estate it would take in the UI given the possible range of numbers in the rule (I believe it's a signed 64bit integer, iirc). Calculated priorities also do not seem to be provided via the API, however, manually specified values are.
#5981

It would be still useful at least log the priority in the debug mode thus elaborating which exact rule matched for a specific request.

Is it possible to just display the calculated router priority in the traefik dashboard ?

This has been discussed in the past and was declined due to the additional real estate it would take in the UI given the possible range of numbers in the rule (I believe it's a signed 64bit integer, iirc). Calculated priorities also do not seem to be provided via the API, however, manually specified values are.
#5981

It would be still useful at least log the priority in the debug mode thus elaborating which exact rule matched for a specific request.

I understand it's difficult to display the priority in the table view, but maybe in the router's details section, it should be readable..

I understand it's difficult to display the priority in the table view, but maybe in the router's details section, it should be readable..

Other proxies use # of rules to define priorities. So a matching rule with Host & Path would always have more priority than a rule with only host or only path. That makes it significantly easier to handle priorities without hacks and workarounds.

Other proxies use # of rules to define priorities. So a matching rule with Host & Path would always have more priority than a rule with only host or only path. That makes it significantly easier to handle priorities without hacks and workarounds.

Traefik should also consider adding more priority to more specific rules.
For example :
Host(`www.domain.com`) && Path(`/foo`)

is more specific than
HostRegexp(`{subdomain:.*}.domain.{tld:.*}`) && PathPrefix(`/`)

But the second rule is longer so it win ! :disappointed:

Traefik should also consider adding more priority to more specific rules.
For example :
Host(`www.domain.com`) && Path(`/foo`)

is more specific than
HostRegexp(`{subdomain:.*}.domain.{tld:.*}`) && PathPrefix(`/`)

But the second rule is longer so it win ! :disappointed:

I would also like to mention that there is always an option of introducing an ability to specify rule weight/priority manually, with something in spirit of Weight(100): Host(www.example.org) && Path(/foo). Although I'm not sure what would be a good syntax for this.
Manual weights are inconvenient when one wants something that "just works" so aren't a complete solution, however they would eliminate any guesswork and allow arbitrarily complex routing policies working without crude hacks (like non-existent long paths that add extra weight).

I would also like to mention that there is always an option of introducing an ability to specify rule weight/priority manually, with something in spirit of Weight(100): Host(www.example.org) && Path(/foo). Although I'm not sure what would be a good syntax for this.
Manual weights are inconvenient when one wants something that "just works" so aren't a complete solution, however they would eliminate any guesswork and allow arbitrarily complex routing policies working without crude hacks (like non-existent long paths that add extra weight).

Got same issue with path prefixes.
Next work well:
        static:
          rule: "PathPrefix(`/`)"
          service: "core-static"
          entryPoints:
            - web
        api:
          rule: "PathPrefix(`/api/`)"
          service: "core"
          entryPoints:
            - web
        microservice-api:
          rule: "PathPrefix(`/microservice/api/`)"
          service: "microservice-api"
          middlewares:
            - "microservice"
          entryPoints:
            - web
        microservice:
          rule: "PathPrefix(`/microservice/`)"
          service: "microservice-static"
          middlewares:
            - "microservice"
          entryPoints:
            - websecure

But when i add one more rule:
        static:
          rule: "PathPrefix(`/`,  `/api/v2/static`)"
          service: "core-static"
          entryPoints:
            - web
        api:
          rule: "PathPrefix(`/api/`)"
          service: "core"
          entryPoints:
            - web
        microservice-api:
          rule: "PathPrefix(`/microservice/api/`)"
          service: "microservice-api"
          middlewares:
            - "microservice"
          entryPoints:
            - web
        microservice:
          rule: "PathPrefix(`/microservice/`)"
          service: "microservice-static"
          middlewares:
            - "microservice"
          entryPoints:
            - web

/microservice/ starts routing to / eg core-static.

This would make so much more sense if it was based on rule specificity, kinda like CSS works.

After years of contending with this, we are going to close this issue.
We just haven't found a way of contending with this that addresses the issue despite approaching it from many perspectives, including using the rule length to set the priorities (splitting, long rules in many routers to lower the priority) and using the priority option.
However we do agree that having the priority in the UI is a good idea, so it will be implemented with #9004 which you can look forward to in Traefik Proxy 3.0.


Api To Get Block Given Hive Block Number

Creates a method to get a engine block given a hive block number(or nothing if one doesn't exist for that particular hive block).

I named it getBlockInfoByHiveBlock since none of the other calls have abbreviations and I didn't want to change that style.


[doc] we need to explain those unlinked nodes in networks

Description

I remember there is something like "threshold" or so in the code that related to networks, so the unlinked nodes are designed to be unlinked, but our users do not know.
We should figure it out and explain it to our users.
Type of Issue

[ ] Bug
[ ] Feature Request
[ ] Performance issue
[ ] Help Wanted
[x] Documention incomplete
[ ] Test Improvement
[ ] Raise a Question

hey @tyn1998  can I take up this issue.
I think will be able to fix it.

hey @tyn1998 can I take up this issue.
I think I will be able to fix it.

Hi smit, the unlinked nodes may not be a bug but designed in this way on purpose. This issue requires further document which I think is not for newcomers.
Instead, you can try #328.

oh okay @tyn1998  yes ill try solving issue #328
Also I was wondering that in the readme there is an incomplete image of developer collaboration network
I would be glad to fix that if possible.
Should I update it and send Pull request?
Thankyou.

What do you mean "incomplete", can you put on a screenshot?

here the devleoper collabration network image

Maybe you should forced-refresh your page. It seems like a network issue.

oh okay @tyn1998

The reason of edge disappearance is: they are removed on purpose to make a dense graph sparse so they become more readable.


Orthographic camera

Hi! I really love you job, I'm using your script to implement a "3d" on GDevelop
But my scene is orthographic, and your script has a perspective camera.
You can help me config a Orthographic camera?
https://user-images.githubusercontent.com/11356271/126038580-1ba29248-449f-4a95-a1a5-19d6e2333591.mp4

Hey! You should just need to change from a perspective matrix mat4.perspective to an orthographic matrix mat4.ortho.
https://github.com/lucatronica/picocad-web-viewer/blob/9686a7cd65f3927cc43d50915a23eefb08f4571e/src/index.js#L390-L396

I tried this, but dont works weel, you can help me?

Something like this should work better, though it assumes a square aspect ratio. Adjust scale to taste.
let scale = 3;
mat4.ortho(
  mat,
  -scale, scale, -scale, scale,
  0.1, 400,
);

Thanks! Works... I'm dont have experience with webgl
Thanks for contribute with my work on GDevelop

https://codepen.io/FlokiTV/pen/MWmmobq


Closing a details page in a Studio may go back to the first dashboard in the list and reload the data from scratch

This is happening in Fusion 1.4.1 on MacOS 10.14.6 / Chrome 83.0.4103.97
How to reproduce it on BBP prod:

Open Studios: https://bbp.epfl.ch/nexus/web/studios
Open Studio "LNMC electrophysiology data" then pick "SSCX"
You should see 2 dashboards in the following order:
a. NWB Dataset: experiment
b. NWB Dataset: stimuli
I selected "NWB Dataset: stimuli"
The list of datasets renders and I pick arbitrarily one, the details page renders.
I close the details page. The page reloads and the first dashboard is now selected (i.e. NWB Dataset: experiment)
instead, I believe the details page should have been closed and the original page be left unchanged (i.e. data not reloaded).

Please note that if multiple Workspace are present in the Studio, it reverts to the very first when you close a details page.
For example, let's assume:

you have 3 workspace,
you select the second workspace,
you open a details page
you close the details page
the full page reloads and the first workspace is selected.


Pull gossip queues for better throughput

Motivation
Lodestar's gossip queues are too restrictive to handle big volumes of objects such when subscribed to all subnets

See https://github.com/ChainSafe/lodestar/issues/5176

Our existing queues throttle by limiting concurrency, irrespective of downstream worker's capacity. They have the authority to push jobs, and do so independently from each other
Description
This PR updates the queue design to:

Queues just hold data
NetworkProcessor has the authority to get data from the queues and execute it
NetworkProcessor throttles based on downstream workers availability to take more work
Since there's now a central scheduling function it can prioritize topics over others, for example process blocks before attestations

Marking as draft until testing shows all good

Deployed to feat3, results show good queue efficiency but mesh health is bad.
Queues are never full, message drop rate is 0, and job wait time is almost 0

But mesh peers is now at minimum and don't have peers on most subnets

We receive way less messages in the beacon_attestation topic

peers are not pruned because:

most/all peers have duties
most/all peers subscribe to >= 1 subnet
most/all peers have good score
not too grouped to a subnet

this is the same issue to https://github.com/ChainSafe/lodestar/issues/5198
The reason it happens more to this branch maybe because gossip score it so great (point 3 above - I compared gossipsub score in feat3 and other groups)

This is awesome work, I can see good metrics like "Job Wait Time" or "Dropped jobs %". However I also notice this push some pressure to I/O lag issue on #4002:

A little increasement on Event Loop Lag
A little increasement on Lodestar CPU time (160% -> 170%)
Especially the submitPoolAttestations at validator side (500ms vs 100vs as in stable 1k validator node)

@dapplion is it possible to introduce some flags to mitigate the issue?

@dapplion is it possible to introduce some flags to mitigate the issue?

If any this PR is allowing nodes to process all network objects they are required to process as per the spec. "The issue" is actually correct behavior, where current stable drops too many messages. To mitigate "the issue" we should force the node into processing less messages than they can, sort of re-introducing a forced limiting throughput. I'm softly against introducing data, and instead spend our energy understanding what's taking CPU time.
If we were to add flags we could limit the max concurrency per topic.

0301_gossip-queue-pull_1k.cpuprofile.zip
I'm attaching the profile, there is no special thing except for handleReceivedMessages() (then executeWork) was called many times inside runMicroTasks
In the current implementation we yield to the macro queue every 50ms through yieldEveryMs inside JobItemQueue, do we have equivalent mechanism in this implementation @dapplion ?

In the current implementation we yield to the macro queue every 50ms through yieldEveryMs inside JobItemQueue, do we have equivalent mechanism in this implementation @dapplion ?

That should not be necessary in theory, I added metrics and each gossip packet tends to trigger work on itself. From looking at the profile I don't see issues related with this code specifically. Since everything is run sync now it makes sense to show up on the call stack of handleReceivedMessages and executeWork but their self time is small

:tada: This PR is included in v1.6.0 :tada:

:tada: This PR is included in v1.7.0 :tada:

:tada: This PR is included in v1.8.0 :tada:


Improve Location Map Load Time

Describe the bug
Propose and implement a solution to improve the location map loading time - currently this is slow as we need to read for each location separately if it had sent data recently.
Options:

implement a server side cache - we would have to fall back to a 24hr resolution but could allow to update this in the background automatically (currently active=sent data in the last hour)
extend the API to allow pulling this information in a single query

[Update] API has been updated, see comments below. TODO:

add the new info in the data model https://github.com/CivicTechTO/tRacket-dashboard/blob/main/app/src/data_loading/models.py
extend the AppDataManager to make sure the latestTimestamp gets added and calculate the SENDING_DATA flag that was previously done by https://github.com/CivicTechTO/tRacket-dashboard/blob/main/app/src/data_loading/main.py
remove the calls to attach_all_location_stats() in the admin and locations page.

The backend already monitors all active sensors to notify sensor owners if they have not reported data in the last 30 minutes, 24 hours and 7 days.  The backend can be updated to leverage that process to efficiently include a "last_verified" timestamp in the location endpoint response, so additional API requests are not required to know if each location has been updated within the last hour.  I will follow-up here once that update has been made.  The last_verified property for each location will not represent the last time it was updated with a measurement, but a slightly less accurate (accurate within 1 hour) time of when the system last verified it had sent data.  While less accurate, it will be far more efficient to provide, keeping the locations endpoint as performant as possible while still providing the information we need.

That would be amazing, thanks, Mitch! I'm perfectly fine with that level of accuracy and we can communicate that on the dashboard.

Okay, the API has been updated.  The following new properties are returned for each location.

lastChecked - The time the following properties were last checked for updates.  If no updates were available, the subsequent property values may not change, but lastChecked will always let you know when it measurements were last checked for updates.  This should generally be a time within the last 15 minutes, which is how often the summaries are updated.
latestTimestamp - The time of the latest measurement as of the lastChecked time.  This is the timestamp that can be checked to see if the location has up to date data.  It is probably a good practice to verify that this time is from within the last hour to determine if the location has up to date data.
hourStart - A timestamp representing the start of the latest hour of measurements collected.
hourStart - A timestamp representing the end of the latest hour of measurements collected.
hourMin - The minimum Min value measured between hourStart and hourEnd.
hourMax - The maximum Max value measured between hourStart and hourEnd.
hourMean - The average Mean value measured between hourStart and hourEnd.

Here is an example of the information now included in the response for each location.  The API Google Doc has also been updated, which will be moved to markdown in Github soon.
        {
            "id": 572227,
            "label": "Scott St. & Wellington St.",
            "latitude": 43.6481,
            "longitude": -79.376,
            "radius": 25,
            "active": true,
            "lastChecked": "2024-09-28T15:08:08-04:00",
            "latestTimestamp": "2024-07-06T14:03:00-04:00",
            "hourStart": "2024-07-06T13:03:00-04:00",
            "hourEnd": "2024-07-06T14:03:00-04:00",
            "hourMin": 2,
            "hourMax": 5,
            "hourMean": 2.555
        }

This is amazing, thanks @mbechtel  !!
On the dashboard side, this makes the changes much simpler:

add the new info in the data model https://github.com/CivicTechTO/tRacket-dashboard/blob/main/app/src/data_loading/models.py
extend the AppDataManager to make sure the latestTimestamp gets added and calculate the SENDING_DATA flag that was previously done by https://github.com/CivicTechTO/tRacket-dashboard/blob/main/app/src/data_loading/main.py
remove the calls to attach_all_location_stats() in the admin and locations page.

I think no downstream changes will be necessary and loading will be much faster 🤞

Done ✅


zmap --status-updates-file param seems unstable

zmap -u param seems unstable,I use the following command,zmap -p 80 --output-fields=* -b -B 30M -l zmap-log.log -m zmap-metadata.json -u zmap-status.csv --quiet, it often occured the error 'could not open output file zmap-status.csv',I need to run many times to succeed.I have used the sudo

I've heard varying reports of this in the past, but unfortunately I don't remember the workaround at the moment.  It excute sometimes successful,sometimes failed, I was puzzled by that


Change migration bandwidth consumption charts

Signed-off-by: Aviv Turgeman<EMAIL_ADDRESS>📝 Description
changing the design for the migration bandwidth consumption chart
UX Doc
Marvel screenshot
🎥 Demo
Before

After

/lgtm

/lgtm

/hold
more changes will be added

/hold cancel
changing the y-axis grid to have no more than 4 lines with equal spaces between them to have more consistent UI display for the graphs

/lgtm


Missing logo

Hi,
Just a minor "issue". :)
The logo for "hd.tv2.dk" is missing.
Could just be a copy of "https://chanlogos.xmltv.se/tv2.dk.png"
//Kongsted

@kongsted Feel free to do a Pull Request with an SVG of the logo. Just name it the same in the vector/ folder.

I have tried to add the missing logos (found one more).
Hope it will work (it's first time I'm trying to update a repo on GitHub :) )


⚠ Hartman Foundation has degraded performance

In f1c070a, Hartman Foundation (https://gordonhartman.com/) experienced degraded performance:

HTTP code: 200
Response time: 2785 ms

Resolved: Hartman Foundation performance has improved in b7ace61.


How do you make the parameter to read the directory listing?

Can you please let me know how do you make the parameter to read the directory listing.
Also, put the configuration of the process parameter demo.

Hi @alwaysharsha,
For the process demo, please have a look at the script webserver/processes_web_server.py.
To read the directory listing you can modify that script, but instead _list_processes method add new one named something like _list_folder, which could look something like:
    def _list_folder(self):
        self.send_response(200)
        self.send_header("Content-type", "application/json")
        self.end_headers()

        options = []
        for item in os.listdir(<YOUR_PATH_HERE>):
            try:
                options.append(dict(key=item, value=item))
            except psutil.NoSuchProcess:
                pass

        self.wfile.write(json.dumps(dict(options=sorted(options, key=lambda p: p['value'], reverse=True))))


[Sharing NG] Unsynced shares are not included in search result

Describe the bug
Unsynced shares are not included in the search result (REPORT request).
Steps to reproduce

Share a file with a user
As that user, unsync the share
Search for the share via a REPORT request

Expected behavior
The resource should be part of the search results.
Actual behavior
The resource is not part of the search results.

@aduffeck @butonic That needs to be adapted IMHO.

@2403905 you fixed #9371
Does that also apply to this ticket?

@2403905 you fixed #9371
Does that also apply to this ticket?

I think not.

Is this a request from the PM?
@aduffeck @butonic  Does this make sense in your opinion?

if a share is not synced it is not mounted, which means it does not have a path in the sharejail. which means we cannot create an href in the sharnejail.
we could create an href to the /dav/spaces/{reference}, where {reference} would point to the equivalent of 'remoteItem' in the graph api. @JammingBen can you post an example REPORT result? what properties do you need?


test: add client configuration parse tests from sample configuration files

TL;DR: let's gather in tests/sample-configuration-files configuration files we would like to be successfully parsed. At the moment, these are based on the examples distributed with OpenVPN.
This PR adds a (parametrised) test parse_client_configuration which takes a filename and attempts to parse this file in sample-configuration-files. Only "is the parse successful" is tested, not the contents of the configuration. Due to the rise of interest/traffic in this repository, I think it is a good idea to gather (normalised = using the same secret / ta / certificate / key / password) configurations we currently support / would like to support in the future.
NB: tls-home.conf has been modified to include a cipher statement. By reading the man page, OpenVPN seems to switch their default cipher every other version (blowfish, AES-CBC, AES-GCM), thus I suggest to (as is atm) not support configuration files without an explicit cipher line (as done by #31): our goal is not to support all the sample configuration files OpenVPN contains, but rather more real-world examples used in the wild (#42, riseup, ipredator, etc.).

I revised the configuration parser (lwt and tests) call sites to treat relative paths as relative to the configuration file, and documented this in the README. This does not affect the MirageOS layer since there we don't consider any external files. Would be good to get this merged if you're fine with the changes @cfcs.

I included #48 here (slightly amended), and extended the test to check the contents of parsed client configurations.

this (a) checks the contents of configurations as well (b) includes @whohoho #48 (but commented out the server side configuration testing, which requires #50), and (c) fixes the (mostly client) configurations so they could be parsed (external referenced files exist now).


Location recording in the db should use a provided id given in the configure option

The use case is the following
Different users are using an app that allow the tracking, the users are track by the plugin by url or by headers, the call back then record the position by user.
If the device is offline, then the position are recorded in the db.
if the user is logging out and another user using the same device logged in then, the previously recorded offline position are sent under the new user identity.
if it was possible to add and id that would be recorded in the db within the position and send also to the url it will be possible to have a workaround
It's kind of a hedge case, thank you very much in advance :-)
So at the moment to avoid this problem I am using : backgroundGeolocation.deleteAllLocations();
when a user log out. So please do not deprecate it ;-)

make sense. worth implementing

... send  also to the url it will be possible to have a workaround
ok I'll add user_id into location table.
However I see potential issues:

privacy (any user can get location history of another user)
location syncing (specially option.syncUrl) should also sync locations of not current users?

@mauron85 I second the addition of this option. However, if possible, I'd probably make it something more generic like identifier_id or something that's not necessarily tied to a user. For example, in my case, I need to track location by an appointment id.
As for the above issues that you have pointed out, I believe that shouldn't be a concern of the plugin and all authorization should be handled by the application itself.
My two cents :)
Thanks for all of your hard work!

@mauron85  Great !, I was not thinking you will be that quick to reply to me. Thank a lot !
@jamesdixon, agreed with your point of view as well

As for the above issues that you have pointed out, I believe that shouldn't be a concern of the plugin and all authorization should be handled by the application itself.

privacy (any user can get location history of another user by calling getLocations method) - also kind of problem with current implementation. The only way how to solve this is to make user_id mandatory and all methods like getLocations will filter locations for user_id only.

--> I agree on this, but if you are sharing device between user, you can basically accept that it might have some kind of privacy risk doing so. What I am saying is that kind of privacy issue should not be too much of a real issue.
--> let me give you a typical use case : the app is used for tracking drivers, there is morning and afternoon shift, the device is shared between the morning and afternoon shift. The privacy issue is quite limited in that case :-) even if it s still exist I agree.
--> I am thinking that it should be the task of the javscript to sort out the results when calling getLocations by using the "identifier_id"
--> of course if could be neat to have getLocationsByIdentifierID as well to be optimal

location syncing (option.syncUrl) should also sync locations of other users, even when they're not logged in? The problem here is that server implementation will have to deal with this. Currently you can use different syncUrl or httpHeaders for different users (but have to deleteAllLocations on logout/login). But this would not make sense anymore, if locations of any user will be sent.

===> I believe like you said that it should be the job of the server side to sort the locations received by using the "identifier_id" transmitted in the same time than the position. The plugin should not have to take care of this.  The server side will use the "identifier_id" to attribute the location to the right user/object.

--> I am thinking that it should be the task of the javscript to sort out the results when calling getLocations by using the "identifier_id"
--> of course if could be neat to have getLocationsByIdentifierID as well to be optimal

thank you for your suggestions. I'm also thinking about alternative approach to this problem. Will come with my proposal we can discuss later on.

Great thank you in advance :)

I saw it for a while in the 3.0.0a on npm it looks good :)

Thinking back about this feature, it also mean that the plugin will have to be restarted when I am detecting a new login/logout.
Which was making me thinking , is it possible to know if the plugin is already running in bg ?
that way no need to try to stop before running it again.

Which was making me thinking , is it possible to know if the plugin is already running in bg ?

is not well beaten path with bounded android services. but you can implement some kind of mechanism to send message to service and wait for response. kinda like ping command (ICMP echo message).

ok sounds complicated maybe I will not needed it.
It ultimately depends on what happens if I try to start the service 2 times, is it 200% sure that only one service can be up at a time ? ( for the same app )
If it is in that case stop and start would be just enough and it s already working well, changing the conf between them to add the id which will be link to my users id on the server side


Add LTP linux kernel testcases support

Summary

add sa_restorer to struct sigaction
add RLIMIT_NICE field definition
add LINE_MAX limits field definition
add PR_SET_DUMPABLE field definition
add SA_NOMASK field definition
extend mount flag definition
add include/sys/signal.h header to make the LTP linux kernel testcases can run on nuttx
add SOL_PACKET support
add wait.h header to make the LTP linux kernel testcase can run on nuttx
add sys/sem.h header to make the LTP linux kernel testcase can run on nuttx
add sys/fcntl.h  header to make the LTP linux kernel testcase can run on nuttx

Impact
has no impact on current implementation
Testing
has passed ostest

[Experimental Bot, please feedback here]
This PR does not fully meet the NuttX requirements. While it provides a summary of the changes, it lacks crucial details needed for proper review and integration.
Here's a breakdown of what's missing and how to improve the PR:
Summary:

Missing "Why":  The summary lists what changed, but not why.  For each item (1-11), explain the rationale. Is this fixing a bug, adding a feature for a specific use case, or improving compatibility?  For example, for item 7, instead of just saying "add include/sys/signal.h ... to make LTP tests run," explain why running these tests on NuttX is important.
Missing "How":  While some items are self-explanatory, others need more detail.  For example, for item 6, "extend mount flag definition," which flags were added and what do they do?  For item 1, "add sa_restorer to struct sigaction," how is this used, and what problem does it solve?

Impact:

Too vague: "has no impact on current implementation" is insufficient.  Address each point specifically:

User Impact: Even if the impact is minimal, explicitly state it.  For example, "No user impact, these changes are internal and do not affect existing applications."  If a new feature is added (items 1, 2, 3, 4, 5, 6, 8), there might be user impact, even if it's just the availability of a new feature.
Build Impact:  Adding headers (7, 9, 10, 11) could have build impact, even if it's minor.  Specify if any new dependencies are introduced or if build configurations need adjustments.
Hardware Impact: Be explicit.  If there's no hardware impact, state "No hardware impact."
Documentation Impact:  If new features or flags are added, documentation updates are likely required.  Even if no documentation is provided in this PR, mention whether documentation needs to be updated later.
Security Impact:  Consider carefully if any of these changes could have security implications. For example, extending mount flags (item 6) or adding signal handling features (item 1) could have security ramifications.  Even if the impact is "No security impact," explicitly state it.
Compatibility Impact:  Adding new features or changing existing ones can impact compatibility.  Be specific about any potential issues.

Testing:

Insufficient detail: "has passed ostest" is not enough.

Which ostest tests were run? Provide specific test names.
"Before" and "After" logs are missing. These are crucial to show the effect of the changes. If the changes fix a bug, show the failure before and the success after. If they add a feature, show the new functionality working.
Target details are missing. Which architecture, board, and configuration was tested?  Ideally, test on multiple targets if applicable.

In short:  Expand on each section with specific details and address all the points mentioned above.  Provide clear justifications for each change, assess the impact thoroughly, and provide comprehensive testing evidence.  This will significantly improve the quality of the PR and make it easier for reviewers to understand and approve.

i feel a bit uneasy to add dummy things like these just for a particular application.

another way to handle this compile

i feel a bit uneasy to add dummy things like these just for a particular application.

Another way of modification is to modify the LTP project itself. However, this is not conducive to the subsequent upgrading of the LTP project located in nuttx-apps.


Can't boot into SSH

OS: Mac OS Monterey 12.5
Device: iPhone 8 (Global)
IOS: 15.6
Issue: Not able to boot into SSH mode anymore. I have done a git pull and retried numerous times. I have tried both linking to iOS 14.8 and 15.6 IPSW both with and without blobs from 15.6. I have also tried using my master to pwn, the built in pwn and ipwnder-lite (my usual go to that works). When I try ./sshrd.sh boot while pwned, there is no output given, it just ends.
Below is how it ends. Idk if the usb_time is an error or not.
100% [===================================================================================================>] download succeeded usb_timeout: 5 [IOKit] Waiting for the USB handle with VID: 0x5AC, PID: 0x1227 CPID:8015 CPRV:11 CPFM:03 SCEP:01 BDID:02 ECID:001129EE08D3A02E IBFL:3C SRTG:[iBoot-33<IP_ADDRESS>.23] PWND:[ipwnder] Found the USB handle. Now you can boot untrusted images. [IOKit] Waiting for the USB handle with VID: 0x5AC, PID: 0x1227 Found the USB handle.

place the device into DFU from recovery, delete my script and reclone it too. Don't pwn beforehand.

I've never had to go into recovery first (this or any other programs) but I did try that as well. However, from recovery every time it went straight to rebooting. From recovery, once the screen goes dark I hold the vol down button and side button for 5 seconds then remove the side button but it reboots. I also tried the power button for 10 seconds then vol and power for 5 then let go of the power and still reboots. Any suggestions on that so I can give it a proper go?

use this: https://cdn.discordapp.com/attachments/779844089196576809/990576297367445555/a11dfu.sh

You really are awesome! The script itself didn't work for me but looking at it, I was holding the power button down first when I should have just skipped to holding the vol down and side button. I tried it in my original git pull and it did not work. After renaming the original and doing a new git clone it worked. Thanks so much!

did ./sshrd.sh boot work first try after creating the ramdisk

did ./sshrd.sh boot work first try after creating the ramdisk

Yes it did after doing git clone again. Did not work in my original folder I git cloned weeks ago


Wildcard and optional parameters

Hi everyone,
i'm trying to figure it out a route where i can have an optional parameter together with a wildcard.
I would like to use something like this:
Flight::route('/(@lang/)*', function($lang, $route){})
but is giving me some errors.
If i'll continue to have issues, i think that i'll use a method that will split the array defined by $route->splat and then check the first value.
Do you have some tips on how to implement, if it is possible, this thing using Flight::route?

I think you can just use two routes:
Flight::route('/@lang/*', function($lang) {
  // check if lang is valid
  if (!check_lang_valid_func($lang)) {
    // not valid then continue to next route
    return true;
  }
}

And then another route without the @lang parameter.

I remember we discussed some similar issue a while ago.

Hi guys thanks for your help!
Looking better my code and your resource i found that i was using the right approach for my needs and i was only wrong with writing the route.
I implemented the call in this way and made some controls by my own with a custom class.
Flight::route('(/@lang:[a-z]{2})/*', function ($lang) {     if (!empty($lang)) { // if present try to set it as default         Flight::language()->setLang($lang);     } else { // detect the lang from cookie or browser setting         Flight::language()->detectLang();     } //compare the current lang with the others available for the website     Flight::language()->checkLang();     return true; });


Skin segmentation dataset

Could you please share the training data (images and labels) for the model training in skin segmentation?
(150 images from coco)

That's would be great. I thought about removing the eyes, teeth and such from the skin marking for even better results.
Any chance for sharing?


Top-N and ROI controllers inside the 'shifted_controllers' seem broken

When testing the shifted_controllers branch on the simulator, I don't see any MS2 scans being produced by the Top-N and ROI controllers.
On the master branch, the code works fine .. so something is broken somehow.

Seems that MS1 scan wasn't being processed in the simulator (hence we got no MS2 scans). This was fixed in https://github.com/sdrogers/vimms/commit/9d96961d2f592ed86822b981eda87f65b18dc136, where we set the scan number to 100000 to be the same as IAPI.

The SmartROI controller couldn't run because last_ms1_scan has been renamed to scan_to_process. Fixed in commit #https://github.com/sdrogers/vimms/commit/0302803d72ec0572de5255d9c1bfb66993bf6eac.
Also it doesn't produce any ms2 scans (because no ms1 scan was being processed). This is because these 2 lines are not correct: https://github.com/sdrogers/vimms/blob/shifted_controllers/vimms/Controller/roi.py#L242-L243, but not sure how to fix them (just add 100000?). @vinnydavies could you help? Thanks.

Those two lines look a bit fraught with danger -- I guess it's working out what the number is of the ms1 scan. Would it be neater to update this at the point the MS1 scan is made?
i.e:

each time we make a scan, we increment the number.
each time we make an MS1 scan, we update this attribute (next_scan_to_process)
That feels safer than the current code (and easier to understand)

Just to clarify the above. We give each scan a scan number. We should do that when we make them. And then the attribute next_scan_to_process should be set when that particular scan is made
Also: do the current controllers work in this way (i.e. know which scan should be the one to process?), or do they just process the next MS1 that comes along? If the latter, then what we're doing above is quite a big change to the code, no? I.e. it's not just making the shifting work, it's fundamentally changing the controller? Shout me down if that is not the case!

One other q for @vinnydavies
What's happening on lines 48-49 in TopN.py?
https://github.com/sdrogers/vimms/blob/0302803d72ec0572de5255d9c1bfb66993bf6eac/vimms/Controller/topN.py#L47

Just to clarify the above. We give each scan a scan number. We should do that when we make them. And then the attribute next_scan_to_process should be set when that particular scan is made

Currently the controller doesn't not know the scan number because that's assigned inside the mass spec. But when generating scans, the controller creates ScanParameter objects (see e.g.). When a scan is returned to the controller for processing, the scan_parameter that was used created it is also included (inside the scan.scan_params attribute). To do what's suggested above, we can store next_scan_to_process to be the param for the next MS1 to process, and compare the returned one to it.
Or we can just change the controllers so it assigns the id too. I guess either way is fine.

Also: do the current controllers work in this way (i.e. know which scan should be the one to process?), or do they just process the next MS1 that comes along? If the latter, then what we're doing above is quite a big change to the code, no? I.e. it's not just making the shifting work, it's fundamentally changing the controller? Shout me down if that is not the case!

It used to be that way -- just process the next MS1 that comes along. We tried to modify it to know which one to be processed, but by working out the id, e.g. https://github.com/sdrogers/vimms/blob/shifted_controllers/vimms/Controller/topN.py#L41-L46. What simon suggested is better i think.

One other q for @vinnydavies
What's happening on lines 47-48 in TopN.py?
https://github.com/sdrogers/vimms/blob/0302803d72ec0572de5255d9c1bfb66993bf6eac/vimms/Controller/topN.py#L47-L48

if we receive an empty scan (possible), then set the next scan id to process to be the next one?

For the question that is directed at me. There is slightly different processing when we see no peaks at all in a scan, this is basically a temporary fix for that

I suggest we maybe need to spent a week re-engineering all the controllers to remove the massive amounts of duplicate code that is now in there. In the process we could also clean up the shifted controller codes

Sorry - more confused now.
So, the controller assigns a number inside the parameter object? And this is inside the scan object that comes back?
In simulation and reality?
@joewandy if you’re suggesting we implement something along the lines of what I suggest could you put details in a comment below please? Ie what we need to change who we can all check?
@vinnydavies sounds like a good longer term idea but I’m not keen to delay this work further (someone else will do it). Please put details on a possible restructuring into a new issue for discussion...

And the line 47-48 still unclear I’m afraid. How does receiving a blank scan change the scan id of the next one to process?

its because of this line if scan.scan_id == self.next_processed_scan_id and scan.num_peaks > 0: meaning that a scan with no peaks gets processed differently to a scan with peaks (something we probably dont want to happen). We then get the next scan in the list a slightly different way. This may be why the shifted controllers arent working on the machine. I'll fix the other issues with the shifted controllers and then look at this

Sorry - more confused now.
So, the controller assigns a number inside the parameter object? And this is inside the scan object that comes back?
In simulation and reality?

The controller creates a parameter object that defines what a scan should be, for example. At this point the controller doesn't know what the scan id is.

The mass spec picks up a parameter. Then the mass spec picks a scan id, generate a scan (in the simulated case) or send the scan to IAPI (in the real case).

When the scan has been generated in the mass spec, the params used to generate it is also stored in the scan object. This is all returned to the controller. We can match based on the params to know whether it's the one we want to process or not.

@joewandy if you’re suggesting we implement something along the lines of what I suggest could you put details in a comment below please? Ie what we need to change who we can all check?

vinny is halfway doing this i think. Let's wait for the commit first, then we can check.

I have fixed the shifted controllers so they are now all working again. I will continue with more fixes, all of which will have to be fixed and tested for each controller due to large amount of duplicated code within _process_scan

Firstly I'll look into lines 49-50 to see why this is necessary and potentially remove. I suspect simplifying this may also make the controllers more likely to work on the machine
Change the id counter to increase incrementally rather than current dangerous calculations. (Note Below)

In long term we need to reorganise the controller code otherwise we are going to keep having to fix and test all controllers individually
Note: The id counter is used to determine which scans to process. Previously just the last scan in the list was processed. This was changed to allow the purity method to have ms1 scans between each of the ms2 scans. This change will also allow us to send scans individually to the mass spec as we process them (previously if we had done this there would have been issues if the queue became empty)

Thanks @vinnydavies
Please start a new issue for reorganisation.
For the “note” part: let us know if you are going to work on this tomorrow. If not, I can.

Due to the duplication, its probably easier if I do it. I'll do it tomorrow

Ok, great. I've added a commit to that branch that includes a test.
You can run with:
python -m unittest tests.integration.test_controllers.TestTopNShiftedController
It tests a shift of 3. Note that it runs, but cannot see the scans (should see fewer MS2 between the first two MS1 than between subsequent)...but at the moment, we cannot see any MS2 scans in any test output (see issue #17)

I also did some playing around with the scan numbers.
I made an attribute called scan_no in the TopNController class and increased it every time a scan (MS1 or MS2 was made). I then printed this number alongside the self.next_processed_scan_id thinking that they should be the same. But...they diverge from one another. And the divergence is called by the last if in these lines:
https://github.com/sdrogers/vimms/blob/1b9cc75a22d928bdb28c997a7ba100db8a3a3180/vimms/Controller/topN.py#L43-L50
So, when we receive a scan... if it is the one we're waiting for and it has some peaks, we set it as the scan to process (and set pending_tasks_size - what is that?). If it fails these tests (i.e. it either isn't the one we're waiting for, or it is but has no peaks in it), we don't process it.
The last if clause doesn't make sense to me -- should it simply be deleted? I.e. we've sent a scan to the machine and we get it back with no peaks in it, so we wait for the next one? What will the next one be? An MS2?
I think the checking for peaks is probably problematic. I guess the issue is that the process_scans method expects some peaks. But it should be able to handle none. I.e. if there aren't any, it just lobs a new MS1 scan in?
This issue probably only shows up in simulation. Hard to imagine a situation with the real MS where we would get empty scans.
So,  suggested fixes:

Add a scan counter to the class, that is increased every time a scan is created and is used for next_processed_scan_id. This could probably be initialised in the top level Controller class and then incremented in the sub-classes.
Modify the 'if' block to just check whether or not scan.scan_id == self.next_processed_scan_id chopping out the check on the number of peaks. Remove the final if completely.
Modify the _process_scan method(s) to handle empty scans.

Fixed purity controller. Just need to merge the two branches after testing

Everything seems to work now.


Item List Editor window is nearly unusably small

Godot version:
3.0.6
OS/device including version:
macOS High Sierra 10.13.6
Issue description:
The Item List Editor window is tiny, showing only a single item vertically and about 8 characters of the text horizontally. And it is not resizable making it quite painful to use.

With 2880x1800 screen resolution there doesn't seem to be any good reason for the editor to be that cramped (around 325x450.) At least it should be resizable.
Steps to reproduce:

Create/Select an ItemList
Click "Items" in the toolbar

Minimal reproduction project:
N/A

CC @Calinou, EDSCALE needed :)


Update kernel version

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/2221396996

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/2221396996
Status: failure

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/2221396996

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/2221396996
Status: failure

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/2221870835

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/2221870835
Status: failure

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/2221870835

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/2221870835
Status: failure

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/2221396996

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/2221396996
Status: failure

Getting this error while building product-is with kernel-beta1
les/p2-profile-gen/target/org.eclipse.equinox.executable_3.5.0.v20110530-7P7NFUFFLWUl76mart, -publishArtifacts, -configs, gtk.linux.x86, -flavor, tooling, -append]
Generating metadata for ..
Status ERROR: this code=0 publishing result null children=[Status ERROR: org.eclipse.equinox.p2.publisher.eclipse code=0 Included element org.wso2.carbon.core.runtime.feature.group 4.7.0.beta is missing. Cannot determine filter for requirement to this element. null Status OK: unknown code=0 OK null Status OK: unknown code=0 OK null Status OK: unknown code=0 OK null Status OK: unknown code=0 OK null Status OK: unknown code=0 OK null]

Expected because we haven't update p2 profile carbon version. Please check now.

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/2224423753

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/2221396996

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/2224423753
Status: success

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/2221396996
Status: cancelled


[Addition]: 8 Spoofers only see each other in a populous area

Hotspot b58 Addresses
117W9EceKBGdKNbqM9CP9hmScCBJHF7LHQti7J11Muqx3kZnBro
11M1oEKgnKMWqhgkZ9NHvbC62iAPmQE57Mb3Sh5ispYe992Hy7A
11iQnnLj6McSo93AXSkEmFwbDoD71hqL1JFWxV4qN24WSEKAmgW
1122nk7PFw8PPrhoSMSYPoHphP4Ga8JKa213tv7dyVv8o68KWqGK
11BBgqYLNAsqRGAuWrdJarNvmTAT5vZfVnYwMJkCnj227tMN24e
112vESkgMKnjQvcUgeKigm7upwon2gimXdVEosM3b5GSzLvKG6EQ
112hjQeKJ1KS3n8K3x5kZ1eCotrUVVZAGXH9wB2yincjukSiWSqt
112UuZomL4yUgYRnD7dCb9zAqVW5DkupDCQrbNaWBDAVFHBRcoS2
Discord Handle
No response
Reason(s)
These 8 hotspots are newly in added in a day or two. They only witness each other while there are many hotspots around them

.

Already on the denylist


Python op improvement

Math ops and filter ops are supported with both numpy and arrow.
It can be distinguished by setting the compute engine.

@vibhatha I think we'll have to document these configs in the context.

@nirandaperera I agree, let me add python docs for that.


Modified README.md if this results in a broken build then ...

Pull Request (PR) description

This Pull Request (PR) fixes the following issues

New version of beaker-puppet is bad?
https://rubygems.org/gems/beaker-puppet/versions/1.3.0
There have been 2 releases yesterday.


Connect fuzzer as action step

It will be good to connect fuzzer to LPVS.
I propose to use this guideline https://google.github.io/clusterfuzzlite/running-clusterfuzzlite/github-actions/
I propose to check every PR by fuzzer.

{
	"name": "Fuzzing",
	"score": 0,
	"reason": "project is not fuzzed",
	"details": [
		"Warn: no OSSFuzz integration found: Follow the steps in https://github.com/google/oss-fuzz to integrate fuzzing for your project.\nOver time, try to add fuzzing for more functionalities of your project. (High effort)",
		"Warn: no OneFuzz integration found: Follow the steps in https://github.com/microsoft/onefuzz to start fuzzing for your project.\nOver time, try to add fuzzing for more functionalities of your project. (High effort)",
		"Warn: no GoBuiltInFuzzer integration found: Follow the steps in https://go.dev/doc/fuzz/ to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)",
		"Warn: no PythonAtherisFuzzer integration found: Follow the steps in https://github.com/google/atheris to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)",
		"Warn: no CLibFuzzer integration found: Follow the steps in https://llvm.org/docs/LibFuzzer.html to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)",
		"Warn: no CppLibFuzzer integration found: Follow the steps in https://llvm.org/docs/LibFuzzer.html to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)",
		"Warn: no SwiftLibFuzzer integration found: Follow the steps in https://google.github.io/oss-fuzz/getting-started/new-project-guide/swift-lang/ to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)",
		"Warn: no RustCargoFuzzer integration found: Follow the steps in https://rust-fuzz.github.io/book/cargo-fuzz.html to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)",
		"Warn: no JavaJazzerFuzzer integration found: Follow the steps in https://github.com/CodeIntelligenceTesting/jazzer to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)",
		"Warn: no ClusterFuzzLite integration found: Follow the steps in https://github.com/google/clusterfuzzlite to integrate fuzzing as part of CI.\nOver time, try to add fuzzing for more functionalities of your project. (High effort)",
		"Warn: no HaskellPropertyBasedTesting integration found: Use one of the following frameworks to fuzz your project:\nQuickCheck: https://hackage.haskell.org/package/QuickCheck\nhedgehog: https://hedgehog.qa/\nvalidity: https://github.com/NorfairKing/validity\nsmallcheck: https://hackage.haskell.org/package/smallcheck\nhspec: https://hspec.github.io/\ntasty: https://hackage.haskell.org/package/tasty (High effort)",
		"Warn: no TypeScriptPropertyBasedTesting integration found: Use fast-check: https://github.com/dubzzz/fast-check (High effort)",
		"Warn: no JavaScriptPropertyBasedTesting integration found: Use fast-check: https://github.com/dubzzz/fast-check (High effort)"
	],
	"documentation": {
		"short": "Determines if the project uses fuzzing.",
		"url": "https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#fuzzing"
	}
}

Done


Fixed pre-commit ESLint configuration.

Trac ticket number
N/A
Branch description
Broken in https://github.com/django/django/pull/18133 because the mirrors-eslint package does not depend on @eslint/js or globals, leading to the error:
Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'globals' imported from /.../django/eslint.config.mjs

The simplest solution is to instead use a local hook, as done in this PR. This will require manual updates, but that’s the same as we have for the configuration in package.json.
(I put a lot of time into researching options for this upgrade, for my recommendations in Boost Your Django DX. I don’t think the mirrors-eslint repository is going to be usable because there are various packages one wants to pull in for eslint now.)
Tested with:
$ pre-commit run eslint -a
eslint...................................................................Passed

Also ensured that failures would work by patching eslint.config.mjs to require weird indentation:
@@ -11,7 +11,7 @@ export default [
             "curly": ["error", "all"],
             "dot-notation": ["error", {"allowKeywords": true}],
             "eqeqeq": ["error"],
-            "indent": ["error", 4],
+            "indent": ["error", 7],
             "key-spacing": ["error", {"beforeColon": false, "afterColon": true}],
             "linebreak-style": ["error", "unix"],
             "new-cap": ["off", {"newIsCap": true, "capIsNew": true}],

This made ESLint report many errors:
$ pre-commit run eslint -a
eslint...................................................................Failed
- hook id: eslint
- exit code: 1

/.../django/django/contrib/admin/static/admin/js/inlines.js
   20:1  error  Expected indentation of 7 spaces but found 4    indent
   ...

Checklist

[x] This PR targets the main branch.
[x] The commit message is written in past tense, mentions the ticket number, and ends with a period.
[x] I have checked the "Has patch" ticket flag in the Trac system.
[x] I have added or updated relevant tests.
[x] I have added or updated relevant docs, including release notes if applicable.
[x] I have attached screenshots in both light and dark modes for any UI changes.

Relevant maybe here: ESLint are asking for feedback on the v9 migration. Maybe folks have thoughts.
https://github.com/eslint/eslint/discussions/18456
🎁

Thanks, Carlton, but the problem here was me :)
(Now, to fix my book...)

No wait, I’m not crazy. pre-commit run eslint -a fails on main if you haven’t run npm install. Somehow the way that ESLint loads the configuration makes it use node_modules for the imports, rather its own repository. (Working on a bug report there...)

This may be related -- https://github.com/ekalinin/nodeenv/issues/353

Thanks David. I made a bug report to ESLint: https://github.com/eslint/eslint/issues/18465

I've got this figured out. The issue is that module.paths only looks for node_modules in the current directory and all parents, and ignores $NODE_PATH. In a command run by pre-commit, $NODE_PATH IS correctly set and points to the node_modules directory created by pre-commit.
The only way I could figure out to get this to work was to symlink $NODE_PATH into the current directory, if the user hasn't already run npm install.

modifying the original hook to have a custom entry:

  - repo: local
    hooks:
      - id: eslint
        name: Run ESLint linter
        entry: ./scripts/run_eslint.sh
        additional_dependencies:
          -<EMAIL_ADDRESS>          -<EMAIL_ADDRESS>          - "<EMAIL_ADDRESS>

./scripts/run_eslint.sh contains this:

#!/bin/sh
#
# pre-commit runner for eslint. This is required to deal with the fact that Node
# builds a `module.paths` that looks for `node_modules` in the current directory
# and all parents, NOT in `$NODE_PATH`.
#
# We hack this with a symlink.

symlink_created=false

function cleanup {
  if [ "$symlink_created" = true ]; then
    rm -rf ./node_modules
    echo "Cleaned up temporary node_modules path."
  fi
}

trap cleanup EXIT

if [ -n "$NODE_PATH" ]; then
  if [ ! -d ./node_modules ]; then
    echo "Creating node_modules symlink"

    ln -s $NODE_PATH .
    symlink_created=true
  else
    echo "../node_modules already exists. Skipping symlink creation."
  fi
else
  echo "NODE_PATH variable is not set. Exiting."
fi

eslint

Thanks @sritchie . I think the script is probably too much extra work for Django, where pre-commit is only one option to run ESLint.
For one client project using ESLint, I switched to Biome JS, and it's working well. It’s like the Ruff of Javascript, another built-in-Rust tool, which also protects it from the vagaries of Node.js imports. I will update my book to recommend Biome JS as well, and maybe we can look at using it on Django.

Of course that makes complete sense. Thanks for the pointer to Biome!


v8.0.4

This release includes one bug fix.

A new version of the package @metamask/inpage-provider (8.0.4) was published at 2021-02-04T15:44:55.912Z from
[redacted]. The shasum of this package was 6534fbdba4445a3aff639e32db66bb0ab5f0cd79.


haskellPackages.hnix: jailbreak & fix tests

@GrahamcOfBorg build haskellPackages.hnix

@GrahamcOfBorg build haskellPackages.hnix

No attempt on aarch64-linux (full log)
The following builds were skipped because they don't evaluate on aarch64-linux: haskellPackages.hnix
Partial log (click to expand)

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

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

Success on x86_64-linux (full log)
Attempted: haskellPackages.hnix
Partial log (click to expand)
strip is /nix/store/j75dgadrff2d1fyc4fczmcgqkid2imdx-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/pysi9a5cshbkidvz5i688j2p8mrfmii5-hnix-0.5.1/lib  /nix/store/pysi9a5cshbkidvz5i688j2p8mrfmii5-hnix-0.5.1/bin
patching script interpreter paths in /nix/store/pysi9a5cshbkidvz5i688j2p8mrfmii5-hnix-0.5.1
checking for references to /build in /nix/store/pysi9a5cshbkidvz5i688j2p8mrfmii5-hnix-0.5.1...
wrong ELF type
shrinking RPATHs of ELF executables and libraries in /nix/store/v2b80zy5wc5n5k3gx7ab2vhkhv241k0f-hnix-0.5.1-doc
strip is /nix/store/j75dgadrff2d1fyc4fczmcgqkid2imdx-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/v2b80zy5wc5n5k3gx7ab2vhkhv241k0f-hnix-0.5.1-doc
checking for references to /build in /nix/store/v2b80zy5wc5n5k3gx7ab2vhkhv241k0f-hnix-0.5.1-doc...
/nix/store/pysi9a5cshbkidvz5i688j2p8mrfmii5-hnix-0.5.1


[FEATURE]: Improving Cards UI

Detailed description
I would like to enhance the ui of the card .
So,please assign this issue to me under gssoc'23.

Context
I want to change the ui by adding some effects , box-shadows and by adjusting some css .
Possible implementation
No response
Additional information
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

@Pragati-3003 I have assigned the issue and you can start working on it.

@Deepu178 I guess the assignee has unassigned herself. I want to work on this, please assign me the issue.

@Pragati-3003 I have assigned the issue and you can start working on it.

@Deepu178 , can u please assign me  the issue  so   thhat I  can create a PR.

Is this issue closed or anyone is still working on it??
If not, I would like to work on it!

@Prathamesh2805 I'm assigning the issue you can start working on it. Good luck

Thanks! I'll start working on this..

Hey @Deepu178 Can you please help me with this? I'm unable to set up the project in my localhost due to this.

Can you please tell me what to write instead of mongo credentials?

also I'm getting this error once I head over to the events page

https://discord.gg/SApu5bek
join discord

@Deepu178 I've texted you on discord! Kindly check

Hey @Deepu178 there are no cards at all in the code, how I'm I supposed to update the UI of the cards? Can you please guide me?


{Keyvault} Vendor azure-keyvault track1 SDK to make customization for supporting Python 3.11

Related command

Description

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change
[Component Name 2] az command b: Add some customer-facing feature

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

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

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Keyvault

Should we use a separate PR to fix the usage of inspect.getargspec?
https://github.com/Azure/azure-cli/blob/df516d7935e38843e0e33c5d22417ae41a1e260f/src/azure-cli/azure/cli/command_modules/keyvault/vendored_sdks/azure_keyvault_t1/key_vault_authentication.py#L62

Did you test how many extensions will be affected?

This is a good point and reminds me that once we start bundling Python 3.11, extensions that don't support Python 3.11 will be broken.

Did you test how many extensions will be affected?

Yes I have triggered extension regression pipeline and manually check the failure extension tests. The failures are not caused by keyvault

Should we use a separate PR to fix the usage of inspect.getargspec?
https://github.com/Azure/azure-cli/blob/df516d7935e38843e0e33c5d22417ae41a1e260f/src/azure-cli/azure/cli/command_modules/keyvault/vendored_sdks/azure_keyvault_t1/key_vault_authentication.py#L62

Yes I would prefer to let @bebound to modify this in https://github.com/Azure/azure-cli/pull/26923


Dimension as variable

Hello,
is there any possibility to have dimension as a variable?
This would be useful when filtering out for example scale sets or selecting a specific disk.
I did not find any documentation on this and testing out did not bring any results.

@mazhead Hi, have you already found a solution?

@mazhead Hi, have you already found a solution?

nope, neither any answer here

This repository is deprecated since the Azure Monitor datasource is included in core grafana.
So yes, the right place to post issues for the Azure Monitor datasource is https://github.com/grafana/grafana.


add TagsFrom helper type

Hi yall! I saw a helper type request on Discord today that seemed easy enough to implement: TagsFrom
TagsFrom allows us to access the typegen tags type of a Machine State, or Interpreter:
import { TagsFrom } from "xstate";

const machine = createMachine({
  tsTypes: {} as {
    "@@xstate/typegen": true;
    tags: "a" | "b" | "c";
  }
});

type Tags = TagsFrom<typeof machine>; // 'a' | 'b' | 'c'

If typegen isn't enabled, TagsFrom returns string (which matches hasTag):
import { TagsFrom } from "xstate";

const machine = createMachine({});

type Tags = TagsFrom<typeof machine>; // string

How do you feel about the tests for this @Andarist?

Ugh, we should achieve formatting parity with xstate-tools bc I keep forgetting that imports aren't managed automatically like they are over there 😭

Ugh, we should achieve formatting parity with xstate-tools bc I keep forgetting that imports aren't managed automatically like they are over there 😭

yeah, the situation is unfortunate - but we don't want to enable things like this at the moment here to avoid unnecessary merge conflicts when merging main to next

@Andarist makes perfect sense. nice changes, appreciate it!


Add History Query

What's the purpose of this PR
添加 通过配置的key对变更历史的查询
Which issue(s) this PR fixes:
Fixe s#3195
Brief changelog
XXXXX
Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Read the Contributing Guide before making this pull request.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Write necessary unit tests to verify the code.
[ ] Run mvn clean test to make sure this pull request doesn't break anything.
[ ] Update the CHANGES log.

Codecov Report

Merging #3875 (601b85a) into master (2781147) will decrease coverage by 0.04%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##             master    #3875      +/-   ##
============================================
- Coverage     50.14%   50.10%   -0.05%
  Complexity     2464     2464
============================================
  Files           483      483
  Lines         14919    14931      +12
  Branches       1519     1520       +1
============================================
  Hits           7481     7481
- Misses         6910     6922      +12
  Partials        528      528

Impacted Files
Coverage Δ

...ollo/adminservice/controller/CommitController.java
42.85% <0.00%> (-17.15%)
:arrow_down:

...ip/framework/apollo/biz/service/CommitService.java
63.63% <0.00%> (-14.15%)
:arrow_down:

...p/framework/apollo/portal/api/AdminServiceAPI.java
11.73% <0.00%> (-0.20%)
:arrow_down:

...ork/apollo/portal/controller/CommitController.java
44.44% <0.00%> (-12.70%)
:arrow_down:

...framework/apollo/portal/service/CommitService.java
40.00% <0.00%> (-17.15%)
:arrow_down:

Continue to review full report at Codecov.

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

pls sign the CLA :)

and update the CHANGES.md

I have read the CLA Document and I hereby sign the CLA

recheck


Unable to make curl/fragments/testCurl.c

I am using Eclipse on Ubuntu VM. The nkolban instructions for setting up Eclipse have been followed. esp template cloned to myapp, ran the make menuconfig, curl/build_files copied, and Eclipse includes set up. Not sure what is causing the issue here.
http://i.imgur.com/FWHG7RP.png

testing now ...

recreated ...

Problem found ... CURL changed their build system ... https://github.com/curl/curl/commit/73a2fcea0b4adea6ba342cd7ed1149782c214ae3

Problem needs to be researched to be resolved properly.

A solution has been documented.   New instructions for building libcurl can now be found here.
https://github.com/nkolban/esp32-snippets/tree/master/curl/build_files
Please test and report if all now works or if we have further problems.

This fixes the curl_off_t errors, thanks.
curl/include/curl/system.h #define CURL_TYPEOF_CURL_SOCKLEN_T was also causing error until I changed to unsigned int


Releasing WebSocketClient.decompressBuffer

Is it possible to release or shrink the decompressBuffer in WebSocketClient? It takes ~8 MB in my process.
[For background: The variable decompressBuffer is a SoftReference. SoftReferences are not a very good idea in general... it appears they're just not cleared at all if your application has enough memory at its disposal (which it should anyway).]
Many greetings

SoftReference is the right choice for a cached buffer. This is intended behavior and will not be changed.

I'm just asking if there is a way to programmatically clear it when the bot is idle. Would it break anything? Probably not, as a SoftReference is something that is meant to be cleared at unforeseen times. So I could just hack it in there... thanks.

The bot is never idle, it constantly receives new events from discord which need to be decompressed.


feat(a11y): add default children behavior to behaviors

Fixes https://github.com/stardust-ui/react/issues/1008

Warnings

:warning:
There are no updates provided to CHANGELOG. Ensure there are no publicly visible changes introduced by this PR.

  Generated by :no_entry_sign: dangerJS


fix(versions): update Activiti/example-runtime-bundle versions into master

UpdateBot pushed maven dependency: org.activiti.cloud.rb:activiti-cloud-runtime-bundle-dependencies to: 7.1.166

UpdateBot commands:
updatebot push-version --kind maven org.activiti.cloud.rb:activiti-cloud-runtime-bundle-dependencies 7.1.166


Bug: bad config handle. Rewrite is needed

ViewsHandler is needing a rework. The view path must be obtained from the respective Ranch listener process


MySQL as Document Store issue

Plattform Node.js and Express
As of MySQL 5.7.8, MySQL supports a native JSON data type that enables efficient access to data in JSON (JavaScript Object Notation) documents.
When you have a simple key-value store table like this:
Table: users
|id           | created      | jdoc   |     <- Column name
| int(11)   | DATETIME | JSON |     <- Column type
you can save (in example: user data) as JSON in the jdoc Column:
{
      "username": "github",
       "fullname": "thegithub",
       "urls": {
            "website1": "www.github.com",
            "website2": "www.github.io",
}
}
when you query (SELECT) a user or users you get the urls as an string:
[ RowDataPacket {
       id: 1,
       date: 2018-02-23T21:57:37.000Z,
       fulname: 'thegithub'
       urls: '{"website1": "www.github.com", "website2": "www.github.io"}'
 } ]
and you can't render it in handlebars, mustache and co. is there a way to get nested values as JSON/Object or is this an issue?

There is not a default type cast for JSON fields yet, but you can add a custom typecast to parse the JSON in your project for the time being: https://github.com/mysqljs/mysql/issues/1267#issuecomment-230739821


Some Suggestion

Thank you for the project first!
I've shifted it to ArchLinux AUR: aero-browser and aero-browser-git.
I've some suggestions:

I think change the project name to "AeroBrowser" is a good idea,so many project's name was called aero
When I run the program,there was no project icon dispaly in the system bar,just an unknown program icon.
When you publish the packages,will you please add the Linux version?
Add AppImage version,it has good compatibility for lots of Linux Distrobutions.

Hello, thanks for your suggestion! I will try to add the compatibility for Linux, the app is still in alpha and take times to be developed I'm only working on it in my freetime but I will try to do more update ^^


Can this be upgraded to work with laravel 10?

I'm in desprate need for this tool but I don't use vue and I can't make my own

Hello,
I can update it. Which Nova and Laravel version do you use exactly?
Regards

Can you try? I've just updated it


Fix chef_gem compat for Chef 12.1.0

Per https://www.chef.io/blog/2015/03/03/chef-12-1-0-released/
@someara @jdmundrawala

:+1: What's the chef 13 fix for this?

@jdmundrawala sorry I don't know what you mean by that?

[2015-02-06T13:27:35-08:00] WARN: setting chef_gem_compile_time to true is deprecated

That's a good question. How are we going to install gems at compile time in Chef 13?


Post patient into FHIR server requires content-type definition

Hi,
When using Postman to Post resource into open source FHIR server, I got content-type not found error. Suggest adding step to define
Add in Header - Key: content-type Value: application/json
Thanks

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

ID: 74d0dae2-ed92-bad6-1a97-4fdcda016c07
Version Independent ID: ec5ca2c6-319a-1af5-eda3-95e84c7fac8d
Content: Web App Tutorial - Test connecting to Azure API for FHIR
Content Source: articles/healthcare-apis/azure-api-for-fhir/tutorial-web-app-test-postman.md
Service: healthcare-apis
Sub-service: fhir
GitHub Login: @CaitlinV39
Microsoft Alias: cavoeg

@irenepjoseph Thank you for the feedback. We are actively investigating and will get back to you soon.

I will take a look at this offline but won't have time to do this for a bit so would like to close this issue. @irenepjoseph is on our team so I can coordinate with her that way. #please-close


Charts rendered in Jupyter notebooks

Love this library, however, is there any plan to implement a method which outputs chart HTML / CSS that can be represented immediately in Jupyter Lab / notebooks? I've not looked into what data format Jupyter requires to show charts, but I tested XPlot and the charts render immediately inside the notebook.

Thank you for the feature request. I changed the HTML representation, that it should work using the developer branch... We will test the new version and release a nuget package by the end of next week. To show the inline chart you need to use |> Chart.toChartHTML and then use |> Display (using ifsharp) or |> HtmlString (using dotnet.interactive) instead of Chart.Show. Here is an example: https://github.com/ZimmerD/COVIS-19

Superb - will report back with any issues.

Additionally, Plotly.NET.Interactive is now available via nuget if you are using dotnet interactive notebooks. just reference the package, and the formatter will automatically be registered:


Process for updating the ESAS species list

Type of changes

New species (i.e. a new ESAS code) with all relevant information (including links to Aphia and EURING)
Updates to scientificName (e.g. new genus combination) based on latest taxonomic insights. This implies a change in AphiaID too, since we always want to have the same scientificName as the one in WoRMS (irrespective of the status in WoRMS)
Updates to English name: little effect on the rest

Effect for users

Data are submitted with speciesCodeType and speciesCode. Those codes in submitted data will never change.
What can change (based on changes in the species list) is the relation between that code and the scientificName (e.g. new genus combination) and the AphiaID.
Users can use the new ESAS codes when they are added to the species list
Users can always submit data with an AphiaID: this doesn't restrict them to species on the ESAS species list

How changes are implemented

@nicolasvanermen submits an issue to https://github.com/ices-eg/DIG/issues with a request for change
Issue will be reviewed by RMG
Change will be implemented in the ICES species list (becoming available for use to users)

Periodically:

On the local GitHub repo, run a script to query the ICES species list API that updates species.tsv
Review the diff
Commit

The species.tsv will thus no longer be manually maintained.

The issue was posted at: https://github.com/ices-eg/DIG/issues/558


Header questions from Bubble sort interview question have been translated

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] All the files I changed are in the same world language (for example: only English changes, or only Chinese changes, etc.)
[x] My changes do not use shortened URLs or affiliate links.

Closes #XXXXX

Thank you for opening this pull request.
This is a standard message notifying you that we’ve reviewed your pull request and have decided not to merge it. We would welcome future pull requests from you.
Reason: You have an outdated fork.  You need to update it.  We no longer have a guide.  Also, there is no need to translate the headers.
Thank you and happy coding.

Hi Randell, thank you for the heads up!


xalan-c: Install headers correctly

To address the comments in https://github.com/Microsoft/vcpkg/pull/4246#issuecomment-433036876

Add vcpkg_clean_msbuild function
Add SKIP_CLEAN option to vcpkg_install_msbuild
xalan-c portfile uses SKIP_CLEAN so the headers aren't deleted prematurely, and corrects the glob to install the two missing but required headers, then cleans the build tree using vcpkg_clean_msbuild.

Hope that's all OK.  The function and option names can be changed if they don't match existing conventions

This build log demonstrates a successful test of the library both as configuration time and with unit tests.

Ouch, sorry we missed this!
I completely agree with the approach here, awesome work!

I noticed a documentation error and indentation issue.  Fixes pushed for these.

Thanks again!

@rleigh-codelibre Awesome, thanks.  With this done, I can now drop my own custom superbuild project in favour of vcpkg.  If I find any other defects, I'll open additional PRs.
One small thing I did notice is that patch application can be a little fragile; it won't error out if patch application fails.  One thing the superbuild would have done is fail the build at this point, and would not try to re-apply applied patches.

Yeah, we used to apply patches as a separate statement from the initial extraction, so if you built multiple times the patches would fail to apply the second+ times. To prevent this from killing the build, we made patch application "optional".
However, now that we have the PATCHES argument to pretty much all of the extraction functions (and vcpkg_extract_source_archive_ex()), we can start looking at making patch failure a build failure.


{Graph} Only add filter query string when its value is non-empty

Description
az ad sp list fails in Azure Stack environment:
> az ad sp list
Error occurred in request., RetryError: HTTPSConnectionPool(host='graph.redmond.azurestack.corp.microsoft.com', port=443): Max retries exceeded with url: /d48c9ef1-e46d-4148-b41e-ca95b463f5a8/servicePrincipals?$filter=&api-version=1.6 (Caused by ResponseError('too many 500 error responses'))

This is because filter= query string is set but its value is empty string ''.
>>> ' and '.join([])
''

Directly calling AD Graph API gives:
> az rest -m get -u '"https://graph.redmond.azurestack.corp.microsoft.com/d48c9ef1-e46d-4148-b41e-ca95b463f5a8/servicePrincipals?$filter=&api-version=1.6"' --verbose
Request URL: 'https://graph.redmond.azurestack.corp.microsoft.com/d48c9ef1-e46d-4148-b41e-ca95b463f5a8/servicePrincipals?$filter=&api-version=1.6'
Request method: 'GET'
...
Response status: 500
...
Response content:
{
  "error":{
    "code":"InternalServerError","message":"An application error occurred on the server."
  }
}

Even though public AD Graph does accept such usage and there is no rule against such usage (https://www.rfc-editor.org/rfc/rfc3986#section-3.4), query string with empty value is considered non-conventional.
Change
Only set filter query string if its value is non-empty.
Testing Guide
az cloud register -n azs-redmond --endpoint-resource-manager https://management.redmond.azurestack.corp.microsoft.com/ --profile 2020-09-01-hybrid
az cloud set -n azs-redmond

az login
az ad sp list --debug

msrest.http_logger: Request URL: 'https://graph.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/servicePrincipals?api-version=1.6'
msrest.http_logger: Request method: 'GET'
...
msrest.http_logger: Response status: 200

Graph


sync: release0.13.x

What type of PR is this?
/kind cleanup
What this PR does / why we need it:
This PR cherry picks:

https://github.com/falcosecurity/libs/pull/1404
https://github.com/falcosecurity/libs/pull/1423

Also, part of https://github.com/falcosecurity/libs/pull/1428 is manually cherry picked since https://github.com/falcosecurity/libs/pull/1424 moved stuff around.
I only cherry picked 7326e56429b51dd1e72eb30e6794c3d8f2b13e96.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

NONE

/cc @Andreagit97

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: FedeDP
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [FedeDP]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, FedeDP
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97,FedeDP]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, FedeDP, LucaGuerra
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97,FedeDP,LucaGuerra]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


clicking on Project shows errors

sorry for not writing the text :D i still have problems with copying from nvim

Try:
:PackerSync
and restart nvim

no didnt help.
when i go on find file
i got this

OS? Neovim version?

linux manjaro uptodate
its a clean install, 0.5 git from today
checkhealth is fine except perl (its optional right?)
I tried it on a ubuntu machine as well.. same errors.

Neovim 0.5 requires libtree-sitter. Is this installed on your machine?

npm install -g http-server didn't help
I guess I have treesitter installed.
I was running lunarvim just fine

I'll try on a virtual machine with Manjaro later

thanks looks like a problem with popup?
I wish I can give you better informations

I tried to make popup.nvim and plenary.nvim not optional
now I got this message on recent files:
Error running config for telescope.nvim
Error detected while processing function <SNR>56_call_line_function:
line    6:
E5108: Error executing lua ...vim/site/pack/packer/opt/packer.nvim/lua/packer/load.lua:102: Vim(echomsg):E114: Missing quote: "Error in packer_compiled: ...vim/site/pack/packer/opt
/packer.nvim/lua/packer/load.lua:47: ...er/opt/telescope.nvim/lua/telescope/_extensions/init.lua:11: This extension doesn't exist or is not installed: project

and if I try to open it again it opens up

Same issue on macOS.

Pull update from ~/config/nvim
git pull origin main
Then:
:PackerSync
Restart
Please tell if it works

works on 3 systems


chore(ci): Cleanup failing CI

This fixes the broken CI with some additional linting exceptions
This also pins fair to < 2

[ ] Description in CHANGELOG.rst added (single line such as: (`#XX <https://github.com/openscm/openscm-runner/pull/XX>`_) Added feature which does something)

@znicholls I have no idea why the coverage is suddenly so low.

Coverage

```
---------- coverage: platform linux, python 3.7.16-final-0 -----------
Name                                                                                Stmts   Miss Branch BrPart  Cover   Missing
------------------------------------------------------------------------------------------------------------------------------------
src/openscm_runner/__init__.py                                                               7      0      0      0   100%
src/openscm_runner/adapters/__init__.py                                                     23      0     11      0   100%
src/openscm_runner/adapters/base.py                                                         10      0      0      0   100%
src/openscm_runner/adapters/ciceroscm_adapter/__init__.py                                    1      0      0      0   100%
src/openscm_runner/adapters/ciceroscm_adapter/_utils.py                                      7      1      2      1    78%   13
src/openscm_runner/adapters/ciceroscm_adapter/ciceroscm.py                                  31      7      0      0    77%   17-22, 76-77
src/openscm_runner/adapters/ciceroscm_adapter/ciceroscm_wrapper.py                          74     48      8      0    32%   30-38, 50-60, 66-79, 85, 97-146, 152-155, 164-165, 172-175
src/openscm_runner/adapters/ciceroscm_adapter/make_scenario_files.py                        26     15      2      0    39%   22-29, 41-[42](https://github.com/openscm/openscm-runner/actions/runs/4958132484/jobs/8870640984#step:6:43), 48-52, 59-74
src/openscm_runner/adapters/ciceroscm_adapter/read_results.py                               86     69     16      0    17%   19-24, 31-36, [43](https://github.com/openscm/openscm-runner/actions/runs/4958132484/jobs/8870640984#step:6:44)-48, 55-65, 72-77, 84, 93-106, 112-117, 123-126, 133-175, 181, 189, 197-212
src/openscm_runner/adapters/ciceroscm_adapter/write_parameter_files.py                      35     26      8      0    21%   21-25, 37-60, 66-96
src/openscm_runner/adapters/ciceroscm_py_adapter/__init__.py                                 1      0      0      0   100%
src/openscm_runner/adapters/ciceroscm_py_adapter/_compat.py                                  6      3      0      0    50%   9-11
src/openscm_runner/adapters/ciceroscm_py_adapter/ciceroscmpy.py                             24      5      0      0    79%   15-20
src/openscm_runner/adapters/ciceroscm_py_adapter/cscmpy_wrapper.py                          36     23      6      0    31%   24-34, 46-78, 86-115
src/openscm_runner/adapters/ciceroscm_py_adapter/make_scenario_data.py                      17      8      2      0    47%   21-29, 41-42, 49-61
src/openscm_runner/adapters/ciceroscm_py_adapter/read_results.py                            68     54     16      0    17%   18-21, 28-31, 38, 45-49, 56, 65-79, 86-124, 130-134, 140-142, 148-158
src/openscm_runner/adapters/fair_adapter/__init__.py                                         1      0      0      0   100%
src/openscm_runner/adapters/fair_adapter/_compat.py                                          8      4      0      0    50%   10-13
src/openscm_runner/adapters/fair_adapter/_run_fair.py                                      250      1     14      1    99%   41
src/openscm_runner/adapters/fair_adapter/_scmdf_to_emissions.py                             73      2     28      5    93%   24->34, 51->68, 68->42, 182, 230
src/openscm_runner/adapters/fair_adapter/fair_adapter.py                                    63      0     16      0   100%
src/openscm_runner/adapters/magicc7/__init__.py                                              1      0      0      0   100%
src/openscm_runner/adapters/magicc7/_compat.py                                               8      4      0      0    50%   10-13
src/openscm_runner/adapters/magicc7/_magicc_instances.py                                    48      5      8      3    86%   29, 44, 47, 50, 96->100, 107, 109->112
src/openscm_runner/adapters/magicc7/_run_magicc_parallel.py                                 90     15     24      5    79%   38-39, 44, 49->exit, 54-56, 64-65, 96-98, 112->116, 124, 136-139
src/openscm_runner/adapters/magicc7/magicc7.py                                              95      1     32      2    98%   161->166, 206
src/openscm_runner/adapters/utils/__init__.py                                                0      0      0      0   100%
src/openscm_runner/adapters/utils/_parallel_process.py                                      55      6     24      1    91%   44-49, 60-62
src/openscm_runner/adapters/utils/cicero_utils/__init__.py                                   0      0      0      0   100%
src/openscm_runner/adapters/utils/cicero_utils/_run_ciceroscm_parallel.py                   19      0      4      0   100%
src/openscm_runner/adapters/utils/cicero_utils/_utils.py                                     7      6      4      0     9%   35-42
src/openscm_runner/adapters/utils/cicero_utils/cicero_forcing_postprocessing_common.py      25     19     16      0    15%   91-110
src/openscm_runner/adapters/utils/cicero_utils/make_scenario_common.py                      84     61     34      0    23%   96-104, 111-142, 149-158, 169-190, 197-244
src/openscm_runner/progress.py                                                               5      0      0      0   100%
src/openscm_runner/run.py                                                                   38      1     20      1    97%   103
src/openscm_runner/settings.py                                                              28      0      8      0   100%
src/openscm_runner/utils.py                                                                  9      0      4      0   100%
------------------------------------------------------------------------------------------------------------------------------------
TOTAL                                                                                13[59](https://github.com/openscm/openscm-runner/actions/runs/4958132484/jobs/8870640984#step:6:60)    384    307     19    [69](https://github.com/openscm/openscm-runner/actions/runs/4958132484/jobs/8870640984#step:6:70)%
FAIL Required test coverage of 90% not reached. Total coverage: 69.09%
</p>
</details>


Stage working

This commit backs out commits 1e09b61 and afaa91d in the stage branch because they are breaking the build. This commit also fixes the Swagger GUI for the Wormhole endpoints in the Raw Transactions library, as well as balancesForAddress and balancesForId from the Data Retrieval library.

Hmm... I thought I could merge this PR into stage and remove those two bad commits, but it doesn't look like GitHub likes that.
At this point this branch stage-working would be a replacement for stage. It would be better to delete the stage branch and add any code from those two breaking commits into this branch.

:tada: This PR is included in version 1.0.0 :tada:
Your semantic-release bot :package::rocket:


Unexpected behaviour: AutoGame triggers with both inbound and outbound connections.

I have a PC (PC1) that I use as both a client and as a host. I was expecting AutoGame to trigger on PC1 only when I use another PC (e.g., PC2) as a client to connect to PC1. However, I observed that AutoGame also triggers when I use PC1 as a client to connect to PC2. Is there a way to configure AutoGame such that it reacts to only inbound Parsec connections?

Unfortunately no. Not as it is now. This is an issue I've known about for awhile but haven't gotten around to solving. Mostly because it's kind of a tricky problem. Both hosts and clients have active UDP ports and audio sessions, the two things it's looking for to determine if Parsec is connected. It's kind of left me scratching my head wondering what else I could have it check for. I'll give this issue another shot and see if I can come up with a reliable way to differentiate the two.

Hey, that was fast. Did you push it as an autoupdate? Because it does now seem to be exhibiting the expected behaviour, although I didn't (manually) download the latest release.


Remove print_backend_namespace_{start,stop}.

The only backend specialized backend: acc, doesn't use this either.

Thanks for checking, I couldn't find anything either.