Attempting to export IPTT when an indicator has no value for LOP produces 500 Error

Linking with #969:
Logged into Tola-Activity-Qa, accesed TolaData Test program, clicked recent progress reports, clicked excel (export) button
Verification:

[ ] Can export from program plan https://tola-activity-qa.mercycorps.org/indicators/indicator_plan/442/ (this indicator has targets without LOPS)

I am no longer able to reproduce the issue as written, and the Plan page functions remain the same. Setting to Ready for Deploy
Verification:

[ ] Can export from program plan https://tola-activity-qa.mercycorps.org/indicators/indicator_plan/442/ (this indicator has targets without LOPS)


Update how-to-authenticate-an-imap-pop-smtp-application-by-using-oaut…

…h.md
adding missing end of code block after Get-ServicePrincipal code block

Docs Build status updates of commit 6d8455d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

please review @lindalu-MSFT


Update sync-ldap.md

@RobdeJong : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


[WIP][lexical-react] Bug Fix: React 19 StrictMode correctness

Description
React 19's StrictMode re-uses the results of useMemo between renders (notes). We have code in the composers that uses useMemo to create LexicalEditor which are a mutable state nightmare if shared, causing all sorts of hard to understand bugs and makes us look pretty bad in dev modes everywhere. useState(…)[0] should not have this issue.
We can't fix the fact that you can of course make similar mistakes in your own components. We could also add documentation to the FAQ or somewhere else that shows best practices. I'm not sure exactly what practice we would recommend if you want to do some sort of editor mutation that the cleanup function doesn't take care of (e.g. set up some initial editor state with a plugin).
Closes: #6040
Test plan
Before
See #6040 for a full example
After
Unit tests pass. Not sure what the best way to run the test suite with React 19 in CI would be?

After thinking about this some more I think the approach we have is probably correct enough, but we have some things to address regarding React 19:

CI should run a separate suite of tests against react@beta
Track down deprecated APIs and replace them with React 17,18,19 compatible approaches
Write some documentation about all the ways you can muck things up when effects are not used correctly, especially in StrictMode (e.g. trying to exfiltrate data from the editorState callback) - promoting functionality like useLexicalSubscription instead of error-prone DIY


Tools don't work through proxy

fr-config-pull/push are not currently proxy aware.
fr-config-pull uses the axios client. You can call this with proxy parameters, or set an environment variable with proxy details which is automatically picked up by the axios client. However, it seems that the axios client does not use CONNECT for SSL connections, which causes issues.
fr-config-push uses the node-fetch client. This is not proxy aware at all.

This works
    const { HttpsProxyAgent } = require("hpagent");

    const agent = new HttpsProxyAgent({
      proxy: "http://localhost:8080",
    });

    const response = await axios({
      httpsAgent: agent,
      method: "post",
      url: tokenEndpoint,
      data: qs.stringify(formData),
      headers: {
        "Content-Type": "application/x-www-form-urlencoded",
      },
    });

Requires

Centralise client for fr-config-pull and fr-config-common (fr-config-push already centralised)
Use axios client for centralised client
Add configuration option for proxy


French addresses

Hi Vladimarius,
do you know if some work has been done on french addresses ? I have to parse some french addresses, it seems libpostal is nice but I have problems installing it and I found no other reliable solution, do you know other parsers for international addresses ?
Thanks for your work !
Romain

Hi Vandelouw,
I haven't seen any work on French addresses. As for libpostal - afaik, this lib does slightly different thing, it splits address into pieces (street name, number, city, ...). Pyap does this also, but is mainly used for quick finding of address string inside a larger text containing things which might not be addresses.
Vlad


/me/drives/ returns 404

Here is the dump of the HTTP session:
< GET /_api/v2.0/me/drives/ HTTP/1.1
< Host: pashkin-my.sharepoint.com
< User-Agent: python-requests/2.18.4
< Accept-Encoding: gzip, deflate
< Accept: */*
< Connection: keep-alive
< Authorization: Bearer {access_token}
<

> HTTP/1.1 404 Not Found
> Cache-Control: private, max-age=0
> Transfer-Encoding: chunked
> Content-Type: application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false;charset=utf-8
> Expires: Sat, 25 Nov 2017 21:55:25 GMT
> Last-Modified: Sun, 10 Dec 2017 21:55:25 GMT
> P3P: CP="ALL IND DSP COR ADM CONo CUR CUSo IVAo IVDo PSA PSD TAI TELo OUR SAMo CNT COM INT NAV ONL PHY PRE PUR UNI"
> X-SharePointHealthScore: 0
> X-SP-SERVERSTATE: ReadOnly=0
> ODATA-VERSION: 4.0
> SPClientServiceRequestDuration: 11
> SPRequestDuration: 95
> X-AspNet-Version: 4.0.30319
> SPRequestGuid: 9c49359e-40d2-4000-cd45-957ae17b1002
> request-id: 9c49359e-40d2-4000-cd45-957ae17b1002
> MS-CV: njVJnNJAAEDNRZV64XsQAg.0
> Strict-Transport-Security: max-age=31536000
> X-FRAME-OPTIONS: SAMEORIGIN
> X-Powered-By: ASP.NET
> MicrosoftSharePointTeamServices: <IP_ADDRESS>29
> X-Content-Type-Options: nosniff
> X-MS-InvokeApp: 1; RequireReadOnly
> X-MSEdge-Ref: Ref A: 907485BB78F542F58539D730A840121F Ref B: AMSEDGE1117 Ref C: 2017-12-10T21:55:25Z
> Date: Sun, 10 Dec 2017 21:55:24 GMT
>
{"error":{"code":"itemNotFound","message":"The resource could not be found."}}

I was referring to this page:
https://docs.microsoft.com/en-us/onedrive/developer/rest-api/api/drive_list#list-the-current-users-drives
It says:

List the current user's drives
GET /me/drives

p.s.
I get the same thing with API v1.0.

I've also managed to get 500 response:
< GET /_api/v1.0/drives/ HTTP/1.1
< Host: pashkin-my.sharepoint.com
< User-Agent: python-requests/2.18.4
< Accept-Encoding: gzip, deflate
< Accept: */*
< Connection: keep-alive
< Authorization: Bearer {access_token}
<

> HTTP/1.1 500 Internal Server Error
> Cache-Control: private, max-age=0
> Transfer-Encoding: chunked
> Content-Type: application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false;charset=utf-8
> Expires: Sat, 25 Nov 2017 22:11:58 GMT
> Last-Modified: Sun, 10 Dec 2017 22:11:58 GMT
> P3P: CP="ALL IND DSP COR ADM CONo CUR CUSo IVAo IVDo PSA PSD TAI TELo OUR SAMo CNT COM INT NAV ONL PHY PRE PUR UNI"
> X-SharePointHealthScore: 0
> X-SP-SERVERSTATE: ReadOnly=0
> ODATA-VERSION: 4.0
> SPClientServiceRequestDuration: 44
> SPRequestDuration: 154
> X-AspNet-Version: 4.0.30319
> SPRequestGuid: 8f4a359e-405d-4000-8573-a1d48337854b
> request-id: 8f4a359e-405d-4000-8573-a1d48337854b
> MS-CV: njVKj11AAECFc6HUgzeFSw.0
> Strict-Transport-Security: max-age=31536000
> X-FRAME-OPTIONS: SAMEORIGIN
> X-Powered-By: ASP.NET
> MicrosoftSharePointTeamServices: <IP_ADDRESS>29
> X-Content-Type-Options: nosniff
> X-MS-InvokeApp: 1; RequireReadOnly
> X-MSEdge-Ref: Ref A: DAD0215EAC284AE8AE4C5203DE95D536 Ref B: AMSEDGE0916 Ref C: 2017-12-10T22:11:58Z
> Date: Sun, 10 Dec 2017 22:11:58 GMT
>
{"error":{"code":"-2146232832, Microsoft.SharePoint.SPException","message":"The file |0 does not exist."}}

Hi @AndrewPashkin, unfortunately the documentation is for Graph while you're trying to hit SharePoint directly. While the documentation is mostly applicable there are some differences that you need to be aware of.
Specifically, for your case I'd avoid using "me" directly - you should be able to hit https://<tenant-my>.sharepoint.com/_api/v2.0/drives and have it succeed. I'd also avoid trying v1.0 as it's a very old version of the API implementation on SharePoint and is in no way comparable to the v1.0 implemented for Graph or the v1.0 implemented for OneDrive Consumer.

@ificator, I used this tutorial:
https://docs.microsoft.com/en-us/onedrive/developer/rest-api/getting-started/aad-oauth
And it says (end of the paragraph) that I should use https://{tenant}-my.sharepoint.com/_api/v2.0/ type of endpoint. I would use Graph API but I don't know how to do it.

I try to use this one:
https://docs.microsoft.com/en-us/onedrive/developer/rest-api/getting-started/graph-oauth#code-flow
But I get this error when I try to retrieve the authorization code:
http://localhost:8080/?error=unauthorized_client&error_description=AADSTS70001%3a+Application+'<client-id>'+is+not+supported+for+this+API+version.Trace+ID%3a+7546d96e-7ced-4455-a2cb-d656a9b00000Correlation+ID%3a+88f7dcbb-552f-4a67-b188-4addf6fc776fTimestamp%3a+2017-12-14+21%3a37%3a06Z

You can still hit the SharePoint endpoint directly if that works for you, you just need to be prepared for some subtle differences between the documentation you referenced and what the SharePoint endpoint will accept.
One of those is how to enumerate drives - you cannot use "me". Instead the following should work:
https://{tenant}-my.sharepoint.com/_api/v2.0/drives
Changing that is probably easier than trying to figure out why your auth for Graph isn't working, but we can drill into that if you want to switch as well :)

@ificator, well if you don't know out of the top of your head what Application+'<client-id>'+is+not+supported+for+this+API+version. error message could indicate I think I'm gonna stick with SharePoint endpoint for now then.


Bugzilla 134106

The setuptools package is causing error with pcs.
So, skipping it.

Updated as per review comments.


Add symlinks from system

Fixes #11

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Firefox image shrink bug fixed with min-width (IE11 too but needs even more)

While reading http://dfmcphee.com/2016/03/flex-items-and-min-width-0/ I thought this may be a workaround for the bug in Firefox (tested on Win10 only but guess all platforms).
Demo page http://jsbin.com/bijate/edit
Edge and Chrome shrink the image (img needs max-width: 100% which is quite normal for RWD pages) as expected into the flexbox.
Without setting min-width to a small size (like 0) Firefox does not and stretches its containing box to fit the complete image. overflow: hidden does work too and actually IE11 does need setting this as min-width alone does not work in IE11.
Or did I miss something and already in list of flexbugs? Thanks.

