Graphical misbehavior

Hi @Shusshu, thanks for your library!
Any idea about why recurrent picker is shown like this?

I successfully included into my application using it with iCal4j but I'm still facing this graphical issue.
Any hint? Thanks

I would need more info to reproduce that...
Do you have a sample project?

Ok, I built a sample project from scratch and it worked.
Sto I started stripping out styles (being a graphical issue I started from there) and I found that I was overriding

Ok, I built a sample project from scratch and it worked.
Sto I started stripping out styles (being a graphical issue I started from there) and I found that I was overriding default buttons as a workaround with another library issue.
<item name="android:button">@android:drawable/checkbox_off_background</item>

So, obviously, the problem was not related to Android-RecurrencePicker library itself.
Thanks!

Great!


how to disable this

i want disable IntelliSense parameter documentation as value:
https://imgur.com/a/wtHWPa8

I'm unable to reproduce that. @NCLnclNCL are you sure it's not caused by some other extension?

In you vscode settings disable inlay hints "editor.inlayHints.enabled": "off"


feat: decodeQueryValue and decode query params with support for space

Codecov Report

Merging #11 (58190ea) into main (5c6b320) will increase coverage by 0.48%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main      #11      +/-   ##
==========================================
+ Coverage   84.40%   84.89%   +0.48%
==========================================
  Files           7        7
  Lines         186      192       +6
  Branches       51       51
==========================================
+ Hits          157      163       +6
  Misses         29       29

Impacted Files
Coverage Δ

src/encoding.ts
94.87% <100.00%> (+0.93%)
:arrow_up:

src/query.ts
95.83% <100.00%> (ø)

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 5c6b320...58190ea. Read the comment docs.

Released as 0.6.0


Bioconda package

Hi,
a Bioconda package would be super useful for this program.
Thanks,
Bjoern

Hi Bjoern,
Thanks for the request.  @aaronk has written the recipe (here is the PR).
John Gaspar


[Feature] Play a sound when someone joins or leave the room

This is from discord, when someone enters a room or leaves, a sound notification is played.
I am not sure if that's useful or not for Dogehouse, but let's discuss it.

I think instead of a sound, this will trigger a message-like thingy in the chat: "Someone left", "Someone joined"

we can keep the join/leave sound to only speakers

@benawad aye aye captain

I think instead of a sound, this will trigger a message-like thingy in the chat: "Someone left", "Someone joined",
Because then there will be too much sound. Because people keep joining and leaving continuously.
Because Dogehouse is not like Discord. I hear people like to explore different rooms and keep joining/leaving. Unlike Discord, where people specifically open the app to join a specific room.

That's exactly why I was wondering if that is an idea good for dogehouse or not, It was good for me in discord as a speaker to be notified to check who is joined before continuing the talk.

@benawad aye aye captain. I will work on this, can suggest a sound? Or can I just use the same one like mention sound?
Maybe a very light sound?

we can keep the join/leave sound to only speakers

I think adding an option to enable and disable that for users would be useful too.

I think adding an option to enable and disable that for users would be useful too.

Great suggestion @mohammedgad

closing for # #170


AuditLog.Read.All permission is not available to consent inside of the Modify Permissions (Preview) tab

Describe the bug
A clear and concise description of what the bug is:
AuditLog.Read.All permission is not available to consent inside of the Modify Permissions (Preview) tab
To Reproduce
Steps to reproduce the behavior:

