Is it possible to create a "custom" control type in pywinauto?

I am trying to find a way to use pywinauto to test an application that makes extensive use of embedded "spreadsheets". Pywinauto identifies these elements, but I have not figured out how to access the contents of these spreadsheet elements. (I am waiting for access to the source code to see exactly what the developers are doing...)
Following the examples in common_controls.py, it would seem one could create a new class that would 'know' how to deal with these spreadsheet elements. Or is there a detail that I have not become aware of yet, that would make an effort to develop such a class impractical?
Thanks!!
mwreding
(How do I label this a question, and not an issue?)

Hi @mwreding this is the right way. Similar class could be useful for custom controls. I've made such classes for Grid controls on my previous job, but had no chance to publish them for the reference. I think common_controls.py is enough for understanding all the mechanism. Of course, if it's native application like MFC, WTL or maybe WinForms.
Custom controls in WPF are more complicated for automation because MS UI Automation provides another way to register and expose automation interfaces than Win32 API.

Custom control class can be implemented in a separate module, just need to inherit from HwndWrapper. It will auto register this new wrapper in the hierarchy at the import time.

If I may ask another question -- most of the class definitions for controls make references to constants from win32defines.py. Would you happen to know where I could obtain a list of the new Windows constants that will be required for a new "control"?
Thanks,
mwreding

If there is no necessary defines in win32defines.py or in win32con module, you're welcome to add these definitions wherever you want. If this code is intended to be merged to pywinauto, these constants can be added to win32defines.py also. If this is a separate module/repo, it's all up to you.
Regarding particular values, the main source for this info is .h/.c/.cpp files of the control / application. Some of these definitions might be in <windows.h>. It depends on the control implementation. You just need to take these values and "re-define" them in your Python code.


Slugifying to handle category names with spaces

Can you link me to where you found slugify? I looked for Jekyll and Liquid docs and didn't see slugify.

Sure. Here it is-
https://jekyllrb.com/docs/templates/#filters
https://jekyllrb.com/docs/templates/#options-for-the-slugify-filter


Ok to include Jumpy Platformer in McAirpos?

To whom it may concern(maybe one of the authors, @jwunderl?),
May I please bundle a compiled .elf of the Jumpy Platformer game in my McAirpos repository, so that upon installations the users already have at least one good demo game available, and the MakeCode Arcade "emulator" entries show up immediately in the EmulationStation menus of RetroPie, Recalox, Batocera etc.?
Alternatively, do you know of another great MakeCode Arcade demo game that you could recommend and that do not come with license issues or other objections?
Br,
Vegard

All content in MakeCode is MIT licensed. Feel free to use.


[azservicebus,azeventhubs] Updating code coverage numbers to reflect what they are today

We're not at the target of 90% set in #15756 but we can document where we're at currently.

/azp run go - azservicebus

/azp run go - azeventhubs

/azp run go - azeventhubs

/azp run go - azservicebus

/azp run go - azeventhubs

/azp run go - azservicebus

/azp run go - azeventhubs


Please review Maximum supported specifications

Please review Maximum supported specifications here:
https://docs.microsoft.com/en-us/azure-stack/aks-hci/concepts-support
Not sure if that is still valid, it looks confusing.
Azure Kubernetes Service on Azure Stack HCI deployments that exceed the following specifications are not supported:
MAXIMUM SUPPORTED SPECIFICATIONS
Resource	Maximum
Physical servers per cluster	4
Kubernetes Clusters	4
Total number of VMs	200

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

ID: 7d689781-cffe-081d-2e9b-73daeac18c45
Version Independent ID: 6507d088-54d8-ccc9-c755-3545bd0d67a0
Content: Concepts - Supported resource limits, VM sizes, and regions in AKS on Azure Stack HCI - AKS-HCI
Content Source: azure-stack/aks-hci/concepts-support.md
Service: azure-stack
Sub-service: aks-hci
GitHub Login: @mamezgeb
Microsoft Alias: mamezgeb

@IvanNaumeiko Thank you for your feedback!  We are investigating this and will get back to you shortly.

Yes looks like this got missed in the latest update cycle we should update it to reflect what we say elsewhere that it is 8 physical nodes and 8 target clusters with 200 VMs. @abhilashaagarwala  is working on new wording I believe

Thanks for your feedback.
Updated.
https://docs.microsoft.com/en-us/azure-stack/aks-hci/concepts-support
#please-close

Thanks for pushing this out quickly.
Mike