Running Firefox 45.0.1 seems to not need the min-width. If I just add overflow: hidden to the images containing div, it works perfectly. The issue is that the default flex-direction is column and the max-width being set to 100% leaves the image not knowing it's parent's width because that is suppose to be picked up by it's contents through flexing, so I believe treatments like giving a value to flex-basis or overflow: hidden create knew layout context for the image to actually know what 100% means.

There are problems with overflow:hidden though. If you position something outside the containing box it would not show up. But as IE11 needs it anyway min-width is not needed and I think even older Firefoxes are content with using overflow.
In the future using min-width would be better as not as intrusive as hiding all overflowing stuff. Guess this will be years though as IE11 will be with us for some time :(

I'm not seeing this bug, has it been fixed in the new version of FF? Can you still reproduce it?

I've never seen this issue in any version of Firefox.

Hi am facing this issue on Firefox version : 77.0.1 (64-bit). The image shrinks. Visit https://chaitanyagadodia.github.io/ if you want to replicate.


Starboard Rewrite

I've created this issue as a means of discussing and organizing features that will be implemented in a starboard rewrite.

Some proposed changes:

[ ] The addition of a leaderboard
[ ] Persistence of previously starred posts
[ ] A command to check a users total # of stars
[ ] The ability to customize the starboard threshold on a per server basis

Persistence is the big thing we need to start with, everything else can come after


CHECKMATE

Need to research which checkmate logic would suit this project best.

We can try a brute force approach to looking for check mate, and if this turns out to hurt performance noticeably we can focus on implementing a more efficient algorithm

check mate functionality done and test working, more tests have to be added


Retrieve auto-detected language

To who it may concern,
Very nice feature, incredibly useful and well described, thanks for that.
I have not been able to find this anywhere in the documentation for the Document Translator (only for text translator) - is it possible to somehow return the language that was detected by the service when the "Auto-detect language" option is used?
Thanks in advance
Peter

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

ID: 1b377c85-7fba-5a11-3efe-eaa7fb73c55e
Version Independent ID: b95a0f05-a136-d061-e069-2e10ead539ec
Content: Use Document Translation APIs programmatically - Azure AI services
Content Source: articles/ai-services/translator/document-translation/how-to-guides/use-rest-api-programmatically.md
Service: azure-ai-translator
GitHub Login: @laujan
Microsoft Alias: lajanuar

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

@pdqdk
Yes, it is possible to return the language that was detected by the Document Translator service when the "Auto-detect language" option is used. To do this, you can include the fromScript parameter in your API request. The fromScript parameter specifies the script of the detected language. Here is an example of how to include the fromScript parameter in a Document Translator API request:
https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=auto-detect&to=en
Request Body: [     {         "text": "Ce document est rédigé en français."     } ] Response Body: [     {         "detectedLanguage": {             "language": "fr",             "score": 1.0         },         "translations": [             {                 "text":

"This document is written in French.",                 "to": "en"             }         ]     } ] ```

In the response body, the `detectedLanguage` object includes the `language` property, which specifies the detected language. In this example, the detected language is "fr" for French. We apologize for any confusion or inconvenience this may have caused.If you have any further questions or concerns, please let us know.

@pdqdk
Thank you for your feedback!
I'd recommend working closer with our support team via an [Azure support request] (https://docs.microsoft.com/en-us/azure/azure-portal/supportability/how-to-create-azure-support-request). Or you can leverage our Q&A forum by posting your issue there so our community, and MVPs can further assist you in troubleshooting this issue or finding potential workarounds.
[Teams Q&A forum] (https://docs.microsoft.com/en-us/answers/topics/46488/office-teams-windows-itpro.html) for technical questions about the configuration and administration of Microsoft Teams on Windows.
[Microsoft Teams Community forum] (https://answers.microsoft.com/en-us/msteams/forum?sort=LastReplyDate&dir=Desc&tab=All&status=all&mod=&modAge=&advFil=&postedAfter=&postedBefore=&threadType=All&isFilterExpanded=false&page=1)
Thank you for your time and patience throughout this issue.


add 'april --version'

see webring link + icon on home page > contact list

Website has no content, everything is hosted on 3rd party social platforms.


Programmatically create tickets

I'm not sure if this has been asked before but; If I create a ticket via Ticket.objects.create(), will an email to sent out to the Assigned User?

Another way of doing this is to simple send an email to your queue programatically ;)

@timthelion but then the submitter email wouldn't be the end user?

That's true. I guess it depends on what you're doing. If you're importing issues from github then simply emailing links to them works, if you want to do something with better integration you'll need to work with the form.

I eventually got this working to some extent! Since the close source project I used the code for is going open source I'll get around to pushing some changes upstream if I remember

Pushing changes here would be greatly appreciated!

I eventually got this working to some extent! Since the close source project I used the code for is going open source I'll get around to pushing some changes upstream if I remember

If you have gone through the changes if its possible to update, would be highly appreciated!

Unfortunately, I can no longer find the code I wrote


Add view for single posts / templates / generated front page

This fixes #187 by using Jekyll's posts feature.

Benefits of the new setup/layout:

more flexible front page, e.g. could be tied into meetup or other dynamic sources if we'd like to
each event now has their direct link
fewer risk for errors as new posts ( = events) create a new file with a strict template (see 29178c2aceba7c8e2cf2255a30470a1f655a41e9 as an example)

Happy about feedback!

@ligi What do you think?

These are all good points @vog and this should not be the last iteration.
Maybe Jekyll Collections are the way to get us there?

Generally LGTM - but my mind is on another project currently so cannot look too deep - feel free to merge. Just a visual nit:

The meetup button is way to loud and central for my taste. It is a centralized and so wants to be loud and intrusive - but should we really help it do this ?-)

I agree that the Meetup button is a bit too strong.
Nevertheless, merging to push this forward.


how to config tailwindcss with element UI (https://github.com/ElemeFE/element)

Combining tailwind and element ui in productions seems impossible. I have been trying to get it working for 2 weeks to no avail. works fine in dev but not production with nuxt generate.

I have it running fine in production, but you need to deactivate purgeCss in your nuxt.config.js:
purgeCSS: {
        enabled: false,
    },

Instead of deactivating PurgeCSS entirely whitelisting can be used as follows in nuxt.config.js:
  /*
  ** purgeCSS module configuration
  ** See https://github.com/Developmint/nuxt-purgecss#options
  */
  purgeCSS: {
    whitelistPatterns: [/^el-/],
  },

@hartmut-co-uk Not all classes in element is prefixed with el unfortunately :(

New tailwindcss v1.4 purge 🎉 🎈 comes to the rescue!!!
https://github.com/hartmut-co-uk/nuxt-tailwind14-element-example
Preveiw: https://hartmut-co-uk.github.io/nuxt-tailwind14-element-example/


[SR-16106] Once SourceKit-LSP supports formatting, run formatter on text inserted by CodeActions

Previous ID
SR-16106

Radar
None

Original Reporter
@adam-fowler

Type
Bug

Environment
swift-driver version: 1.45.2 Apple Swift version 5.6 (swiftlang-<IP_ADDRESS>3.62 clang-13<IP_ADDRESS>)
Target: x86_64-apple-macosx12.0

Additional Detail from JIRA

Votes
0

Component/s
SourceKit-LSP

Labels
Bug

Assignee
None

Priority
Medium

md5: 46482d3680d87dc38282b4865db4ef55

Issue Description:
The following list of Code Actions do not include the correct spacing

Generate Member Initializer

Expand Switch Cases

Collapse Nested If Statements

Move to Extension

Extract Expression

Extract Repeated Expression

Extract Method

Convert To Switch Statement

For example if I have the following struct
struct Test {
    let a: Int
}

The "Generate Member Initializer" code action produces
struct Test {
internal init(a: Int) {
self.a = a
}
    let a: Int
}

I haven't been able to test all the refactor kinds so there may be others that need fixed as well.
"Add Equatable Conformance" is an example of a code action that generates the correct spacing.

rdar://95587750

Now that https://github.com/apple/swift-format/pull/708 has been merged in swift-format to support formatting a range is that everything we need to fix this?

https://github.com/apple/swift-format/pull/708 hasn’t been cherry-picked to release/6.0, which means that we can’t use it from SourceKit-LSP 6.0. I also just remembered that swift-format can only format valid Swift code. This means that if your file has syntax errors after a refactoring (could be somewhere unrelated to the refactoring), then running swift-format won’t work.

I'd have to try it, but it should be possible that when formatting a range, as long as the code within that range is valid, then swift-format should work even if code outside the range isn't valid Swift.

I think swift-format does not format if it can’t build a syntax tree for the source file and the range formatting is done after building the syntax tree, so I’d be surprised if range formatting worked in the presence of error inside the file.

To not spam with redundant issues here. After migration to swift6 sourcekit-lsp I've found new option to format the whole file. But it's unclear is there a way to set this formatting up in align with the rest of my project code style?

SourceKit-LSP uses swift-format for formatting. You can add a .swift-format file in the root of your project to configure that. If you have any more questions, please start a thread in the Swift Forums


chore: bdd-spring-1587298914 to 0.0.1

chore: Promote bdd-spring-1587298914 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
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

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


unable to complete output ring starting at

Doing a intersect on these two shapes seems to produce the unable to complete output ring starting at error
{
        type: 'Feature',
        properties: {},
        geometry: {
          type: 'Polygon',
          coordinates: [
            [
              [
                -94.01653361819794,
                44.91274384567805
              ],
              [
                -94.01648672631458,
                44.91275462177405
              ],
              [
                -94.01653344003874,
                44.91275386419229
              ],
              [
                -94.01653361819794,
                44.91274384567805
              ]
            ]
          ]
        }
      }

      {
        type: 'Feature',
        properties: {},
        geometry: {
          type: 'Polygon',
          coordinates: [
            [
              [
                -94.01654779292787,
                44.91274058822198
              ],
              [
                -94.0164867263146,
                44.91275462177405
              ],
              [
                -94.01650378031933,
                44.91275434520002
              ],
              [
                -94.01654762526815,
                44.912753634142746
              ],
              [
                -94.01654779292787,
                44.91274058822198
              ]
            ]
          ]
        }
      }

This issue can be resolved by setting the precision to something like 1e-12 before performing the operation.
For example:
polyclip.setPrecision(1e-12)

polyclip.intersection(poly1, poly2)

will give the following result:
[
  [ -94.01653361819794, 44.91274384567805 ],
  [ -94.01648672631458, 44.91275462177405 ],
  [ -94.01653344003874, 44.91275386419229 ],
  [ -94.01653361819794, 44.91274384567805 ]
]


ParameterMissing exception when requesting next track from iterator

I came across the following stack trace today:
ERROR    Unhandled exception in PandoraBackend (urn:uuid:3cdfb222-12ef-42bf-bf8f-e3e6978caf66):
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/pykka/actor.py", line 201, in _actor_loop
response = self._handle_receive(message)
File "/usr/local/lib/python2.7/site-packages/pykka/actor.py", line 295, in _handle_receive
return callee(*message['args'], **message['kwargs'])
File "/Users/jcass/PycharmProjects/Mopidy/mopidy/mopidy/core/listener.py", line 34, in on_event
getattr(self, event)(**kwargs)
File "/Users/jcass/PycharmProjects/Mopidy/mopidy-pandora/mopidy_pandora/backend.py", line 60, in end_of_tracklist_reached
next_track = self.library.next_track()
File "/Users/jcass/PycharmProjects/Mopidy/mopidy-pandora/mopidy_pandora/library.py", line 138, in next_track
pandora_track = self._station_iter.next()
File "/usr/local/lib/python2.7/site-packages/pydora/utils.py", line 121, in iterate_forever
yield next(output).prepare_playback()
File "/usr/local/lib/python2.7/site-packages/pandora/models/pandora.py", line 227, in prepare_playback
self.register_ad(self.station_id)
File "/usr/local/lib/python2.7/site-packages/pandora/models/pandora.py", line 224, in register_ad
self._api_client.register_ad(station_id, self.tracking_tokens)
File "/usr/local/lib/python2.7/site-packages/pandora/client.py", line 280, in register_ad
adTrackingTokens=tokens)
File "/usr/local/lib/python2.7/site-packages/pandora/client.py", line 104, in call
return self.transport(method, **kwargs)
File "/usr/local/lib/python2.7/site-packages/pandora/transport.py", line 47, in function
return func(*args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/pandora/transport.py", line 234, in call
return self._parse_response(result)
File "/usr/local/lib/python2.7/site-packages/pandora/transport.py", line 220, in _parse_response
raise PandoraException.from_code(result["code"], result["message"])
ParameterMissing: Parameter Missing
As best I can tell, there seems to be a parameter missing in the register_ad call when the track is yielded from the iterator (either the token or the station id)?

I think this field is named incorrectly, should it not be stationId?
https://github.com/mcrute/pydora/blob/f039ae70fd8fcab1a878f5fc072d45ad4cbe44c3/pandora/client.py#L266

Oops, I typo'd that. Fix is released in 1.6.1.


Add Tuple support for messages placeholder

It's a bit annoying to work with LangChain messages on the frontend, which is why we did things like this in chat langchain. It would be convenient if the messages placeholder also accepted the same tuple format as the prompt template, so you could just pass the role and content values around.
Maybe not as useful in a real memory setup, but simplifies the user code a bit in some situations.

Oh hmm i kinda like that too!

Going #19417 instead because of refactor related merge conflicts


2D Diffusion Example

This merge adds a very simple 2D diffusion example, in order to:

Demonstrate the use of Devito in comparison to other textbook PDE solving recipes, like pure Python loops, vectorized numpy and lambdified sympy
Give developers a small simple test case on which to build a more comprehensive test base and further clean up the user-facing API.

It also cleans up the user-facing API a little (although much more work is required on this):

Exposes the core classes Operator, DenseData, TimeData and PointData through standard package exports
Renames operators.py to operator.py for consistency
Add docstring and defaults to Operator class
Enable initialisation without sub-classing by moving stencils, input_params and output_params to constructor

I like this. Good to go!

@navjotk Ok, thanks. I'll wait with the merge until cache_blocking and tti have landed, since I will need to reconcile with those changes.

Ok, this is now caught up with the recent merges, and is going in too. Merging...


NOR Device formatted with Micrium cannot be mounted on Windows or MacOS.

I have an application using Micrium FS with journaling disabled, running in a STM32F750 MCU.
The file system runs in a NOR Flash 32MB.
I have no issues using the file system inside the microcontroller.
However, the same NOR Device is accessed by USB in MSC Class. A standard flash unit is mapped in Windows or MacOS.
The problem is that Windows/Mac does not recognize the volume formatted by micrium and vice-versa. Micrium cannot recognize the volume formatted by Micrium.
In the AddNOR function, Micrium always detects some blocks as invalid (random number of blocks) and mark the flash to be low level formatted.
I tryied to Google for this problem or related without results.
Is there any kind of incompatibility of Micrium FAT with the standard FAT that makes impossible to Windows/MacOS to recognize the partition/volume?
Is there something I'm missing here?

Found the problem. Hope this can help someone with the same problem (and not waiste 3 days of work trying to find a solution).
Micrium FS uses a special low level format for NOR Flash Blocks. These blocks are offset with 40 bytes in the beginning of each Flash Memory Block (called header) (this format is called internally as low level format).
If your MSC driver directly access the Flash sectors, the layout will be completely different from the expected layout for a FAT filesystem, and the operating systems will not recognize a device with a FAT FS.
To fix this problem, the MSC driver MUST use Micrium functions that convert absolute sector address to LOGICAL sector addresses (FSDev_NOR_RdSecLogical and FSDev_NOR_WrSecLogical).
Do not allow MSC driver to read and write the Flash directly.

Found the problem. Hope this can help someone with the same problem (and not waiste 3 days of work trying to find a solution).
Micrium FS uses a special low level format for NOR Flash Blocks. These blocks are offset with 40 bytes in the beginning of each Flash Memory Block (called header) (this format is called internally as low level format).
If your MSC driver directly access the Flash sectors, the layout will be completely different from the expected layout for a FAT filesystem, and the operating systems will not recognize a device with a FAT FS.
To fix this problem, the MSC driver MUST use Micrium functions that convert absolute sector address to LOGICAL sector addresses (FSDev_NOR_RdSecLogical and FSDev_NOR_WrSecLogical).
Do not allow MSC driver to read and write the Flash directly.


Issue with User Creation in the App

Hey Team,
Hope you guys are doing awesome! 🚀 Just wanted to drop a quick note about a snag we hit with the app. We were all set to show off some cool stuff to a bunch of friends, but ran into a bit of a hiccup with user creation.
Here's what went down:
Error inserting initialData for:  groups
Erro:  ZodError: [
  {
    "code": "invalid_type",
    "expected": "boolean",
    "received": "undefined",
    "path": [
      "admin"
    ],
    "message": "Required"
  }
]
    at Object.get error [as error] (/Users/marc/Documents/protofy/Protofy/node_modules/zod/lib/types.js:43:31)
    at ZodObject.parse (/Users/marc/Documents/protofy/Protofy/node_modules/zod/lib/types.js:142:22)
    at DerivedModel.validate (/Users/marc/Documents/protofy/Protofy/packages/protolib/base/ProtoModel.ts:137:21)
    at DerivedModel.create (/Users/marc/Documents/protofy/Protofy/packages/protolib/base/ProtoModel.ts:97:173)
    at /Users/marc/Documents/protofy/Protofy/packages/protolib/api/lib/generateApi.ts:61:55
    at Array.map (<anonymous>)
    at CreateApi (/Users/marc/Documents/protofy/Protofy/packages/protolib/api/lib/generateApi.ts:58:102)
    at AutoAPI (/Users/marc/Documents/protofy/Protofy/packages/protolib/api/lib/generateApi.ts:27:21)
    at Object.<anonymous> (/Users/marc/Documents/protofy/Protofy/packages/protolib/bundles/groups/groupsAPI.ts:4:33)
    at Module._compile (node:internal/modules/cjs/loader:1233:14) {
  issues: [
    {
      code: 'invalid_type',
      expected: 'boolean',
      received: 'undefined',
      path: [Array],
      message: 'Required'
    }
  ],
  addIssue: [Function (anonymous)],
  addIssues: [Function (anonymous)],
  errors: [
    {
      code: 'invalid_type',
      expected: 'boolean',
      received: 'undefined',
      path: [Array],
      message: 'Required'
    }
  ]
}

to reproduce:
git clone repo
node prepare.js
yarn
yarn start-dev-latest

Totally get that bugs are part of the game, just hoping you can help us get this sorted out soon. Really psyched to get back to using the app to its full potential!
Cheers and thanks a ton!
Marc Palau

Please, solve this because I need to try the app as soon as possible.
Thanks!

Problem during installation. When the installation process fills the disk, it can break at some point when retrying the installation once.
you can close this issue (if you are not interested into add some control of interrupted process at some point or check for space before installation)


[FEATURE] Check trace invariants w.r.t. views

Is your feature request related to a problem? Please describe.
I have started to use trace invariants, which I think is a great feature, as they allow to describe precisely the shape of the computation I want to obtain.
The problem I am facing is that I have a fairly large spec with 13 variables, and the implementation of the trace invariants seem to require the history to be the sequence of STATEs which are records over _all state variables. I have tried to define a history over a subset of variables, but this is rejected:
PASS #8: VCGen                                                    I@19:49:15.261
  > Producing verification conditions from the invariant ThreeActions I@19:49:15.262
(Please report an issue at: [https://github.com/informalsystems/apalache/issues],at.forsyte.apalache.tla.lir.MalformedTlaError: Expected the trace invariant ThreeActions to be a predicate of a sequence of records over the names of state variables)
kernel_test.tla:117:3-117:19: unexpected TLA+ expression: Expected the trace invariant ThreeActions to be a predicate of a sequence of records over the names of state variables E@19:49:15.286
at.forsyte.apalache.tla.lir.MalformedTlaError: Expected the trace invariant ThreeActions to be a predicate of a sequence of records over the names of state variables
	at at.forsyte.apalache.tla.bmcmt.VCGenerator.assertTraceInvType(VCGenerator.scala:111)

The problem is that having all state variables slows down the model checker up to the point of being almost unusable.
Describe the solution you'd like
I would like to be able to describe trace invariants over a subset of state variables. As I typically will need only a few of variables for each trace invariant, this should dramatically speed up the model checker.
Additional context
E.g. I have tried to use this trace invariant which requires access only to 1 out of 13 state variables:
\* @type: Seq(STATE) => Bool;
ThreeActions(history) ==
  LET test ==
    /\ Len(history) >= 3
    /\ \A i, j \in DOMAIN history : history[i].action /= history[j].action
  IN
  ~test

Interesting. Do you like to combine trace invariants with the view abstraction?

That is an interesting idea, might be; depends on the implementation I guess. Currently as it seems to me that allowing history to be defined over a subset of state variables is the most straightforward and easy to understand approach.

I think it would be very useful to have views over the history. Here's an illustrative use case:
I have an algorithm with multiple processes and each action is performed by one process. The algorithm is symmetric wrt. process id.
I would like to generate counter examples by projecting on the set containing the number of times each process took an action.
For example the if p1, p2, p3 took 3,4,5 actions then the set would look like {3,4,5}. Then I want to enumerate different sets (maybe restricted to something I like) so I would get runs with {3,3,3}, {3,3,4}, {3,4,4} ... ect.
I think this would be concretely useful and enable useful symmetries (AFAIK is not possible for a spec author to explicitly demand symmetries, please correct me if I'm wrong).
I'd be happy to investigate an implementation for this at some point but I don't think I can make it a priority right now, and I suspect I'd need to spend quite some time learning the guts as I go.

@konnov we were discussing this in today's Apalache planning meeting. I can make a self-standing issue too.

yes, please make an issue

This issue got lost under the pile of other issues. It is actually quite relevant for temporal properties #488.

also got relevant to @angbrav

This could also potentially be combined with #1845.

This could also potentially be combined with https://github.com/informalsystems/apalache/issues/1845.

Hmmm. I do not see any connection. @Kukovec could you elaborate?

Trace invariants should combine nicely with trace exploration.

View-restricted trace invariants are just a special kind of input for the feature described in #1845


[GoogleVR.iOS] Upgraded to GVR 1.0.0

Hi @snailium, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla2.dotnetfoundation.org.

TTYL, DNFBOT;

@snailium, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, DNFBOT;

Hello! I'm the build bot for the Mono project. I need approval from a Mono team member to build this pull request. A team member should reply with "approve" to approve a build of this pull request, "whitelist" to whitelist this and all future pull requests from this contributor, or "build" to explicitly request a build, even if one has already been done. Contributors can ignore this message.

Hello! I'm the build bot for the Mono project. I need approval from a Mono team member to build this pull request. A team member should reply with "approve" to approve a build of this pull request, "whitelist" to whitelist this and all future pull requests from this contributor, or "build" to explicitly request a build, even if one has already been done. Contributors can ignore this message.


Property condensed has no effect with bootstrap4

Setting condensed to true or false makes no difference when you use bootstrap4. The css class table-condensed was removed there.
If you want, I can try to make a pull request.

@sedrubal ok, PR is welcome :)

@AllenFang @sedrubal

Additionally it was useful to add .form-control-sm on a condensed table to all .form-controls.

Implemented for bootstrap 3 and 4, will be included in the next PR :)

https://react-bootstrap-table.github.io/react-bootstrap-table2/blog/2018/11/10/version-bump.html
Fixed it on newest version.  Thanks @YassienW

@AllenFang Yes, the condensed property was fixed, but didn't add .form-control-sm on condensed table  forms which was the second suggestion:

Setting condensed to true or false makes no difference when you use bootstrap4. The css class table-condensed was removed there.

Nice, thanks. Sorry for not crating a pull request.
Unfortunately we switched back to bs 3 with our project...

This issue is still not fixed in latest 3.3.0. Any solution?


How to convert  whisper large-v2 model to tensor engine？

Is conversion to whisper large-v2 currently supported?

Hi, thanks for using WhisperLive. You can follow the TensorRT setup readme
For converting the large-v2 model you should follow:
https://github.com/collabora/WhisperLive/blob/main/TensorRT_whisper.md
bash build_whisper_tensorrt /root/TensorRT-LLM-examples large-v2

@HollrayChan Can we close this? Did you manage to convert the model to TensorRT engine?

Closing due to inactivity. Feel free to re-open.


SVG Fails to display properly

Fail State:

Should look like:

given the code:

Note: the comment in the code made no difference with or without
This happens on Firefox and Chrome ( which is all that I've tested )
this page is deployed here, to test out the behavior I describe next ( https://aceinterviewprep.app/landing/base )
On initial request to get the page it renders perfectly fine however if you click on any link (eg. login) and then hit the back button or click solutions > coding bootcamps (or any) then click the Ace logo to go back then you will see the top image
I have no understanding of why this is happening but even if my code is funky, it should still render the same each time right?

I can see that when it loads properly it has the data-ssr attribute
I have no idea why this matters though, I'm guessing hydration?

It seems that the only way it displays properly is from the initial server side render.
prerender_ mySvg mySvg also recreates the issue

https://github.com/obsidiansystems/obelisk/issues/828 seems relevant
Think I also ran into this a long time ago, but workarounded some other way.

thanks @alexfmpe, based on what I saw with the outdated reflex-dom-SVG package and some investigation, I wouldn't be surprised if the workaround in #828 would work here
I just made the SVG in figma instead but hopefully I can test this soon.
Feels like this should become part of FAQ for reflex-dom as the behavior is relatively surprising, I wonder if reflex-dom-contrib has solutions yet


Added an item to the list of common issues

This is based on: https://alwayswithyouwhatcannotbedone.wordpress.com/2019/03/10/temporary-fix-for-an-iphone-that-cannot-access-local-addresses/

Tks very much


Double decoding of url params

Version
3.1.6
Reproduction link
https://lyaskovec.github.io/tests/
Steps to reproduce
There are two cases where you can see issue with double decoding of URL:
case 1:

Go to the example page
Click on link  /%25
Click on link /home
Try to use browsers navigation buttons

case2:

Go to the example page
Click on link  /%25
reload the browser page

What is expected?
It should show a correct page
What is actually happening?
I got "URIError: URI malformed" error

I opened a PR to fix that issue. Can you check it please ? https://github.com/vuejs/vue-router/pull/3213/files

Friendly heads up that we're running into this issue over here in GitLab.
https://gitlab.com/gitlab-org/gitlab/-/issues/233878#note_401932109
Removing decodeURI from getLocation fixes it, but this function seems to be used in a lot of places, so I'm not sure what the consequences of this is 🤔
--- node_modules/vue-router/dist/vue-router.esm.orig.js	2020-08-25 13:49:56.000000000 -0500
+++ node_modules/vue-router/dist/vue-router.esm.js	2020-08-25 13:46:16.000000000 -0500
@@ -2207,7 +2207,7 @@
 }(History));

 function getLocation (base) {
-  var path = decodeURI(window.location.pathname);
+  var path = window.location.pathname;
   if (base && path.indexOf(base) === 0) {
     path = path.slice(base.length);
   }


[BUG] Commission failed after PASE_Pake2

Reproduction steps
Currently I'm doing the commission process but got StatusReport event sent from APP while status goes after PASE_Pake2 event.
The states PASE_Pake1 and PASE_Pake2 passed successfully, then suppossily I should received the next PASE_Pake3 (0x24) event, but I don't.
I got StatusReport(0x40) and with the error message: "Received error (protocol code 2) during PASE process: 38",
#define CHIP_ERROR_INVALID_PASE_PARAMETER CHIP_CORE_ERROR(0x38)
What may be the problem? Is it because that some information are not correct as scanned QRCode?
I used the QRcode which found at ESP website, and I modified the PIV, VID, Discriminator, Passcode are all same as website presents.
https://docs.espressif.com/projects/esp-matter/en/main/esp32/developing.html#getting-the-repositories
And in device certificate I chose example DAC for temporary certificate file.
SetDeviceAttestationCredentialProvider(Examples::GetExampleDACProvider());
Please help for some advice.
Thanks.

What may be the problem?

If it's failing at Pake3, that sounds like the PASE initiator is having an issue with the Pake2 it got?  Do you have logs from that PASE initiator @kacj1234j ?

What may be the problem?

If it's failing at Pake3, that sounds like the PASE initiator is having an issue with the Pake2 it got? Do you have logs from that PASE initiator @kacj1234j ?

Very thanks for the reply.
What is the PASE initiator means?
I also trace on android APP log during comission, I saw an error message comes out "Failed to verify peer's MAC. This can happen when setup code is incorrect" when after recevied PAKE2 event.
Base on my knowns, the PASE process PBKDFParamRequest -> PKBDFParamResponse -> Pake1 -> Pake2, these steps will using Passcode (the configurable arguments for user) and do SPAKE+ algorithm to translate to a final key for generated a security channel. The algorithm should not be the root cause, so could the error is because of the Passcode?
Or did I just misunderstanding in these steps.
Thanks.
Regard.

@kacj1234j If you are using esp-matter repo (as per the documentation you've shared), then please file issue here and close this one.

I used the QRcode which found at ESP website, and I modified the PIV, VID, Discriminator, Passcode are all same as website presents.

If you have modified these parameters, I assume you are using the mfg_tool. There would be a QR code that will be generated corresponding to these parameters and that should be used instead of the QR code that is only applicable for the default examples

If you have modified these parameters, I assume you are using the mfg_tool. There would be a QR code that will be generated corresponding to these parameters and that should be used instead of the QR code that is only applicable for the default examples

Very thanks for the reply,
I'm developing the matter repo directly, but just using ESP's QRcode to test the comission.
I have not using mfg_tool yet to generate the QRcode, but I had modified the param define that same as ESP's QRcode.
Vendor ID:                   65521
ProductID:                   32768
Long discriminator:     3840 (0xf00)
Passcode:                    20202021
I'll try the mfg_tool.
But on the other hand to your mention, is becuase the issue..
'an error message comes out "Failed to verify peer's MAC. This can happen when setup code is incorrect" when after recevied PAKE2 event on CHIP-Tool APP log'
.. will rely not only passcode but also other parameters ? (like PID VIP Discriminator?)
I also trace in to the "Failed to verify peer's MAC..." log located, I found the problem is becuase the previous steps "MacVerify" the "MAC" is not equal with "compute_mac" (CHIPCryptoPALmbedTLS.cpp)
But I have no idea what might cause the problem? I don't think the problem is on the algorithm, but which will be?
Thanks.
Regard.

What is the PASE initiator means?

The thing that is trying to establish a PASE session.  In your case, the commissioner.

"Failed to verify peer's MAC. This can happen when setup code is incorrect"

Well, there is your issue.  What is the passcode the device is using?


Graph appearance

Transparency and FPS mouse controls implemented.

I'll close the PR since it's forked and un-mergeable. (Another PR is being prepared by @Taldops as a collab.)


[humble] Add time jump handler (#791)

Backport #791
This fixes a bug where displays are not reset properly when a ROS time jumps.

I'm not sure if marking an existing method as a Qt slot breaks API, let me know what you think. Technically, we could workaround it by just adding a new method, but it'd be nice to keep the change consistent with Rolling.

Seems reasonable to me.  @audrow What do you think?

Linux
Linux-aarch64
Windows


server: add a ptr method to display for ffi

Coverage decreased (-0.05%) to 52.125% when pulling eaecce52c203368f71f7d64c151eb3ba4f8a1ced on vberger:master into dd08050e169b881fcbb09c55a8970ea12b64b5db on Smithay:master.

Coverage decreased (-0.05%) to 52.125% when pulling 7770d7d3562978be8077fc09857c4892550733d7 on vberger:master into dd08050e169b881fcbb09c55a8970ea12b64b5db on Smithay:master.


CASSANDRA-11866 test repair works with -st -et and a column family sp…

…ecified

@knifewine can you review, please

checked that test fails prior to 11866 cassandra fix on 2.1, and passes after.
I don't have great depth with repair and its various options, but code looks fine to me.
+1

had a quick look at the patch and the repair side looks good too, so +1 from me as well :)

C* ticket is merged, so merging this


vtree_learner_tests fails when GPU avaiable

For some reason vtree_learner_test fails when CUDA is available even though the code does not seem to use GPU in that case.
The failure happens for the ":topdown" option.
$ julia --project=test test/structurelearner/vtree_learner_tests.jl
prob circuit structure learn tests: Test Failed at C:\Users\Pasha\.julia\dev\ProbabilisticCircuits\test\structurelearner\vtree_learner_tests.jl:10
  Expression: variable(v) == partition
   Evaluated: 0x00000007 == 2
Stacktrace:

It does not fail on a machine with CUDA not enabled, but in the test the data is always on CPU and don't see anywhere that GPU would be used.

seems to be fine now


Example in README has mistake

I believe first example in readme has an uncompilable code and mistake in next line:
let rendered = try environment.renderTemplate(name: context)

Sorry, I was on tag 0.9 :)


Onboarding Virginia

Virginia attended the Intro to Prime session with Sparkle, so I've created this ticket to start tracking work for them once they complete our intake form.
fysa: @Adrian-Brewster @jlusds

closing will create a new one when VA onboards


Implement getElementsByTagName for Document and DOMElement

Mostly copied from the implementation of getElementsByClassName. Adds childNodes to Document since it was missing and needed here too

lgtm.

Thanks!


Correct eslint-path-formatter usage within README

As stated in https://github.com/Bartvds/eslint-path-formatter/issues/2 the correct usage of the eslint-path-formatter plugin is .pipe(eslint.format('node_modules/eslint-path-formatter'));.

Thanks for catching that!
The following also works:
eslint.format(require('eslint-path-formatter'))


rename to ember-form-objects

…as "ember-form-object" is already taken

I'm not actually sure "ember-form-objects" is a great name as it's so similiar to the already existing "ember-form-object" which might confuse people. We could rename this to e.g. "ember-form-buffer" instead.
/cc @simplabs/devs

👍 on ember-form-buffer.

Closing this as renaming the addon would actually be a pretty big pain for many people.


chore: fix minified templates in release

Currently the html-minifier minifies the attributes in a non-case sensitive way and this breaks the templates in the releases.

@jelbourn This one should be very important for releases, because right now the templates in the releases are broken.

@jelbourn Oh my bad. I oversaw the caseSensitive property and only added the removeComments option.


SA1313: Parameter '__' must begin with lower-case letter.

I'm aware of #1606 and noticed in that issue it says that it should be fixed for 1.1.118. On my project I encourage people to create new issues for old bugs so doing the same here.
This seems to be happening in 1.1.118
So an example where it is happening is
            var viewLoaded = Observable.FromEvent<RoutedEventHandler, bool>(
                eventHandler =>
                {
                    void Handler(object _, RoutedEventArgs __) => eventHandler(true);
                    return Handler;
                },
                x => fe.Loading += x,
                x => fe.Loading -= x);

This is using a dependency on System.Reactive and it's event observable converters.

Attached is a small sample repo with the problem
StylecopExample.zip

📝 It's possible this is related to the use of local functions.

Same for me, for the single-underscore discard. (using 1.1.118)

@sharwell
This happens for me on discarded method parameter:
public class ZXC
{
///
/// test.
///
///
///
public Task<IEnumerable> HandleAsync(Foo _)
{
throw new System.NotImplementedException();
}
}
`
No use of local functions at all.
Version <IP_ADDRESS>1 (Unstable)

discarded method parameter

Method parameters cannot be discards. The recommended approach in this case is to give the parameter a proper name, and then assign it to a discard on the first line:
public Task<IEnumerable<Bar>> HandleAsync(Foo value)
{
  _ = value;

  throw new System.NotImplementedException();
}

Note that C# 9 now supports multiple explicit discards for lambdas.

Since the discussion on #2599 was closed as won't fix. What are we doing with this one?
I was going to fix it but I see we are explicitly only allowing this for lambdas? Should we allow it for local functions too? Or should we be consistent and only allow it for lambdas?
Current behaviour
Not allowed
public void MethodName(int __)
{
}

Not allowed
public void TestMethod()
{
    void Handler(object _, EventArgs __)
    {
    }

    EventHandler handler = Handler;
    handler(this, EventArgs.Empty);
}

Allowed
public void MethodName()
{
    System.Func<int, int> function1 = __ => __;
     System.Func<int, int> function2 = (__) => __;
     System.Func<int, int> function3 = delegate(int __) { return __; };
}

@DavidMartynWood if the whole point is to use discards, why not use single underscore which is also understood by the compiler?
Am I missing something here?

This is tagged bug and up for grabs, is that correct? Personally, I would rather like to see local functions treated just like normal methods, i.e. requiring proper parameter names, and allowing _ and __ only in lambdas. That would be just like it is implemented today, if I am not mistaken. Do you want to allow underscore parameters in local functions, @sharwell?

@DavidMartynWood if the whole point is to use discards, why not use single underscore which is also understood by the compiler? Am I missing something here?

I do not know, I just commented on this ticket to see if it was an easy fix for myself to implement. It does seem to have limited use cases so maybe we should close it.

Nice to meet you, @sharwell

💡 Note that C# 9 now supports multiple explicit discards for lambdas.

In #2645, we allowed __ but ___ becomes SA1313.
Considering the readability of _,
System.Action<int> action = __ => { };

should be
System.Action<int> action = _ => { };

but the fact that a single __ is allowed is contradictory.
The issue with lambda expression parameter names can be resolved by allowing the following three options:

All _

System.Action<int, int, int> action = (_, _, _) => { };

Increasing from _ by one character

System.Action<int, int, int> action = (_, __, ___) => { };

Single __ is not allowed

System.Action<int> action = __ => { };

What do you think?

Although it was decided not to fix it in #2599, since there is an exception rule for _ in SA1313, we think that it can be resolved by allowing parameters starting with _ as an exception when they are unused, in response to IDE0060 in SA1313.

Exception rule:

Since _ in method parameter names can be used as variables, the naming convention prioritizes unused intent and allows unused parameter names starting with _.
However, to prioritize simple code, explicit discarding is not allowed.
In the case where parameter names start with _ and increase by one character at a time.


How Can I My chia plots on silicoin program ?

How can I add my chia plots on silicoin program ??  silicoin program not saw chia plots. says : error ???
help

I was created only 1 silicoin plot. program is identify only 1 silicoin plot and harvest, but not identify chia plots. that chia plots my plots and legal chia plots. (I have only x58 chia plot)
PLS help.

sorry for flood but antyone not help me..
I have 2 more seed code in chia program. And  I added that seed codes in silicoin program.
now. I will try plotting with that old seeds. maybe after silicoin program will identify my chia plots ?  is it a good idea ???
pls answer ladys and gentlemans. help

anyone here ???   have an idea ?

Firstly, check if you're already fully synced.
There's port conflict issue right now VS cactus-blockchain.
Either:
1.) Make sure that you're not farming also cactus
2.) Change the conflicting ports on C:\Users%username%.sit\mainnet\config\config.yaml
If it's all synced up and running, your problem next is on getting your plots recognized, riight?
Firstly, Make sure you aren't running hpool app, it conflicts with multi-farming.
If you must use hpool, shut it down first, then have your plots recognized before running it again.
To add plots:
1.) Go to plots module
2.) Click the 3-dots option on the upper right corner of the UI
3.) Select "Add plot directory"
4.) Add the correct directory where your plots are located
5.) Wait around 5minutes and click refresh. It should work
6.) If it doesn't, restart the UI and try again. It worked for most of us, so it should work on yours.