Login to Graph Explorer (https://developer.microsoft.com/en-us/graph/graph-explorer),

Try to run the query: "GET https://graph.microsoft.com/beta/users?filter=signInActivity/lastSignInDateTime le 2021-07-21T00:00:00Z"

The query produces the error:

A. "Calling principal does not have required MSGraph permissions AuditLog.Read.All"

B. "Forbidden - 403 - 637ms. You need to consent to the permissions on the Modify permissions (Preview) tab"

Switch to the "Modify Permissions (Preview)" tab

AuditLog.Read.All permission is not available to consent. Several other permissions are listed but not AuditLog.Read.All.

Expected behavior
A clear and concise description of what you expected to happen.
AuditLog.Read.All permission should be available to click the "Consent" button.
Screenshots

Desktop (please complete the following information):

OS: [e.g. iOS]  Windows
Browser [e.g. chrome, safari] Chrome
Version [e.g. 22] Version 101.0.4951.67 (Official Build) (64-bit)

Hi Support,
I have found the solution for this error message.
The solution is to click on the 3-dots next to the user that is signed in, then select "Select permissions" and then grant the  AuditLog.Read.All permission.

The error message for this could be modified  from:
"You need to consent to the permissions on the Modify permissions (Preview) tab"
to
"You need to consent to the permissions by clicking the thee dots on the left and then choosing, 'select permissions' and then grant the permission"

@adhiambovivian  The problem here is the fact that we are missing permission metadata.  The work to fix this is ongoing and we should not use this error as signal to change the GE UX.


📦 Move to pyproject.toml setup for python package

My hope is, that this setup will fix the release pipeline.
The issue at the moment is, that the current GH action can not define the new version number correctly, so PyPi responses with a Bad Request 400.
This PR fixes #104

Don't you want to be the maintainer  ;)


doc: add examples in CLI help doc for notation sign and verify

fix https://github.com/notaryproject/notation/issues/383

Codecov Report

Merging #384 (8c3790f) into main (623fd6d) will increase coverage by 1.32%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #384      +/-   ##
==========================================
+ Coverage   30.70%   32.03%   +1.32%
==========================================
  Files          26       26
  Lines        1638     1670      +32
==========================================
+ Hits          503      535      +32
  Misses       1122     1122
  Partials       13       13

Impacted Files
Coverage Δ

cmd/notation/common.go
100.00% <ø> (ø)

cmd/notation/sign.go
42.45% <100.00%> (+12.56%)
:arrow_up:

cmd/notation/verify.go
26.89% <100.00%> (+8.96%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


How is the receptive field in Figure 13 of OA-CNNs visualized?

Do you mind sharing the code?

@Pbihao


Add tests and/or documentation for Catch

Currently, the only place where the use of Catch is demonstrated is in this single test.
This demonstration is very limited. Most notably, I don't know what the error parameter is, or how to use it. Sending it to an ostream like std::cerr causes a larger compile error than my terminal can show, so that's clearly not it. 😆

This for this issue! There are some great updates in the pipe for this right now thanks to @onelxj. For now, you can do the following very verbose thing (or stick it in a helper):
Catch([](auto&& e) {
  if constexpr (std::is_base_of_v<std::exception, std::decay_t<decltype(e)>>) {
    std::cerr << e.what() << std::endl;
  } else if constexpr (std::is_same_v<std::exception_ptr, std::decay_t<decltype(e)>>) {) {
    try {
      std::rethrow_exception(e);
    } catch (std::exception& exception) {
      std::cerr << exception.what() << std::endl;
    }
  }
})

But in the very soon future (next 12 hours?) you'll be able to do:
Catch()
  .raised<std::exception>([](auto&& e) {
    std::cerr << e.what() << std::endl;
  })

And we'll take care of all that boilerplate for you and make sure you always get a std::exception! You'll even be able to be more specific as well as chain multiple handlers:
Catch()
  .raised<MySpecificError>([](auto&& e) {
    std::cerr << e.SomethingSpecificToThisError() << std::endl;
  })
  .raised<std::exception>([](auto&& e) {
    std::cerr << e.what() << std::endl;
  })

@onelxj's https://github.com/3rdparty/eventuals/pull/214 has added a bunch more tests, which will hopefully act as documentation. Let's close this issue for the moment as we try the new experience. 🙂


Add CNFTLab party showcase

Name: CNFTLab party
Description: Tool for minting CNFTs, manage your policyID, create royalties and start minting in few seconds.
Link:   CNFTLab Party
Source: null
Tags:

minting
nftsupport

oops sorry @os11k for ticking your name for review again... that was an accident 🤪 (trying today to clean up PR queue a bit)


Resolve conflicts at startup

After remote and local sync and before processing watchers messages, resolve conflicts by an arbitrary rule : local changes have priority (Tracim keep versions).

done : b9e0d1600f5771219dbfbd1b666f8c5651dab34f b0223f5ccc1cada70024865140ba263ab74cadc4


How to "support" pistache financially?

Github is starting a new funding beta it seems. https://www.engadget.com/2019/05/23/github-sponsors-beta/?guccounter=1
Here's another way via Patreon https://medium.com/microhq/micro-on-patreon-funding-open-source-ba085734f1c but its also tied to the individual.
I am wondering if there is a way to tie the support to the repo so that if maintainers move on they don't take the funding with them?
Are the current maintainers interested in such a model?
I raise this in the context of how we can support a Windows version, and other targets like a stable v1.0 :-)

As of this moment, only two people has pull rights on this repo: The original author, "oktal" (whom has mostly abandoned this project), and myself (b/c I tracked him down outside of github and he granted me pull rights).
My general policy for merging PRs is that the code is clean, has unit tests, and is generally reasonable.  I am not actively making changes to pistache, b/c it does what I need it to do (although I do have a wish list).
I do not need, nor will I accept, $$ to continue to be a steward of this project.  I have no plans to disappear either.
I am not opposed to others gaining pull rights, but I think that we should not have too many "cooks in the kitchen", with competing styles and thresholds for quality.  However, someone else should gain pull rights (an existing regular PR author), in case I get hit by a bus.
All of that being said...  Adding support for any non-Linux OS will be quite cumbersome.  Pistache uses the Linux-specific eventfs.  This would have to be properly abstracted (to hide all of the OS-specific bits in a class, and not sprinkle lots of ifdefs all over the code), and have proper unit tests.  Can we get a win32/win64 travis unit test environment?  I have no idea.
Code contributions are welcome.  Especially PRs that do cleanup.
Someday someone will establish a code formatting style and we'll reformat everything to be consistent.  I've been holding off b/c others are (or were) working on PRs and I did not want to cause merge conflicts for them.
As for a 1.0 release... yeah, "we" should do that.  Too bad that github does not provide a useful "web forum" where such things could be coordinated easier than via issue comments.

Is there a target web forum you'd like to use? There is quite a long ycombinator post on the views of using Slack for FOSS https://news.ycombinator.com/item?id=11013136 too :-)
Is there anything else that those not directly contributing code could do to support Pistache, and/or encourage contributors to tackle the Windows challenge for example?

oktal actually has a slack channel, but I was thinking for of a web forum, not an irc knock-off.

To be more specific, I was thinking of a "forum" like those found on http://forums.nesdev.com/ and https://forum.osdev.org/, but not implemented in php... :)

not implemented in php...

If so, how about something like Discourse.
Seems a great number of forums for open source projects are using Discourse.
The UI is clean and the UX is good for me. (This is  certainly not a propaganda. )

This is not the issue related to code and bugs and i think we can close it

Is there a target web forum you'd like to use? There is quite a long ycombinator post on the views of using Slack for FOSS https://news.ycombinator.com/item?id=11013136 too :-)
Is there anything else that those not directly contributing code could do to support Pistache, and/or encourage contributors to tackle the Windows challenge for example?

We've had an IRC channel with regulars in it for over a year now. You can find it in the ReadMe.md. The channel is #pistache on Freenode.

Oktal has a slack channel where (last time I checked, over a year ago) there were 23 pistache users hanging out  However, I personally hate the slack UX and won't use it.  The benefit of slack though is that its already hosted by a company that takes care of updates and stuff.  I've used phpbb (as an end user, not admin) for sites like nesdev and osdev and found it to be ok; however, I don't want to be responsible for admining such a thing.  But I'm just one person, so meh...

I don't think anyone uses the Slack channel anymore, nor should they. Last I checked nobody was in there. In any case we don't need a proprietary instant messaging platform. We've had regulars idling in the IRC channel for over a year now.


Add retry clause to Jenkinsfile

The liveness tests have a non-deterministic failure that occasionally breaks builds. Try the failing step a few times, in case that's why it broke.
Signed-off-by: Kenneth Koski<EMAIL_ADDRESS>

I agree that it's a high-priority item, but I don't think our time is currently well-served by having to manually notice and go and trigger the failing builds ourselves until we can fix the issue.

I agree with Logan. This will cause extra builds when they should fail as well as try to deal with the nondetermsitic failure.


Add serialization service to fix problems when passing complex objects as navigation parameters

Add serialization service to fix problems when passing complex objects as navigation parameters

This REALLY needs a sample project, Carsten


Audio_transcribe hangs on long recordings

Steps to reproduce

I made adjustments to examples/audio_transcribe.py to work on a 6 second aif voice recording (I pulled out of the guts on a garage band "project" (.band/Media/...aif).

parameterized to file name argument from CLI
commented out everything but Sphinx recognizer

Then, I tried to run it on an hour long recording.

Expected behaviour
I expected it to run just fine on a longer file, but maybe it's not a linear algorithm or it doesn't buffer the results?
Actual behaviour
It took 9 hours, and 5 gigs of RAM before I gave up on it.  I can't share the actual file because it's confidential, but if you think I should be able to transcribe hour long clips, I'll find another and reproduce the problem in more detail. Otherwise, any recommendations would be deeply appreciated (like what does an audio-phile call this sort of "streaming transcription"?).
System information
My Python version is 2.7.10.
My SpeechRecognition library version is 3.4.6.
My PyAudio library version is 0.2.9.
I installed PocketSphinx from Homebrew.

I've just added PR #133 to show the changes I made to examples/audio_transcribe.py

That should definitely not be happening! If there's a non-confidental audio file you can reproduce the issue with, that would be very helpful.
As a temporary workaround, I recommend using r.listen(source) in a loop instead of r.record(source) to break the audio up into manageable sizes.

Ok, thanks for your feedback, Uberi!
I'll try to reproduce the issue with a redacted file.

Unfortunately, the file was too big for git, even after I switched to Git Large File Storage (or else I need some kind of special permissions for this repo):
Git LFS: (0 of 2 files) 0 B / 423.67 MB
@combinatorist can not upload new objects to public fork combinatorist/speech_recognition
Docs: https://github.com/contact
@combinatorist can not upload new objects to public fork combinatorist/speech_recognition
Docs: https://github.com/contact
error: failed to push some refs to 'https://github.com/combinatorist/speech_recognition.git'

I sent a support request to github, but meanwhile, I'm going to try to:

create a public dropbox link to the big file
create a shorter "long interview"
switch the code to listen like you suggested

Ok, I updated the PR #133 with redacted files (however, you'll have to download the large one from my dropbox link).  Note: they sound like the real interviews, but they're pilot tests.

Thanks, @Uberi!  I experimented with listen and got it to work with my own while loop (see #133).  It's pretty hacky in it's current state abd0523, but listen solves my original concerns, so I'm closing this issue.
Meanwhile, I'm happy to clean-up the version in my PR (#133) to make a helpful example for posterity.  My "short" interview (which fits on git), is enough to demonstrate the loop over listen (based on the timeout option). If you're interested, let's discuss it on the pull request.  I'm going to look for any develop docs now to see if you have any guidelines.

Hello, I downloaded Python 2.7 and both PocketSphinx and SpeechRecognitions, but the code of Audio_Transcriber doesn't work ..
I got this message: Sphinx error; missing PocketSphinx module: ensure that PocketSphinx is set up correctly.
Please note that I only changed the X.wav name and I wrote "init" instead of file.
Help me please.

Sorry, @RafahF, just saw your comment.
I would be happy to help, but I need a couple things from you:

What code did you start with (link to a commit on github)?
What changes did you make (PR or diff or an explanation if the diff is really simple)?
Finally, if you're situation is different enough from mine, perhaps create a separate issue to document your environment etc.

Honestly, I don't know much about this speech_recognition library besides what I hacked around a while ago.  Furthermore, for my purposes, I switched from pocket sphinx to google speech API and never got around to including that into this library because I realized I could just use the google's example docs instead.
If you fill out the above information, I'll give it a shot this weekend when I have some down time.


toggl desktop blurred on high-dpi Windows 8.1

When starting toggl desktop (7.1.224) on a high-dpi Windows 8.1 (screen scaling set to 150%), toggl desktop becomes blurred (picture 1).

When disabling display scaling for toggl desktop, toggl desktop is displayed sharp (picture2), also the font size of the main window looks good.

There is one problem when disabling display scaling, the line height of the projects dropdown list in the details windows is small (picture3).

Mine looks a little different, but it's still the DPI settings, and it's not really usable. I can't even see the time (Yoga 2 Pro 13"):

Could you confirm: Do you have display scaling enabled or disabled for Toggl Desktop?
See here for what I mean if unclear: http://ccm.net/faq/32589-windows-8-1-disable-display-scaling-on-high-dpi-settings

Closing this as duplicate of: #1379


⚠ Bookkeeper to the Smart People has degraded performance

In 94ac2e7, Bookkeeper to the Smart People (https://bksp.com.au) experienced degraded performance:

HTTP code: 200
Response time: 6350 ms

Resolved: Bookkeeper to the Smart People performance has improved in 4be6673.


Added HTTPS support

Related to https://github.com/elnormous/HTTPRequest/issues/12 and https://github.com/elnormous/HTTPRequest/issues/23

This isn't working for me. It looks like the server is closing the connection because we're not dealing with all the SSL stuff. Just changing 80 to 443 will only work if the web server is using the http scheme on 443, which would be silly.

This is not how HTTPs works. Sending HTTP requests to port 443 does not mean you are using HTTPs. HTTPs means sending HTTP over TLS. Please read RFC 8446 (The Transport Layer Security (TLS) Protocol Version 1.3): https://tools.ietf.org/html/rfc8446


Authentication

Eventually we want to be able to control access to some or all of the api endpoints for different users.
Therefore we will need to add some authentication / user management system.
I'd assume that we would use our own implementation based on JWT.
(found this video on working with JWTs in axum).
Open Questions:

Do we need this at all ? When ? Priority ? (or do we keep our api open for now)
Are there any "out of the box" solutions available that can make our life easer ?
Do we want to provide public endpoints for potential users to register / log-in / generate tokens ? (Or do we just generate those tokens ourselves  and hand them out manually ? )
Token configuration (Do tokens expire ? )
Do we need multiple tiers of tokens / users ?
Do we want to have analytics / montioring of user activity ? (With the potential of rate limits etc ? )
Where do we store the data ? (same db as other services or do we spin up our own db specifically for user management ? )

Would probably start open actually, mostly because it is less work.
Great questions, going to leave them for now but these are the right ones.


ASI290MM Mini compatibility

ZWO's "Mini" series of guidecams, the ASI290MM and 174 version, would seem to make ideal candidates for AllSky. They are USB 2.0 though, if that is a blocking issue? I do note there doesn't seem to be an entry for them in the current asi.rules, so I'm not expecting current compatibility, but it would be nice to see it added if possible. Perhaps this is a question for ZWO?
Just FYI I can get AllSky 0.5 to work with regular 290 and 224 USB 3.0 cams, but for my ASI290MM Mini, while the camera is recognized, I see the following.
...
Listing Attached Cameras:
- 0 ZWO ASI290MM Mini
Open Camera ERROR, Check that you have root permissions!

ZWO ASI290MM Mini Information:
- Resolution:1936x1096
- Mono camera
- Initialise Camera ERROR
- Sensor temperature:0.000000

Capture Settings:
 Image Type: ASI_IMG_RGB24
 Resolution: 1936x1096
 ...

In addition to that, rather than hit the message that it's not capturing since it's daylight, it goes straight into attempting to upload by FTP.

The allsky code is using the latest version of the SDK so there's not much we can try on the side.
However you can try to manually add the camera to the list in asi.rules.
Run lsusb and it should return the list of usb devices on the Rapsberry Pi. You should see a vendor Id and a product Id.
Now open the rules file and add you own entry at the bottom and reboot the Raspberry Pi.
sudo nano /lib/udev/rules.d/asi.rules

Let me know if it solves the issue and I'll add it to the asi.rules file
Thomas

Thank you Thomas -- yes, that clears the error and now seems to be working!
ATTR{product}=="ASI290MM Mini" ATTR{idVendor}=="03c3" ATTR{idProduct}=="290f" GROUP="users", MODE="0666"


Can't Save

Error: Bad Request
Error: Bad Request
    at Request.<anonymous> (https://homebrewery.naturalcrit.com/homebrew/bundle.js:72168:19)
    at Request.Emitter.emit (https://homebrewery.naturalcrit.com/homebrew/bundle.js:1768:20)
    at XMLHttpRequest.xhr.onreadystatechange (https://homebrewery.naturalcrit.com/homebrew/bundle.js:72477:10)
{
  "status": 400,
  "method": "POST",
  "url": "/api/newGoogle/"
}

Check out the steps in discussion #1580 and those should help you out.  Going to close this issue but it can be reopened if those steps don't help.


[module] CRDs CephFileSystem

A closer look at Rook's crds.yaml shows that a name can not be given for cephfs_metadata. Further analysis at the code level revealed that metadata pool names are semi-hardcoded with a given suffix at the time of writing.
A similar approach must be implemented like for data pools before migration can be supported without forcing a specific naming scheme.


[Ruby 3.1 準備] psych 3.3.4

Coverage: 82.964% (+0.001%) from 82.963% when pulling 66b4036f37ff560cf95faa6ebd5c428f5f96007a on pr-ruby31-psych into bccb6ab012e610502a8813fb30796ff1062ae006 on master.


Question on Lession 7, task 3

Hi,
The original .py file and .py answer file is shown here
I have seen issue#7 on topic on the task, but I feel sorry that it still exists now.
I have downloaded a education version of PyCharm hours before, and the version is 2.0.4.
I have seen the task description on the right saying

In the Fibonacci sequence, the first two numbers are 1 and 1, and each subsequent number is the sum of the previous two. Write a function that returns a list of the numbers of the Fibonacci series.

It takes me almost an hour on this issue (I majored in computer science and I knew the basic python grammar before). I got the wrong answer all the time, before I find this repo by Google.
Obviously, the answer you give does not satisfy the description. What is more, in traditional  Fibonacci problems, the input value n is not used as the maximum number in the sequence -- it should be the total number of resulting series, as in the task description.
Hope something should be done to avoid wasting the time of others. (Maybe something wrong with the given correct answer, or, maybe you should change the description)
Best regards.

Thanks a lot for your feedback! We'll definitely update this task to make it less confusing.


How do I install FluentFTP

FTP OS: n/a
FTP Server: n/a
Computer OS: Windows 10
FluentFTP Version: latest
I cannot seem to install FluentFTP as per instructions on https://www.nuget.org/packages/FluentFTP
Trying Install-Package FluentFTP -Version 33.0.2 results in error message Install-Package : A parameter cannot be found that matches parameter name 'version'.
Trying dotnet add package FluentFTP --version 33.0.2 results in error message Could not find any project in C:\WINDOWS\system32\.
paket is not a binary/executable that seems to be installed on my computer.

Just download the zip folder from nuget site.
On Fri, Oct 23, 2020, 1:15 PM Rene Nyffenegger<EMAIL_ADDRESS>wrote:

FTP OS: n/a
FTP Server: n/a
Computer OS: Windows 10
FluentFTP Version: latest
I cannot seem to install FluentFTP as per instructions on
https://www.nuget.org/packages/FluentFTP
Trying Install-Package FluentFTP -Version 33.0.2 results in error message Install-Package
: A parameter cannot be found that matches parameter name 'version'.
Trying dotnet add package FluentFTP --version 33.0.2 results in error
message Could not find any project in C:\WINDOWS\system32.
paket is not a binary/executable that seems to be installed on my
computer.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/robinrodricks/FluentFTP/issues/637, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABT3UKSFHCWIYXRV6VARCHLSMEYDLANCNFSM4S4GQAOA
.

https://www.nuget.org/api/v2/package/FluentFTP/33.0.2


Enable non-merging window test on Dataflow Runner v2.

R: @kennknowles

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

Here's a rundown of the command line options: https://stackoverflow.com/questions/22505533/how-to-run-only-one-unit-test-class-using-gradle
This only works if Gradle knows it is a Test type task. Some of our configs are complex enough that this somehow gets obscured.

It seems like the testNonPartitioningWindowing failed in the latest run: https://ci-beam.apache.org/job/beam_PostCommit_Java_VR_Dataflow_V2_PR/18/testReport/org.apache.beam.sdk.transforms.windowing/WindowingTest/testNonPartitioningWindowing/

Pretty-printed output:
Expected: iterable with items [
    "a:1:1:[1969-12-31T23:59:59.995Z..1970-01-01T00:00:00.005Z)",
    "a:2:5:[1970-01-01T00:00:00.000Z..1970-01-01T00:00:00.010Z)",
    "a:1:10:[1970-01-01T00:00:00.005Z..1970-01-01T00:00:00.015Z)",
    "b:1:8:[1970-01-01T00:00:00.000Z..1970-01-01T00:00:00.010Z)",
    "b:1:10:[1970-01-01T00:00:00.005Z..1970-01-01T00:00:00.015Z)"
] in any order
     but: not matched: "a:2:1:[1970-01-01T00:00:00.000Z..1970-01-01T00:00:00.010Z)"

Parsing:

value "a"
multiplicity 2
timestamp 1
window [0, 10)

That timestamp is wrong. It implies a timestamp combiner of MIN (or just a major bug). The default should be END_OF_WINDOW.
I believe the submitted job always has an explicit timestamp combiner and does not leave default up to the service. No?

I am wrong. The test configures timestamp combiner to be earliest.

The issue is the adjustment of timestamps to allow the watermark to move forward in sliding windows.

https://github.com/apache/beam/blob/595c25263638b3d5624875e46b69a442cedb09a7/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/SlidingWindows.java#L209

I actually think it's sliding windows that has the wrong behavior here in Java.

The behavior is very deliberate to avoid a watermark holdup.

To be clear: the behavior is odd. I would like to not have it. But it does date back to before Beam.

This behavior is also @Experimental(Kind.OUTPUT_TIME). It is also inconsistent between Java and Python (both of which claim to support it as beam:window_fn:sliding_windows:v1.) I say we revert this behavior.

"Revert" to a state it was never in :-)

We still need a solution for the underlying problem: sliding windows and friends are pretty nonfunctional without this.

The default timestamp is now end-of-window. (I wonder if this predates that change...)

It does predate that change. But in the event EARLIEST is chosen (as it must be for e.g. SQL joins) the problem still applies.

Opened dev list discussion for visibility and looking for good options.

After #14268 this should go in


added .star file to run unit test

@nirajacharya2 drone is enabled now. I rebased and adjusted so that drone runs. It passes code-style, great!
You can add phan, phpstan and phpunit.
phan and phpstan can run with just DEFAULT_PHP_VERSION
For phpunit, it will be good to have the code that runs multiple PHP versions in multiple pipelines. So that we can run the unit tests with PHP 8.1 and 8.2 (and 8.3 when it is released later this year)

I think we only need to run CI once, not on PR & PUSH


mir --version causes "No module named '_ctypes'"

Describe the issue
I guess I've managed to install ymir command on my Ubuntu 18.04 with Python 3.9.15 since I got this log.
Installing collected packages: lmdb, xmltodict, urllib3, typing-extensions, six, pyyaml, py, protobuf, Pillow, numpy, idna, decorator, chardet, certifi, tensorboardX, retry, requests, pydantic, fasteners, ymir-cmd
Successfully installed Pillow-8.2.0 certifi-2022.9.24 chardet-4.0.0 decorator-5.1.1 fasteners-0.16.3 idna-2.10 lmdb-1.3.0 numpy-1.22.0 protobuf-3.18.1 py-1.11.0 pydantic-1.9.0 pyyaml-5.4.1 requests-2.25.1 retry-0.9.2 six-1.16.0 tensorboardX-2.4.1 typing-extensions-4.4.0 urllib3-1.26.12 xmltodict-0.12.0 ymir-cmd-2.0.0

However, the mir --version command just gives "No module named '_ctypes'" error.
Traceback (most recent call last):
  File "/home/dssapce/.local/bin/mir", line 5, in <module>
    from mir.main import main
  File "/home/dssapce/.local/lib/python3.9/site-packages/mir/main.py", line 2, in <module>
    from mir.cli import create_main_parser
  File "/home/dssapce/.local/lib/python3.9/site-packages/mir/cli.py", line 9, in <module>
    from mir.commands import (init, checkout, commit, copy, export, filter, merge,
  File "/home/dssapce/.local/lib/python3.9/site-packages/mir/commands/init.py", line 10, in <module>
    from mir.tools import checker, class_ids, mir_storage_ops, revs_parser
  File "/home/dssapce/.local/lib/python3.9/site-packages/mir/tools/mir_storage_ops.py", line 8, in <module>
    from google.protobuf import json_format
  File "/home/dssapce/.local/lib/python3.9/site-packages/google/protobuf/json_format.py", line 54, in <module>
    from google.protobuf.internal import type_checkers
  File "/home/dssapce/.local/lib/python3.9/site-packages/google/protobuf/internal/type_checkers.py", line 48, in <module>
    import ctypes
  File "/usr/local/lib/python3.9/ctypes/__init__.py", line 8, in <module>
    from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'

Am I missing something?
To Reproduce
Steps to reproduce the behavior:
    wget https://www.python.org/ftp/python/3.9.15/Python-3.9.15.tgz
    tar xzf Python-3.9.15.tgz
    cd Python-3.9.15
    ./configure --enable-optimizations
    make install
    pip3 install ymir-cmd -i https://pypi.tuna.tsinghua.edu.cn/simple
    mir --version

try python 3.8.10

try python 3.8.10

the same error
Traceback (most recent call last):
  File "/usr/local/bin/mir", line 5, in <module>
    from mir.main import main
  File "/usr/local/lib/python3.8/site-packages/mir/main.py", line 2, in <module>
    from mir.cli import create_main_parser
  File "/usr/local/lib/python3.8/site-packages/mir/cli.py", line 9, in <module>
    from mir.commands import (init, checkout, commit, copy, export, filter, merge,
  File "/usr/local/lib/python3.8/site-packages/mir/commands/init.py", line 10, in <module>
    from mir.tools import checker, class_ids, mir_storage_ops, revs_parser
  File "/usr/local/lib/python3.8/site-packages/mir/tools/mir_storage_ops.py", line 8, in <module>
    from google.protobuf import json_format
  File "/usr/local/lib/python3.8/site-packages/google/protobuf/json_format.py", line 54, in <module>
    from google.protobuf.internal import type_checkers
  File "/usr/local/lib/python3.8/site-packages/google/protobuf/internal/type_checkers.py", line 48, in <module>
    import ctypes
  File "/usr/local/lib/python3.8/ctypes/__init__.py", line 7, in <module>
    from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'

what's your system version?
do you have libffi-dev installed?
see also:
https://stackoverflow.com/questions/27022373/python3-importerror-no-module-named-ctypes-when-using-value-from-module-mul

what's your system version? do you have libffi-dev installed?
see also: https://stackoverflow.com/questions/27022373/python3-importerror-no-module-named-ctypes-when-using-value-from-module-mul

libffi-dev was the block, thanks to you, problem solved. appreciate it~


[feature-request] Support for JAX container

Concise Description:
I'd like to use JAX for distributed training of LLMs. In addition, the new release of Keras supports JAX as a backend in addition to TF.
Describe the solution you'd like
I'd like either a separate JAX container or jaxlib included in a TF container since the TF ecosystem (data loading, serving, etc) supports JAX.
Describe alternatives you've considered
I could install JAX on top of the PyT container.

Any updates on a JAX container?


Auto complete option in Spyder

I am using spyder3. Previously it is possible to do autocomplete using TAB key. But now its not working properly. Kindly help me.

Please, describe a little bit what it does instead of what you are expecting and fill out the info below.
Versions

Spyder version:
Python version:
Qt version:
PyQt version:
Operating System name/version:

Thanks, I like what your doing but my mail box is over flowing with your emails. I can't see my personal mail so I need to stop your sending of your updates. I'll keep an eye on the development of your product which I think is great. Thank you, Bob Sakall

Earlier when I use TAB key to autocomplete the commands in Spyder Editor Console. But now it is not working properly
Spyder version: 3.3.1
Python Version: 3.6.6
PyQt Version:4.4.1
Os : Ubuntu 18.04 LTS

Ok, thank you for the infos. And if you check the option Tab always indent, does it work with Ctrl + Space?
I'm trying to figure out if this is problem with the Tab shortcut or if it's with the auto-completion feature.

No sir, I tried with the above mentioned option. After that I tried to use Ctrl + Space . But that also not working. I am thinking that this is not the problem of Tab.

Ok, thank you very much @abhijithvnair94
@ccordoba12 @CAM-Gerlach I think this one is for you guys.

What  I have to do sir? Kindly explain

I'll let @CAM-Gerlach answer this one. He is more knowledgeable than me on this topic.

PyQt Version:4.4.1

We don't support PyQt<5.6 as of Spyder >3.2.8, as it has been end of life for many years. Please update to 5.6.x or 5.9.x. This probably isn't directly causing your problem but you are likely to run into other serious issues.
As for your main problem, sorry its not working. This is essentially a duplicate of e.g. #5782 and its many friends, and unfortunately is a very common issue. We're in the process of implementing a a long-term solution in the soon to be released Spyder 4, as we've replaced our completion infrastructure with the Language Server Protocol architecture used by VSCode, Atom, etc. and are currently working hard to make it much more stable and robust. Here are some things you can try in the meantime (in order):

Restart Spyder. Sometimes, completion will stop working after leaving it open for a while, locking the screen, sleeping, etc.
Reset your preferences (spyder --reset)
Uninstall enum34 in case it is installed.
Reboot your machine
Update Jedi, rope and parso
Downgrade your packages (particularly those) to the versions in the latest Anaconda release (5.3.0)
Install Spyder in a clean conda/virtual/v env
(Re)-install Anaconda

Restarting Spyder (to be more precise - quiting and starting again) helped. Thank you, @CAM-Gerlach, for advice.

To enable your autocomplete type the following command.

sudo pip install rope
sudo pip install rope_py3k
Then restart your program it will work.

The original issue was fixed and closed nearly a year ago, and even the individual who just commented (likely for an unrelated problem) also said their problem was resolved, so I have no idea who you're responding to or why you are posting the above, never mind why you possess such terribly misplaced confidence in the above advice being so certain to fix any and all of a large array of potential causes for why autocomplete may not work.
TL;DR: Do NOT do any of the above if you don't want to break your install while not fixing the problem.
As a former Spyder core developer, I can categorically state to anyone else reading this that you should not, under any circumstances, follow the above advice, as it is far more likely to break your install and/or lead to even more problems down the road than fix whatever your particular problem is, as it has numerous problems.
First off, given the number of issues that can cause autocomplete to stop working, the above even in the best case is only likely to fix a tiny, tiny minority of them, if any at all.
Second, given its use of sudo, it may be modifying the system Python install rather than that in a virtualenv, Anaconda environment, etc. On Windows it will simply not work at all and result in an error, while on Macs it either won't work or cause an unexpected result depending on which pip. On Linux, it either will install the packages using the system Python (which is almost certainly not what you wan) or install them as root with whatever Python pip points to, which at least for a global Python install will be in a Python 2 rather than Python 3 environment, as the vast majority of users are using nowadays. Regardless, all of this is a huge mess and a very bad idea.
Third, you are installing two mutually incompatible packages, rope and rope_py3k; rope_py3k is a fork of rope that is Py3-only that has not been maintained for many years, and will break if the user installs it on a Python 2 environment, while rope is the original, maintained and now Python 3 compatible package. Installing both could leak to a conflict, now or down the road, so it is not recommended, and if rope_py3k shadows rope the user will be using an extremely out of date and unmaintained package.
Finally, given the great majority of Spyder users use conda, not pip, and already have rope installed if they have installed Spyder or are using the base environment, the above command will install not one but two duplicate versions of rope with pip on top of the existing conda installs, which is a surefire way to cause no end of trouble particularly if done into the default base env. Furthermore, even if not, an install via pip should be avoided in favor of conda whenever possible to avoid all manner of tricky installation issues.
Ergo, under no circumstances should anyone execute any of the above commands, as they will almost certainly not fix your problem (as it is a very-specific, temporary fix to a only one of dozens/hundreds of problems that can cause this issue, and furthermore only for a very specific, uncommon and very not-recommended environment setup) and is far more likely to break your install in any one of numerous ways.
While an attempt to provide advice is laudable, please ensure you fully, completely and thoroughly understand exactly what you are suggesting people do (particularly if they involve any one of sudo, install commands and/or pip, all things strongly not recommended or supported by the Spyder team), what environments and specific root problems it will work on, and what the consequences are, and explain those in your post before declaring categorically that it will fix the very large, general problem you claim it to. Thanks.

To enable your autocomplete type the following command.
1. sudo pip install rope

2. sudo pip install rope_py3k
   Then restart your program it will work.

DO NOT DO THIS! SEE REPLY BY CAM-Gerlach.  This bad advise has been displayed prominently on searches.

i am not able get the intelli sense  in spyder.
even though the both is ticked.
Thanks

Ctrl + Space
same with me. nothing is happening with spyder.

Even am facing same issue, can anyone got any solution?

Hi . I've installed Spyder through pip commad : its will work fine if would do also the code completion....neghter TAB nor Ctrl+Space activate the function.. system characteristics: Spyder 5.1.5|Python 3.9.7 64-bit | Qt 5.12.10 | PyQt5 5.12.3 | Windows 10

Hey, sorry about that. Did you download and install Spyder via our recommended standalone installers (as opposed to Anaconda, WinPython, pip etc)? Since this can vary widely from case to case, could you post a GIF or short video (or if that's not possible, at least a screenshot) showing the specifics of your attempted completion? Does it not work in the console, editor or both? Did you try completion on basic standard library modules (e.g. os) as well as third party ones? Thanks!

thanks for quick interest ! I remember that on version 3.9 installed from Anaconda, the auto-completion was working. Now that Spyder were installed through pip on line download I can't see any sign of editor's help with any library.  In tools-->Preferences-->General, the flags are set to "on"

Now that Spyder were installed through pip on line download I can't see any sign of editor's help with any library.

I'm not 100% sure which specific install method you're describing here, but it seems likely it is due to an install issue. In our installation guide, could you point out which section matches the approach you followed to install Spyder? We highly recommend our standalone installers, and if not that Anaconda, to avoid these sorts of problems, which are usually caused by installation or third-party dependency issues that using our dedicated installer helps avoid. Thanks!

I used sudo apt-get to install spyder as a stand-alone installer. I too am unable to use autocomplete feature.
Spyder 3.3.6
Python 3.8.10

@belongstodzire Spyder 3.3.6 is nearly 3 years out of date and uses a completely different, less functional and reliable autocompletion system from the current version, Spyder 5.2.2. Furthermore, per our installation guide, using third-party Spyder builds from your distro's package manager is not recommended or officially supported, are not maintained by the Spyder team, may be years out of date and could contain bugs and issues separate from those in officially supported Spyder builds.
On Linux, if you're a beginning or intermediate user, we suggest using Spyder as packaged with Anaconda/Miniconda/Miniforge, or if you're an advanced user, installing it with pip in a fresh virtualenv/venv. See the above-linked installation guide for details on those and other install methods. You can also ask your distro's package maintainers to update their obselete, EoL version of Spyder to something supported; we've reached out to other distro maintainers in the past but despite making initial contact and many followup attempts, have been unable to reliably get ahold of those in charge of the Debian/Ubuntu packages, even to update the package description and metadata which is nearly a decade and a half out of date.
Best of luck!

@belongstodzire Spyder 3.3.6 is nearly 3 years out of date and uses a completely different, less functional and reliable autocompletion system from the current version, Spyder 5.2.2. Furthermore, per our installation guide, using third-party Spyder builds from your distro's package manager is not recommended or officially supported, are not maintained by the Spyder team, may be years out of date and could contain bugs and issues separate from those in officially supported Spyder builds.
On Linux, if you're a beginning or intermediate user, we suggest using Spyder as packaged with Anaconda/Miniconda/Miniforge, or if you're an advanced user, installing it with pip in a fresh virtualenv/venv. See the above-linked installation guide for details on those and other install methods. You can also ask your distro's package maintainers to update their obselete, EoL version of Spyder to something supported; we've reached out to other distro maintainers in the past but despite making initial contact and many followup attempts, have been unable to reliably get ahold of those in charge of the Debian/Ubuntu packages, even to update the package description and metadata which is nearly a decade and a half out of date.
Best of luck!

Thanks a lot @CAM-Gerlach for the reply. I understood I should have installed it through Anaconda. However, laziness prompted me to do a sudo apt-get . I have understood the problem and would rectify it asap.


feat: Image notification implemented

Fixes #45
Changes: [Add here what changes were made in this issue and if possible provide links.]
 Will extend it to multiple users very soon.


Pricecheck

Would be great to be able to include a market link on price checks. Currently I would prefere to link to https://evemarketer.com/ because it is even better then eve-central (which seems to be dead for me).

Added, they link to fuzzworks market pages.


MODE_FIXED_NO_TITLE

In this mode, the circle badge in the top right corner of the home icon on the bottom navigation bar is cut.

@Ashok-Varma Hello!See the image,the place where I painted the red circle is what I said.Just a small problem.

fixed_bottom_navigation_item.xml/shifting_bottom_navigation_item.xml
Delete (paddingLeft&paddingRight) of the first FrameLayout.

@Ashok-Varma The problem is not on the device. When you use more than 5 items, this will also appear.


vscode extension for NiiVue

Hi All,
Thanks for inviting me to the NiiVue repository!
We had the following idea for using NiiVue in a vscode extension, I think here might be a good place to show:
We created a vscode extension to render images with NiiVue when a file of supported format is selected:

In the web-based vscode on github.dev:

The extension is easy to install via the vscode extension tab by searching for "niivue". Please have a go!
It's still very early development and plenty of features that could be added.
What are your thoughts about it?
Best,
Korbinian

@korbinian90 this is terrific. I would invite you to make this a new repository in the niivue group to help people find it. I would also suggest renaming from vscode-niivue to niivue-vscode to match the style of other projects (e.g. niivue-desktop, niivue-ipad, etc.).

@korbinian90 , this is great! I’ve always thought it would be fantastic to view supported images directly in vscode. I just installed and love it already. Very happy to have it included in the NiiVue ecosystem, and thanks for making the extension. I think a lot of people will like it.


dialog backDrop when using teleportCenter prop

Is your feature request related to a problem? Please describe.
First of all, thank you for adding such a nice feature with the prop teleportCenter.
I was thinking that it would be much better to add the ability to put a backdrop to the datepicker element when using teleportCenter prop to give a better vision around the element.
Describe the solution you'd like
There is lots of methods to solve that, the simplest one is:
1- add a container element around the datepicker element (div.db_container for example)
2- when teleportCenter is set to true give CSS props to the container element to show a backdrop behind the datepicker element
example:

final result:

You can just add if needed in the app. It is an easy implementation, check out the demo here


python3Packages.green: fix tests

Motivation for this change
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

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

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 138221 at d272fdaa run on aarch64-linux 1

3 packages built successfully:

passExtensions.pass-audit
python38Packages.green
python39Packages.green

2 suggestions:

warning: maintainers-missing
Package does not have a maintainer. Consider adding yourself?
Near pkgs/development/python-modules/green/default.nix:40:3:
   |
40 |   meta = with lib; {
   |   ^

warning: missing-patch-comment
Consider adding a comment explaining the purpose of this patch on the line preceeding.
Near pkgs/development/python-modules/green/default.nix:23:5:
   |
23 |     ./tests.patch
   |     ^

Error in green.test.test_integration.TestFinalizer.test_finalizer
  File "/nix/store/dqxic3j7csd4ywn94n4smmnz55p039g3-python3-3.9.6/lib/python3.9/unittest/case.py", line 59, in testPartExecutor
    yield
  File "/nix/store/dqxic3j7csd4ywn94n4smmnz55p039g3-python3-3.9.6/lib/python3.9/unittest/case.py", line 593, in run
    self._callTestMethod(testMethod)
  File "/nix/store/dqxic3j7csd4ywn94n4smmnz55p039g3-python3-3.9.6/lib/python3.9/unittest/case.py", line 550, in _callTestMethod
    method()
  File "/nix/store/jrk1k88kc168qz7sabxwkz3zzmdrq23d-python3.9-green-3.3.0/lib/python3.9/site-packages/green/test/test_integration.py", line 53, in test_finalizer
    output = subprocess.run(
  File "/nix/store/dqxic3j7csd4ywn94n4smmnz55p039g3-python3-3.9.6/lib/python3.9/subprocess.py", line 507, in run
    stdout, stderr = process.communicate(input, timeout=timeout)
  File "/nix/store/dqxic3j7csd4ywn94n4smmnz55p039g3-python3-3.9.6/lib/python3.9/subprocess.py", line 1134, in communicate
    stdout, stderr = self._communicate(input, endtime, timeout)
  File "/nix/store/dqxic3j7csd4ywn94n4smmnz55p039g3-python3-3.9.6/lib/python3.9/subprocess.py", line 1980, in _communicate
    self._check_timeout(endtime, orig_timeout, stdout, stderr)
  File "/nix/store/dqxic3j7csd4ywn94n4smmnz55p039g3-python3-3.9.6/lib/python3.9/subprocess.py", line 1178, in _check_timeout
    raise TimeoutExpired(
subprocess.TimeoutExpired: Command '['/nix/store/jrk1k88kc168qz7sabxwkz3zzmdrq23d-python3.9-green-3.3.0/bin/green', '--finalizer=test_finalizer0.msg', '--maxtasksperchild=1']' timed out after 10 seconds

I can reproduce this failure.

I can reproduce this failure on a machine with high core count (64).

That's certainly due to https://github.com/CleanCut/green/blob/ac9cd5ff007ee131e97f70c49c763f79f06ebf5a/green/test/test_integration.py#L28.
What should we do about it? We can skip the test entirely or ask upstream to use a fixed number instead of twice the number of CPUs.

@mweinelt Please try again. I just made the patch get rid of the timeout.


Duplicate identifier 'Rx'.

TypeScript Version:
2.0.3
Code
tsc --target es5 --allowJs dist/bundle.es2015.js --out dist/bundle.es5.js

Expected behavior:
Success
Actual behavior:
> tsc --target es5 --allowJs dist/bundle.es2015.js --out dist/bundle.es5.js

dist/bundle.es2015.js(64740,22): error TS2300: Duplicate identifier 'Rx'.
dist/bundle.es2015.js(64759,22): error TS2300: Duplicate identifier 'Rx'.

Those line above looks like this in the file. I marked the line
/* tslint:disable:no-unused-variable */
// Subject imported before Observable to bypass circular dependency issue since
// Subject extends Observable and Observable references Subject in it's
// definition
/* tslint:enable:no-unused-variable */
/**
 * @typedef {Object} Rx.Scheduler // line 64740
 * @property {Scheduler} queue Schedules on a queue in the current event frame
 * (trampoline scheduler). Use this for iteration operations.
 * @property {Scheduler} asap Schedules on the micro task queue, which uses the
 * fastest transport mechanism available, either Node.js' `process.nextTick()`
 * or Web Worker MessageChannel or setTimeout or others. Use this for
 * asynchronous conversions.
 * @property {Scheduler} async Schedules work with `setInterval`. Use this for
 * time-based operations.
 * @property {Scheduler} animationFrame Schedules work with `requestAnimationFrame`.
 * Use this for synchronizing with the platform's painting
 */
let Scheduler = {
    asap,
    queue,
    animationFrame,
    async
};
/**
 * @typedef {Object} Rx.Symbol // line 64759
 * @property {Symbol|string} rxSubscriber A symbol to use as a property name to
 * retrieve an "Rx safe" Observer from an object. "Rx safety" can be defined as
 * an object that has all of the traits of an Rx Subscriber, including the
 * ability to add and remove subscriptions to the subscription chain and
 * guarantees involving event triggering (can't "next" after unsubscription,
 * etc).
 * @property {Symbol|string} observable A symbol to use as a property name to
 * retrieve an Observable as defined by the [ECMAScript "Observable" spec](https://github.com/zenparsing/es-observable).
 * @property {Symbol|string} iterator The ES6 symbol to use as a property name
 * to retrieve an iterator from an object.
 */
let Symbol$3 = {
    rxSubscriber: $$rxSubscriber,
    observable: $$observable,
    iterator: $$iterator
};

First, build my typescript to es2015
tsc -p tsconfig-es2015.json

Second, use rollup to roll all the es2015 js files into one
rollup -f iife -c -o dist/bundle.es2015.js

Maybe the rollup step screwed up.
I was following http://blog.mgechev.com/2016/06/26/tree-shaking-angular2-production-build-rollup-javascript/

We should be more graceful in handling typedef duplication.

Hi @mhegazy As you can see, they are not really duplicate. One is Rx.Scheduler and one is Rx.Symbol . I'm guessing there is a bug that cut off at the '.' ?

correct.

What will the timeline for this bug fix be like? Thank you.

The fix will eventually be included in release 2.1 version. Though when will a fix be available depends on how many other tasks with higher priority are scheduled, so it is hard to say.

@zhengbli When is 2.1 targeted to release?

November: https://github.com/Microsoft/TypeScript/wiki/Roadmap#21-november-2016

Is there a workaround for now before 2.1 ?

I get this error
<EMAIL_ADDRESS>(190,22): Duplicate identifier 'Rx'. (2300)
<EMAIL_ADDRESS>(210,22): Duplicate identifier 'Rx'. (2300)

Also looking for workaround.

I'm able to work around it locally by removing the typedef comments from the source code, but not ideal.

@zhengbli , thank you very much!


fix resources in docker 1.7

Signed-off-by: Victor Vieux<EMAIL_ADDRESS>

@abronan @aluzzardi if you see a better way to do consolidateResourceFields please tell me

Not really :-/ LGTM

The better way would be to handle converting one way using BuildContainerConfig(<original docker config>, <api version>) and the other way using config.Serialize(<api version>), or something like that.
In the meantime, this does the trick but please add a FIXME as suggested.
LGTM

@aluzzardi done I also added a test, so the coverage doesn't decrease


Achieve usable GUI

Ensure that GUI is able to correctly display CRUD functionalities.

Achieved in PR #65.


Allow to specify web proxy

Issue 123
Introduced class signalr_client_config, which contains web::http::client::http_client_config and web::websockets::client::websocket_client_config.
hub_connection_tests.mirror_header was added to test that setting headers still works as expected. No automatic tests were added for using proxies and credentials. It was tested manually that setting a proxy (with basic auth proxy credentials) works, and that signalr_client_config::http_client_config::set_nativehandle_options works on Win32.

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

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

TTYL, DNFBOT;

@ChristophAlbert - thanks for you PR. You will need however to sign the CLA before I can move forward.

@moozzyk - I'll try to get this done asap, but since the holiday season in Germany has already started, this might take a little while...

@ChristophAlbert - that's fine. We will resume after the holiday season then.
Fröhliche Weihnachten!

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

It went faster than expected. Frohe Weihnachten ;)

Hi @ChristophAlbert, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
We will now validate the agreement and then real humans will evaluate your PR.
TTYL, DNFBOT;

I squashed and rebased your PR and merged as 3bc6b067c83d5fda9abbf3909a0311889dde6277. New packages containing your changes are ready on the https://dotnet.myget.org/F/aspnetcore-ci-dev/api/v3/index.json feed (gallery: https://dotnet.myget.org/gallery/aspnetcore-ci-dev).
Thanks a lot for your contribution!


Hardware access implementation discussion

tl;dr: I'll be implementing PCIe and DMA support in hvt and MirageOS and am looking for other people's requirements/suggestions.
I'm about to start my master's thesis at the Chair of Network Architectures and Services at the Technical University of Munich. The goal of my thesis is to implement direct hardware access (PCIe and DMA) into MirageOS, specifically to allow drivers (including my driver ixy.ml) to take direct control of hardware devices.
Motivation
The main reason hardware support is of interest is obviously performance: Moving packet buffers (or any other data) between unikernel and hypervisor/runtime takes time. Having the unikernel directly control its hardware should (hopefully) show some significant performance improvements. I'll mostly focus on networking, but hardware support could also be the foundation for other people to build drivers on top of, maybe something like storage drivers (NVMe?).
Additionally as our paper showed, there's a case to be made for writing drivers in high-level languages and not using the standard C drivers baked into your garden-variety Linux kernel.
Finally I'm also interested in the flexibility this brings for unikernels: @hannesm and I discussed implementing batch rx/tx and zero-copy into MirageOS' network stack; something we could more easily test with ixy.ml, which already has support for batching. Parts of #290 for example could be implemented inside the unikernel itself, keeping Solo5's codebase small and maintainable.
I'm hoping to get some discussion on implementation details going here. The reason I'm opening this issue here instead of on the main Mirage repo is that most of the changes I'll have to make will be on Solo5. Right now I'm only looking at mirage-solo5 and hvt on Linux as I'm hoping to get a proof-of-concept up and running early into the 6 months I have to finish the thesis. Depending on how much time I have left I'll also take a look at the BSDs.
So let's talk details! There's two main features my driver specifically needs.
PCIe
First off PCIe register access: ixy.ml needs to configure the network card it wants to control by writing to its configuration registers. On Linux those registers are mapped to the /sys/bus/pci/devices/$PCI_ADDRESS/resource* files. Additionally ixy.ml needs to enable DMA by setting a bit in the PCI configuration space, which is mapped to /sys/bus/pci/devices/$PCI_ADDRESS/config. There needs to be some way for unikernels to access these files in an implementation-hiding fashion. Also there are some trivial details to take care of, like what the command line flag for mapping a device into a unikernel (--pci=0000:ab:cd.e for example) should be.
DMA
Secondly there's the (more complicated) issue of DMA: Modern high-performance PCIe devices such as network/storage/graphics cards all use DMA (direct memory access) to communicate with their host system. Generally a driver instructs a device to read/write data from/to specific physical memory addresses. Those addresses must never change (without the driver knowing, I guess), otherwise the device will access arbitrary memory, leading to stability and (more importantly) security problems. Imagine the OS places some secret data in a specific physical location that previously was mapped to the device while the device has not been reconfigured. A NIC for example would happily send out your private data as network packets! This is not acceptable and so @mato and I already decided that IOMMU support is 100% required.
The IOMMU does for PCIe devices what your processor's MMU does for your programs: It translates virtual addresses into physical addresses. When we configure our DMA mappings into the IOMMU (for example by using Linux's vfio framework like ixy.c and ixy.rs already do) the device will also use virtual addresses. This means the driver won't have to take care of translating between virtual and physical addresses. Additionally the IOMMU will block any access to memory areas outside of the mappings the device is allowed to access.
When configuring the IOMMU we must also look at what hardware we are actually running on. The TLB inside the IOMMU usually has way fewer entries than the main MMU's TLB and there are different entry sizes (4KiB, 2MiB on x86_64 for example) available on different architectures.
So how should I go about implementing this? As I see it there needs to be some command line flag like --dma=16M, instructing hvt to configure a 16 Mebibyte mapping into the IOMMU. Then there needs to be a way for the unikernel to retrieve its mappings.
I think some mechanism for drivers to indicate their specific requirements (possibly before actually running) would be helpful for users. For example ixy needs some contiguous DMA areas for its packet buffer rings. Otherwise driver authors would be forced to do something like this when these requirements aren't met:
[ERROR] I am $driver and I need more memory. Please run again with --dma=32M

Suggestions?
Those were just the features ixy.ml and, I imagine, other network drivers need. I'm interested in other people's requirements; are there applications that need other features? Do you have suggestions/wishes/tips?

One of the first things we got asked was how to enable VLAN support. So, that should probably be on your list of things to support. I don't know how much you have to do on the link layer end, but it's probably not going to be that much. :)
Good luck

Thanks for the excellent upfront planning of your forthcoming thesis work; I look forward to seeing this progress!  My initial reaction is to encourage you to look at previous work in this space as regards virtualising PCI; there are a number of details and device-specific quirks that previous hypervisors have run into (for instance, when expanding out to display hardware or other non-networking PCI devices).
In particular, Xen has a well-trodden pci front/back split device that also has been deployed on quite a variety of real-world PCI hardware.  Its pcifront PV interface should provide good inspiration for the Solo5 support, but without the Xen-specific pieces such as its ring.h and Xenstore bootstrap.
KVM has yet another approach which required Intel VT-d for the majority of usecases (and, for arm64, fairly intricate use of MSIs on arm64).
My instinct is to push for the "most software" solution that doesn't leave hardware underutilised, and the Xen PV approach seems to fit that bill.  VT-d is a very large hammer to use for virtualising PCI devices.
Once you do decide on a good mechanism to get pages through to the host device, I'd be curious to know if you're interested in putting an FPGA into the mix.  The Mirage stack makes it fairly easy to decide on the structure of the inputs to the software, which do not have to be what we traditionally have (TCP/IP offload and checksumming).  If you had a hardware device that could do some custom protocol-level parsing, we could implement protocols that are not traditionally hardware-accelerated by implement some scanning logic in the "NIC/FPGA" and passing those structures through to a software Mirage stack to parse.  I'm thinking specifically of QUIC/HTTP3 here, which is difficult to accelerate using TCP offload since... it's not TCP :-)  This is a very exciting research direction to take the Mirage software stack, and particularly so in the context of RISC-V which @kayceesrk @samoht @nojb and I have been working on recently.

@fwsGonzo
What do you mean by VLAN support and how does it relate to hardware access? Do you mean VLAN offloading? That would have to be done on the driver/network stack end.
@avsm
Thanks for all the resources! I'll look through everything!
One question up front, though: Is Xen really the right approach? This sounds very naive, but do we want unikernels to deal with the intricacies of PCIe devices? My initial idea was to bind our device to the vfio-pci driver, map the configuration space (maybe even read-only if we enable DMA by default) and the resources into the unikernel's address space and hope for the best. DMA would be handled the same way ixy.c does: Allocate some memory and tell vfio about it to create an IOMMU mapping. Then we just need to pass the unikernel the virtual and "physical" addresses. That should theoretically be enough to get ixy.ml running on hvt/KVM (after wrapping everything in OCaml, of course).
Other host OS would be a completely different story, of course, and I admittedly have not looked into that yet.
I'm definitely interested in other hardware besides network cards; I just happen to know a bit about network cards already. I don't have any experience regarding FPGAs; I know what they are and that's about it. I'd have to ask around at university if there are specific FPGAs around I could experiment with. Custom protocol-level parsing goes a bit beyond the scope of my thesis though :-)
Do you have resources and/or tips for approaching RISC-V? Especially IOMMU stuff? I'll start with x86_64 for now but I'm always curious about other architectures.
I feel like I'm approaching the problem from too much of an ixy.ml-focussed perspective: ixy.ml doesn't care about anything Linux's PCI code does and also just runs as root without a care in the world.

@Reperator Sorry, I misunderstood your task then. :)

This is a quite an impressive plan for you thesis! Wishing you all the best for your progress!
@avsm, I think even the Xen virtualization link, talks about using the Intel VT-d extensions for the PCI passthrough, if I am right?

HVM guests require no special configuration for the guest kernel, as all accesses are emulated and virtualized by the IOMMU hardware.

In that case, it would always be advisable to use the VT-d extension, because I assume Xen is taking care of the address mappings through the pcifront/pciback interfaces. Also, this comparison, uses the pci-vfio on Linux, which provides an interface to the Intel Vt-d virtualization and they do not report any significant performance impact.
In that case, @Reperator, whether you are going through Xen or KVM, both of them implement PCIE passthrough using the Intel IOMMU.

One question up front, though: Is Xen really the right approach? This sounds very naive, but do we want unikernels to deal with the intricacies of PCIe devices?

I think I misunderstand some part here. When you write a userspace PCIE driver against vfio-pci, you still have to manage the PCI device, i.e. mapping the configuration registers and BARS into the address space of the process and doing the reads/writes according to the device specification? vfio-pci does the minimal work of exposing a userspace device for PCI transactions, setting up the groups and containers according to the IOMMU and routing the transactions to the pci subsystem. So why would the case of Xen be special? As far as I can understand, even in Xen, the PCI passthrough would expose the xen-pcifront, which takes care of the PCI specific behavior which vfio-pci handles.
I think my major concern is with regards to multiple guest processes trying to access the PCI cards. For example, in the case of multiple processes running on Linux which need to access the NIC, since the driver is in the kernel, it can take the requests from each application, do the necessary work and dispatch them. In the case of vfio-pci, multiple user processes could open the /dev/vfio/vfio and /dev/vfio/$GROUP device and then map it to their own virtual address spaces and then start sending data to the NIC. How do you ensure that they synchronize properly? I am talking here with respect to launching multiple guest Mirage processes on the same processor and each one wants to access the NIC. In that case, I am not sure whether you can have global page mappings for each process corresponding to the NIC or something similar and also how to ensure synchronization.
Anyways, the above concern is more on the practical side of things, which I am not sure you intend to address in your research. Finally, RISC-V does not have a complete virtualization story yet. There do exist draft Hypervisor specifications and ports for KVM underway, but nothing on the side of IO virtualization yet. I am open to questions for the RISC-V state of the union, if required.

When you write a userspace PCIE driver against vfio-pci, you still have to manage the PCI device, i.e. mapping the configuration registers and BARS into the address space of the process and doing the reads/writes according to the device specification?

I was going to map everything the device offers into the unikernel's address space and be done with it. That's what I meant with having unikernels deal with the intricacies. I actually don't know how hypervisors like Xen targeting "real" OSs deal with PCIe; I just assumed that VMs would have to do all the same setup steps (bus enumeration, register mappings, etc.) as bare-metal OSs.
I figured it'd be easier for unikernel developers to just have PCIe devices "magically" show up in a fixed place (like an array at address 0xwhatever containing pointers to each device's registers). Alternatively I could add a hypercall hvt_activate_pci_mappings(), so unikernels unaware of PCIe can't mess anything up by accidentally accessing the mapped registers.
I have thought a bit about multiple processes accessing the same device, though admittedly not too much. For my initial prototype I was going to take the "user must make sure to only use each device once" stance.

I am talking here with respect to launching multiple guest Mirage processes on the same processor and each one wants to access the NIC.

That ain't happening: one unikernel will take full control of the device. The others will have to use different NICs. I don't see an easy solution for this in the general case; with modern NICs specifically you could theoretically use different rx/tx queues for each unikernel and have the NIC multiplex in hardware, but then the driver would have to run either in Solo5 (@mato is screaming already ;-)) or one unikernel would have to configure the NIC for all the others. Don't think that's viable. I guess in the distant future we could have something of a "plug-in" unikernel that exposes functionality to other unikernels in a structured fashion.

That ain't happening: one unikernel will take full control of the device. The others will have to use different NICs. I don't see an easy solution for this in the general case;

I think a general approach for sharing a PCIe device is SR-IOV and VFs (Virtual Functions). Each MirageOS Unikernel having a device driver can manage an assigned VF (i.e. virtualized device) independently without any breach.

That sounds about right. As far as I have understood, the Xen pci-front/pci-back does something similar to vfio-pci, where it would expose just the configuration space and BAR's to your application, mapped as memory addresses in the process and you will not have to do the bus-enumeration etc.
The following is equivalent to binding the vfio-pci driver in KVM/Linux.

Then you need to assign the device to pciback instead of its normal driver in dom0

This is how a virtual guest would access the device -

HVM guests require no special configuration for the guest kernel, as all accesses are emulated and virtualized by the IOMMU hardware. PV guests need the xen-pcifront module (just 'pcifront' for classic Xen kernels).

So it would seem that you'd have to bind the xen-pcifront code in your unikernel (if your guest is PV) and you should be good to go!
Though, I still lack the necessary expertise in this area, and it would be preferable if you consult with someone who understands these intricacies better!

Also, my comment about multiple user processes accessing the NIC was raised only in the context of (Jitsu)[https://www.usenix.org/system/files/conference/nsdi15/nsdi15-paper-madhavapeddy.pdf], where you spawn processes for each request. I couldn't think of a clear way of setting such a system up, given each unikernel would handle the networking stack as well, thus I asked the question out to get some ideas!
Anyways, I think virtualization is an orthogonal issue. Given once we have unikernels which take care of the network stack, the virtualization can be inspected. As @TImada suggests, SR-IOV could be one way to do it among others!
I am definitely intrigued by dedicated processes existing to handle the NIC's, maybe multiplexing over cards using SR-IOV's and worker processes communicating their IP requests to each of these, sort of like a load balancing setup for multi-NIC systems! Though, I think this is veering off topic and is a discussion for some other issue!

Thanks for this interesting discussion.

multiple guest processes trying to access the PCI cards

not sure why this should be solo5 responsibility -- for tap devices it is not atm (but instead the responsibility of the surrounding orchestration system (e.g. your shell scripts)), which I think is a very fine solution.

I figured it'd be easier for unikernel developers to just have PCIe devices "magically" show up in a fixed place (like an array at address 0xwhatever containing pointers to each device's registers).

This is what we do for native Ada/SPARK components on Muen. Since the whole system is static, we can have these addresses as constants at compilation time. For subjects that do resource discovery during runtime/startup we have a mechanism called Subject Info which enables querying e.g. memory mappings and their attributes (rwx) for a given name. This facility is already used in the Solo5/Muen bindings to get the memory channels for memory stream network devices, see https://github.com/Solo5/solo5/blob/6a98a1938a9dcb0cb7a3e92d7e56d5019339d083/bindings/muen/muen-net.c#L159.
If Solo5 provided a way for Unikernels to query similar information, the driver could setup its memory mappings initially and then start operation.
Another idea worth investigating could be how the new manifest could be leveraged to fit this use case.

To summarize some discussion I've already had with @Reperator and @Kensan elsewhere: From the Solo5 point of view, ease of portability, isolation and a clear separation of concerns are important goals if this is to be eventually up-streamed.
With that in mind, I would aim for a minimal implementation that starts with the hvt target on Linux/KVM only, uses the most modern Linux interfaces available (hence vfio) and requires an IOMMU for isolation. At the same time, we should try and design the Solo5 interfaces (public and "internal") in such a way that they could be implemented for non-Linux hosts such as Muen.
Roughly, the implementation should:

Tender-side:

Implement a new module, say pci,
Define a PCI_BASIC device of some form in the manifest.
Implement the needed hypercalls in the tender/bindings interface, if any. We may not actually need any, since in the process of attaching the device the tender should set up everything required and pass the relevant information needed to the unikernel by filling in a struct mft_pci_basic and/or adding data to struct hvt_boot_info if required.
Implement --pci-dev:NAME=DEVICE to attach a PCI_BASIC device and --pci-dma:NAME=N to provide DMA memory (but see below).

Bindings-side:

Implement a solo5_pci_acquire() API which would return the relevant information to the unikernel.

Regarding the requirement for DMA memory: You're right that requiring the operator to specify the "right" amount of DMA memory when starting the tender is somewhat unintuitive and fragile. When I was designing the manifest I considered defining entries for other resources, such as memory, but did not go down that route since I wanted to push out the user-visible features enabled by the manifest sooner rather than later.
In order to understand how this could be designed, I have a couple of questions:

If a unikernel were to control multiple PCI devices in this fashion, does each device get its own DMA memory mapping? I.e. is the DMA memory mapping essentially a property of the device?
If we make the unikernel (driver) developer specify the DMA memory mapping size up-front (i.e. it goes into the manifest in some form), are there cases where the operator would want to override the DMA mapping size?

@Reperator:

Ok, so if I read you correctly, "DMA memory" is a global system resource. Presumably with system-wide limits, and so on. Sorry if this is obvious, but I'm not an expert on the details of hardware pass-through. Can you point me to some example code of how such memory is allocated, on a modern Linux system with IOMMU and vfio?

The values should definitely be configurable. I guess what I'm asking is, for, say, ixy.ml's use-case, are there reasonable defaults and what are they? If there are reasonable defaults, why would we run into the situation you mention in https://github.com/Solo5/solo5/issues/425#issue-509943176  "Otherwise driver authors would be forced to do something like this when these requirements aren't met:"?

@mato:

I have to add that ixy.ml currently uses Linux's hugetlbfs and no IOMMU. So DMA memory has the system wide limit of "how many hugetlbfs pages has the user created?". Using the IOMMU allows mapping arbitrary memory (allocated using mmap with MAP_HUGETLB), so there's no real system wide limit besides the IOMMU's TLB which we don't want to overload. If there are more mappings active than the TLB can cache, performance gets significantly worse. Some example code that uses the IOMMU and vfio would be ixy's memory.c. This is just allocation; the actual mapping happens here.
The defaults that are hardcoded into ixy.ml are reasonable imo. ixy.ml will attempt to satisfy those defaults (i.e. allocate 2 MiB per NIC and 8 MiB per mempool) and fail if it can't allocate enough memory. If the unikernel within which ixy.ml runs didn't have enough memory mapped to satisfy those hardcoded defaults, ixy.ml would also have to fail. The situation can only occur if the user gets to choose the amount of DMA memory and is allowed to reduce it below the minimum amount. The problem is that the minimum amount of memory depends on the number of NICs ixy.ml controls.

@Reperator:
OK, looking at how the VFIO mapping works it's just an ioctl on top of an mmap. So, I'd suggest starting with a minimal "strawman" PoC for hvt where, if a PCI_BASIC device is requested the tender creates a single DMA memory region with a hardcoded size and passes its details to bindings, say via struct hvt_boot_info for now.
Once you verify that this approach actually works, we can then proceed figuring out what the "real" APIs and implementation should be.

On a very obtuse note, do you think some sort of AVX/AVX2 codegen capabilities would benefit your work? I am assuming that in case you want to do some SIMD computation you'd have to bind to a C library and my initial impression was that you would like to keep it to as minimum as possible.

@anmolsahoo25:
Possibly. But there are definitely lower-hanging fruits in the MirageOS network stack (zero-copy, batching).

Makes sense. Thanks!


RFE: add layer-3 (TCPRoute) examples

I've been reading through the service API documentation, and it's mostly excellent! Thank you, especially, for writing so many examples. It really makes it a lot easier to grok the shape of the API without poring through autogenerated documentation.
However, I don't see any examples for layer-3 Gateways.
What would you like to be added:
Some basic examples for how a layer-3 load balancer might be configured.
I know that one of the goals of this API is to replace the Services API. Thus, an example for each existing Service type (ExternalName, ClusterIP, NodePort, and LoadBalancer) would be really nice.
Thanks!

/kind documentation

/assign @hbagdi


Passing RLMObjects Between Threads

Am I missing something, or is it not possible to pass RLMObjects between threads?
For example, when importing, I import in a background thread and pass the imported objects back to the caller in a completion block. These passed-back imported objects are not valid in the completion block since this is in a different thread.

@Altimor I coppletely agree with you! Realm seems very cool, but when it comes to REST or any other background task, it's a pain. As you, I spent a lot of time mastering Realm, and now, I find that I can't use it because of this bad thread policy. Unfortunately, this adds to my obstacles list using Realm, and for this huge issue, the workaround is too complex, so I'm going to move to [Paper][1].
[1]: https://github.com/pilgr/Paper

@stuartro in https://github.com/realm/realm-cocoa/issues/3925#issuecomment-237955141, I explain why thread confinement isn't a limitation or artificial constraint, but rather sits at the core of Realm's safety.
Whereas immutability provides thread safety by preventing you from ever changing anything, thread-confinement achieves it by combining mutations via ACID database transactions. Obviously never changing your database's values isn't really an option, so Realm uses option 2.
We have a PR that's currently in its final review phase (#4114) which allows creating thread-safe references to thread-confined Realm objects, which can be passed between threads, all while maintaining Realm's isolation guarantees.


Improve the readability of Main::print_help(const char *) in main.cpp.

Use print_line(...) instead of OS::get_singleton()->print(...).
This reduces the line width of each line by 18 characters, which improves readability on laptop displays.
print_line() already appears 512 times in Godot, so we should direct our string printing through it when possible, to improve the consistency of our code base.
print_line() already appears 19 times in main.cpp, including:

the first line of print_help(const char *)
the first line of setup2(Thread::ID)
in Main::iteration() to output Editor FPS and Project FPS

I verified that the help output is identical when running bin/godot.macos.editor.x86_64 --help.
bin/godot.macos.editor.x86_64 --help > old.txt

... build the new version ...
bin/godot.macos.editor.x86_64 --help > new.txt

diff old.txt new.txt

1c1
< Godot Engine v4.1.dev.custom_build.df7834ac9 - https://godotengine.org
---
> Godot Engine v4.1.dev.custom_build.ec2fe0410 - https://godotengine.org

Other:

Added an overload for print_line() to output an empty line.
Moved #ifdef DEBUG_XXX blocks next to each other.

This PR was inspired by the conversation in: https://github.com/godotengine/godot/pull/75548
It is part of an effort to improve the readability of the Godot engine codebase.


Android device not return biometric token

Hi!
I have that question, how i could get the biometric token from a android device?

Does that mean the library doesn't work for android?


Alternative (but equivalent) equivalence for isomorphisms.

Split out of #46.
UPDATE: Now depends on #55.

Please merge #55 first.
Even though there are not really any dependencies, I rebased this PR on top of #55 to avoid merge conflicts in later PRs that will depend on both #55 and this PR.


simplify query JSON and fix typo in the nested label

Description
Simplify query JSON and fix typo in the nested label
Issue reference

Please reference the issue this PR will close: #3960
Checklist
Please make sure you've  completed the relevant tasks for this PR, out of the following list:

[x] Code compiles correctly
[x] Created/updated tests
[x] Unit tests passing
[x] End-to-end tests passing
[x] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#2011
[ ] Specification has been updated / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Provided sample for the feature / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

cc @mukundansundar - this should simplify your work in Java SDK

/ok-to-test

Need to comment this change?

Need to comment this change in doc?

Yes, I created an issue in docs for this. Will send a PR there once this one is merged.


🐞 Bug: highlight_groups custom groups stopped working

Before reporting:

[X] Ensure that the issue is reproducable on the main branch.
[X] Ensure that there isn't an issue on this(either open or closed).

Problem:
very recently the highlight_groups section, or more specifically the groups I added to it has stopped working.
I know before it worked just fine but I don't know which update might have broken that.
As you can see in the corner of the headers. it should have highlight same to the background

Steps to reproduce the issue:
 {
        "OXY2DEV/markview.nvim",
        lazy = true,      -- Recommended
        ft = "markdown", -- If you decide to lazy-load anyway
        config = function ()

            local colors = require("markview.colors");

            require("markview").setup({
                modes = { "n", "i", "no", "c" },
                hybrid_modes = { "i", "n" },

                -- This is nice to have
                callbacks = {
                    on_enable = function (_, win)
                        vim.wo[win].conceallevel = 2;
                        vim.wo[win].concealcursor = "nc";
                    end
                },
                checkboxes = {
                    enable = true,

                    checked = {
                        text = "󰡖", hl = "MarkviewCheckboxChecked"
                    },
                    unchecked = {
                        text = "", hl = "MarkviewCheckboxUnchecked"
                    }
                },
                links = {
                    enable = true,

                    images = {
                        icon = " ",
                        hl = "MarkviewImageLink",
                    }
                },
                highlight_groups = {
                    {
                        group_name = "MarkviewHeading1Corner",
                        value = function ()
                            return { fg = colors.get_hl_value(0, "MarkviewHeading1", "bg") };
                        end
                    },
                    {
                        group_name = "MarkviewHeading2Corner",
                        value = function ()
                            return { fg = colors.get_hl_value(0, "MarkviewHeading2", "bg") };
                        end
                    },
                    {
                        group_name = "MarkviewHeading3Corner",
                        value = function ()
                            return { fg = colors.get_hl_value(0, "MarkviewHeading3", "bg") };
                        end
                    },
                    {
                        group_name = "MarkviewHeading4Corner",
                        value = function ()
                            return { fg = colors.get_hl_value(0, "MarkviewHeading4", "bg") };
                        end
                    },
                    {
                        group_name = "MarkviewHeading5Corner",
                        value = function ()
                            return { fg = colors.get_hl_value(0, "MarkviewHeading5", "bg") };
                        end
                    },
                    {
                        group_name = "MarkviewHeading6Corner",
                        value = function ()
                            return { fg = colors.get_hl_value(0, "MarkviewHeading6", "bg") };
                        end
                    },
                },
                headings = {
                    enable = true,
                    shift_width = 0,

                    heading_1 = {
                        style = "label",

                        padding_left = " ",
                        padding_right = " ",

                        corner_left = "",
                        corner_left_hl = "MarkviewHeading1Corner",
                        corner_right = "",
                        corner_right_hl = "MarkviewHeading1Corner",

                        hl = "MarkviewHeading1"
                    },
                    heading_2 = {
                        style = "label",

                        padding_left = " ",
                        padding_right = " ",

                        corner_left = "",
                        corner_left_hl = "MarkviewHeading2Corner",
                        corner_right = "",
                        corner_right_hl = "MarkviewHeading2Corner",

                        hl = "MarkviewHeading2"
                    },
                    heading_3 = {
                        style = "label",

                        padding_left = " ",
                        padding_right = " ",

                        corner_left = "",
                        corner_left_hl = "MarkviewHeading3Corner",
                        corner_right = "",
                        corner_right_hl = "MarkviewHeading3Corner",

                        hl = "MarkviewHeading3"
                    },
                    heading_4 = {
                        style = "label",

                        padding_left = " ",
                        padding_right = " ",

                        corner_left = "",
                        corner_left_hl = "MarkviewHeading4Corner",
                        corner_right = "",
                        corner_right_hl = "MarkviewHeading4Corner",

                        hl = "MarkviewHeading4"
                    },
                    heading_5 = {
                        style = "label",

                        padding_left = " ",
                        padding_right = " ",

                        corner_left = "",
                        corner_left_hl = "MarkviewHeading5Corner",
                        corner_right = "",
                        corner_right_hl = "MarkviewHeading5Corner",

                        hl = "MarkviewHeading5"
                    },
                    heading_6 = {
                        style = "label",

                        padding_left = " ",
                        padding_right = " ",

                        corner_left = "",
                        corner_left_hl = "MarkviewHeading6Corner",
                        corner_right = "",
                        corner_right_hl = "MarkviewHeading6Corner",

                        hl = "MarkviewHeading6"
                    },
                }
            })
        end
    },

Expected behavior:
The corner of the headers should match the headers background
Neovim version:
NVIM v0.10.2 Build type: Release LuaJIT 2.1.1727870382

This is due to changes to how highlights are applied.
markview.colors was deprecated due to lack of interest(as people seem to still prefer colorschemes handing this).
This is the new syntax.
highlight_groups = {
  {
    output = function (hl)
      return {
        group_name = "Heading1Corner",
        value = {
           fg = hl.hex(hl.color("bg", { "MarkviewHeading1" }, nil, nil))
        }
      }
    end
  }
}

Here's the function definitions.
---@param opt string Option to get, e.g. bg, fg
---@param colors string[] List of highlight groups to check into. Useful for groups that get inherited from multiple highlight groups.
---@param light any Value to return if the opt wasn't found and the background is "light".
---@param dark any Value to return if the opt wasn't found and the background is "dark".
---
---@return integer[] The R, G, B value
hl.color(opt, colors, light, dark)

---@param color integer[] The R, G, B values
---@return string The hexadecimal value of the color.
hl.hex(color)

markview.colors was replaced with markview.highlights to make maintaining it easier. markview.colors will be removed in a future update.
Manually setting highlight groups is no longer recommended as it may overwrite the highlight groups provided by the colorscheme(assuming it supports this plugin). So, it will not be documented in the wiki.


Add ResetAfterMeasureSimplification transpiler pass

Summary
This commit adds a new transpiler pass to simplify resets after a
measurement. This pass when run will replace any reset after a
measurement with a conditional X gate. This is because the reset
operation on IBM backends is implemented by performing a conditional x
gate after a reset. So doing this simplification will improve the
fidelity of the circuit because we're removing a duplicate measurement
which was implicit in the reset. This pass is based on the marz library:
https://github.com/Qiskit-Partners/marz which did the same thing but at
the QuantumCircuit level.
One note is that this pass is basically specific to IBM backends so it's
not added to the preset pass managers. Ideally we'd be able to have the
IBM backends run this as part of the init stage or something to do the
logical transformation early in the compilation. But right now there is
no mechanism to do this (see #8329), so for now having the pass and
letting users specify it in the pass manager directly is the best
option. After #8329 is implemented we can look at adding this pass to
that hook interface in the ibm provider's backends directly so that they
can leverage this optimization whenever they're the compilation target.
Details and comments

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

24 of 24 (100.0%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.3%) to 84.312%

Totals

Change from base Build<PHONE_NUMBER>:
0.3%

Covered Lines:
56059

Relevant Lines:
66490

💛  - Coveralls

Not all IBM backends implement reset with a conditional gate

I do not think that that actually matters here provided that conditional x gates are more efficient then whatever you replaced the reset with.  But it is an interesting point that I was unaware of.
As it turns out, @mtreinish and myself were talking in parallel about transpiler passes in the IBM provider.

I vote for adding it.