From: Matt Briggs @.>
Sent: Friday, February 4, 2022 15:30
To: MicrosoftDocs/azure-stack-docs @.>
Cc: Mike Kostersitz @.>; Comment @.>
Subject: Re: [MicrosoftDocs/azure-stack-docs] Please review Maximum supported specifications (Issue #1752)
Thanks for your feedback.
Updated.
https://docs.microsoft.com/en-us/azure-stack/aks-hci/concepts-supporthttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure-stack%2Faks-hci%2Fconcepts-support&data=04|01|Mike.Kostersitz%40microsoft.com|79a76641b4634f14f9fe08d9e836456e|72f988bf86f141af91ab2d7cd011db47|1|0|637796142140446813|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=xl4cRVPmpzQNdt1oUfet2%2BKv%2FzqpFsF%2BNxivj53WB2k%3D&reserved=0
#please-close
—
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-stack-docs%2Fissues%2F1752%23issuecomment-1030428325&data=04|01|Mike.Kostersitz%40microsoft.com|79a76641b4634f14f9fe08d9e836456e|72f988bf86f141af91ab2d7cd011db47|1|0|637796142140446813|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=fRLmhiYBHcfzNtZSPuyTYxgpgRtr4Eoa3TsSA%2BCCqhU%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABTGASQTV7KWOGMPA66Y2RLUZROPXANCNFSM5JCPITQQ&data=04|01|Mike.Kostersitz%40microsoft.com|79a76641b4634f14f9fe08d9e836456e|72f988bf86f141af91ab2d7cd011db47|1|0|637796142140446813|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=LD%2BF6Dz0A49LId%2Ff1rCsnBDAXrnWggIRA6ls3I1vC74%3D&reserved=0.
Triage notifications on the go with GitHub Mobile for iOShttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04|01|Mike.Kostersitz%40microsoft.com|79a76641b4634f14f9fe08d9e836456e|72f988bf86f141af91ab2d7cd011db47|1|0|637796142140446813|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=GCKlKDzV0mTgVdVFBgDqYEWdD7lddRVdEXhAP7CGNKo%3D&reserved=0 or Androidhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub&data=04|01|Mike.Kostersitz%40microsoft.com|79a76641b4634f14f9fe08d9e836456e|72f988bf86f141af91ab2d7cd011db47|1|0|637796142140446813|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=t%2FB6dKAAMqhCvPFLEmobeqqh1iB3jvnHJH6xUUE78hE%3D&reserved=0.
You are receiving this because you commented.Message ID: @.***>


Missing "L" in hoeckler-new-3 collection

The collection name of the Höckler Trail is hoecker-new-3 instead of hoeckler-new-3.
Are there any dependencies to this name on the UI side?
I did not notice that before and wrote hoeckler-new-3 into the connection table. That's the reason why the device was reported as offline today. I changed it to  hoecker-new-3.

I did not find an easy solution for moving the created documents from the collection hoeckler-new-3 into the original hoecker-new-3 collection.
Here is a script that should perform the required steps.
https://stackoverflow.com/a/47263246
But maybe you have a better solution/idea.

I have a script which I used a few times to move data to an other named data base. As we have the mapping table now I could do this. Before I would have to update the device first and then do the move.

Adjusted UI code and moved all data to the correct collection "hoeckler-new-3 "

Done


Roundtrips through google encoded polyline format add a duplicate coordinate to the end of the line

e.g. in the shapes. This was causing problems because we also couldn't snap correctly to parts of lines with duplicated coordinate.s

Line 94 of Leafelt.encoded-polyline is thr problem:
// close polyline
encoded_points += this._encodePoint(plat, plng, coords[0][0], coords[0][1]);
coords[0][0] and coords[0][1] are undefined (they would be coords[0].lng and coords[0].lat) so this just adds another point at the end with delta 0.


Feature request: add support for Perplexity API

Perplexity supports many LLM out of the box and has an API similar to OpenAI. People who already have it would benefit from using their subscription instead of getting charged by OpenAI on top.

You can use LiteLLM already. Doesn't that do the same thing?

It actually works great without it by just setting configuration variables API_BASE_URL to https://api.perplexity.ai, OPENAI_API_KEY to the Perplexity API key, as well as DEFAULT_MODEL to one of the values found here


GEODE-8240: solve rolling upgrade bug with new VersionOrdinal interface

GEODE-8240
This is an alternative solution to the one explored in https://github.com/apache/geode/pull/5269. This PR introduces a new interface VersionOrdinal to model not just versions we know about (as Version does) but also future versions. Formerly Geode modeled these as short but that presented difficulties in the many places where we need to compare versions. By unifying known and unknown versions under one interface, capable of providing generic comparison (compareTo(), equals(), and hashCode()) my hope is that we can eliminate this egregious loss of information (in that other PR's Version implementation):
  @Override
  public Version getVersion() {
    try {
      return Version.fromOrdinal(versionOrdinal);
    } catch (final UnsupportedSerializationVersionException e) {
      return Version.CURRENT;
    }

That code right there is essentially a mirror-image of the GMSMemberData.setVersionObject() method which is the original culprit in GEODE-8240. Rather than moving the wrongness from the eager/set side to the lazy/get side, this PR seeks to eliminate the wrongness entirely.
Highlights
Introduced new VersionOrdinal type (interface). It carries all the equality, comparison, hash code functionality formerly down in Version. Made a VersionOrdinalImpl class to implement that interface and for use in places where we want an instance of just VersionOrdinal without the restrictions in Version (mainly that we can only have instances of known versions.)
GMSMemberData, which is the state holder for a MemberIdentifier now has a VersionOrdinal where it used to have a Version. getVersion() now returns a VersionOrdinal where it used to return a Version. Since all the callers needed only comparision ops on that return value, the changes to call sites were trivial, if widespread. (Most of the 72 files affected by this PR have those call sites and in every case the change was merely to change a method parameter, field, or local variable declaration from Version to VersionOrdinal.
Also since Version isa VersionOrdinal they are cross-comparable.
I think this new VersionOrdinal type is more in the spirit of the old code (from before the bug was introduced.) That code carried short version ordinals around. The old GMSMember class (which later became GMSMembeData) had a short versionOrdinal field. This new VersionOrdinal class does that one better by giving us a place to hang the comparsion and hashing ops and gives us a type/subtype relationship between VersionOrdinal (any version ordinal, known or unknown) and Version (a known version.)
Testing
The original PR that pointed out this bug https://github.com/apache/geode/pull/5224 enhanced RollingUpgradeDUnitTest to check the versions (of each member) in the view reported by gfsh after a rolling upgrade. The fix to GMSMemberData was backported to a feature branch off of support/1.12 and the modified RollingUpgradeDUnitTest passed ✓
A new unit test GMSMemberDataVersionDUnitTest was added to verify that it's now possible to set an unknown version (ordinal) on GMSMemberData without loss of information.
So much for the bug itself. But what about 1.12.0 coordinators running in the wild with the bug?
During an upgrade a locator will receive a bad view from one of those. "Compensating" code was added to GMSJoinLeave.installView() to patch up bad member version data arriving in a view from a compromised coordinator. See the call to GMSMembershipView.correctWrongVersionIn(final ID memberID) in GMSJoinLeave.installView().
A new unit test, GMSJoinLeaveJUnitTest.repairWrongVersionInView() was added to test the compensation logic. As an additional test, the new RollingUpgradeDUnitTest was verified passing for all old Geode versions, including an un-repaired 1.12.0.
Miscellaneous Things I Hope You'll Check Me On
*. sanctionedDataSerializables.txt in geode-core changed. It's odd to me that there were apparently a bunch of geode-membership classes in that file before this PR. I don't think they should have been there. Nevertheless it's a mystery as to why they were and I'd like another opinion on that file. Also please double-check the (non-deletion) changes to that file—I checked 'em but they need a double-check.
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?

[x] Has your PR been rebased against the latest commit within the target branch (typically develop)?

[x] Is your initial contribution a single, squashed commit?

[x] Does gradlew build run cleanly?

[ ] Have you written or updated unit tests to verify your changes?

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

Is there any reason for this commented out line to be left here=

@albertogpz for some reason I'm not able to request you as a reviewer. Thanks for the comments. Keep them coming!
Allowing all the old versions again revealed that pre-1.9.0 versions are failing to upgrade with these changes. Once I've fixed that I'll push a new commit with your comments addressed.


SWS-131: prefix all client routes with /console

Needs https://github.com/swift-sunshine/swscore/pull/64 on server side
PS: for motivations, see discussion on server-side PR

mmm is this going to work with the local npm start development mode ?

Pull Request Test Coverage Report for Build 85

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

Totals

Change from base Build 84:
0.0%

Covered Lines:
147

Relevant Lines:
313

💛  - Coveralls

@lucasponce yes it does. React-router does all the work (and apparently does it well)

@jotak if this is tested with the development trick to use proxy on package.json
  "proxy": "http://sws-istio-system.<IP_ADDRESS>.nip.io",

then it's fine :-). Just wanted to double check to not break the common flow of development UI + backend.

Just tested with proxy, I confirm it works


New package: CellListMap v0.2.6

Registering package: CellListMap
Repository: https://github.com/m3g/CellListMap.jl
Created by: @lmiq
Version: v0.2.6
Commit: 25749b76ee5e896711dc5c928d3e9cc95b146ae2
Reviewed by: @lmiq
Reference: https://github.com/m3g/CellListMap.jl/commit/25749b76ee5e896711dc5c928d3e9cc95b146ae2#commitcomment-51774238

@lmiq all these pull requests will inevitably conflict with #38208....
[noblock]

Yeah... I don't know what happens at the end. Is the final version of the repository registered only, even if I do not register the new versions? Or the versions will be all registered?

Pull requests are merged in order (as long as they pass tests), so #38208 will be merged and all subsequent pull requests will have merge conflicts and won't be able to be merged.  If you do not change the version number and trigger registration again, the corresponding pull request will be automatically updated, instead of spawning multiple clashing pull requests.

Uhm... but why the subsequent pull requests conflict? If they are merged in order it would be like if they were various packages updates (this has been always confusing to me, what to do if I have sent a register update request and before it is merged I want to release a new patch version).

All the Versions.toml files will inevitably conflicts, because after v0.2.3 is merged, there will be only v0.2.3 in it.  But then v0.2.4 only has v0.2.4 in it, so that git doesn't know how to merge it.  Same for v0.2.5.  Same for v0.2.6.
In case it wasn't still clear at this point, if you now downgrade the version of your package to v0.2.3 and trigger registration, #38208 will be updated to the latest revision of the package.
The alternative is to let #38208 be merged as it is, then after #38208 is merged, you trigger registration again for the revision corresponding to v0.2.4, so that #38240 will be automatically updated and the merge conflict resolved.  But then you'll need to do the same for v0.2.5 after #38240 is merged.
In general, it doesn't make any sense to register a version before the previous one is merged, because merge conflicts are inevitable.  Either wait for the previous pull request to be actually merged, or update it

Thanks, I will downgrade then.


animation_changed signal is broken

in the AnimationPlayer class I tried to use the animation_changed signal but it didn't work.
the finished signal works fine though.

Works for me with AnimationPlayer::queue(), maybe it should fire from play(), play_backwards() and either set_current_animation() or set_active() as well

yes, it's ok. This is not a bug, the signal is only meant to be called when a queued animation starts.

could we possibly have one in the future that just works when any animation is changed? that would be great.

generally by design In godot, things that are changed by code (you directly
calling a function) do not emit signals. this makes things muuch easier. So
by that convention I don't think so.
If you are calling the code yourself you should be able to call whathever
it happens there. Also in the wosrst case, you can make the animaiton call
a function too
On Mon, Feb 1, 2016 at 7:15 PM, Adam Zahran<EMAIL_ADDRESS>wrote:

could we possibly have one in the future that just works when any
animation is changed? that would be great.
—
Reply to this email directly or view it on GitHub
https://github.com/godotengine/godot/issues/3520#issuecomment-178224483.


Improving taiga integration

Hi, we are improving the taiga integration, we want to improve some styles too, you can wait until we have if you want, or merge it and we make another PR with the styles and other improvements.

Give me a heads up when you have added all the styles, then I'll merge all together at once.

Now ready! :smiley:

Thank you for your contribution.


Create biomolecular-simulations-2018

New webpage for the hands-on sessions Metadynamics + covalent docking + CPMD for the BioExcel Summer School Biomolecular Simulations 2018 in Cagliari, Sardinia -IT-

DO NOT MERGE YET


CsvTextField

For single-choices fields, we typically use CharField with the choices kwarg. Sometimes there are good reasons to make these foreign-keys to a lookup table, but hard-coded choices are typically easier and much faster to put together.
It would be nice if we could do the same with multiple-choice fields, in other words replacing many-to-many fields. What I'm thinking is:

CsvTextField model field

the choices API would fit the regular char/text/int field choices API
my_record.mycsvfield would return an array of choice strings, not the raw delimited string stored in the DB, and my_record.get_mycsvfield_display() would return comma-separated formatted choices
Delimeter is |. There shouldn't be need for custom delimeters because choices are stored as codes, not formatted strings
basic model (but not DB) validation: choices conform to delimited choices
(extra) Maybe an option to use a backing CharField if we want a character limit? (Defaulting to Textfield seems safer)

corresponding CsvField form field
default widget of multi-select or checkbox-select

The main advantages here are

ability to update choices without messing with the database
ability to upgrade an existing single-choice CharField to a multi-choice CharField
Much more productive for building stuff quickly

A few challenges I could think of are:

Subclassing fields and overriding (de-)serialization seems kind of complicated
The CSV field must contain at most one of each choice
Should it validate that all value exist in the choices list? Migrations could be difficult if we don't allow this. On the other hand it's asking for problems if we don't
Choices must be sorted in the same order all the time, otherwise we risk extraneous diffs
Not sure how we map our fields to custom form fields without using a modelform subclass (with its own custom metaclass 🤮 ), might just have to manually set the field on each form that uses this type of field

Ok this turned out to be simpler than I thought, we have a prototype in catalogue, if we don't run into issues I will add it to this package


rclone not trasnferring newly modified files

I was downloading several related torrents that I put in the same folder for better organization (each torrent was a folder with many files). Not all the torrents completed at the same time but since I didn't want to issue a copy/sync command individually for each folder I just copied the entire folder to ACD (this was before I was familiar with the --exclude-from option, which would've been the best way to go), trusting that when the remaining torrents completed I could just issue another copy/sync command on the same folder and only the newly completed files would make it through to acd and replace the incomplete files but that's not what's happening. The unfinished torrents have finished downloading now (weeks after I first issued the aforementioned copy command) and issuing a sync or copy command is not transferring anything to acd. It's very likely that all the incomplete files had already been transferred to acd with the same filesize they have now since partially downloading them seems to allocate the full filesize under my current torrent client settings but the checksum should definitely be different as well as the modified time. I tried using the -c option with no luck. Is there another option I could try? I didn't delete any of the original files (the ones that finished downloading quickly) so I could just transfer all the files all over again but I wish to learn why rclone is not behaving the way I expect it to. I already done this before (transferring before all torrents had finished, issuing another copy/sync command after) and new files seem to have been transferred, to find out now that some files might have been left out after all is troubling :/

What is your rclone version (eg output from rclone -V)
1.36

Which OS you are using and how many bits (eg Windows 7, 64 bit)
Debian 8.7

Which cloud storage system are you using? (eg Google Drive)
Amazon clouddrive

The command you were trying to run (eg rclone copy /tmp remote:tmp)
rclone copy and/or sync

ACD can use chksum "-c" to check the local vs remote consistency except if you are using crypt.  Are you using crypt?  If you are using crypt, it only goes by file size and thus your problem.  I believe you can run rclone cryptcheck local: remote: and that would identify any problems you have.  Then you can output that list and sync up those files.

That's very important information that should be featured more prominently. God knows the amount of incomplete files I have on there now. Christ.

https://rclone.org/amazonclouddrive/
Modified time and MD5SUMs
Amazon Drive doesn’t allow modification times to be changed via the API so these won’t be accurate or used for syncing.
https://rclone.org/crypt/
Modified time and hashes
Crypt stores modification times using the underlying remote so support depends on that.
Hashes are not stored for crypt. However the data integrity is protected by an extremely strong crypto authenticator.
Note that you should use the rclone cryptcheck command to check the integrity of a crypted remote instead of rclone check which can’t check the checksums properly.

It should be easy to fix.  Just run a rclone cryptcheck.  Grab the list of files output about differing hashes and then put them in a file and then you can do a normal sync using the "--files-from" flag as an input to replace those files or just delete them and readd them.

Thanks for the suggestion. I just did the sync command again and in the future I'll just won't do what I did here. Not feasible for me to find out the several incomplete files I have on acd now from older sync/copy commands but it really sucks that this is how it turns out to be.

There are enhancement requests to add chksum to crypt. When that pans out, this will be addressed. You may want to close this issue if it's resolved.

Sorry to come back to this again but is the same true for copying files from encrypted remote to my server? Meaning that if I stop a copy command before it finishes all the incomplete files are going to be skipped when I reissue the command?

They wont be skipped because it will go by the file size.

This looks answered. If you still have a question, please feel free to post on the forums.


ngCookies does not work on android phonegap app.

As described here I cannot set cookies on android phonegap app (tried with both kitkat and lollipop versions of android).
Just made some tests with older versions of 1.3.x and the same thing occurs - undefined cookie variable. This also happens with $cookie, not just with $cookieStore.
For any matter, I'm using the latest version of phonegap/cordova. Might this be a phonegap issue or angularjs related?

Have your tried setting the cookies without angular?

I haven't tried that yet.
For the moment I'm using localStorage & sessionStorage for what I need, but I'm still curious about this issue. I made two services to make this "the angular way".
MYAPP.factory('storageLocal', ['$window', function($window){
    var storageLocalMethods = {};

    //fn: set
    //desc: set a local storage variable
    storageLocalMethods.set = function(name, value){
        $window.localStorage.setItem(name, angular.toJson(value));
    }

    //fn: get
    //desc: get a local storage variable
    storageLocalMethods.get = function(name){
        return angular.fromJson($window.localStorage.getItem(name));
    }

    //fn: remove
    //desc: remove a variable from local storage
    storageLocalMethods.remove = function(name){
        $window.localStorage.removeItem(name);
    }

    return storageLocalMethods;

}]);

MYAPP.factory('storageSession', ['$window', function($window){
    var storageSessionMethods = {};

    //fn: set
    //desc: set a session storage variable
    storageSessionMethods.set = function(name, value){
        $window.sessionStorage.setItem(name, angular.toJson(value));
    }

    //fn: get
    //desc: get a session storage variable
    storageSessionMethods.get = function(name){
        return angular.fromJson($window.sessionStorage.getItem(name));
    }

    //fn: remove
    //desc: remove a variable from session storage
    storageSessionMethods.remove = function(name){
        $window.sessionStorage.removeItem(name);
    }

    return storageSessionMethods;

}]);

I'll be back after same tests with native cookie :)

Just made some tests with document.cookie and I have the same problem.
I guess I should address this issue to Phonegap community.

Thanks for testing. I'm gonna close this, but feel free to open a new issue if it turns out to be an angular issue after all.


Fix DPDK_Hot_Plug.py failure

Current code failed due to below Error. It's caused by messed up check-in https://github.com/ipdk-io/ovs/pull/51/files.
Traceback (most recent call `last):`
  File "tests/DPDK_Hot_Plug.py", line 93, in runTest
    vm1=self.config_data['vm'][1]
IndexError: list index out of range

Fix it by copying its original code. Here is the unit test log
root@wp34:~/sjwang_ptf/profile_seclector_fix/ptf_tests# ptf --test-dir tests/ DPDK_Hot_Plug --pypath $PWD --test-params="config_json='DPDK_Hot_Plug.json';vm_location_list='/home/admin2/VM/ubuntu-20.04-server-cloudimg-amd64_1.img'" --platform=dummy
/usr/local/bin/ptf:19: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp
Using packet manipulation module: ptf.packet_scapy
/usr/local/lib/python3.9/site-packages/scapy/layers/ipsec.py:471: CryptographyDeprecationWarning: Blowfish has been deprecated
cipher=algorithms.Blowfish,
/usr/local/lib/python3.9/site-packages/scapy/layers/ipsec.py:485: CryptographyDeprecationWarning: CAST5 has been deprecated
cipher=algorithms.CAST5,
DPDK_Hot_Plug.Dpdk_Hot_Plug ... (qemu-system-x86_64 -enable-kvm -smp 4 -m 512M  -boot c -cpu host -enable-kvm -nographic  -L /root/pc-bios -name Vm1  -hda /home/admin2/VM/ubuntu-20.04-server-cloudimg-amd64_1.img  -object memory-backend-file,id=mem,size=512M,mem-path=/dev/hugepages,share=on  -mem-prealloc  -numa node,memdev=mem  -monitor telnet::6650,server,nowait  -serial telnet::6550,server &)
qemu-system-x86_64: -serial telnet::6550,server: info: QEMU waiting for connection on: disconnected:telnet:<IP_ADDRESS>:6550,server=on
VM creation successful : Vm1
Sleeping for 30 seconds for the vms to come up
Command: ip a | egrep "[0-9]: " | cut -d ':' -f 2 executed
PASS: gnmi-cli set "device:virtual-device,name:net_vhost0,host:host1,device-type:VIRTIO_NET,queues:1,socket-path:/tmp/vhost-user-0,port-type:LINK"
PASS: gnmi-cli get verified for device:virtual-device,name:net_vhost0,host:host1,device-type:VIRTIO_NET,queues:1,socket-path:/tmp/vhost-user-0,port-type:LINK
qemu-system-x86_64: warning: short-form boolean option 'vhostforce' deprecated
Please use vhostforce=on instead
PASS: gnmi-cli set "device:virtual-device,name:net_vhost0,hotplug:add,qemu-socket-ip:<IP_ADDRESS>,qemu-socket-port:6650,qemu-vm-mac:00:e8:ca:11:aa:01,qemu-vm-netdev-id:netdev0,qemu-vm-chardev-id:char1,native-socket-path:/tmp/vhost-user-0,qemu-vm-device-id:dev0"
PASS: gnmi-cli get verified for device:virtual-device,name:net_vhost0,hotplug:add,qemu-socket-ip:<IP_ADDRESS>,qemu-socket-port:6650,qemu-vm-mac:00:e8:ca:11:aa:01,qemu-vm-netdev-id:netdev0,qemu-vm-chardev-id:char1,native-socket-path:/tmp/vhost-user-0,qemu-vm-device-id:dev0
Command: ip a | egrep "[0-9]: " | cut -d ':' -f 2 executed
interfaces:  ['ens4']
Test has PASSED
ok

Ran 1 test in 79.218s
OK

Result:FAILURE JenkinsConsole:https://s3.ipdk.io/ovs/PR-75-1/index.html GitCommit:https://github.com/ipdk-io/ovs/commits/dff946e6bd94e1508d04434f19ab23bac243cac8

Result:SUCCESS JenkinsConsole:https://s3.ipdk.io/ovs/PR-75-2/index.html GitCommit:https://github.com/ipdk-io/ovs/commits/dff946e6bd94e1508d04434f19ab23bac243cac8

Result:SUCCESS JenkinsConsole:https://s3.ipdk.io/ovs/PR-75-3/index.html GitCommit:https://github.com/ipdk-io/ovs/commits/dff946e6bd94e1508d04434f19ab23bac243cac8

Result:FAILURE JenkinsConsole:https://s3.ipdk.io/ovs/PR-75-4/index.html GitCommit:https://github.com/ipdk-io/ovs/commits/8cc2f957f73fe773105f9e9b1a360bc098f0285b

other files part of PR74 is also seen here.

In same repo as PR74, I created a branch for Dpdk_Hot_plug. After its submission,  I realized that PR75 includes PR74.  Now I compare all action profile/selector file in both PR. All files are same.  Thus I suggest to use PR75 and abandon PR74.

Result:SUCCESS JenkinsConsole:https://s3.ipdk.io/ovs/PR-75-5/index.html GitCommit:https://github.com/ipdk-io/ovs/commits/d5b93921f9e9e367088180d4f214b75832fe751b

Result:ABORTED JenkinsConsole:https://s3.ipdk.io/ovs/PR-75-6/index.html GitCommit:https://github.com/ipdk-io/ovs/commits/d5b93921f9e9e367088180d4f214b75832fe751b

Result:SUCCESS JenkinsConsole:https://s3.ipdk.io/ovs/PR-75-7/index.html GitCommit:https://github.com/ipdk-io/ovs/commits/d5b93921f9e9e367088180d4f214b75832fe751b

Result:ABORTED JenkinsConsole:https://s3.ipdk.io/ovs/PR-75-8/index.html GitCommit:https://github.com/ipdk-io/ovs/commits/cf5288c2d20601d20531f244c1bfce4115b31acd

Result:SUCCESS JenkinsConsole:https://s3.ipdk.io/ovs/PR-75-9/index.html GitCommit:https://github.com/ipdk-io/ovs/commits/9558deb2dc2c9b4d9f9270f862f7897e935d94f9

Result:ABORTED JenkinsConsole:https://s3.ipdk.io/ovs/PR-75-10/index.html GitCommit:https://github.com/ipdk-io/ovs/commits/9558deb2dc2c9b4d9f9270f862f7897e935d94f9

Result:SUCCESS JenkinsConsole:https://s3.ipdk.io/ovs/PR-75-11/index.html GitCommit:https://github.com/ipdk-io/ovs/commits/9558deb2dc2c9b4d9f9270f862f7897e935d94f9

Result:ABORTED JenkinsConsole:https://s3.ipdk.io/ovs/PR-75-12/index.html GitCommit:https://github.com/ipdk-io/ovs/commits/47c1ca85860ca2260b4b6493a95d94ba00425ec4

Result:FAILURE JenkinsConsole:https://s3.ipdk.io/ovs/PR-75-14/index.html GitCommit:https://github.com/ipdk-io/ovs/commits/60459bffde106c51bd8d67890992dfc49913d4d7


Don't send charset with application/json content type

Description of the Change
According to RFC 4627

JSON text SHALL be encoded in Unicode. The default encoding is UTF-8.

"SHALL" represents an absolute requirement here (see RFC 2119).

Thank you <3

@Sija Could you fix the tests?

@grkek Sure, it's done.


Mint Drc-20 with 1tx

@apezord
Hi bro
Can you help me mint with 1tx

@Khoiwall what happened

@Khoiwall what happened

This is my mint https://dogechain.info/tx/3ebb036758f75c8ac6d8874bbdbd30eea46f1e0b60ef9e1b1d5eb710c3b9a97d
This is mint with 1tx https://dogechain.info/tx/213a149fba4e23ad894e73c9bdf514c6727e6a4cfbe3d2689641adb0a5e5b691
It's differents

it is depend on utxo spend. Output 2 input 1. so it is normal. try to wallet split 2

@Cmkcmk77 Do you know how to divide 2 wallets?

use wallet split command

node . wallet split [spli tcount]

@Cmkcmk77 Is there any way to avoid too-long-mempool-chain


Log Analytics agent will be deprecated

The legacy Log Analytics agent will be deprecated by August 2024. After this date, Microsoft will no longer provide any support for the Log Analytics agent. Migrate to Azure Monitor agent before August 2024 to continue ingesting data.
Please provide a guide to configure Azure Monitor agent to monitor a SHIR.

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

ID: 05423174-757e-8ef1-c093-498bdf5ad353
Version Independent ID: 2b166850-f7e9-4f32-efed-c4569d6e0a72
Content: Configure the self-hosted integration runtime for log analytics collection - Azure Data Factory & Azure Synapse
Content Source: articles/data-factory/how-to-configure-shir-for-log-analytics-collection.md
Service: data-factory
Sub-service: ****
GitHub Login: @jonburchel
Microsoft Alias: jburchel

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

@DavideEva
Thank you for bringing this to our attention!!.The AMA replaces the Log Analytics agent for Windows and Linux machines, in Azure and non-Azure environments, including on-premises and third-party clouds. The agent introduces a simplified, flexible method of configuring data collection using data collection rules (DCRs). You can use the AMA Migration Helper and DCR Config Generator tools to help automate and track the migration from Log Analytics Agent to Azure Monitor Agent.
Please follow the below points:

Install Azure Monitor agent on the SHIR. You can install the agent using the Azure portal or PowerShell commands. For more information on how to install the agent using PowerShell command.
Create a data collection rule to collect logs from the SHIR. You can create a data collection rule using the Azure portal or PowerShell commands. For more information on how to create a data collection rule using PowerShell commands
Associate the data collection rule with the SHIR. For more information on how to associate a data collection rule with a SHIR,
Refer below link.
https://learn.microsoft.com/en-us/azure/azure-monitor/agents/agent-manage?tabs=PowerShellLinux
Verify that the logs are being collected by Azure Monitor agent. You can verify this by checking the logs in the Azure portal or by using the Azure Monitor Troubleshooter. For more information on how to use the Azure Monitor Troubleshooter, refer to below link.
https://learn.microsoft.com/en-us/azure/azure-monitor/agents/use-azure-monitor-agent-troubleshooter

if you have further clarification an issue like this, I'd recommend you create a support ticket since the support team will be able to respond much more quickly and have a conversation with you to figure out what could be going on.


Add offset, polar, and interpolate to Point class

I was writing some code and I needed these 3 methods to be in the point class. It'd be great if they were in the library then I wouldn't have to prototype them in.

I just realized I need to make some methods static. Closing. Will resubmit.


Secret key generation

Hi! This is not an issue as much as it is a comment; I was reviewing the code for compatibility with libsodium and apart from the way that private keys are encoded, I noticed that line for line the bit clearing was also different, despite both being based on the ref10 implementation. It was the pk[31] &= 63 that was different from most other implementations, which do pk[31] &= 127. However, this doesn't matter as the next line is pk[31] |= 64. It can be seen from the below notation:
  0b11111111
& 0b01111111 // 127
| 0b01000000 // 64

is equivalent to

  0b11111111
& 0b00111111 // 63
| 0b01000000 // 64

I just want to leave this here for anyone else who finds this in the future :)

Thank you, sir! I was scratching my head for a while with this one. 🙇♂


Updated the email regex

Short description outlining key changes/additions
Updated pom.xml to import the new email regex.
JIRA Ticket Number
IDVA6-552
Type of change

[x] Bug fix
[ ] New feature
[ ] Breaking change
[ ] Infrastructure change

Pull request checklist

[x] I have added unit tests for new code that I have added
[x] I have added/updated functional tests where appropriate
[x] The code follows our coding standards

An exhaustive list of peer review checks can be read here

CI: No security warnings found

CI: No security warnings found


Fix create extend field form after many-to-one relation

STR:

create extend one-to-many relation from Contact to ContactAddress
update schema
go to Contact entity and try to add another extend field

Expected: form to fill the entity field name and select type
Actual: 500 error "A model for "OroCRM\Bundle\ContactBundle\Entity\ContactAddress::contact_addresses" was not found (500 Internal Server Error)"

Hi @ishakuta,
Thank you for the PR.
I`ve merged your commits. It will be available soon.

Closing this PR as changes were merged.


Suspect thread deadlock on STATUS_INVALID_PARSED_ACK_TYPE error in PutMedia

Hi @MushMal,
I faced a very peculiar problem the other day where I suspect putFrame API from KinesysVideoStream was blocked forever. This happened on one of our deploys where SDK version 1.4.0 was running.
I could see following error thrown by the SDK
ERROR[01/10/18 23:28:56.048][com.amazonaws.kinesis.video][OngoingStreamState.cpp:209] Failed to submit ACK: {"Message":"User: USER is not authorized to perform: kinesisvideo:PutMedia on resource: RESOURCE_NAME/1537842499455"} with status code:<PHONE_NUMBER>
And I reckon the putFrame API never returned. Could it be possible to have some deadlock happening while acquiring mutexes in the putFrame() when this particular error occurs??

Hi @ameyat2812 ,
The message ("User: USER is not authorized to perform: kinesisvideo:PutMedia on resource: RESOURCE_NAME/1537842499455) indicates you don't have PutMedia permission on your account/user, can you double check if you have setting proper permission there? You can refer to this document.
You can use AmazonKinesisVideoStreamsFullAccess for full access. You can use AmazonKinesisVideoStreamsReadOnlyAccess for read-only access.
Hope this helps.
-ZH

hi @zhiyua-git.
Thanks for your prompt reply.
I don't think I was lacking permissions as I was uploading to the same RESOURCE for more than a day. I could also confirm that the credentials that I was using were also valid. So not really sure what caused this error.
Having said that, could this error cause putFrame() API to get into a deadlock?

Hi @ameyat2812,
Which client are you using, GStreamer plugin or C++ producer sample? If it is C++ producer then probably you got that failure and sdk start retrying, after 5 retries with failure, it stops. You can modify this to a large number like 1000000, then it will retry for more times, but if PutMedia is consistently failing for permission issue, even unlimited retry would not help.
Do you mind sending your full log file (at least the part you still had PERSISTED Acks and the failure) to<EMAIL_ADDRESS>so we can better analyze what was happening? Can you also share some information about how you are using kinesis video, we might point you to some better way for your use case?
Thanks,
-ZH

@ameyat2812 just to add more info

The authentication errors are non-retriable errors as it makes no sense to retry.
I am not sure where {"Message":"User: USER is not authorized to perform: kinesisvideo:PutMedia on resource: RESOURCE_NAME/1537842499455"} comes from. It is an unknown ACK from the backend hence the parsing fails.
Any callbacks from the PIC should be "prompt". This is the only reason putFrame or other operations can block.

Can you elaborate what your observation is? Why do you think the putFrame blocks? As @zhiyua-git  suggests could you please email the relevant logs to the support email?

What you are trying to achieve in general is a very supported scenario - make sure you update the SDK version if not done so. You just need to ensure you update the credentials in the CredentialProvider whenever the refresh is called but seems that you are doing it already but please make sure you set the correct expiration like in the samples.
The SDK doesn't have it's own threads - it utilizes the threads from API calls to events to drive the machinery. When you make the first call to putFrame, the thread that makes it (which is the GStreamer thread) will be used for the PIC callback of PutStream, which, will power CURL to issue a series of service calls like DescribeStream, GetMediaEndpoint, etc... and eventually the PutMedia. As soon as the first call is scheduled, the thread returns (the GStreamer thread that was used) and the state machinery will be driven by the networking thread that returns the call result.
If you are using C++ SDK without modification then it shouldn't lock. However, the putFrame could return an error status. Make sure you check for it. Also, make sure you handle the onStreamError properly.
I am having hard time understanding/re-creating the scenario as you have multiple issues. I would love if you could save the logs so we can clearly see what's going on. You could also enable GStreamer debug logs specifying export GST_DEBUG=4

I have bumped the version as you said just that it is not done on our prod environment just yet. Will do that.
Just to answer your questions, I am using C++ SDK untouched, and have ERROR level logs at all API failures as well as onStreamError().
I will keep monitoring this issue and will also try and reproduce by playing with resource permissions, with lower log levels to see if it happens again.
Thanks for the directions though... 👍

Closing the issue as it has been answered.
Please re-open if additional support is required. Thanks


Updating Casing on building-os

Currently in lowercase, but should be:
Building BSD
Building Windows
Building Mac
Building Linux

Merged via https://github.com/pawbyte/gpe-docs/pull/71


How to use the tokenizer language file

Hi,
How to use the tokenizer language file?
Thanks

I'm not sure what you mean? Do you mean the fact that there are different tokenizers for languages?
Hugo

@Hugo-ter-Doest Yes, it is not clear in README how to use it for Portuguese. Can you help please?

In the spec folder you find a unit test that gives some example of the tokenizer for Portugese:
aggressive_tokenizer_pt_spec
Just require the module, create a tokenizer and call the tokenize method:
var Tokenizer = require('../lib/natural/tokenizers/aggressive_tokenizer_pt'),
    tokenizer = new Tokenizer();
console.log(tokenizer.tokenize('isso é coração'));

Output:
[ 'isso', 'é', 'coração' ]

Hugo

@Hugo-ter-Doest Thanks! Could this be added to docs? I close for now.

Yes will add it to the README.
It is better to say this to create a tokenizer for Portugese:
var natural = require('natural');
var tokenizer = new natural.AggressiveTokenizerPt();

Hugo


support np.expand_dims second tuple argument

Feature request
At the moment expand_dims supports only an int as second argument. The numpy implementation also supports a tuple of ints.
Currently, in order to expand by multiple new axes (as np.newaxis and None are not supported) one needs to nest several calls to expand_dims.

bump!


adding 1_python.md site for oras-www

What we can do here is add a page here, and then setup a workflow in oras-www to receive a dispatch event to do a build when it is triggered. I can first test this locally (and it will open a PR) and when we like that, we can add the dispatch event to be triggered in oras-py, and then push directly given that the commit is signed. Given that netlify is set up to build on push to main, if this
works it will mean that we always trigger an update and rebuild on oras-www when there is an update to oras-py.
So plan of action, more explicitly:

review and merge this page here
add a dispatch event to oras-www that will retrieve the updated file, put it where it needs to be, and pull request to main
test this with a local ping to see that it works
add the dispatch event to trigger from a merge to main for oras-py
when all that is working, change from PR to push
then update the oras-py docs to not include the redundant information and link to oras.land

Signed-off-by: vsoch<EMAIL_ADDRESS>

And removed pytest-runner dependency per discussion in https://github.com/conda-forge/staged-recipes/pull/19075#discussion_r882995199

Sorry to keep bothering you for reviews @sajayantony - I want to get everything right for this first draft, including the docs where they need to be! I really appreciate it.

adding @shizhMSFT for 👀

Thank you!


implement dask methods on DataTree

For now this only contains compute and load, but in implementing those I've found a bug in copy: we don't actually (shallow) copy the variables, which means that my implementation of compute would modify the original tree.

[x] follow-up to #9660
[x] Tests added

we're still missing an implementation for persist, which I skipped mostly because I wasn't sure how to test that. @TomNicholas, would you like to help me with that? If so, feel free to directly push to this PR.

we're still missing an implementation for persist, which I skipped mostly because I wasn't sure how to test that. @TomNicholas, would you like to help me with that? If so, feel free to directly push to this PR.

I'm happy to help, but I think that (a) persist is much more niche than load and compute, so isn't as important to be in there before release, and (b) it's a separate method rather than a bugfix to this PR so it would make more sense for me to add that in a follow-up PR and we just merge this one without persist.

that would be fine with me. That leaves us with the question whether we should guard against chunk with non-existing dims, and after resolving that we should be ready for a final review.

whether we should guard against chunk with non-existing dims

We should, see https://github.com/pydata/xarray/pull/9670#discussion_r1815486043

We should, see #9670 (comment)

yeah, I saw that one after posting. Should be done now, though.

actually, I just tried to compute a DataTree object without chunked arrays (while trying to investigated your comment on chunksizes), and I got an ugly error. I'm investigating, but should not take too long to fix.

Tell me what you think about the reworded docstrings of chunksizes / Dataset.chunks, but otherwise this should be good to go, too.

Looks good! Let's merge.

(I just noticed that DataArray.chunksizes has the same issue, so I'll push that, too)

NamedArray.chunksizes too hahaha

should be good now, hopefully


0.4.0: pytest fails with errors in 3 units

Python 3.10.14 and pytest 8.1.1.
Looks like something is wrong with latest 0.4.0 because pytest fails

Here is pytest output:
+ PYTHONPATH=/home/builder/rpmbuild/BUILDROOT/python-ruff-0.4.0-2.fc37.x86_64/usr/lib64/python3.10/site-packages:/home/builder/rpmbuild/BUILDROOT/python-ruff-0.4.0-2.fc37.x86_64/usr/lib/python3.10/site-packages
+ /usr/bin/pytest -ra -m 'not network' --exit-0-if-no-units
============================= test session starts ==============================
platform linux -- Python 3.10.14, pytest-8.1.1, pluggy-1.4.0
rootdir: /home/builder/rpmbuild/BUILD/ruff-0.4.0
configfile: pyproject.toml
collected 0 items / 3 errors

==================================== ERRORS ====================================
_ ERROR collecting crates/ruff_python_parser/resources/inline/err/assert_empty_test.py _
/usr/lib/python3.10/site-packages/_pytest/python.py:525: in importtestmodule
    mod = import_path(
/usr/lib/python3.10/site-packages/_pytest/pathlib.py:584: in import_path
    importlib.import_module(module_name)
/usr/lib64/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
/usr/lib/python3.10/site-packages/_pytest/assertion/rewrite.py:169: in exec_module
    source_stat, co = _rewrite_test(fn, self.config)
/usr/lib/python3.10/site-packages/_pytest/assertion/rewrite.py:351: in _rewrite_test
    tree = ast.parse(source, filename=strfn)
/usr/lib64/python3.10/ast.py:50: in parse
    return compile(source, filename, mode, flags,
E     File "/home/builder/rpmbuild/BUILD/ruff-0.4.0/crates/ruff_python_parser/resources/inline/err/assert_empty_test.py", line 1
E       assert
E             ^
E   SyntaxError: invalid syntax
_ ERROR collecting crates/ruff_python_parser/resources/inline/err/if_stmt_missing_test.py _
/usr/lib/python3.10/site-packages/_pytest/python.py:525: in importtestmodule
    mod = import_path(
/usr/lib/python3.10/site-packages/_pytest/pathlib.py:584: in import_path
    importlib.import_module(module_name)
/usr/lib64/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
/usr/lib/python3.10/site-packages/_pytest/assertion/rewrite.py:169: in exec_module
    source_stat, co = _rewrite_test(fn, self.config)
/usr/lib/python3.10/site-packages/_pytest/assertion/rewrite.py:351: in _rewrite_test
    tree = ast.parse(source, filename=strfn)
/usr/lib64/python3.10/ast.py:50: in parse
    return compile(source, filename, mode, flags,
E     File "/home/builder/rpmbuild/BUILD/ruff-0.4.0/crates/ruff_python_parser/resources/inline/err/if_stmt_missing_test.py", line 1
E       if : ...
E          ^
E   SyntaxError: invalid syntax
_ ERROR collecting crates/ruff_python_parser/resources/inline/err/while_stmt_missing_test.py _
/usr/lib/python3.10/site-packages/_pytest/python.py:525: in importtestmodule
    mod = import_path(
/usr/lib/python3.10/site-packages/_pytest/pathlib.py:584: in import_path
    importlib.import_module(module_name)
/usr/lib64/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
/usr/lib/python3.10/site-packages/_pytest/assertion/rewrite.py:169: in exec_module
    source_stat, co = _rewrite_test(fn, self.config)
/usr/lib/python3.10/site-packages/_pytest/assertion/rewrite.py:351: in _rewrite_test
    tree = ast.parse(source, filename=strfn)
/usr/lib64/python3.10/ast.py:50: in parse
    return compile(source, filename, mode, flags,
E     File "/home/builder/rpmbuild/BUILD/ruff-0.4.0/crates/ruff_python_parser/resources/inline/err/while_stmt_missing_test.py", line 1
E       while : ...
E             ^
E   SyntaxError: invalid syntax
=========================== short test summary info ============================
ERROR crates/ruff_python_parser/resources/inline/err/assert_empty_test.py
ERROR crates/ruff_python_parser/resources/inline/err/if_stmt_missing_test.py
ERROR crates/ruff_python_parser/resources/inline/err/while_stmt_missing_test.py
!!!!!!!!!!!!!!!!!!! Interrupted: 3 errors during collection !!!!!!!!!!!!!!!!!!!!
============================== 3 errors in 1.50s ===============================

hi @wuch-g2v
It seems that pytest picks up our parser tests and some of those tests intentionally contain invalid syntax.
Can you tell us more about what command you're running and how you installed ruff?

Why are you using pytest?
Pytest is picking the three files
ERROR crates/ruff_python_parser/resources/inline/err/assert_empty_test.py
ERROR crates/ruff_python_parser/resources/inline/err/if_stmt_missing_test.py
ERROR crates/ruff_python_parser/resources/inline/err/while_stmt_missing_test.py

because:

they are python script
there is the word test in the script name

Perhaps there is a little bit of confusion, Ruff is a Rust package which format/lint Python code. Therefore, it is written in Rust and you should use Rust tools to test it. I don't think there are Python tests in the package (or I'm wrong?).
Or I'm misunderstanding your question? :-)

👍 I think there's a small misunderstanding here. We don't run pytest in Ruff, but we do have some files checked-in that make it look like we use pytest, since we lint against pytest features.

I'm using installer module.
Q: what it has to do it install pytest is failing on files test suite in source tree? 🤔
Content of the .whl archive.
Archive:  ruff-0.4.0-py3-none-linux_x86_64.whl
  Length      Date    Time    Name
---------  ---------- -----   ----
    24039  04-18-2024 20:43   ruff-0.4.0.dist-info/METADATA
       96  04-18-2024 20:43   ruff-0.4.0.dist-info/WHEEL
    68613  04-18-2024 20:43   ruff-0.4.0.dist-info/license_files/LICENSE
        0  04-18-2024 20:43   ruff/__init__.py
     1045  04-18-2024 20:43   ruff/__main__.py
 21206976  04-18-2024 20:43   ruff-0.4.0.data/scripts/ruff
      530  04-18-2024 20:44   ruff-0.4.0.dist-info/RECORD
---------                     -------
 21301299                     7 files

BTW .. why in LICENSE file are included licenses of many other modules?
ruff is written from scratch in rust so it does not inherit any code from those modules.
Idea of performing exact filtering and AFAIK is is not licensed🤔


use codecov

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@32cb6c8). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #122   +/-   ##
=======================================
  Coverage        ?   96.36%
=======================================
  Files           ?       46
  Lines           ?     2035
  Branches        ?        0
=======================================
  Hits            ?     1961
  Misses          ?       42
  Partials        ?       32

Continue to review full report at Codecov.

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


Nested Navigator does not allow swipe to exit

Steps to Reproduce
Create nested navigation using Navigator widget inside TabBarView or PageView, when install on iOS simulator, swipe from left to right can exit the sub-navigator page to go back to previous page, but it does not work the same on physical device
Github demo: https://github.com/suesitran/flutter_navigation_demo

Execute flutter run on the code above
In Page 1, click on 'Go to sub page'
In sub-page, swipe from left to right to return to Page 1

Expected results:
App returns to Page 1
Actual results:

in iOS simulator, it works as expected
in physical device (iPhone 12, iOS version 15.6.1, and iPhone XS, iOS version 15.3.1), failed to return to Page 1

Code sample
Please check above repo: https://github.com/suesitran/flutter_navigation_demo

flutter doctor -v
[✓] Flutter (Channel stable, 3.0.5, on macOS 11.6.8 20G730 darwin-x64, locale en-AU)
    • Flutter version 3.0.5 at /Users/suesi/Development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • FLUTTER_GIT_URL = https://github.com/flutter/flutter.git
    • Framework revision f1875d570e (6 weeks ago), 2022-07-13 11:24:16 -0700
    • Engine revision e85ea0e79c
    • Dart version 2.17.6
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/suesi/Library/Android/sdk
    • Platform android-31, build-tools 30.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] VS Code (version 1.53.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.20.0

[✓] Connected device (3 available)
    • iPhone 13 (mobile) • ABFF7038-DB26-4C5A-81B0-947CC7EBEAC2 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-15-2 (simulator)
    • macOS (desktop)    • macos                                • darwin-x64     • macOS 11.6.8 20G730 darwin-x64
    • Chrome (web)       • chrome                               • web-javascript • Google Chrome 104.0.5112.101

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Hi @suesitran, I run your sample on my iPhone XS and I can swipe to go back. See the video below. Is there anything I'm missing?

video
https://user-images.githubusercontent.com/88313112/185908192-a0dd1b6e-f147-4db0-ac8b-23a1e19c738e.MP4

I don't know, I can't, and I still can't 😣

Hi @suesitran, I think this might be an issue of the gestures conflicting, can you set the physics of the PageView in the SubPage widget to NeverScrollablePhysics to see if you're able to swipe back?

I tried that, but it does not help

I see, can you test on the master channel to see if you're able to repro?
I just tested again with a fresh clone of your project and I still cannot repro.

video
https://user-images.githubusercontent.com/88313112/186597910-c38ae2fd-ccb4-43f2-8fe9-e8e5e059f91a.mp4

Yes it works on  master. When will this fix be out?

Hi @suesitran, can you check if it works on beta as well? If it works on beta, then the fix should roll out in the next release of flutter.

Yes it works on master. When will this fix be out?

I can't say for sure, since I'm not entirely sure as to what the issue is and what fixed it.

Hi, I tested on both Beta, and Flutter 3.3.0, and it works now, no idea what happens.

Now i'm not sure if it's just my phone or it's Flutter's issue, because it works well on iPhone 12, but not on iPhone XS.

I have an iPhone XS and it works just fine on my end, so I'll assume it's because yours has been dropped a few times.
Thanks for confirming that this has been fixed.
Closing from here as fixed.

I update the demo app a bit, and I found the issue in Flutter 3.3.0 now
Github demo: https://github.com/suesitran/flutter_navigation_demo

Execute flutter run on the code above
In first page, click on 'Go to multitab page'
In Page 1, click on 'Go to sub page'
In sub-page, swipe from left to right to return to Page 1

Expected results:
App returns to Page 1
Actual results:

in iOS devices, the app returns to the first Single page
in Android device, unable to swipe to return to previous page

Hi @suesitran, kindly file a new issue and provide the details in there.
We prefer for new issues to be filed for separate bugs.


Conductive skin parameterisation between atmosphere and melt

To satisfy energy balance through the surface, we need some kind of treatment. The simplest case is simply that T_surf in the atmosphere equals T_surf at the top of the MO, but this isn't realistic.
Instead, we can assume a conductive skin of thickness d and conductivity k. Then, the atmosphere has to carry a flux that is equal to whatever the skin can conduct (global energy balance). The model will need to solve for the T_surf in the atmosphere that satisfies this, which will be less than that of the MO below.
This can be done using a root-finding method.

This is done, right?

Yes, this is implemented in the most recent versions of AEOLUS/AGNI and is called by PROTEUS. We can close this issue.


Homebridge DNS service error (log)

Problem/Motivation

Homebridge not starting

Expected behavior

Running homebridge addon

Actual behavior

Homebridge is completely loading , but at the End is an DNS error and Homebridge is stops running.

Steps to reproduce

I only restarted the addon

Proposed changes
A possible fix/workaround is the reinstall avahi daemon sudo apt-get install avahi-daemon avahi-discover libnss-mdns libavahi-compat-libdnssd-dev
But how is this possible on Hass.io?
LOG:
starting version 3.2.2
[ADD-ON] Ensuring old PID files are absent
[ADD-ON] Ensuring D-Bus unique ID exists
[ADD-ON] Starting D-Bus daemon
[ADD-ON] Starting Avahi daemon
Found user 'avahi' (UID 86) and group 'avahi' (GID 86).
Successfully dropped root privileges.
write(): No space left on device
Failed to create PID file: No space left on device
[ADD-ON] Applying HAP NodeJS IPV6 HOTFIX
patching file /usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/eventedhttp.js
[ADD-ON] Starting Homebridge
*** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
*** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!

Scan this code with your HomeKit App on your iOS device to pair with Homebridge:

    ┌────────────┐
    │ 853-81-325 │
    └────────────┘

/usr/lib/node_modules/homebridge/node_modules/mdns/lib/advertisement.js:56
  dns_sd.DNSServiceRegister(self.serviceRef, flags, ifaceIdx, name,
         ^
Error: dns service error: unknown
    at new Advertisement (/usr/lib/node_modules/homebridge/node_modules/mdns/lib/advertisement.js:56:10)
    at Object.create [as createAdvertisement] (/usr/lib/node_modules/homebridge/node_modules/mdns/lib/advertisement.js:64:10)
    at Advertiser.startAdvertising (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Advertiser.js:43:30)
    at Bridge.Accessory._onListening (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:575:20)
    at emitOne (events.js:96:13)
    at HAPServer.emit (events.js:191:7)
    at HAPServer._onListening (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/HAPServer.js:190:8)
    at emitOne (events.js:96:13)
    at EventedHTTPServer.emit (events.js:191:7)
    at EventedHTTPServer.<anonymous> (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/eventedhttp.js:65:10)

thanks to @frenck
I missed this entry
write(): No space left on device
Failed to create PID file: No space left on device

now its working.

No problem! Solved this in the Home Assistant community forums (issue was cross-posted).


Upgrade to Opal 1.1.0

https://github.com/opal/opal/releases/tag/v1.1.0

https://github.com/opal/opal/releases/tag/v1.1.1


Three dot ellipses used for both comments and spread operators is confusing

@jackahl I brought this up during the PloneConf21 Trainings OpenSpace and @fredvd asked me to make a ticket.  When using ... as a comment, recommend using // ... (and perhaps some text) to make it more apparent this is actually a comment.  Looks like most of the training pages do this already, but there are a few occurrences in places like https://training.plone.org/5/voltohandson/header.html#header-component without the double slash.  I've found this to be more prevalent on the https://docs.voltocms.com site which I'm not sure falls under this issue tracker.  But on pages where there is both a ... comment and a ... spread operator, this can be particularly confusing.
export blocks = {
...config.blocks,
}
...

The Training docs are separate from the Volto docs and follow different style guides.
From the Training's Authors Guide, under Syntax Highlighting:

The snippet must be valid syntax for the language you specify, else it will not be highlighted properly. Avoid adding comments to code snippets, unless you use valid comment syntax for that language. For example, JSON does not allow comments.
Do not indicate elided or omitted code with ellipses (... or …). These are almost never valid syntax and will cause syntax highlighting to fail for the code block.

When a PR comes through for this issue, I would change that to:

Do not indicate elided, omitted, or commented code with ellipses (... or …). These are almost never valid syntax and will cause syntax highlighting to fail for the code block. An exception is the JavaScript spread operator, which consists of three consecutive dots (...). It is valid JavaScript code. If ellipses are used as elided code in comments, they can be confused with the JavaScript spread operator. Please do not use ellipses in comments.
As an alternative, consider using code blocks with linenos, emphasize-lines, lineno-match, or dpatch as a lexer.

I would appreciate a PR that follows these guidelines.


Added folder-icon for element, elements.

Description
Added new folder-icon for element, elements about user interface.
Contribution Guidelines

[x] By creating this pull request, I acknowledge that I have read the Contribution Guidelines for this project.
[x] I have read the Code Of Conduct and promise to abide by these rules

@coderabbitai

@coderabbitai Isn't it bad that the icon is displayed on a white background?

@MTtankkeo The icon looks a little bad on a white background

Oh, I'll change the color of the icon.

Hmm, will I just change the icon shape because It's hard to choose the right color because of the color palette?

Hmm, will I just change the icon shape because It's hard to choose the right color because of the color palette?

Try it


HttpFeature discovery mechanism

The goal of this issue is to discuss and maybe implement a generic inversion of control for HttpFeature.
As of 4.0.0-M2, only ObserveFeature provides a way to discover automatically register HttpFeature in the routing. However there are still some Helidon features that need to be registered manually:

OpenApiFeature
SecurityFeature
AccessLogFeature

This would re-enforce the meaning of features, they are pluggable and can be activated simply by having them on the classpath.
static void routing(HttpRouting.Builder routing) {
    // user only
    routing.register("/greet", GreetService::new);
}

This discovery mechanism could be built-in HttpRouting.Builder and enabled by default, with an option to disable the discovery:
static void routing(HttpRouting.Builder routing) {
    routing.useSystemServices(false)  // 3.x style, what you see is what you get
            .register("/greet", GreetService::new)
}

A filtering mechanism would be needed, e.g. If a user wants to only load the Helidon features dynamically and avoid all others.
An implicit override mechanism, to programmatically customize features that would otherwise be registered dynamically.
E.g.
static void routing(HttpRouting.Builder routing) {
    healthCheck = new TestHealthCheck("message");
    HealthObserver health = HealthObserver.create(healthCheck);
    routing.register("/greet", GreetService::new)
            .addFeature(ObserveFeature.builder()
                           .addObserver(health));
}

It may be better to switch to using ServiceRegistry for this kind of behavior.
I am already looking into the "filtering" feature (so you can register by hand something that woudl otherwise be service loaded - we do not want it twice)

Couldn't we replace most usage of HelidonServiceLoader with ServiceRegistry ?

I do not want ServiceRegistry to be a mandatory requirement fo webserver, as it must use the full inject-runtime, which increases the size for the basic webserver.
Also anybody that wants to use just the webserver would have that dependency.
We will support this with Helidon declarative, where any HttpFeature marked as @Singleton will be added to server (this is already working with the inject based main class)


Are pull requests desirable?

Thank you very much for all your work really like the theme. I've needed to make a few modifications for my use of it. I wanted to know if you would want me to open a pull request with those features that could be considered as optional.
The only important change that I want to make that would not be backward compatible is changing the name of index.html as the base so that  index.html could be used for the landing page. However, if you are keen on pull requests I will not make this change.
Happy to explain the changes I'm talking about if you are interested. It's things like allowing the link to the logo to not need to be an absolute reference but an asset within the page. (PS the current implementation is not backward compatible but it can be updates such that it would be.)

hi @c-git , thanks for warm words. You can fork the theme and change index.html. The main idea behind the theme - is to easily add your docs without any settings, so landing could be additional iteration. But anyway will be happy to review any PR you'll make


Support asynchronous events

Some users of pmxbot have expressed the need to sometimes direct the bot to transmit messages based on external events. The basic paradigm of pmxbot, however, is to run as a single-thread synchronously. Something should be devised to allow plugins to react to external events asynchronously (or cooperatively).

Bitbucket: https://bitbucket.org/yougov/pmxbot/issue/24
Originally reported by: Jason R. Coombs
Originally created at: 2012-12-27T23:20:14.506

In pmxbot 1105.0, I've implemented the SwitchChannel Sentinel. In 1105.2, I've also implemented a FinalizerRegistry for registering callbacks that need to be invoked at exit (as a long-running thread or other service might need to be finalized to shut down properly). Using this new capability, I was able to implement fairly easily an HTTP interface for pmxbot (to relay messages from an HTTP POST) in jaraco.pmxbot.http.
Note that setting howlong=0 and repeat=True in execdelay doesn't work and causes the IRC client to spin in an infinite loop when running the delay handlers. Currently, howlong must be > 0.

Original comment by: Jason R. Coombs

In the most recent version of pmxbot (1104.4), there's experimental support for plugins to start up a thread and transmit messages asynchronously. The bot instance is exposed as pmxbot.core._bot. It's exposed as a global, private variable because it may change, but we're using it internally, so feel free to give it a try. Here's an example of a plugin that uses the bot to relay messages from an external source:
def _get_all_messages():
    "yield channel, msg forever, blocking"

class RelayThread(threading.thread):
    def run(self):
        for channel, msg in self._get_all_message():
           pmxbot.core._bot.out(channel, msg, log=False)

# set up a callback to start the thread immediately after on_welcome is triggered
@execdelay('relayer', channel=None, howlong=0)
def start_relayer(conn, event):
    RelayThread().start()

I'm torn - this implementation is fairly simple, and it seems to work, but it's messy, and it bypasses most of the machinery of pmxbot. I'm tempted instead to provide another @exec decorator that runs synchronously during every idle period of the bot, and which passes the bot instance instead of only the underlying connection. Something like:
def get_messages():
    "get any messages, if available"

@exec_global('relayer', howlong=0, repeat=True)
def relay_messages(bot):
     for channel, msg in get_messages():
          bot.out(channel, msg, log=False)

Another alternative, very similar to the current paradigm, is to always have the output yielded or returned, but allow the target channel to be indicated in the result:
@execdelay('relayer', channel=None, howlong=0, repeat=True)
def relay_messages(conn, event):
    for channel, msg in get_messages():
       yield pmxbot.core.SwitchChannel(channel)
       yield msg

That would enable a single handler to transmit messages to multiple channels (if appropriate), but maintains the synchronous mode.
The more I think about it, the more I like this last mode, because it's more consistent with the pmxbot design.

Original comment by: Jason R. Coombs

Just tested this out and it works great!  Actually I am using your http API code as is, since I don't need anything fancy, but it gives me a really easy way to have external systems send messages into a channel without requiring the bot to constantly poll them!
Awesome work as always!

Original comment by: Chris Jowett


JS config assistent should not propose exclude rule if jsconfig has files section

VSCode Version: 0.10.12-alpha
OS Version: Windows 10

See screen shot. The jsconfig has a files section which should result in only having the two files in the project. Suggesting exclude rules makes not much sense.

It seems TypeScript told me that a lot more files are part of that project... @dbaeumer In what repo does that happen?

I can't remember, but I think it happend in out repository. It suggested to exclude /vs/ folder.

Ok, the problem is that the files section has an entry which doesn't exist and therefore the project won't exist.

This issue was moved to Microsoft/TypeScript#8334


1.2.0 release blog post

Story
No response
Description
No response

Please mention the device agent being distributed as container: https://github.com/flowforge/helm/pull/80


Good way to test a silent token refresh failure in MSAL for Blazor?

Core Library
MSAL.js v2 (@azure/msal-browser)
Core Library Version
2
Wrapper Library
Not Applicable
Wrapper Library Version
Microsoft.Authentication.WebAssembly.Msal 7.0.4
Public or Confidential Client?
Public
Description
(Originally submitted at https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/issues/4098)
I'm currently using MSAL (https://www.nuget.org/packages/Microsoft.Authentication.WebAssembly.Msal 7.0.4) in a blazor project.
Due to how our project is implemented, silent token refresh is failing. (As described at https://learn.microsoft.com/en-us/azure/active-directory/develop/scenario-spa-acquire-token?tabs=javascript2, "More often, failures are due to the refresh token's 24-hour lifetime expiring and the browser blocking third party cookies, which prevents the use of hidden iframes to continue authenticating the user.")
In this case, I get an AccessTokenNotAvailableException when I make an HTTP request. Handling this exception is documented at https://learn.microsoft.com/en-us/aspnet/core/blazor/security/webassembly/additional-scenarios?view=aspnetcore-8.0#attach-tokens-to-outgoing-requests.
How do I simulate a silent token refresh failure so I can test a silent token refresh interactively?
So far I've put in a debugging hook to throw an AccessTokenNotAvailableException from a subclass of AuthorizationMessageHandler. Is there a better way to do this? We need to keep this as part of our regression suite; and our product is not ready to invest in significant test automation.
For example, is there a value we can tweak in local storage or session storage that would trigger MSAL to perform a silent token refresh?
MSAL Configuration
No response
Relevant Code Snippets
I am looking to test code based on https://learn.microsoft.com/en-us/aspnet/core/blazor/security/webassembly/additional-scenarios?view=aspnetcore-8.0#attach-tokens-to-outgoing-requests

protected override async Task OnInitializedAsync()
{
    try
    {
        var examples =
            await Http.GetFromJsonAsync<ExampleType[]>("ExampleAPIMethod");

        ...
    }
    catch (AccessTokenNotAvailableException exception)
    {
        exception.Redirect();
    }
}

Identity Provider
Azure AD / MSA
Source
External (Customer)

Yes, @andrewrondeau-optirtc. Can you update the expiresIn in your token from the localStorage to simulate token expiry and try?

Hi @andrewrondeau-optirtc.
Please refer to the token lifetime cache lookup policy. Setting cacheLookupPolicy to CacheLookupPolicy.Skip makes the request fail as long as the 3rd party cookies are blocked by the browser (which is your use case as far as I get it). These code snippets might be helpful.

How would I adapt that to fit in the sample code that's in the ticket description?
Specifically, how do I make "await Http.GetFromJsonAsync<ExampleType[]>("ExampleAPIMethod");" simulate a silent token refresh failure such that it throws an AccessTokenNotAvailableException?
Remember, I'm seeking support for Blazor (WASM,). I initially filed this support ticket here: https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/issues/4098
(As shown in the code example that's part of the ticket description, I am not calling acquireTokenSilent or a C# equivalent.)

Apologies for the mix up @andrewrondeau-optirtc. We can only manage expiresIn from the accessToken, I do not think clients can manage RT expiry, it is a blob we cannot decipher. @konstantin-msft  is following up with the service team if they can help, but we do not think client (MSAL JS) can simulate this.

@andrewrondeau-optirtc - I can think of 2 ways for you to test:

As a tenant admin, you can invalidate all refresh tokens for a user https://learn.microsoft.com/en-us/azure/active-directory/enterprise-users/users-revoke-access
As a tenant admin, you can change the security configuration and ask for MFA from your users.
You can also set token lifetime, I think the min for an RT is a few hours.  https://learn.microsoft.com/en-us/azure/active-directory/develop/configurable-token-lifetimes

In all these cases, your app is unaware that the cached RT is invalid and will try to use it. What will happen internally is:

You call AcquireTokenSilent
MSAL checks for a cached access token. If AT is expired, it will look for RT.
MSAL will perform the refresh_token OAuth grant.
AAD will refuse and will respond with a specific error (interaction_required or invalid_grant if memory servers)
MSAL will throw an UIRequiredException
Your app is supposed to catch this exception, see if there are any claims and call AcquireTokenInteractive + claims
User logs in interactively and will be guided to resolve the problem. This may simply mean performing MFA, or just logging in as normal etc.

Hope this helps.

If you really want to write a unit test around this, you can inject your own HTTP stack and when MSAL performs the refresh_token flow, you can respond with a 400 + "interaction_required" failure just like AAD would.
But I would think a better E2E test is to option 1 from above.

Ok, so it looks like I can revoke my refresh token with "Revoke-AzureADUserAllRefreshToken -ObjectId (email address)"; but not my session token.
I ran that once and triggered a re-login. I'll retry it another time today and verify that it's working.

Ok, that did it. Thanks!


Enhancement Request: Improving the Testimonial Section on the AsyncAPI Website

Reason/Context

Why do we need this improvement?
The current testimonial section on the AsyncAPI website needs improvement for several reasons. Firstly, the testimonial section appears jampacked and clustered together, making it challenging for users to quickly and easily access individual testimonials. The crowded layout hampers readability and can overwhelm users with excessive content presented at once. We can create a more user-friendly and engaging experience for website visitors by addressing this issue and improving the testimonial section.

How will this change help?
Implementing the suggested improvements to the testimonial section will have several positive impacts by enhancing the readability and usability of the testimonials by providing a clear separation between each testimonial. Users will be able to focus on and absorb the content of each testimonial without being overwhelmed by a cluttered layout. Additionally, incorporating adequate white space and a visually appealing design will improve the overall aesthetics of the testimonial section, making it more visually appealing and engaging for users.

What is the motivation?
As a Product Designer, my motivation is crafting seamless and enjoyable experiences for website visitors, ensuring easy access and engagement with desired content. By advocating for improvements to the testimonial section, I aim to enhance user-friendliness, visual appeal, and overall satisfaction with the AsyncAPI website.

Description
I recommend a redesigned testimonial section that offers a more organized and visually appealing presentation. This can be achieved by carefully implementing clear separation between testimonials, allowing users to focus on one testimonial at a time. Additionally, establishing a clear visual hierarchy within the section can be accomplished using larger or stylized fonts for testimonial quotes and design elements like quotation marks or speech bubbles to emphasize the testimonial content. By incorporating adequate white space, readability will improve, and the testimonials will have room to shine.

How could it be implemented/designed?
To implement the improvement, a single testimonial display with pagination can be utilized, allowing users to view one testimonial at a time and easily navigate through them, providing a focused and user-friendly browsing experience. This design approach ensures that each testimonial receives proper attention while maintaining an organized and visually pleasing layout.

Let me provide you with an example to illustrate what I mean. Imagine a testimonial section where testimonials automatically rotate, showcasing one testimonial at a time. Unlike this example, our design will include a pagination feature, allowing users to navigate through the testimonies at their own pace manually. However, our envisioned design will incorporate a pagination feature, allowing users to navigate the testimonies at their own pace manually. In this implementation, the prominently highlighted testimonial will briefly appear and fade away after a few seconds, making way for the following testimonial. Users can seamlessly utilize the pagination controls to explore the testimonials according to their preferences.

@AceTheCreator @thulieblack @derberg @akshatnema

Is it "What the experts are saying section"? @Mayaleeeee

I can work on it!

Is it "What the experts are saying section"? @Mayaleeeee

Yeah, thanks for the correction.

Is it "What the experts are saying section"? @Mayaleeeee

Yeah, thanks for the correction.

@Mayaleeeee Do you want the design to be exactly same or we can keep a single testimonial slide that is visible with pagination?

@Mayaleeeee How does this design look?

@Mayaleeeee i have tried solving this issue here is the PR https://github.com/asyncapi/website/pull/1697

@Mayaleeeee i have tried solving this issue here is the PR #1697

Please follow the discussion workflow I was already working on this issue!!

@Lucif3r-in but you were not assigned

@Lucif3r-in and @SumantxD, this issue is still under review. In terms of assigning issues, it'll be given to the first person who showed interest first!!

@Mayaleeeee, I totally agree it makes sense to make some improvements. wdyt @derberg @AceTheCreator?

@Mayaleeeee, I totally agree it makes sense to make some improvements. wdyt @derberg @AceTheCreator?

Thanks @thulieblack

Please check the updated PR #1704

is this still valid? @Mayaleeeee

is this still valid? @Mayaleeeee

yeah, you can check it here

This issue has been automatically marked as stale because it has not had recent activity :sleeping:
It will be closed in 120 days if no further activity occurs. To unstale this issue, add a comment with a detailed explanation.
There can be many reasons why some specific issue has no activity. The most probable cause is lack of time, not lack of interest. AsyncAPI Initiative is a Linux Foundation project not owned by a single for-profit company. It is a community-driven initiative ruled under open governance model.
Let us figure out together how to push this issue forward. Connect with us through one of many communication channels we established here.
Thank you for your patience :heart:

Still valid!

This will be done on the homepage redesign project #3123


[#180] Document print behavior in python rules (main)

In service of #180

Probably worth mentioning the NREP is required to be configured before calling writeLine.

oh, is that true?   not a system microservice?

There's no such thing as a system MSI AFAIK.
I'm pretty sure writeLine is part of native rule engine plugin. If not, then that's news to me.

grep for smsi

with only PREP and default_cpp installed...
core.py
def acPostProcForPut(rule_args, callback, rei):
    callback.writeLine('serverLog', 'callback.writeLine without NREP!')

 {"log_category":"legacy","log_level":"info","log_message":"writeLine: inString = callback.writeLine without NREP!\n","request_api_name":"DATA_OBJ_PUT_AN","request_api_number":606,"request_api_version":"d","request_client_user":"rods","request_host":"<IP_ADDRESS>","request_proxy_user":"rods","request_release_version":"rods4.3.1","server_host":"xxx.xxx.xxx.xxx","server_pid":3942678,"server_timestamp":"2023-11-21T23:00:58.813Z","server_type":"agent","server_zone":"tempZone"}

Looks like we're all set then.


✅ Fixed broadcast adapter func and random anime/manga endpoint

There was a change recently in the jikan lib, which might have changed the code path for the resolution of the broadcast attribute of the anime items. I've added a hotfix for it to make it work for now. (Fixes #542)
The random endpoints of anime and manga were not respecting sfw and unapproved parameters. This PR fixes that.

Responses are still not filtering (sfw, unspecified - didn't check that).

Responses are still not filtering (sfw, unspecified - didn't check that). But I'll hope you fix it soon. Thanks for the response the other day.

Did you checkout this version from this PR and check it locally? On my end out of 100 tries there were no nsfw items when I've added the sfw parameter.

Responses are still not filtering (sfw, unspecified - didn't check that). But I'll hope you fix it soon. Thanks for the response the other day.

@N-Pu Did you checkout this version from this PR and check it locally? On my end out of 100 tries there were no nsfw items when I've added the sfw parameter.

Well, I actually tried it. Link didn't change in any case, so whenever sfw=true or =false I sometimes get responses with hentai. Maybe I'm doing something wrong on my end.

@N-Pu Just to be clear: this version / fix is not on https://api.jikan.moe yet. Are you self-hosting? If yes and you cloned this version, and the bug still persist, then there is a problem.

No-no, I'm not self hosting. I get the idea. Will wait when this commit will merge into master branch.


Url used in website agent to be used in Telegram text

Hi, I currently have the following flow for checking if a book goes in stock - WebsiteAgent -> Event Formatting Agent -> Telegram Agent
I have it sending me the Title and the price once it changes, but the issue is getting the url to be sent. For some reason it just doesn't grab the url mentioned in the WebsiteAgent.
Here's an example of the setup:
WebsiteAgent
{
"expected_update_period_in_days": "2",
"url": "https://www.booksetc.co.uk/books/view/-9781421597713",
"type": "html",
"mode": "on_change",
"extract": {
"price": {
"css": "#item_info > table > tbody > tr > td.price",
"value": "normalize-space(.)"
},
"title": {
"css": "#item_info > div:nth-child(1) > div.details > h1",
"value": "normalize-space(.)"
}
}
}
Event Formatting Agent
{
"instructions": {
"agent": "{{agent.type}}",
"text": " TITLE - {{title}} Price - {{price}} URL - {{url}}"
},
"matchers": [],
"mode": "clean"
}
As mentioned, the title and Price is getting sent out correct, but the url is empty. As I understood it should get the url from the field mentioned in the WebsiteAgent.
Any help appreciated!

You're not actually sending the url in your event, only {{ title }} and {{ price }}.
You can add the url field using the template option, either manually define it again or dynamically call it using Liquid templating with {{ _url_ }} or {{ _response_.url }} if needed. More info about this can be found in the help text on the right when editing the agent.
So like this:
{
  "expected_update_period_in_days": "2",
  "url": "https://www.booksetc.co.uk/books/view/-9781421597713",
  "type": "html",
  "mode": "on_change",
  "extract": {
    "price": {
      "css": "#item_info > table > tbody > tr > td.price",
      "value": "normalize-space(.)"
    },
    "title": {
      "css": "#item_info > div:nth-child(1) > div.details > h1",
      "value": "normalize-space(.)"
    }
  },
  "template": {
    "url": "{{ _url_ }}"
  }
}

Excellent, thanks!


Add sample which explain how to deploy model on EKS cluster

/kind bug
What steps did you take and what happened:
I have installed Kubeflow-1.3. I could not figure out which version of kfserving it has installed by default.
Following were namespace created which I believe for KFServing
knative-eventing            Active   151m
knative-serving             Active   152m

What did you expect to happen:
I tried to run XGBoost sample. Everything worked fine except that my SERVICE_HOSTNAME=$(kubectl get inferenceservice xgboost-iris -o jsonpath='{.status.url}' | cut -d "/" -f 3) became xgboost-iris.default.example.com. Which I believe is expected but I did not create any domain for this service.
Can we add a sample which can run vanila EKS cluster without worrying about domain or am I missing something?
Environment:
EKS cluster
K8s version-1.9

Istio Version:
Knative Version:
KFServing Version:
Kubeflow version: 1.3
Kfdef:[k8s_istio/istio_dex/gcp_basic_auth/gcp_iap/aws/aws_cognito/ibm]
Minikube version:
Kubernetes version: (use kubectl version):
OS (e.g. from /etc/os-release):

@goswamig Which node group did you use for AWS EKS Cluster?


bug: Ion-item-sliding open anchor is too far from item-options

Bug Report
Ionic version:

[x] 4.5.0
Current behavior:

When sliding the item-sliding, the slider stays open far from the options, when options layout is modified to grid (display:grid)

Expected behavior:

It used to work correctly with ionic 4.1 or something (don't remember the exact version).
The slider should stop at the size of the items-option

Steps to reproduce:

Add display:grid to CSS for item-sliding
-->
.item-sliding-active-slide ion-item-options {
  display: grid;
}

Other information:

Seems like the open amount is exactly what it should be when display grid is not set:

Ionic info:

Ionic:

   Ionic CLI                     : 5.2.3 (C:\Users\Pierre-Yves\AppData\Roaming\npm\node_modules\ionic)
   Ionic Framework               : @ionic/angular 4.5.0
   @angular-devkit/build-angular : 0.801.2
   @angular-devkit/schematics    : 8.1.2
   @angular/cli                  : 8.1.2
   @ionic/angular-toolkit        : 2.0.0

Cordova:

   Cordova CLI       : 9.0.0
   Cordova Platforms : android 8.0.0
   Cordova Plugins   : not available

Utility:

   cordova-res : 0.6.0
   native-run  : not installed

System:

   NodeJS : v10.16.0 (C:\DEV\Tools\nodejs\node.exe)
   npm    : 6.9.0
   OS     : Windows 10

Thanks for the issue! Is there a reason you need to use display: grid? The reason this happens is because we are toggling the display property of the item options to flex before calculating the option width, and hiding it again.
If you're looking to stack the options on top of each other, you could change the flex-direction and the option width. Here's a Codepen example: https://codepen.io/brandyscarney/pen/dxMbJg
<ion-item-sliding id="stackedOptions">
  <ion-item>
    <ion-label>

Sliding Item, Stacked Options

Lorem ipsum

Lorem ipsum

Lorem ipsum

Lorem ipsum

Lorem ipsum

    </ion-label>
  </ion-item>
  <ion-item-options>
    <ion-item-option color="primary">
      <ion-icon slot="icon-only" name="star"></ion-icon>
    </ion-item-option>
    <ion-item-option color="secondary">
      <ion-icon slot="icon-only" name="archive"></ion-icon>
    </ion-item-option>
    <ion-item-option color="danger">
      <ion-icon slot="icon-only" name="trash"></ion-icon>
    </ion-item-option>
  </ion-item-options>
</ion-item-sliding>

#stackedOptions ion-item-options {
  flex-direction: column;
  width: 120px;
}

#stackedOptions ion-item-option {
  flex: 1;
}

Thank you so much for this detailed answer.
I assumed this was a bug because it used to work in previous versions, but it seems ionic just changed its way of calculating the open amount.
I had to change your code a bit :
`.stackedOptions  {
flex-direction: column;
width: 60px;
align-items: flex-end
}
.stackedOption {
flex: 1;
width : 60px;
}`
The items took the full width of the item sliding and icons were behind the anchor.
Thanks again!


drag-drop: allow to select multi items to drag

feature
Add selection to cdk
What is the use-case or motivation for changing an existing behavior?
selection + sort + move

Hi guys, thank you very much for this big update!
What would be the best way to implement this feature?
Thanks!

Closing this issue as it does not follow the issue template. Please file a new issue that follows the template, which gives the team the information needed to investigate


Update aptos-core to pass LedgerInfo as the source of truth in block reversion

Summary

RFCs: $\emptyset$.
Categories: protocol-units.

Update a test to the revision of aptos-core with
DbWriter::revert_commit taking LedgerInfoWithSignatures as the single method argument.
Testing
The test should pass, but see below.
Outstanding issues
The modified test needs infrastructure to run.

I think this is the first divide by zero error we've caught in CI: https://github.com/movementlabsxyz/movement/actions/runs/9605427004/job/26493033938?pr=141

./process-compose/suzuka-full-node/process-compose.yml expects to run the suzuka-full-node by name, as if it was installed in the binary search path. Is this how it should be?

Genesis is failing seemingly due to a Move function execution failure: https://github.com/movementlabsxyz/movement/actions/runs/9647516174/job/26608781559?pr=141#step:9:813

I have updated the description and merged recent main.