thanks.ı fixed that problem.  now my problem zero balance :))  I have 3 keys. must a choose 1 key and full time farming only 1 keys ?  I choosen my 3.rd key and farming now. tomorow i will check again balance.

Well, don't get too comfy with your current installation.
Vote is out, they intend to restart mainnet
Be on the lookout for a new installer popping out soon ;)

farming from 2 days but not balance.   only zero.

Have you updated to the latest version?


Using with Swift?

anyone used this in a swift project recently and successfully?

You can use. https://github.com/dchirita/LastFMSwift


Touchpad text selection + context menu glitch in Google Chrome

Bug or Regression?
Bug
System Info and Version
 System/Version info
Hyprland, built from branch  at commit 9e781040d9067c2711ec2e9f5b47b76ef70762b3  (props: bump version to 0.41.1).
Date: Thu Jun 13 09:54:06 2024
Tag: v0.41.1, commits: 4818

flags: (if any)

System Information:
System name: Linux
Node name: asus.spjz.uk
Release: 6.9.4-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Wed, 12 Jun 2024 20:17:17 +0000

GPU information:
00:02.0 VGA compatible controller [0300]: Intel Corporation GeminiLake [UHD Graphics 600] [8086:3185] (rev 06) (prog-if 00 [VGA controller])
	DeviceName: VGA

os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

plugins:

======Config-Start======

Config File: /home/spjz/.config/hypr/hyprland.conf: Read Succeeded
# nwg-shell Hyprland config file
#
# The nwg-shell-config utility generates a part of settings for you:
# General, Input devices, Touchpad, Dwindle layout, Master layout.
# Decoration, animations, gestures and per-device config are left to be configured by yourself.
# Refer to the Hyprland wiki at https://wiki.hyprland.org for more information.

#
# Monitors & workspaces: nwg-displays generates 2 files, which we include here:
#
source = $XDG_CONFIG_HOME/hypr/monitors.conf
source = $XDG_CONFIG_HOME/hypr/workspaces.conf

#
# Autostart. Feel free to add your own entries.
# Shell components will be started in the includes.conf file, which we include below.
#
exec = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = $HOME/.azotebg-hyprland # Wallpaper
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP HYPRLAND_INSTANCE_SIGNATURE
exec = hyprshade auto

#
# Include settings generated by nwg-shell-config
#
source = $XDG_CONFIG_HOME/hypr/includes.conf

#
# All the settings below are up to you. We don't touch them in the shell config utility.
#

# Some default env vars.t
env = XCURSOR_SIZE,20
env = GDK_BACKEND,wayland,x11,*
env = QT_QPA_PLATFORM,wayland;xcb
env = SDL_VIDEODRIVER,wayland
env = CLUTTER_BACKEND,wayland
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland

decoration {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
    rounding = 5
    blur {
         enabled = true
         size = 3
         passes = 1
         new_optimizations = true
    }

    drop_shadow = true
    shadow_range = 4
    shadow_render_power = 3
    col.shadow = rgba(1a1a1aee)
}

animations {
    enabled = true

    # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
    bezier = myBezier, 0.05, 0.9, 0.1, 1.05

    animation = windows, 1, 7, myBezier
    animation = windowsOut, 1, 7, default, popin 80%
    animation = border, 1, 10, default
    animation = borderangle, 1, 8, default
    animation = fade, 1, 7, default
    animation = workspaces, 1, 6, default
}

gestures {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
    workspace_swipe = true
}

plugin {
    hyprwinwrap {
        class = projectMSDL
    }
    overview {
        panelHeight = 100
    }
}

# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
# device:epic-mouse-v1 {
#     sensitivity = -0.5
# }

# Wwindowrule v2
windowrulev2 = float,class:^(blueman-manager|azote|gnome-disks)$
windowrulev2 = float,class:^(pavucontrol|nm-connection-editor|gsimplecal|galculator)$
windowrulev2 = float,title:^(copying|deleting|moving)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more

# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER

# KEY BINDINGS, see https://wiki.hyprland.org/Configuring/Binds/ for more
# If you happen to change some key bindings, you may also edit ~/.local/share/nwg-shell-config/help-hyprland.pango

# We've defined $term, $editor and so on in includes.conf.
bind = $mainMod, W, exec, $browser
bind = $mainMod, E, exec, $editor
bind = $mainMod, X, exec, $exit
#bind = $mainMod, F, exec, $filemanager
bind = ALT, F1, exec, $launcher
bind = ALT, C, exec, nwg-clipman
bind = $mainMod, T, exec, $term
bind = $mainMod, F2, exec, $term

# Disable middle mouse paste
bind = , mouse:274, exec, ;

# Dropdown terminal
#bind = $mainMod, GRAVE, exec, hyprdrop kitty -i kitty-hyprdrop
#bind = $mainMod, GRAVE, exec, hdrop kitty -c kitty-hdrop
#windowrulev2 = float, class:^(kitty-hdrop)$
#windowrulev2 = size 100% 50%, class:^(kitty-hdrop)$
#windowrulev2 = move 0 40, class:^(kitty-hdrop)$
#windowrulev2 = workspace special:dropdown,class:^(kitty-hdrop)$

# Show/hide the dock, if started
bind = ALT, D, exec, pkill -10 nwg-dock

bind = $mainMod, L, exec, nwg-lock                  # screen locker, according to shell settings
bind = $mainMod, F1, exec, nwg-shell-help           # help window

bind = $mainMod, F, fullscreen
bind = $mainMod, I, pin
bind = $mainMod, C, killactive,
bind = ALT, Q, killactive,
bind = ALT, F4, killactive,
bind = $mainMod SHIFT, M, exit,
bind = $mainMod, Space, togglefloating,
bind = $mainMod, V, togglefloating,
bind = $mainMod SHIFT, C, exec, hyprctl reload      # reload Hyprland
bind = $mainMod SHIFT, Z, movetoworkspace, special  # move to the special workspace
bind = $mainMod, Z, togglespecialworkspace          # show/hide special workspace

bind = ALT, Tab, togglesplit,                       # (dwindle)
bind = $mainMod, P, pseudo,                         # (dwindle)
bind = $mainMod, A, layoutmsg, cycleprev            # (master)
bind = $mainMod, S, layoutmsg, swapwithmaster       # (master)
bind = $mainMod, D, layoutmsg, cyclenext            # (master)

# SCREENSHOT (/usr/local/bin/screenshot)
bind = , Print, exec, screenshot fullscreen                           # full screen
bind = CONTROL, Print, exec, screenshot display                       # focused display
bind = $mainMod SHIFT+CONTROL, Print, exec, screenshot focused        # focused window
bind = SHIFT+CONTROL, Print, exec, screenshot swappy                  # selected region -> swappy
# bind = SHIFT+CONTROL, Print, exec, screenshot region                # or selected region w/o swappy

# MOVE FOCUS with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d

# MOVE WINDOW with mainMod SHIFT + arrow keys
bind = $mainMod SHIFT, left, movewindow, l
bind = $mainMod SHIFT, right, movewindow, r
bind = $mainMod SHIFT, up, movewindow, u
bind = $mainMod SHIFT, down, movewindow, d

# SWITCH WORKSPACES with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10

# MOVE ACTIVE WINDOW TO A WORKSPACE with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10

# SCROLL THROUGH EXISTING WORKSPACES with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1

# MOVE/RESIZE WINDOWS with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

# Media keys
bindl=, XF86AudioPlay, exec, playerctl play-pause
bindl=, XF86AudioNext, exec, playerctl next
bindl=, XF86AudioPrev, exec, playerctl previous
bindl=, XF86AudioStop, exec, playerctl stop

# Output volume and toggle mute
bindel=, XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise
bindel=, XF86AudioLowerVolume, exec, swayosd-client --output-volume lower
bindl=, XF86AudioMute, exec, swayosd-client --output-volume mute-toggle
# Input volume toggle mute
bindl=, XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle
# Capslock
bindl=, Caps_Lock, exec, swayosd-client --caps-lock
# Display brightness
bindel=, XF86MonBrightnessUp, exec, swayosd-client --brightness raise
bindel=, XF86MonBrightnessDown, exec, swayosd-client --brightness lower

# LAPTOP
#bindl=, switch:lid:on, output, eDP-1 disable
#bindl=, switch:lid:off, output, eDP-1 enable

Config File: /home/spjz/.config/hypr/monitors.conf: Read Succeeded
# Generated by nwg-displays on 2024-06-12 at 10:36:08. Do not edit manually.

monitor=eDP-1,1366x768@60.0,0x0,1.0

Config File: /home/spjz/.config/hypr/workspaces.conf: Read Succeeded

Config File: /home/spjz/.config/hypr/includes.conf: Read Succeeded
# This content was generated by nwg-shell-config. Do not modify it manually.

# VARIABLES
$term = kitty
$browser = /usr/bin/google-chrome-stable --ozone-platform-hint=auto --ozone-platform=wayland --enable-features=UseOzonePlatform,TouchpadOverscrollHistoryNavigation,VaapiVideoDecodeLinuxGL,VaapiVideoDecoder
$filemanager = lf
$editor = helix
$launcher = nwg-drawer
$exit = nwg-bar -t hyprland.json -p center -a middle -i 48 -s hyprland-1.css

# AUTOSTART
exec-once = rm /tmp/nwg-shell-check-update.lock
exec-once = wlsunset -t 4500 -T 6500 -l 51.5022 -L -0.1779 -g 1.0
exec-once = swaync -c /home/spjz/.config/swaync/hyprland.json -s /home/spjz/.config/swaync/hyprland-1.css
exec-once = nm-applet --indicator
exec-once = wl-paste --type text --watch cliphist store
exec-once = wl-paste --type image --watch cliphist store
exec = nwg-drawer -r -c 6 -is 64 -fscol 2 -ovl -g Tokyonight-Dark -i palenight -s hyprland-1.css -term kitty -ft -wm hyprland -pbexit 'nwg-dialog -p exit-hyprland -c "hyprctl dispatch exit"' -pblock 'nwg-lock' -pbpoweroff 'nwg-dialog -p poweroff -c "systemctl -i poweroff"' -pbreboot 'nwg-dialog -p reboot -c "systemctl reboot"' -pbsleep 'nwg-dialog -p sleep -c "systemctl suspend"' -pbsize 48
exec = nwg-panel -c hyprland-1 -s hyprland-1.css
exec = nwg-shell-check-updates
exec-once = nwg-update-indicator
exec = nwg-screenshot-applet

# GENERAL SETTINGS
general {
    border_size = 1
    no_border_on_floating = false
    gaps_in = 2
    gaps_out = 2
    col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
    col.inactive_border = rgba(595959aa)
    layout = dwindle
    resize_on_border = true
    extend_border_grab_area = true
    hover_icon_on_border = true
}

# DWINDLE LAYOUT
dwindle {
    pseudotile = false
    force_split = 0
    preserve_split = true
    smart_split = false
    smart_resizing = true
    special_scale_factor = 0.8
    split_width_multiplier = 1.0
    no_gaps_when_only = false
    use_active_for_splits = true
    default_split_ratio = 1.0
}

# MASTER LAYOUT
master {
    allow_small_split = false
    special_scale_factor = 0.8
    mfact = 0.55
    new_is_master = true
    new_on_top = false
    no_gaps_when_only = true
    orientation = left
    inherit_fullscreen = true
    always_center_master = false
}

# INPUT DEVICES
input {
    kb_layout = gb
    repeat_rate = 25
    repeat_delay = 600
    follow_mouse = 1
    mouse_refocus = true
    float_switch_override_focus = 1
    touchpad {
        disable_while_typing = true
        natural_scroll = true
        scroll_factor = 1.0
        middle_button_emulation = true
        clickfinger_behavior = true
        tap-to-click = true
    }
}

# MISC SETTINGS
misc {
    disable_hyprland_logo = true
    disable_splash_rendering = true
    vrr = 0
    mouse_move_enables_dpms = true
    key_press_enables_dpms = true
    layers_hog_keyboard_focus = true
    focus_on_activate = true
    mouse_move_focuses_monitor = true
}

# KEY BINDINGS
bindr = SUPER, SUPER_L, exec, $launcher

======Config-End========

Description
I frequently initiate this input glitch in Google Chrome, whilst using my laptop's touchpad. It seems to be related to a conflict of input gestures.
How to reproduce
Using the trackpad in Google Chrome, whilst selecting text with one finger, initiate a two finger tap to open the context menu, then cancel with another tap. The menu may appear briefly but the current browser tab loses interactivity with no way to recover.
Crash reports, logs, images, videos
No response

Just found it is even easier to replicate this by simply dragging a youtube thumbnail image, and dropping it anywhere on the page. No further click events become possible on the tab.

Probably related to https://github.com/hyprwm/Hyprland/issues/6509

It was fixed. 2031af82fa029aa098357339d502b53c371919d4

It should be fixed. 2031af8

Nice one. Tested in hyprland-git 41.2, issue is indeed fixed 👍🏻


slow query during cve ingestion

During cve ingestion we are hitting a query a few times (1155 times) that is unusually slow.
| 1155  |<PHONE_NUMBER>8008635  | SELECT COUNT(*) AS num_items FROM (SELECT "qualified_purl"."id", "qualified_purl"."ver
sioned_purl_id", "qualified_purl"."qualifiers" FROM "qualified_purl" LEFT JOIN "versioned_purl" ON "qualified_purl"."versioned_purl_id" = "versioned_purl"."id" WHERE "versioned_purl"."base_purl_id" IN (SELECT "base_purl"."id" FROM "base_purl")) AS "sub_query"                                                                                |

it is deceptively simple with a rather more complicated query plan then expected.
SELECT COUNT(*) AS num_items FROM (SELECT "qualified_purl"."id", "qualified_purl"."versioned_purl_id", "qualified_purl"."qualifiers" FROM "qualified_purl" LEFT JOIN "versioned_purl" ON "qualified_purl"."versioned_purl_id" = "versioned_purl"."id" WHERE "versioned_purl"."base_purl_id" IN (SELECT "base_purl"."id" FROM "base_purl")) AS "sub_query"

here is the query plan
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| QUERY PLAN                                                                                |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Finalize Aggregate  (cost=14100.77..14100.78 rows=1 width=8) (actual time=88.354..92.882 rows=1 loops=1)                                                                         |
|   ->  Gather  (cost=14100.55..14100.76 rows=2 width=8) (actual time=86.971..92.876 rows=3 loops=1)                                                                               |
|         Workers Planned: 2                                                                                |
|         Workers Launched: 2                                                                                |
|         ->  Partial Aggregate  (cost=13100.55..13100.56 rows=1 width=8) (actual time=84.596..84.599 rows=1 loops=3)                                                              |
|               ->  Parallel Hash Join  (cost=7801.17..12759.04 rows=136607 width=0) (actual time=33.212..81.760 rows=109286 loops=3)                                              |
|                     Hash Cond: (versioned_purl.base_purl_id = base_purl.id)                                                                                |
|                     ->  Parallel Hash Join  (cost=6683.01..11282.26 rows=136607 width=16) (actual time=29.573..62.632 rows=109286 loops=3)                                       |
|                           Hash Cond: (qualified_purl.versioned_purl_id = versioned_purl.id)                                                                                |
|                           ->  Parallel Index Only Scan using by_pvid on qualified_purl  (cost=0.42..4241.08 rows=136607 width=16) (actual time=0.026..5.534 rows=109286 loops=3) |
|                                 Heap Fetches: 0                                                                                |
|                           ->  Parallel Hash  (cost=4666.15..4666.15 rows=161315 width=32) (actual time=28.856..28.857 rows=91412 loops=3)                                        |
|                                 Buckets: 524288  Batches: 1  Memory Usage: 21312kB                                                                                |
|                                 ->  Parallel Seq Scan on versioned_purl  (cost=0.00..4666.15 rows=161315 width=32) (actual time=0.011..7.506 rows=91412 loops=3)                 |
|                     ->  Parallel Hash  (cost=806.44..806.44 rows=24938 width=16) (actual time=3.329..3.329 rows=19950 loops=3)                                                   |
|                           Buckets: 65536  Batches: 1  Memory Usage: 3360kB                                                                                |
|                           ->  Parallel Index Only Scan using package_pkey on base_purl  (cost=0.41..806.44 rows=24938 width=16) (actual time=0.020..0.990 rows=19950 loops=3)    |
|                                 Heap Fetches: 0                                                                                |
| Planning Time: 0.436 ms                                                                                |
| Execution Time: 92.927 ms                                                                                |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

The parallel seqscan looks suspect though we probably want to nudge the query planner to not aggregate ... investigating

Where is that query coming from? I doubt that number is actually required.

yes, currently trying to figure out why during ingestion a count is needed

This query is significantly faster (10x) if we drop the WHERE condition:
'''
SELECT COUNT(*) AS num_items FROM (SELECT "qualified_purl"."id", "qualified_purl"."versioned_purl_id", "qualified_purl"."qualifiers" FROM "qualified_purl" LEFT JOIN "versioned_purl" ON "qualified_purl"."ver
sioned_purl_id" = "versioned_purl"."id" ) AS "sub_query"
'''
can we not make the assumption that everything in versioned_purl has an entry in base_purl ?

found the source of this ... its a classic postgres count issue buried in sea_orm paginator
sea-orm-1.0.0/src/executor/paginator.rs#68

    pub async fn num_items(&self) -> Result<u64, DbErr> {
        let builder = self.db.get_database_backend();
        let stmt = SelectStatement::new()
            .expr(Expr::cust("COUNT(*) AS num_items"))
            .from_subquery(
                self.query
                    .clone()
                    .reset_limit()
                    .reset_offset()
                    .clear_order_by()
                    .to_owned(),
                Alias::new("sub_query"),
            )
            .to_owned();

We could rewrite this sql differently and/or add some indexes but it will not result in a magnitude change in performance eg. I tested and got about 20% better (not worth the trade off ... more indexes, complexity) - historically the way to fix counts is to
FWIW A good (though old) article on pg counts = https://www.citusdata.com/blog/2016/10/12/count-performance/

conversations with @ctron - we should optimise calls to any service that does not need counts, so keeping this issue open for now.

update: after some significant (and frustrating) retesting on latest ... I was finally able to reproduce poorly performing query as reported though this was only after loading a database dump and forgetting to run VACUUM ANALYZE (and reindex database trustify).
In normal operation the worst cases are not bad at all (and usually resolved by normal autovacuum) - certainly not worth the code churn ... I now think that we have fixed some of the problems in this area as well as clarifying that the bad performance was being observed in a narrow scenario.
At 'gigantic' scales we might consider replacing sea_orm num_item with postgres estimates and presumably that would be a PR against sea_orm ... defo not needed right now.


Have you seen hkgr?

Maybe yours does more, but you may want to have a look at juhp/hkgr too.
Perhaps it could be linked in prior art?

Hey @juhp, I knew someone will pop up that the tool already exists :) Feel free to open a PR to add it there.


Add unique identifier to each candidate

This will be useful for client/server communication, so we can easily identify which candidate we are talking about.

Done in branch server_client.


onRowClick not available to CustomRowComponent

I have create a CustomRowComponent and when trying to access the props.onRowClick inside CustomRowComponent it's not available.
<Griddle onRowClick={this.handleClick} useCustomRowComponent={true}  customRowComponent={MyCustomRowComponent} />

var MyCustomRowComponent = React.createClass({
      getDefaultProps: function(){
        return { "data": {} ,
        "onRowClick": null
        };
      },
      handleChange: function(e){
        this.props.onRowClick(this, e);
      }
}
);

This where it fails with error Uncaught TypeError: this.props.onRowClick is not a function

Hi there and sorry about the delay! We've recently released Griddle 1.0 and have added quite a bit more options around customization. Please see the latest customization documentation for more information. Closing this one for now but please feel free to open a new issue if any problems are encountered. :+1:


ruff: Build as a standalone without Python

Using buildPythonPackage make ruff propagate the Python used for the build, which might not be the same Python as you want in your development shell.
https://github.com/NixOS/nixpkgs/pull/350654 changed the ruff top-level attribute to be built with Python modules. This doesn't actually make much sense, we have versioned Python sets, and including just the one Python in the top-level package isn't helpful, and causes issues downstream related to PATH & PYTHONPATH.
See my related uv PR.

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

If the purpose is to strip off propagation, you can do so in your nix-shell:
let
  pkgs = import <nixpkgs> {};
  ruff = pkgs.runCommandNoCC "ruff" {} ''
    mkdir -p $out/bin
    ln -s ${pkgs.ruff}/bin/ruff $out/bin
  '';

in
  pkgs.mkShell {
    buildInputs = [ ruff  ];
}

$ nix-shell --command 'env| grep -i python'
$

If the purpose is to strip off propagation, you can do so in your nix-shell

But this should be the default behaviour, don't you think?

@baloo Well, you have to start somewhere. Starting with popular packages that matter to you seems an apt strategy?

Well, the problem can be solved by using ruff.bin instead of ruff which doesn't bring in any python dependency or PYTHON_PATH (so you don't even need the runCommand wrapper like I suggested earlier).


kvssink dropping the first fragment

As part of a video processing service we are trying to convert video files and stream them to KVS using a Gstreamer pipeline. I noticed that the first fragment seems to be dropped. All other fragments are persisted and the video is streamed properly until the end.
Issue:
converter_1  | 2021-10-13 13:59:43 [139968396449536] DEBUG - Dropping frame with flag: 1088

The input video is an H.264 high profile (no audio)
Properties:
  Duration: 0:02:05.933333333
  Seekable: yes
  Live: no
  container: Quicktime
    video: H.264 (High Profile)
      Stream ID: b36022407935be5acbf0e5856717c64dc2f560097eb81696c9bffbecabecab2e/001
      Width: 640
      Height: 480
      Depth: 24
      Frame rate: 15/1
      Pixel aspect ratio: 1/1
      Interlaced: false
      Bitrate: 1553807
      Max bitrate: 2097152

After much experimentation I noticed that the issue of dropping the first fragment does not appear if the H.264 profile is "constrained-baseline". I couldn't find any documentation on the profile support regarding H.264 streams in kvssink. Unfortunately if we need to re-convert to change the profile, that would mean a lot of re-encoding on our part so we'd like to make sure this isn't a simple issue with the pipeline which is:  pipeline filesrc location=TEST.MP4 ! qtdemux ! video/x-h264 ! h264parse ! kvssink stream-name=testStream access-key=XXXX secret-key=XXXX storage-size=512 aws-region="us-east-1"
Side-question: I though I could maybe seek back to the beginning of the pipeline upon detection of a stream format changed. But I couldn't find any callback to do so... Is there one that I missed ? ?
Full log:
converter_1  | 2021-10-13 13:59:43,302 INFO  [http-nio-8085-exec-1] ca.ino.videoconverter.gstreamer.service.GStreamerLibraryWrapper: createPipeline pipeline filesrc location=TEST.MP4 ! qtdemux ! video/x-h264 ! h264parse ! kvssink stream-name=testStream access-key=XXXX secret-key=XXXX storage-size=512 aws-region="us-east-1"
converter_1  | 2021-10-13 13:59:43,308 INFO  [http-nio-8085-exec-1] ca.ino.videoconverter.gstreamer.service.GStreamerLibraryWrapper: Running pipeline pipeline1
converter_1  | log4cplus:ERROR could not open file ./kvs_log_configuration
converter_1  | INFO - createKinesisVideoClient(): Creating Kinesis Video Client
converter_1  | 2021-10-13 13:59:43 [139970020898560] INFO - heapInitialize(): Initializing native heap with limit size 536870912, spill ratio 0% and flags 0x00000001
converter_1  | 2021-10-13 13:59:43 [139970020898560] INFO - heapInitialize(): Creating AIV heap.
converter_1  | 2021-10-13 13:59:43 [139970020898560] INFO - heapInitialize(): Heap is initialized OK
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - stepStateMachine(): State Machine - Current state: 0x0000000000000001, Next state: 0x0000000000000002
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - getSecurityTokenHandler invoked
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - Refreshing credentials. Force refreshing: 0 Now time is:<PHONE_NUMBER>310593400 Expiration: 0
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - stepStateMachine(): State Machine - Current state: 0x0000000000000002, Next state: 0x0000000000000010
converter_1  | 2021-10-13 13:59:43 [139970020898560] INFO - createDeviceResultEvent(): Create device result event.
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - stepStateMachine(): State Machine - Current state: 0x0000000000000010, Next state: 0x0000000000000040
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - clientReadyHandler invoked
converter_1  | 2021-10-13 13:59:43 [139970020898560] INFO - try creating stream
converter_1  | 2021-10-13 13:59:43 [139970020898560] INFO - Creating Kinesis Video Stream testStream
converter_1  | 2021-10-13 13:59:43 [139970020898560] INFO - createKinesisVideoStream(): Creating Kinesis Video Stream.
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): Kinesis Video Stream Info
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Stream name: testStream
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Streaming type: STREAMING_TYPE_REALTIME
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Content type: video/h264
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Max latency (100ns): 600000000
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Fragment duration (100ns): 20000000
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Key frame fragmentation: Yes
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Use frame timecode: Yes
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Absolute frame timecode: Yes
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Nal adaptation flags: 0
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Average bandwith (bps): 4194304
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Framerate: 25
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Buffer duration (100ns):<PHONE_NUMBER>
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Replay duration (100ns): 400000000
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Connection Staleness duration (100ns): 600000000
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Store Pressure Policy: 1
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	View Overflow Policy: 1
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Segment UUID: NULL
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Frame ordering mode: 0
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): Track list
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Track id: 1
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Track name: kinesis_video
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Codec id: V_MPEG4/ISO/AVC
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Track type: TRACK_INFO_TYPE_VIDEO
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - logStreamInfo(): 	Track cpd: NULL
converter_1  | 2021-10-13 13:59:43 [139970020898560] DEBUG - stepStateMachine(): State Machine - Current state: 0x0000000000000001, Next state: 0x0000000000000002
converter_1  | 2021-10-13 13:59:43 [139970020898560] INFO - writeHeaderCallback(): RequestId: 8a480f80-d5a4-4ab1-9c26-60c724cbfd15
converter_1  | 2021-10-13 13:59:43 [139968065632000] DEBUG - describeStreamCurlHandler(): DescribeStream API response: {"StreamInfo":{"CreationTime":1.634127031829E9,"DataRetentionInHours":2,"DeviceName":"Kinesis_Video_Device","IngestionConfiguration":null,"KmsKeyId":"HIDDEN","MediaType":"video/h264","Status":"ACTIVE","StreamARN":"HIDDEN,"StreamName":"testStream","Version":"vknrmIbEnjn421jKiK01"}}
converter_1  | 2021-10-13 13:59:43 [139968065632000] INFO - describeStreamResultEvent(): Describe stream result event.
converter_1  | 2021-10-13 13:59:43 [139968065632000] DEBUG - stepStateMachine(): State Machine - Current state: 0x0000000000000002, Next state: 0x0000000000000020
converter_1  | 2021-10-13 13:59:43 [139968065632000] INFO - writeHeaderCallback(): RequestId: 0a358255-891e-44cd-8b87-1bbe969664c5
converter_1  | 2021-10-13 13:59:43 [139968074024704] DEBUG - getStreamingEndpointCurlHandler(): GetStreamingEndpoint API response: {"DataEndpoint":"HIDDEN"}
converter_1  | 2021-10-13 13:59:43 [139968074024704] INFO - getStreamingEndpointResultEvent(): Get streaming endpoint result event.
converter_1  | 2021-10-13 13:59:43 [139968074024704] DEBUG - stepStateMachine(): State Machine - Current state: 0x0000000000000020, Next state: 0x0000000000000010
converter_1  | 2021-10-13 13:59:43 [139968074024704] DEBUG - getStreamingTokenHandler invoked
converter_1  | 2021-10-13 13:59:43 [139968074024704] DEBUG - Refreshing credentials. Force refreshing: 1 Now time is:<PHONE_NUMBER>639307300 Expiration:<PHONE_NUMBER>3709551615
converter_1  | 2021-10-13 13:59:43 [139968074024704] INFO - getStreamingTokenResultEvent(): Get streaming token result event.
converter_1  | 2021-10-13 13:59:43 [139968074024704] DEBUG - stepStateMachine(): State Machine - Current state: 0x0000000000000010, Next state: 0x0000000000000040
converter_1  | 2021-10-13 13:59:43 [139968074024704] DEBUG - streamReadyHandler invoked
converter_1  | 2021-10-13 13:59:43 [139968074024704] Stream is ready
converter_1  | INFO - kinesisVideoStreamFormatChanged(): Stream format changed.
converter_1  | 2021-10-13 13:59:43 [139968396449536] DEBUG - Dropping frame with flag: 1088
converter_1  | 2021-10-13 13:59:43 [139968396449536] DEBUG - stepStateMachine(): State Machine - Current state: 0x0000000000000040, Next state: 0x0000000000000080
converter_1  | 2021-10-13 13:59:43 [139968396449536] INFO - putStreamResultEvent(): Put stream result event. New upload handle 0
converter_1  | 2021-10-13 13:59:43 [139968396449536] DEBUG - stepStateMachine(): State Machine - Current state: 0x0000000000000080, Next state: 0x0000000000000100
converter_1  | 2021-10-13 13:59:43 [139968396449536] DEBUG - Kinesis Video client and stream metrics
converter_1  | 	>> Overall storage byte size: 536870912
converter_1  | 	>> Available storage byte size: 536819042
converter_1  | 	>> Allocated storage byte size: 51870
converter_1  | 	>> Total view allocation byte size: 144080
converter_1  | 	>> Total streams elementary frame rate (fps): 25
converter_1  | 	>> Total streams transfer rate (bps): 33554432 (32768 Kbps)
converter_1  | 	>> Current view duration (ms): 0
converter_1  | 	>> Overall view duration (ms): 0
converter_1  | 	>> Current view byte size: 51822
converter_1  | 	>> Overall view byte size: 51822
converter_1  | 	>> Current elementary frame rate (fps): 25
converter_1  | 	>> Current transfer rate (bps): 33554432 (32768 Kbps)
converter_1  | 2021-10-13 13:59:43 [139968396449536] DEBUG - Kinesis Video client and stream metrics
converter_1  | 	>> Overall storage byte size: 536870912
converter_1  | 	>> Available storage byte size: 534697393
converter_1  | 	>> Allocated storage byte size: 2173519
converter_1  | 	>> Total view allocation byte size: 144080
converter_1  | 	>> Total streams elementary frame rate (fps): 50
converter_1  | 	>> Total streams transfer rate (bps): 33554432 (32768 Kbps)
converter_1  | 	>> Current view duration (ms): 10000
converter_1  | 	>> Overall view duration (ms): 10000
converter_1  | 	>> Current view byte size: 2161471
converter_1  | 	>> Overall view byte size: 2161471
converter_1  | 	>> Current elementary frame rate (fps): 25
converter_1  | 	>> Current transfer rate (bps): 33554432 (32768 Kbps)
converter_1  | 2021-10-13 13:59:43 [139968396449536] DEBUG - Kinesis Video client and stream metrics
converter_1  | 	>> Overall storage byte size: 536870912
converter_1  | 	>> Available storage byte size: 532583123
converter_1  | 	>> Allocated storage byte size: 4287789
converter_1  | 	>> Total view allocation byte size: 144080
converter_1  | 	>> Total streams elementary frame rate (fps): 75
converter_1  | 	>> Total streams transfer rate (bps): 33554432 (32768 Kbps)
converter_1  | 	>> Current view duration (ms): 20000
converter_1  | 	>> Overall view duration (ms): 20000
converter_1  | 	>> Current view byte size: 4263741
converter_1  | 	>> Overall view byte size: 4263741
converter_1  | 	>> Current elementary frame rate (fps): 25
converter_1  | 	>> Current transfer rate (bps): 33554432 (32768 Kbps)
converter_1  | 2021-10-13 13:59:43 [139968396449536] INFO - stopKinesisVideoStreamSync(): Synchronously stopping Kinesis Video Stream 00007f4d40561ac8.
converter_1  | 2021-10-13 13:59:43 [139968396449536] INFO - writeHeaderCallback(): RequestId: e07bee5b-3b70-35a7-b99b-06d4beec0ca3
converter_1  | 2021-10-13 13:59:43 [139968074024704] DEBUG - postReadCallback(): Wrote 65524 bytes to Kinesis Video. Upload stream handle: 0
converter_1  | 2021-10-13 13:59:43 [139968074024704] DEBUG - postReadCallback(): Wrote 65524 bytes to Kinesis Video. Upload stream handle: 0

My bad... You are pulling the latest C++ in this case, entirely forgot that C++ SDK has a slightly different printout than the C SDK https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/src/KinesisVideoStream.cpp#L43
@disa6302 @hassanctech do you have the exact instructions on how to dump the stream in debug mode? There was a flag that I can't quite remember what it was.
@twistdmnd you might want to inspect what your source is and how it's produced. In general, any stream (or a fragment) should start with an Idr for KVS SDK to be able to "fragment" and upload.


ImportError on running ./migrate.py on Netbox 4.0

As per the installation guide, it is required to create DB tables:
./manage.py migrate validity
Running this on Netbox 4.0 outputs the following
Traceback (most recent call last):
  File "/opt/netbox/netbox/./manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/opt/netbox/venv/lib/python3.12/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
    utility.execute()
  File "/opt/netbox/venv/lib/python3.12/site-packages/django/core/management/__init__.py", line 416, in execute
    django.setup()
  File "/opt/netbox/venv/lib/python3.12/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/opt/netbox/venv/lib/python3.12/site-packages/django/apps/registry.py", line 124, in populate
    app_config.ready()
  File "/opt/netbox/venv/lib/python3.12/site-packages/validity/__init__.py", line 36, in ready
    return super().ready()
           ^^^^^^^^^^^^^^^
  File "/opt/netbox/netbox/netbox/plugins/__init__.py", line 115, in ready
    if template_extensions := self._load_resource('template_extensions'):
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/netbox/netbox/plugins/__init__.py", line 91, in _load_resource
    module = import_module(default_module)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/netbox/.pyenv/versions/3.12.3/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 995, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/opt/netbox/venv/lib/python3.12/site-packages/validity/template_content.py", line 3, in <module>
    from extras.plugins import PluginTemplateExtension
ImportError: cannot import name 'PluginTemplateExtension' from 'extras.plugins' (unknown location)

After checking the plugin migration guide to 4.0, I've spotted that imports need to be relocated from extras.plugins to netbox.plugins
Changing in template_content.py the import for PluginTemplateExtension to the correct one seems to have fixed the issue.
$ ./manage.py migrate validity
Operations to perform:
  Apply all migrations: validity
Running migrations:
  Applying validity.0010_squashed_initial... OK

I'm running on netbox-validity 2.3.0, which is the latest on pip at time of writing.

Hey @lc787, thanks for the detail description of the issue, I've released version 2.3.1 with the fix.
P.S. It is interesting that the issue was python version specific. At least there was no error on Python 3.10.


How are edges defined?

Hello, thank you very much for your code, but I'm a bit confused， for example:

How are edges defined?

Very sorry for the late reply
The edges defined based on position like the paper Adaptive Spatiotemporal Graph Convolutional Networks for Motor Imagery Classification Fig. 2.

I understand. Thank you very much for your reply. Wishing you good health and publishing more and more paper.