feat: android 14 permission support

BREAKING CHANGE: You will need to make some changes to your MainActivity.kt file
Blocked by: https://github.com/facebook/react-native/issues/42403

Waiting for https://github.com/facebook/react-native/pull/42478 to be merged.

Unblocked. Go for it

We need to wait for release crew to start back-porting this fix to older versions of RN:
RN 70: https://github.com/reactwg/react-native-releases/discussions/92#discussioncomment-8208813
RN 71: https://github.com/reactwg/react-native-releases/discussions/98#discussioncomment-8208768
RN 72: https://github.com/reactwg/react-native-releases/discussions/99#discussioncomment-8208809
RN 73: https://github.com/reactwg/react-native-releases/discussions/100#discussioncomment-8208796

Any updates on this? Can see that on RN the changes has been merged.

Any updates on this? Can see that on RN the changes has been merged.

I am still waiting for the backport fix for 72.

Hey there
I'm really looking forward to this update. Is there any way I can help move things along?

Hey there
I'm really looking forward to this update. Is there any way I can help move things along?

I think you just have to wait for React Native 0.72.11 to be released.

+1
@matinzd is there any update on this.

Waiting for RN 72 patch. Until then, no updates.

@matinzd We upgraded to the latest version of RN 73 and this package with the Android 14 fix but get the error that seems related to the update mentioned in the Readme to MainActivity.kt. We don't currently maintain any custom native code in our project (we use Expo) - is that something we will need to do in order to get v2 of react-native-health-connect working?

@matinzd We upgraded to the latest version of RN 73 and this package with the Android 14 fix but get the error that seems related to the update mentioned in the Readme to MainActivity.kt. We don't currently maintain any custom native code in our project (we use Expo) - is that something we will need to do in order to get v2 of react-native-health-connect working?

I need to publish a version that uses expo modules api😅


Prevent using recursion in LocalClock

Now that we use AbortSignals it's not necessary to use recursion in the LocalClock. Functionality should be the same but without relying on setTimeout. While errors on onNextSlot are probably impossible, now the stack should come from LocalClock's instantiation instead of a timeout.

Consider reviewing after https://github.com/ChainSafe/lodestar/pull/2022 and move the clock to core


Added documentation for dynamic types workaround

Please list issues fixed by this PR here, using format "Fixes #the-issue-number".
Checklist

[x] An issue to be fixed by this PR is listed above. https://github.com/fzyzcjy/flutter_rust_bridge/issues/798
[ ] CI is passing.

Not applicable

[x] New tests are added to ensure new features are working. End-to-end tests are usually in the ./frb_example/pure_dart example, more specifically, rust/src/api.rs and dart/lib/main.dart.
[x] The code generator is run and the code is formatted (e.g. via just refresh_all).
[x] If this PR adds/changes features, documentations (in the ./book folder) are updated.

Remark for PR creator

New contributors will be blocked by GitHub from running CI, but you can use a trick to workaround this, and verify your code using CI by yourself.
If fzyzcjy does not reply for a few days, maybe he just did not see it, so please ping him.

@all-contributors please add @alexthe2 for doc


test import-csv-encoding.sh fails

In the current codespace environment (microsoft universal, java 21), the test fails with both OpenRefine 3.7.6 and OpenRefine 3.8.7.

The character set encoding of the sample file was accidentally changed by an previous modification.
Fixed with https://github.com/opencultureconsulting/orcli/commit/05cb0528c184257a1ad9093c4e4dcd6b1300e78c


[v2.7] Sync Feb Patches to dev-v2.7

tracking issue to merge KDM branch release-v2.7 into dev-v2.7 after feb patches is released.

v2.7 https://github.com/rancher/kontainer-driver-metadata/pull/1353

dev-v2.7 looks good for k3s and rke2 ✅

dev-v2.7 looks good for rke1. Hence, closing the issue.


How to change site port

how do i change the port from 1234 to 2 ports 80 for http and for https to 443

you can change the site port by providing the --port flag in the package.json parcel script [ start ]
  "scripts": {
    "start": "parcel --port 1234",
    "build": "parcel build"
  },

I have made a pr with this option mentioned so it will be easier for anyone else.

#243


Obsidian plugin using KodaDot

Feel free to DM me on this I can expand more on this one
Spec

make a plugin that will create transactions directly from Obsidian

Functionality

load private key
sign transaction
show left a balance on loaded address // denominate amount of submitted notes
submit it as IPFS for now, easier
mind bi-directional linking if there is linking between notes to be working within KodaDot
an extension that one can read notes through KodaDot

Bonus

make it AR notes

Hi @yangwao
I'd like to work on this issue
Could you explain this in more detail?
Thank you


proposal adopt the node vm api directly into graaljs and expose vm as global

It would help a lot for interop when graaljs would support the VM Api directly this way we can port a lot of code directly over to graaljs as this types of codes are more distributed and will never use require or similar most of the time
this api is designed to implement userland module systems so it is Fundamental in the future of JSRuntimes

https://nodejs.org/api/vm.html#vm-executing-javascript

i am not so familiar with the graaljs codebase it would take me some time to implement that directly in graaljs but i am familar with the vertx and es4x code base there i could integrate that more fast.
so the questions that are open:

Would you want to integrate that directly into graaljs and take over maintainance or should i implement it into vertx and ES4X (class factory for graaljs mostly node compatible)

Thank you for your proposal, we will take a look into it and get back to you

i guess it can get implemented with a subset of the existing graalvm polyglot context builder api

@eleinadani your correct i will implement it in ES4X i already talked to vertx about that and i got a ok for that.

as nodejs now got --import[] as of 19.1 it can preload scripts without vm before frezzing intrinsics that allows 1:1 module parity authors can now author modules cross platform also did a standard for that cross platform modules so that they are modules and packages at the same time to be secure and audit able
i call it web-modules https://github.com/lemanschik/web-modules/issues/4


Add replace option for .navigate() and .open() events

Now .navigate and .open events push new state, in some cases it would be necessary to replace current state to prevent user from going back.

Added in v0.6.3 (PR #34)
someRoute.open({ replace: true })


Fix formatting of contributors page on Safari

Description

text-align-last property is not supported in safari, resulting in hall of fame section not being centrally aligned.

I've fixed the issue by removing the text-align-last property on the p tags, although I have kept it on the description section. This means that the last line of the description will be justified on safari but centered on other browsers.
After screenshots
Chrome:

Safari:

Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[ ] Code quality improvements

How to test

Checklist

[x] I have tested this code
[ ] I have updated the documentation

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
3198

Relevant Lines:
9815

💛  - Coveralls


Copy last skipped URL not working

New Issue Checklist (tick off like this: [x])

[x] I checked existing issues (open and closed) for possible duplicates
[x] I can reproduce the problem on the latest stable version (not nightly!)
[x] If you have a problem with a specific website: adding the domain to your no-skip-urls-list does not solve the problem
[x] The issue is not about adding entries to the default no-skip-urls-list

What is your browser?

[x] Firefox
[ ] Chrome

What is your operating system?

[ ] Linux
[ ] Mac
[x] Windows

Description (please include examples/screenshots where applicable)
When in "Skip all redirects except for URLs" mode, when the extension skips a redirect that I need, I try to use the "Copy last skipped URL" feature but my clipboard just has whatever it previously had when I past into the "No-skip-urls-list".

This looks like a Firefox bug to me, there is an error for missing host permissions, but host permissions are not part of the webextension version Skip Redirect is built with.


Alternative to inheriting from parameterized

See #435
This isn't ready for any kind of review, it's just for visibility. I debated whether or not to make a PR at this stage; I'd say it's in the same kind of category as #252 in terms of speculative nature (though there is a bit more chance I'll work on this one), so we could close and leave just the corresponding issue.

Looks cool! Is there any downside other than not supporting Python2?

Is there any downside other than not supporting Python2?

Got to test it, got to document it, etc 🤣
I'll answer seriously at some point. But "got to document it" is partially serious already; the more ways to use param:

the more documentation to write
the more confusing it can be to newcomers
the more confusing it can be when coming to "parameterized" code (currently, you definitely know what to expect when you encounter code using param)

I feel like 1 and 2 will be ok, because I can see a story about ways to start using param that makes sense.
3 I'm not sure about. If this PR ends up offering a different way to get to the same behavior as current param, there's no issue. If it ends up allowing people to get bits of param, it might result in more confusing code. Not sure.

Coverage decreased (-0.4%) to 79.093% when pulling e6463e19ddeeccf1a053d19cc1a12dc48ab4e2d7 on gradual_param into b785c42e8745644ad74aa0ace758925f311443e1 on master.

Definitely an interesting idea!
Being able to use parameters without inheritance is not something I would recommend when starting from scratch but as a way to help migrate to param it seems very useful.

Closing for now because of incompletion


Patch all gitdb 4.0.x releases

Followup to #115 as this is broken for all 4.0.x releases

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

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

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

cc @conda-forge/gitdb
% python show_diff.py
Downloading: https://conda.anaconda.org/conda-forge/noarch/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/noarch/repodata.json.bz2
noarch::gitdb-4.0.2-py_0.tar.bz2
-    "smmap >=3.0.1"
+    "smmap >=3.0.1,<4"
noarch::gitdb-4.0.4-py_0.tar.bz2
-    "smmap >=3.0.1"
+    "smmap >=3.0.1,<4"
noarch::gitdb-4.0.5-py_0.tar.bz2
-    "smmap >=3.0.1"
+    "smmap >=3.0.1,<4"
Downloading: https://conda.anaconda.org/conda-forge/linux-64/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-64/repodata.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-armv7l/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-armv7l/repodata.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-aarch64/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-aarch64/repodata.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-ppc64le/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-ppc64le/repodata.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/osx-64/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/osx-64/repodata.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/osx-arm64/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/osx-arm64/repodata.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/win-32/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/win-32/repodata.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/win-64/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/win-64/repodata.json.bz2

cc @conda-forge/gitdb
% python show_diff.py
Downloading: https://conda.anaconda.org/conda-forge/noarch/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/noarch/repodata.json.bz2
noarch::gitdb-4.0.2-py_0.tar.bz2
-    "smmap >=3.0.1"
+    "smmap >=3.0.1,<4"
noarch::gitdb-4.0.4-py_0.tar.bz2
-    "smmap >=3.0.1"
+    "smmap >=3.0.1,<4"
noarch::gitdb-4.0.5-py_0.tar.bz2
-    "smmap >=3.0.1"
+    "smmap >=3.0.1,<4"
Downloading: https://conda.anaconda.org/conda-forge/linux-64/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-64/repodata.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-armv7l/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-armv7l/repodata.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-aarch64/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-aarch64/repodata.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-ppc64le/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-ppc64le/repodata.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/osx-64/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/osx-64/repodata.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/osx-arm64/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/osx-arm64/repodata.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/win-32/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/win-32/repodata.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/win-64/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/win-64/repodata.json.bz2


Creating geometry using PIXI.mesh.Mesh

Hi!
I saw in the v4 discussion that custom geometry may be coming, exciting stuff! In the mean time, I've been working my way through the source and trying to find a way to do this now.
It seems like I should be able to use Mesh to do this, however creating a mesh and passing a texture comes up with this:

So it seems like the default vertices aren't really accurate. I tried a few different combinations trying to draw a single triangle or quad, but didn't get anywhere -- specifically ccw wrapping such as:
[0, 0   100, 0,   0, 100]
I was wondering if there is a quick explanation how to setup the Mesh vertices/uvs/indices to draw a tri or quad?

Hey man!
Exciting stuff indeed! Im quite looking forward to exposing a few things in pixi to allow for it to be much easier to create custom buffers / shaders. It will be ace.
Have you tried using the dev branch? I'm pretty sure we fixed a few bits a couple of weeks back.
Cheers!

Hey,
Thanks for getting back to me. I just pulled the dev branch but am getting the exact same result with 3.0.9-dev.
I think mesh works, seeing as Rope uses it and works. I'm just trying to understand how vertices need to be arranged and how indices relates to them. Is there a quick explanation?

ah, i see what you mean! The default values are incorrect :/
Just pushed the 'correct' initial values to the dev branch so it appears correctly now :)
The indices are setup to be draw using a triangle strip
indices = [0, 1, 3, 2]

If the draw mode you use is set to triangles the indices would need to be:
indices = [0, 1, 2, 0, 2, 3]

hope that helps!

Perfect, that's it.. thanks!


Bug

There was a serious problem with this version today, I used my funding wallet to dig quark but my primary wallet didn't arrive and was given to someone else instead. My Funding: mempool.space/address/bc1pj3…  ，，My primary: https://mempool.space/address/bc1pf2sek8rwcea5kuhc73pgl96yeeg0fcsvl8p35cnqaacsjfqrg38s2qx7px

There was a serious problem with this version today, I used my funding wallet to dig quark but my primary wallet didn't arrive and was given to someone else instead. My Funding:(https://mempool.space/address/bc1pj3fsy9jpkxzdqwefv4vkgr5kn5ejgh5q23cxtg9eqtv9wwg6df5s7y8wlk)，，My primary: (https://mempool.space/address/bc1pf2sek8rwcea5kuhc73pgl96yeeg0fcsvl8p35cnqaacsjfqrg38s2qx7px)

The commit tx was confirmd, but no reaveal tx. Is there any error/warning output during mint?

There was a serious problem with this version today, I used my funding wallet to dig quark but my primary wallet didn't arrive and was given to someone else instead. My Funding:(https://mempool.space/address/bc1pj3fsy9jpkxzdqwefv4vkgr5kn5ejgh5q23cxtg9eqtv9wwg6df5s7y8wlk)，，My%EF%BC%8C%EF%BC%8CMy) primary: (https://mempool.space/address/bc1pf2sek8rwcea5kuhc73pgl96yeeg0fcsvl8p35cnqaacsjfqrg38s2qx7px)

The commit tx was confirmd, but no reaveal tx. Is there any error/warning output during mint?

There was a serious problem with this version today, I used my funding wallet to dig quark but my primary wallet didn't arrive and was given to someone else instead. My Funding:(https://mempool.space/address/bc1pj3fsy9jpkxzdqwefv4vkgr5kn5ejgh5q23cxtg9eqtv9wwg6df5s7y8wlk)，，My%EF%BC%8C%EF%BC%8CMy) primary: (https://mempool.space/address/bc1pf2sek8rwcea5kuhc73pgl96yeeg0fcsvl8p35cnqaacsjfqrg38s2qx7px)

Today still encountered this problem, today after digging to prompt 502 error

I encountered the same problem at commit 03d368d
tx :
https://mempool.space/address/bc1phfef4mvv2nxnrzuazw3gl6tef56shkd054kwpdaym3stffhshv5qdz5ljp
and my primary address is
https://mempool.space/address/bc1pf5k8rv7udgtlnhnzed9fhyhvwf0k7cj923nvvsv4knwxywwjyauscl42dg
is there any chance to get my asset back?


Cleanup

does a bunch of cleanup and restructuring of the pylint-quotes package. adds helpful development makefile targets.

Coverage decreased (-9.5%) to 89.565% when pulling 55ccca390b6339c05b2f28029f88590144bc55c3 on cleanup into 187210a592721630435ffa956400804c652112ac on master.

Coverage decreased (-9.5%) to 89.565% when pulling 55ccca390b6339c05b2f28029f88590144bc55c3 on cleanup into 187210a592721630435ffa956400804c652112ac on master.


remove checksum generation in java bundle

Signed-off-by: Appu Goundan<EMAIL_ADDRESS>turns out this is unnecessary when uploading bundles to maven central as they are generated on the server side, so if you upload a hash, it generates hashes for that hash. hash explosion.

@znewman01 merge?


Race when trying to call reveal on a newly-added tree node

I have some code that creates a new tree node and then tries to show it using reveal(). It seems like this code is racy because it takes time for the tree to process the new node. Eg., given this code:
const node = new SuiteTreeItem(...);
this.onDidChangeTreeDataEmitter.fire(node);
this.onDidChangeTreeDataEmitter.fire();
setTimeout(() => this.tree.reveal(node), 100);

If I make the timeout value great enough, it works fine. If it's too low then sometimes I'll get Cannot resolve tree item for element 1/suite_1_1.
I wonder if it's related to the buffering of updates in the tree? Maybe any pending updates need applying before reveal is processed? Strangely the very first node always seems to work, so maybe when there are no nodes it's already doing that?
(Otherwise, is there a better way to do this? Or a way to just show the tree, and not care about the node?)

(cc @sandy081)

@DanTup On what version of VS Code are you seeing this issue?

Can't repro in insiders; apologies I should've tried there first :-)


Removed tabs

The NuGetTasks.cs file had a mix of tabs and spaces.  This made made the code difficult to
read on GitHub as the formatting was visible incorrect (code shifted left / right).

looks good. BTW, this task is temporary. We are working on a official one that will automatically satisfy transitive dependencies and won't require explicit paths to be specified in the csproj file.

@KrzysztofCwalina cool.  I had been told essentially that earlier today but to look at this particular task as an "preview" of sorts for what direction we were heading.

Sounds good. Thanks!


backups

Create a script, REST endpoint, and simple UI that tar.gz up the data directory of OpenMapKit to a backups directory. Serve that directory as a downloadable end point.

This is done now in posm-admin.


Update New-CsGroupPolicyAssignment.md

remove GCCH exception, we are live now there.

Docs Build status updates of commit 7745f15:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

teams/teams-ps/teams/New-CsGroupPolicyAssignment.md
:white_check_mark:Succeeded
View (teams-ps)

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

@JohanFreelancer9

@get-itips @tseward

@tiburd Please merge this PR. Thanks


Lp system is not working correctly

Found the bug. I wasn't recording the work we served auth. So we had no idea where to submit it. Fixed now.


redesign: [price-section] [desktop] [ui-only] buy, offer, list, transfer, change price, and not listed section

Thank you for your contribution to the KodaDot NFT gallery.
👇 _ Let's make a quick check before the contribution.
PR Type

[ ] Bugfix
[ ] Feature
[ ] Refactoring
[x] Redesign

Context

[x] Closes #4505
[x] use bold for the active state in activity tabs
[x] use formatDistanceToNowStrict to trim about

Before submitting pull request, please make sure:

[x] My contribution builds clean without any errors or warnings
[x] I've merged recent default branch -- main and I've no conflicts
[x] I've tried to respect high code quality standards
[x] I've didn't break any original functionality
[x] I've posted a screenshot of demonstrated change in this PR

Optional

[ ] I've tested it at </bsx/collection>
[ ] I've tested PR on mobile
[ ] I've written unit tests 🧪
[ ] I've found edge cases

Had issue bounty label?

[ ] Fill up your KSM address: Payout

Community participation

[x] Are you at KodaDot Discord?

Screenshot 📸

[x] My fix has changed something on UI; a screenshot is best to understand changes for others.

Nice job, it looks really good!
One issue, we had chat in the parent issue about the responsive version. AnnndI have to rethink it because for example from 1024 to 768px does not makes sense to have this animation etc. I did not think about it that much. I'll attempt to come up with something better - it seems to be a popup that will transform into a modal on mobile.
I mean on desktop with full view it looks really good and i am conviced this was good solution, but looking at the ui in the device toolbar i think we have to change few things.
This was my fault and i am sorry for that.

At least deliver that first for v1.0 and adjust a little bit for mobile based on the desktop version.

Yes, agree with this approach.
We've had a quick update on how to save some space and make mobile adjustments.
I guess we will come up with a good mobile solution and how to reuse components from mobile to desktop for example.

Issue is with animation is too wide and if we account for future narrow devices, foldable, tablets we need to come up with something flexible and probably go more vertical space
To continue, we will track it in a separate mobile gallery item issue.

Hi! nice job
feedback

background of the card should be k-darkmode, not black
is it also possible to make the stroke around the frame as in design?

rest i think would be fixed in #4444 , for example stretching the card to something like this, which isnt expected behavior

Thanks!

I guess let's merge it and then we can look adding #4531 and then through feedback process to tune details?

I'm moving this forward


create automatic token pair from erc20

we need to create a token pair from erc20.
we need to make sure that the token pair has denom-metadata and matches the erc20.

closing as dup of https://github.com/dymensionxyz/evmos/issues/37


[feasibility-research] Handle machine failure

According to the docs about restart policy here: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy, once bound to a node, a Pod will never be rebound to another node.
Thus when the machine node is down, we should try to handle such a failure.
There are some options to achieve it:

Use descheduler
Implement the logic in the operator.

I will try to investigate the cost of this feature.

@gaocegege Doesn't the CR already handle this? Won't the reconcile logic detect that the pod isn't running and create a new one.
@johnugeorge @richardsliu

I think it cannot solve the Split brain problem.

/area engprod
/priority p2


NFT <> NFT Trades are not supported by V4 SDK

Hello! I'm trying to test out the NFT <> NFT trades with V4 and it looks like that isn't supported yet. I understand from the error messages I receive that I should use V3 instead for this.
Now that I'm trying to use V3 SDK I find that the addresses.json of V3 SDK does not include chainId 5.
I would like to use a testnet with NFT <> NFT trades and since rinkeby is deprecated it would be awesome if you could update the addresses.json to include testnet Goerli (chain 5).
Another question regarding Goerli and V3. Will the V3 version of the SDK work with the protocol contracts deployed to Goerli?

The 0x contracts aren't deployed to newer Ethereum testnets.
You're better off getting it working with Polygon since it's lower cost then make adjustments for Eth mainnet and run a few tests with that. Although gas is expensive.

Yeah, the 0x core team has not deployed v3 to any current (goerli, sepolia) testnets.
unfortunately the v3 contracts are quire cumbersome to deploy, although I can definitely try -- I have the repo locally

Thanks for the replies, I decided to work with polygon mumbai testnet for now since V3 is deployed there. While I have you guys here though... Do we have any idea on when V4 will support NFT <> NFT trades?

Not sure: re NFT<>NFT swaps. That's something I've been requesting. I'm unfortunately not involved with the core team and don't have much visibility into the protocol roadmap at the moment. I've been trying to get 0x Labs to put it on the roadmap for a bit now. I think it's worth proposing something on the governance forum now that governance has been revamped -- I've been meaning to do it.

If I can support this effort in anyway please do let me know. I have a client that is invested in this software and we will need V4 to support NFT <> NFT trades very soon.


Bug 2151237: "404: Not Found" appears before the VMIM details is loaded

📝 Description
The missing namespace prop is causing the VMIM details page to reach 404
🎥 Demo
Before:
https://user-images.githubusercontent.com/67270715/232819594-15d4d415-e793-4c77-9a67-42962a4e213c.mp4
After:
https://user-images.githubusercontent.com/67270715/232819688-58f75408-c815-44c9-9b8b-5a8f40ec614d.mp4

/lgtm


Vertex alpha colors are not exported (Blender 4.1)

Describe the bug
Vertex alpha colors are properly imported and displayed in Blender. However, they are lost after reexporting assets.
To Reproduce

Import the attached .glb file.
Export the scene.
Import it back
Notice that opaque vertex colors are there but alpha colors were lost.

Expected behavior
All vertex colors should be preserved.
Screenshots

.blend file/ .gltf (mandatory)
vertex_colors_alpha_bug.glb.zip
Version

OS: Linux
Blender Version: 4.1.1

Additional context
It seems to work properly in Blender 4.0
I know there was a change to the glTF addon and it does not export vertex colors that are not used in the node graph. However, this is not the case here.

This appears to be caused by a copy-paste error.
The code to get the "Color" part of the vertex color looks for a Mix node set to "Color" and "Multiply"
https://github.com/KhronosGroup/glTF-Blender-IO/blob/c8387a6007e6e57cc9a656309efe2d822fd3b9cb/addons/io_scene_gltf2/blender/exp/material/gltf2_blender_search_node_tree.py#L627
Similarly, the code the get the Alpha part looks for a Mix node set to "Float" and "Multiply"
https://github.com/KhronosGroup/glTF-Blender-IO/blob/c8387a6007e6e57cc9a656309efe2d822fd3b9cb/addons/io_scene_gltf2/blender/exp/material/gltf2_blender_search_node_tree.py#L645
But the Mix node only has different blend_types for colors. For floats, it always does pure mixing, it cannot be configured to do multiplication. Multiplication of floats is done with a Math node set to "Multiply" instead.
So this patch should fix it
diff --git a/addons/io_scene_gltf2/blender/exp/material/gltf2_blender_search_node_tree.py b/addons/io_scene_gltf2/blender/exp/material/gltf2_blender_search_node_tree.py
index 1d9e0a11..8b88358f 100644
--- a/addons/io_scene_gltf2/blender/exp/material/gltf2_blender_search_node_tree.py
+++ b/addons/io_scene_gltf2/blender/exp/material/gltf2_blender_search_node_tree.py
@@ -642,10 +642,10 @@ def get_vertex_color_info(color_socket, alpha_socket, export_settings):
     if alpha_socket is not None and alpha_socket.socket is not None:
         node = previous_node(alpha_socket)
         if node.node is not None:
-            if node.node.type == 'MIX' and node.node.data_type == "FLOAT" and node.node.blend_type == 'MULTIPLY':
-                use_vc, attribute_alpha, use_active = get_attribute_name(NodeSocket(node.node.inputs[2], node.group_path), export_settings)
+            if node.node.type == 'MATH' and node.node.operation == 'MULTIPLY':
+                use_vc, attribute_alpha, use_active = get_attribute_name(NodeSocket(node.node.inputs[0], node.group_path), export_settings)
                 if use_vc is False:
-                    use_vc, attribute_alpha, use_active = get_attribute_name(NodeSocket(node.node.inputs[3], node.group_path), export_settings)
+                    use_vc, attribute_alpha, use_active = get_attribute_name(NodeSocket(node.node.inputs[1], node.group_path), export_settings)
                 if use_vc is True and use_active is True:
                     attribute_alpha_type = "active"
                 elif use_vc is True and use_active is None and attribute_alpha is not None:

Note that alpha is also lost when there is alpha factor (#2110).

Confirmed


Unable to restore Portainer from backup

Steps to Reproduce

Install Portainer
Back up Portainer
Restore Portainer from backup

Actual Result
Upon uploading a backup file in the Restore from Portainer Backup feature, Portainer is not being restarted. Portainer goes back to the setup screen.
Expected Result
The Portainer restore process should upload the backup file, restore Portainer from the backup and restart Portainer.

Still happening with v2.18.3. Just tryied twice and get the same timeout.

Thanks for letting us know @Ricardo-Miguel-Caldeira. We'll look into this again.

Still happening also with 2.19

@anluoma Are you able to open this as a new bug report, and provide as much detail as you can about your setup? That way we can track it as a separate issue and make sure it doesn't get lost.
Specifically it'd be helpful to know if you're seeing any errors in the logs, as well as more about your configuration - reverse proxy, browser, platform, etc.


[Suggestions / Ideas] Upgrades for Wireless Chargers

Well it would be cool if the mod adds the functionality for charging machines in range, the charging rate, also items which is RF-Based inside a machine, or even sth like AE / UE support, that would be awesome! (I didn't mean to request the mod being joined with those power units which mods like Applied Energistics 2 / Universal Electricity / Mekanism / RotaryCraft adds, just want to point out that Couldn't wireless chargers charge machines nearby? btw can you add a slot for capacitors to upgrade the capacitors to actually charges those items?) Thx!

Is this something that's not likely to happen?

I think so, btw it's been so long that I almost give up minecraft :smile:


[Bug] ReadiumNavigation Unexpectedly found nil while implicitly unwrapping an Optional value paginationView in EPUBNavigatorViewModel

Describe the bug
Upon working to upgrade to 3.0.0-alpha.2 for testing or integration I have started to receive the following error when opening a publication.
Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value

How to reproduce?
I feel like I haven't initialised something correctly, but as far as I'm aware I have correctly followed the steps from the migration guide.
Readium version
3.0.0-alpha.2
OS version
iOS 16.7.10 and iOS
Testing device
iPhone X (physical device) and iPhone 15 (simulator)
Environment
macOS: 14.3.1
platform: arm64
carthage: 0.40.0
Xcode 15.4
Build version 15F31d

Additional context
In order to continue my testing, if I check the variable first I can get the ebook to load, but this doesn't feel like this is fixing the root cause.
case .loadedResources:
  await withTaskGroup(of: Void.self) { tasks in
    if (paginationView != nil) {
      for (_, view) in paginationView.loadedViews {
          tasks.addTask {
              await (view as? EPUBSpreadView)?.evaluateScript(script)
          }
      }
    }
  }

Thanks for reporting this issue, I'll try to tackle it next week.

By the way, to solve the problem you just need to move navigator.submitPreferences to viewDidAppear, this worked for me

Could you give more details steps to reproduce the error from the test app? I can't trigger it.

Okay I could reproduce, I think it happens only with fixed layout publications, correct?

Could you try again from develop and confirm that it fixes the problem for you? Thanks!

Yes, thanks, fixed, can you tell me when to expect the release with all the latest fixes?

I'm doing one right now, 3.0.0-alpha.3.


v 1.25.0 intellisense not working with Unity editor v 2020.3.24f1

Started working when I downgraded to C# 1.23.0

@GetTheCatExcited For Unity development with v1.25.0 you need to set OmniSharp.useModernNet to false and to have MSBuild installed. See the requirements at https://github.com/OmniSharp/omnisharp-vscode#requirements for links to download.

Thank you for this! Works now with newest versions of both!


Top navigation styling issues

Checklist

Please ensure the following tasks are completed before filing a bug report.

[x] Read and understood the Code of Conduct.
[x] Searched for existing issues and pull requests.

Description

Description of the issue.

We need to fix the following styling issues with the API docs top navigation:

navigation should not be sticky.
item spacing/alignment should better match the main homepage
s/Back to README/Documentation/

Related Issues

Does this issue have any related issues?

None.
Questions

Any questions for reviewers?

No.
Other

Any other information relevant to this issue? This may include screenshots, references, stack traces, sample output, and/or implementation notes.

Demo

If relevant, provide a link to a live demo.

For a live demo of the issue, see

<https://stdlib.io/docs/api/v0.0.90/@stdlib/array

Reproduction

What steps are required to reproduce the unexpected output?

In order to reproduce this bug, do the following:

see the site.

Expected Results

What are the expected results?

The following results are expected:
N/A
Actual Results

What are the actual results?

The following are the actual results:
N/A
Environments

What environments are affected (e.g., Node v0.4.x, Chrome, IE 11)? If Node.js, include the npm version, operating system, and any other potentially relevant platform information.

The following environments are affected:

Chrome

This issue has now been resolved.

Feel free to close then.


It is unclear what I was thinking when authoring the original code...

This addresses #542 as well.

@scchan that'd be a neat change but at this point it'd be much ado about nothing, with the up and coming better future; I'd also not try to brave those treacherous waters given that things sort of work at the moment, yuckiness notwithstanding.


polybar.py little bug

Hey, I just saw you have an error in your polybar.py file on line 89/90.
this
 FileUtils.replace_line(configuration.polybar_config, 'format-connected-foreground',
                                   'format-connected-foreground = ' + self.format_con_back)

should be
 FileUtils.replace_line(configuration.polybar_config, 'format-connected-foreground',
                                   'format-connected-foreground = ' + self.format_con_fore)

:)

Hello sir, would you like to make a PR for this?

Yes ! I unfortunately don't know the work flow for this. I already have a fork where I changed some stuff for my own set up and don't want to delete that. Can I make a new branch and commit then PR from there?
Let me know how I should do this

Yes sir, you can do it as you like.


Ansi parser

@BDisp I wanted to explore how we could detect the ansi sequences within input stream without having to put breaks on input like in #3768
This is where I have gone so far, what do you think?
The purpose is to stream text from console driver as read and 'transparently' pluck out the expected responses live.
Why <T>?
I realized working exclusively in char and string made it difficult for WindowsDriver to integrate - so I have changed to AnsiParser<T> .  The class now deals with sequences of char each of which has any metadata you want (type T).  For WindowsDriver this means AnsiResponseParser<WindowsConsole.InputRecord>.
The parser can pull things out of the stream and later return them and we don't loose the metadata.
I will look at the other drivers, if they are dealing just in char with no other metadata I can see about putting a non generic one too that just wraps the generic like TreeView vs TreeView<T>
Outstanding Issues

[ ] Key down and key up means double key presses
[ ] Esc on its own as isolated keypress needs to have a release timeout (i.e. if we dont see '[' in 50ms then we need to release that back to input stream as nothing else is coming).
[ ] deal/prevent parallel outstanding requests executing at once
[x] Hitting Esc key twice in quick succession or users Esc+start escape sequence

Fixes

Fixes #_____

Proposed Changes/Todos

[ ] Todo 1

Pull Request checklist:

[ ] I've named my PR in the form of "Fixes #issue. Terse description."
[ ] My code follows the style guidelines of Terminal.Gui - if you use Visual Studio, hit CTRL-K-D to automatically reformat your files before committing.
[ ] My code follows the Terminal.Gui library design guidelines
[ ] I ran dotnet test before commit
[ ] I have made corresponding changes to the API documentation (using /// style comments)
[ ] My changes generate no new warnings
[ ] I have checked my code and corrected any poor grammar or misspellings
[ ] I conducted basic QA to assure all features are working

Key down and Key up events are a pain.  Here is what response looks like when sending a Device Attributes Request on startup in WindowsDriver.
We get keydown and then keyup for each letter.
esc[?1;0c

So we would need another 'pre step' to the parser that paired up down/up events and only passed them around in pairs (i.e. swallow both or release both).  Currently I am using T as InputRecord but now maybe it needs to be a Pair (down and up).
Any idea if this is universal behaviour for WindowsDriver? or are there cases where it only sends key downs for example?

Any idea if this is universal behaviour for WindowsDriver? or are there cases where it only sends key downs for example?

I think that is a behavior for Wind32 API but would be interesting to know how that work with the others drivers, because you are sending any keystroke with the prefix 0x1b, right? If the other drivers respond with the same output, then there is a possibility that all drivers can deal with key-down and keu-up.

Ok I have added WindowsDriverKeyPairer to match up inputs - good news is no changes to the parser we just make the 'metadata' for each char the pair and return that to the main loop.
d642fb6

Key down/up is very unreliable.  Just by typing fast you get random order of down/ups (this is on v2_develop):

Maybe we can ditch key up event? it seems almost everything goes of key down anyway? And 2 of the 3 drivers are just making up down/up as pairs anyway - for example NetDriver:

                KeyCode map = MapKey (consoleKeyInfo);

                if (map == KeyCode.Null)
                {
                    break;
                }

                OnKeyDown (new Key (map));
                OnKeyUp (new Key (map));

                break;

Now working with WindowsDriver and CursesDriver 🎉
Looks like there is already multiple bespoke systems for handling these escape sequences (each driver has its own implementation) so later on it might be worth expanding the parser to do that logic too (is mouse etc).

@BDisp I have built stress testing Scenario into this PR
You can type away while the system is sending ANSI requests.  Currently the WindowsDriver will crash under following circumstances.
Failure state for this test is:

U becomes anything other than 1 (this means the DAR is getting 'responded' to with other strings).  Likely a symptomn of failure
When the app crashes - I have seen this with the 'Invalid KeyCode: Space, C is invalid. thing we saw in your PR too.

@BDisp I have built stress testing Scenario into this PR
You can type away while the system is sending ANSI requests. Currently the WindowsDriver will crash under following circumstances.
Currently I see errors on my computer around 16 requests per second.
Failure state for this test is:

U becomes anything other than 1 (this means the DAR is getting 'responded' to with other strings).  Likely a symptomn of failure
When the app crashes - I have seen this with the 'Invalid KeyCode: Space, C is invalid. thing we saw in your PR too.

I have fixed some of that failures in my PR. If I remind the 'Invalid KeyCode: Space, C is invalid. was occurring because I wasn't breaking the response with the terminator request, reading while key is available. Other issue was having an extra char after the terminator on the NetDriver, which I fixed in the NetEvents.ProcessInputQueue. Other issue was having an extra char before the esc key, which I fixed in the ConsoleDriver.ReadAnsiResponseDefault method.

I will look to add a Scheduler component to this PR as really we should prevent 2+ requests being sent before response for first as come in (When terminator is same). With some timeouts incase a request is ignored by term or user specifies wrong terminator etc.

In my PR I removed the control about when terminator is same. That was causing malfunctions. See how the EscSeqRequests class is working now.

Ok, but your code and mine are different so it may not be the same thing exactly.
I have captured everything that came in over std in and here is the last records up to the crash (see below)
I have color coded the responses.  Each response should be <esc>[?1;0c however when it gets too many requests too fast we see that one response starts coming in before the last has been completely written.
Colored in blue and red we see isolated 'bits' of a response that are interrupted by new events.
The bit that causes error is the final c terminator which seems to come in as Space | C but that is really just a symptom.  Problem is the terminal giving us responses in the wrong order.
I will update the parser internals to throttle requests based on how fast the responses are coming in (i.e. 1 outstanding request at once) - that should fix this I think.  Although the windows terminal is really the thing at fault here IMO - it should not be doing this.

Yes I see. Maybe it isn't thread safe. When you get the response in the Action method it may have mixed keys, which make it unreadable.

Ok I have added a scheduler, its still a WIP - I think it makes mose sense to move it to ConsoleDriver rather than instantiating in scenario.  But it has 2 throttling mechanisms:

Do not allow a send request when there is an outstanding response being waited for
Do not send more than x requests per second (e.g. 10) for any given terminator

In both cases the request is put in holding and sent when chance next becomes available (and throttle/wait conditions are met).

Do you also prevented if no response get back at all, e.g. in the cases where the request isn't recognized and no event is send by the mainloop, waiting indefinitely?

Well there is no waiting going on.  But yes unmet requests will be forever outstanding which will also block new requests for same terminator.
I will look at adding timeout to scheduler.  It shouldn't be too hard.

Well there is no waiting going on. But yes unmet requests will be forever outstanding which will also block new requests for same terminator.

I think you shouldn't restrict requests for the same terminator because there are different requests that use the same terminator like the size request 't'. That why I removed it from my PR. Requests must be read sequentially, no mater having the same terminator.

I will look at adding timeout to scheduler. It shouldn't be too hard.

That's the disadvantage of non-blocking case because returning from the timeout doesn't mean there is no response at all later, but I really think there is no other way. I also had the same issue and I was looking from null input representing any response but there is no such of signal from all drivers. In my case was more easy because if there is no key available then the response will be empty. With the NetDriver if the EscSeqRequests.Statuses isn't empty and no response was returned, then I dequeue it.

I think you shouldn't restrict requests for the same terminator

I am not restricting. Just ensuring that there are not 2 running at once. If 2 come along at same time the second Just gets queued till first gets its response answered e.g. in 20ms when the console finishes writing its reply to us.
Thinking about it, for the timeout I actually only need to evict when a new request comes in for same terminator (and old requestis past timeout).  Otherwise having outstanding request does no harm.
Another use case for timeout is the schedule queue. If user is pushing faster than requests can be dispatched by a lot and for a long time we don't just want an ever growing list outstanding. They need to be abandoned or throw an Exception.

Another issue I had with my PR was in WindowsDriver and CursesDriver when the mainloop is waiting for input. Even suspended them from reading the input to only using the Console.ReadKey, theses drivers held the first character, which is the Esc if we done a request, corrupting the response with Invalid KeyCode: Space, C is invalid. Thus in my PR I now check if there is available input before read and now that doesn't happen. But since you you're using non-blocking mode this shouldn't been happening, curious.

Ok I think this is more or less feature complete.
Next I will add:

[ ] Scheduler tests
[ ] More parser tests
[ ] Scenario support for more diverse requests (like yours @BDisp)

Do you are having unfinished requests returning by the timeout schedule? If affirmative would also be great to include in the stress tests with the yellow color.

NetDriver is really difficult to integrate with AnsiParser.  The main loop ProcessInputQueue is choc full of break and continue.
Ideally I wanted to start by just having AnsiParser pre filter the input then pass on the rest to the main loop like I did with WindowsDriver but its difficult with calls like Console.KeyAvailable in the middle of the handling loop code (i.e. ProcessInputQueue).
A lot of what it is doing is detecting ansi codes (mouse, key, terminal resize etc).
I will look into whether the existing code can be replaced wholesale.  It should be possible just to have an outstanding expectation in parser for the mouse and key combinations and just have those come out as events like the rest.
I will use a seperate branch incase things dont work out.

Ok I have added the idea of persistent expectations.  Can think about refactoring as now have 3 collections (expected, late and persistent). I think this will let the existing mouse/screen events logic in NetEvents get nuked.  Will look at doing that in ansi-parser-net-driver

Ok this now includes the NetDriver changes to have AnsiParser take over responsibility for response parsing instead of the NetEvents class
Only issues I now have revolve around some terminals sending interleaved responses
As described here: https://github.com/gui-cs/Terminal.Gui/pull/3791#issuecomment-2425135732
We no longer have the DAR responses tripping each other because we schedule those to have 1 in 1 out.
But sometimes we see mouse getting interrupted by DAR response (in some terminals).
Easiest way to get this to trigger - if you have a console where it is an issue.  Is to run the scenario and set to 20 DAR per second then just wave mouse around frantically.
It manifest in one of two ways

Scenario closes because 2 Esc get seen in a row (DAR interleaved with Mouse both outputting Esc then both outputting [ (or some variation thereof)
If in a text field - part of the mouse response code or DAR appearing written into text view as text

@j4james thanks for the help on the Sixel stuff - maybe I can pick your brains on this also?
Have you ever seen this kind of behaviour from terminals? I am pretty sure this is coming in raw like this and not a race condition in the Terminal.Gui code.
Any advice would be appreciated.

@tznind I've not experienced that issue myself, but I could easily believe that was a bug in older versions of the conhost/conpty framework. And if you're getting \e[1;0c in the DA1 report, that suggest you're testing an old version of Windows Terminal, or an old version of conhost, or a third-party terminal which is relying on an old version of conhost.
Something similar was reported quite recently as a bug in Windows Terminal (https://github.com/microsoft/terminal/issues/17775), but that has since been fixed, and was identified as a regression, so I think that would only have been evident in versions 1.19 to 1.21 of Windows Terminal (which would not have returned a \e[1;0c report). However, that does suggest that a similar bug might have been present in older versions as well.

Interesting, thanks for linking - that does sound similar, and indeed, I have a very old version running as default terminal for Visual Studio.
The test here is pretty extreme (spamming DAR is a bit of an artificial use case) and it doesn't reproduce on more recent versions - maybe we can live with this.
I will look into it further and try with some of the Linux consoles like xterm and mlterm I have on laptop later this week.

@BDisp this is also ready - which do you want to merge first if we are going to have both these systems (blocking/realtime) as options?

@BDisp this is also ready - which do you want to merge first if we are going to have both these systems (blocking/realtime) as options?

I prefer mine is merge first because it has all driver as non-blocking input and very raw changes. I think it would more easy to merge yours later, if you don't mind.

ok, I also have changes to driver but I think they are more limitted

@BDisp I have also added your combo box and controls to this PR so we can test other commands.
I also added the StoppedExpecting event so we can see when the parser gives up on getting a response.

On the request text field put a invalid request that wont response at all and see what happen. Also with a valid request maintain the enter key pressed during a long time and see if any error come up.

Current state of this branch is that it is working and could be merged.  Only reason it is in draft is because @BDisp and I are also exploring combined approach - see https://github.com/BDisp/Terminal.Gui/pull/207
That branch is currently encountering significant issues with deadlocks, so we're treating it as an experimental effort for the time being.

@tznind I remain confused about this PR. I think you said I should merge it.
Should I? (after you fix the conflicts of course)?

@tznind I remain confused about this PR. I think you said I should merge it.
Should I? (after you fix the conflicts of course)?

The PR adds ansi code send/parse - for example to request if sixel is supported.
However to do this needs to add itself into drivers loops input processing pipelines.
The conflicts are substantial but I will try to resolve.

Seems like this test failure situation is non deterministic, it failed in b0e921a but passed in next commit (1480f13) which was just a rename.

Yeah, non-deterministic. Drives me nuts.

I also already faced these failures when calling Application.Init and Application.Shutdown in a unit test without using an attribute that ensures Application.Init is called without a previous call to Application.Shutdown nor Application.Shutdown is called without a previous call to Application.Init.

https://github.com/tznind/gui.cs/pull/173

Great thanks, I will look through the BUGBUG when I get a chance and fix

Ok I think I have addressed most of the TODO / BUGBUG
The only ones I have left were around EscSeqUtils which I have not modified in this PR and which are quite intimidating - code wise.
I looked at using Pos align in scenario but I think the reason for gap is because of combo boxes nature to not pop over properly.  I couldnt see how pos align would help especially since there are multiple label/text fields per row - we dont want to just stack the views on top of each other vertically.

Ok I think I have addressed most of the TODO / BUGBUG
The only ones I have left were around EscSeqUtils which I have not modified in this PR and which are quite intimidating - code wise.

The changes I've made with the EscSeqUtils allow a driver to handle with all keys, mouse and request ANSI responses. When I was done the changes in the CursesDriver in the closed PR it only used their methods, mainly the DecodeEscSeq. But of course it can be improved.

I looked at using Pos align in scenario but I think the reason for gap is because of combo boxes nature to not pop over properly. I couldnt see how pos align would help especially since there are multiple label/text fields per row - we dont want to just stack the views on top of each other vertically.

I did some changes on my closed PR related with the scenario. Don't know if it will help you.
private View BuildSingleTab ()
{
    var w = new View
    {
        Width = Dim.Fill (),
        Height = Dim.Fill (),
        CanFocus = true
    };

    w.Padding.Thickness = new (1);

    // TODO: This hackery is why I think the EscSeqUtils class should be refactored and the CSI's made type safe.
    List<string> scrRequests = new ()
    {
        "CSI_SendDeviceAttributes",
        "CSI_ReportTerminalSizeInChars",
        "CSI_RequestCursorPositionReport",
        "CSI_SendDeviceAttributes2"
    };

    var cbRequests = new ComboBox { Width = 40, Height = 5, ReadOnly = true, Source = new ListWrapper<string> (new (scrRequests)) };
    w.Add (cbRequests);

    // TODO: Use Pos.Align and Dim.Func so these hardcoded widths aren't needed.
    var label = new Label { Y = Pos.Bottom (cbRequests) + 1, Text = "_Request:" };
    var tfRequest = new TextField { X = Pos.Left (label), Y = Pos.Bottom (label), Width = 20 };
    w.Add (label, tfRequest);

    label = new () { X = Pos.Right (tfRequest) + 1, Y = Pos.Top (tfRequest) - 1, Text = "E_xpectedResponseValue:" };
    var tfValue = new TextField { X = Pos.Left (label), Y = Pos.Bottom (label), Width = 6 };
    w.Add (label, tfValue);

    label = new () { X = Pos.Left (tfValue) + label.Text.Length, Y = Pos.Top (tfValue) - 1, Text = "_Terminator:" };
    var tfTerminator = new TextField { X = Pos.Left (label), Y = Pos.Bottom (label), Width = 4 };
    w.Add (label, tfTerminator);

    cbRequests.SelectedItemChanged += (s, e) =>
                                      {
                                          if (cbRequests.SelectedItem == -1)
                                          {
                                              return;
                                          }

                                          string selAnsiEscapeSequenceRequestName = scrRequests [cbRequests.SelectedItem];
                                          AnsiEscapeSequenceRequest selAnsiEscapeSequenceRequest = null;

                                          switch (selAnsiEscapeSequenceRequestName)
                                          {
                                              case "CSI_SendDeviceAttributes":
                                                  selAnsiEscapeSequenceRequest = AnsiEscapeSequenceRequestUtils.CSI_SendDeviceAttributes;

                                                  break;
                                              case "CSI_ReportTerminalSizeInChars":
                                                  selAnsiEscapeSequenceRequest = AnsiEscapeSequenceRequestUtils.CSI_ReportTerminalSizeInChars;

                                                  break;
                                              case "CSI_RequestCursorPositionReport":
                                                  selAnsiEscapeSequenceRequest = AnsiEscapeSequenceRequestUtils.CSI_RequestCursorPositionReport;

                                                  break;
                                              case "CSI_SendDeviceAttributes2":
                                                  selAnsiEscapeSequenceRequest = AnsiEscapeSequenceRequestUtils.CSI_SendDeviceAttributes2;

                                                  break;
                                          }

                                          tfRequest.Text = selAnsiEscapeSequenceRequest is { } ? selAnsiEscapeSequenceRequest.Request : "";

                                          tfValue.Text = selAnsiEscapeSequenceRequest is { }
                                                             ? selAnsiEscapeSequenceRequest.ExpectedResponseValue ?? ""
                                                             : "";
                                          tfTerminator.Text = selAnsiEscapeSequenceRequest is { } ? selAnsiEscapeSequenceRequest.Terminator : "";
                                      };

    // Forces raise cbRequests.SelectedItemChanged to update TextFields
    cbRequests.SelectedItem = 0;

    label = new () { Y = Pos.Bottom (tfRequest) + 2, Text = "_Response:" };
    var tvResponse = new TextView { X = Pos.Left (label), Y = Pos.Bottom (label), Width = 40, Height = 4, ReadOnly = true };
    w.Add (label, tvResponse);

    label = new () { X = Pos.Right (tvResponse) + 1, Y = Pos.Top (tvResponse) - 1, Text = "_Error:" };
    var tvError = new TextView { X = Pos.Left (label), Y = Pos.Bottom (label), Width = 40, Height = 4, ReadOnly = true };
    w.Add (label, tvError);

    label = new () { X = Pos.Right (tvError) + 1, Y = Pos.Top (tvError) - 1, Text = "_Value:" };
    var tvValue = new TextView { X = Pos.Left (label), Y = Pos.Bottom (label), Width = 6, Height = 4, ReadOnly = true };
    w.Add (label, tvValue);

    label = new () { X = Pos.Right (tvValue) + 1, Y = Pos.Top (tvValue) - 1, Text = "_Terminator:" };
    var tvTerminator = new TextView { X = Pos.Left (label), Y = Pos.Bottom (label), Width = 4, Height = 4, ReadOnly = true };
    w.Add (label, tvTerminator);

    var btnResponse = new Button { X = Pos.Center (), Y = Pos.Bottom (tvResponse) + 2, Text = "_Send Request", IsDefault = true };

    var lblSuccess = new Label { X = Pos.Center (), Y = Pos.Bottom (btnResponse) + 1 };
    w.Add (lblSuccess);

    btnResponse.Accepting += (s, e) =>
                             {
                                 var ansiEscapeSequenceRequest = new AnsiEscapeSequenceRequest
                                 {
                                     Request = tfRequest.Text,
                                     Terminator = tfTerminator.Text,
                                     ExpectedResponseValue = string.IsNullOrEmpty (tfValue.Text) ? null : tfValue.Text
                                 };

                                 bool success = Application.Driver!.TryWriteAnsiRequest (
                                                                                Application.MainLoop!.MainLoopDriver,
                                                                                ref ansiEscapeSequenceRequest
                                                                                );

                                 tvResponse.Text = ansiEscapeSequenceRequest.AnsiEscapeSequenceResponse?.Response ?? "";
                                 tvError.Text = ansiEscapeSequenceRequest.AnsiEscapeSequenceResponse?.Error ?? "";
                                 tvValue.Text = ansiEscapeSequenceRequest.AnsiEscapeSequenceResponse?.ExpectedResponseValue ?? "";
                                 tvTerminator.Text = ansiEscapeSequenceRequest.AnsiEscapeSequenceResponse?.Terminator ?? "";

                                 if (success)
                                 {
                                     lblSuccess.ColorScheme = Colors.ColorSchemes ["Base"];
                                     lblSuccess.Text = "Success";
                                 }
                                 else
                                 {
                                     lblSuccess.ColorScheme = Colors.ColorSchemes ["Error"];
                                     lblSuccess.Text = "Error";
                                 }
                             };
    w.Add (btnResponse);

    w.Add (new Label { Y = Pos.Bottom (lblSuccess) + 2, Text = "Send other requests by editing the TextFields." });

    return w;
}

If EscSeqUtils.DecodeEscSeq cannot recognize yet the ANSI escape sequence as valid, then the ConsoleKeyInfo []? IncompleteCkInfos will store it and insert at the beginning of next key get from the console

This is also how AnsiParser works.  It uses a state machine such that no matter how split the input order is, the resolution remains the same.
I feel like we are duplicating work here, after this is merged we should work to empower the ansi parser and retire DecodeEscSeq and some of the other stuff in EscSeqUtils.
This diagram may help explain how it works (see below).  The diagram is for v2 but the parser is basically implemented in the same way for the normal ConsoleDriver classes

Parser filters input stream - everything read from console goes straight to parser

Sometimes parser holds onto keys (see IHeld)
Sometimes parser releases multiple keys at once
Always parser has 'state' i.e. in response etc

Parser operates in the native type that each input stream is provided e.g. InputRecord for win and ConsoleKeyInfo for net
Parser can be managed in main loop to force release at any time

for example if see Esc then [ but its now 50 ms since see anything so is probably just user typing this sequence.

When parser releases keys they get processed downstream as normal e.g. Esc, [ would be released and processed exactly as if parser were not in the pipeline

This 'stream filtering' approach means parser doesnt have to raise key events etc it just realizes mistake and dropps the events back into input stream at next chance

I feel like we are duplicating work here, after this is merged we should work to empower the ansi parser and retire DecodeEscSeq and some of the other stuff in EscSeqUtils.

I agree but ensure that the EscSeqUtils unit tests wont fail with the AnsiParser.

for example if see Esc then [ but its now 50 ms since see anything so is probably just user typing this sequence.

When parser releases keys they get processed downstream as normal e.g. Esc, [ would be released and processed exactly as if parser were not in the pipeline

This 'stream filtering' approach means parser doesnt have to raise key events etc it just realizes mistake and dropps the events back into input stream at next chance

Normally check if the console has no key available then for sure it's a user typing a sequence, otherwise it's really a sequence.

This is the class I wrote that replaces all the complex mouse handling cki stuff with a single tiny class. Because AnsiParser has already isolated the response we can just operate on the complete string

Great.

Normally check if the console has no key available then for sure it's a user typing a sequence, otherwise it's really a sequence.

We are broadly agreed :) , however this is actually one of the things I did away with.
What matters is the time the key was read at, not the available/not available state of the input pipe.  Because a pipe could get momentarily blocked or anything at any time.
So this is why we have public DateTime StateChangedAt { get; private set; } so we can use realtime as a measure for bailing out of a response not the input pipeline state.

We are broadly agreed :) , however this is actually one of the things I did away with.
What matters is the time the key was read at, not the available/not available state of the input pipe. Because a pipe could get momentarily blocked or anything at any time.

But the user typing would not be lost, right?

So this is why we have public DateTime StateChangedAt { get; private set; } so we can use realtime as a measure for bailing out of a response not the input pipeline state.

But this bailing out of a response will be what the user was really typing, right? Sorry for these silly questions, but I'm learning about these new processing.

You are exactly right, because parser holds the full input event object (T), when asked to release then those events can be fed into the downstream process as normal.  So they surface as normal.


New units

Hello it would be great to include the following units:

knots (kts) (speed)
Poise and centipoise (dynamic viscosity)
stokes (St) and centistokes (cSt) (Kinematic viscosity)

Hi @jgagnonNT! I am not familiar with this units, but I will read about them and add to Calcpad. :)

Done! You can check in the latest v.5.9.8 release:
https://github.com/Proektsoftbg/Calcpad/releases/tag/v5.9.8

Much appreciated!
It seems the "knot" unit is not in the documentation on the right.

OK, Thank you! I will update it accordingly.


Error: unknown flag: --keep

Describe the bug
Tried to use the --keep tag but it says unknown flag: --keep
https://docs.microsoft.com/en-us/azure/container-registry/container-registry-auto-purge#use-the-purge-command
az --version gives;
azure-cli:2.14.2 core:2.14.2 telemetry 1.0.6
To Reproduce
Steps to reproduce the behaviour:
az acr run --cmd "acr purge --filter 'hello-world:1.*' --dry-run --keep 3" --registry registry /dev/null
Expected behavior
Delete all the images starting with hello-world:1 in the registry named registry apart from the latest three
Actual outcome:
'unknown flag: --keep'
Screenshots:

ACR Tasks have supported the keep option


'LightGBM:inet_pton': ambiguous call to overloaded function (compiling source file ..\src\network\liners_socket.app)

Hi James,
I am still facing the same issue despite using the sln file from v 3.3.5 uploaded on January 23rd. (https://github.com/microsoft/LightGBM/releases). I have selected Windows SDK 10.0 (latest installed version) and Visual Studio 2022(v143) under general properties. See error log below.

"Thanks for your interest in LightGBM!
I put some of the text of those logs through Google Translate (I cannot read the language they're in, apologies), and saw that it looks like you are hitting this during compilation:

error C2668: "LightGBM::inet_pton": ambiguous call to overloaded function (compile source file..\src\network \linkers_socket.cpp)

LightGBM has its own implementation of inet_pton, but some newer compilers on Windows ship with their own, conflicting implementation.
If you searched this project's issue tracker for that error message, you'd see that the same error was reported in #5019, and fixed about 5 months ago in #5159.
Please update to a newer version of LightGBM's source code, from at least after #5159.
If that doesn't resolve the issue you're facing, please click below to see the information we need to efficiently, effectively help you.
how to ask for help (click me)
It is very very very difficult for maintainers to help you when you only report a wall of logs without other context.

are you installing the Python package / R package? just building the CLI? something else?
how did you try to install LightGBM?
what version are you using?
it seems like you might be using Visual Studio to compile LightGBM... what version of Visual Studio? Did you customize anything about the installation?

Without answers like this, you are asking maintainers here to guess what you're doing, and that will take away our already-limited time from other work on this project.
Can you please provide the answers to the questions I've asked above?

Originally posted by @jameslamb in https://github.com/microsoft/LightGBM/issues/5499#issuecomment-1271827484"

Thanks for using LightGBM and for the report. I was able to reproduce this on latest master (https://github.com/microsoft/LightGBM/commit/a2c1dec0722c3cfe614d6cd7718b306216053693) today with the following steps:

setting Windows SDK version in LightGBM.vcxproj to 10.0

https://github.com/microsoft/LightGBM/blob/a2c1dec0722c3cfe614d6cd7718b306216053693/windows/LightGBM.vcxproj#L37

running the following from the root of the repo

MSBuild.exe windows/LightGBM.sln /p:Configuration=DLL /p:Platform=x64 /p:PlatformToolset=v142

I have Visual Studio 2019, and am on Windows 10.
Adding #define WIN_HAS_INET_PTON right above this line, I'm able to compile LightGBM successfully with MSBuild.exe.
https://github.com/microsoft/LightGBM/blob/a2c1dec0722c3cfe614d6cd7718b306216053693/src/network/socket_wrapper.hpp#L59
I suspect that would work for you too.

I guess that building directly from inside Visual Studio the way you are, CMake isn't being used, and therefore this check doesn't run?
https://github.com/microsoft/LightGBM/blob/a2c1dec0722c3cfe614d6cd7718b306216053693/CMakeLists.txt#L338-L348
I'll try to push a fix for that. Since that the was only added for compatibility with newer MinGW, it should be safe to assume that any build using Visual Studio compilers won't already have `inet_pton.


chore: remove previous semantic pull request config

Follow-up to #23300
The old semantic pull request service has been disabled in this repository, so remove the config file.
Also update the pull request template to reflect the current conventional commit spec.

[x] Well-formatted commit messages
[x] Rebased/mergeable
[ ] Tests pass

@tysonkamp please confirm s-p-r has been disabled for this repository.


Issue with CMake setup in Visual studio

Hi everyone, love to get some help regarding an issue with the Cmake extension in VScode that im hoping someone has experienced before, so i dont go crazy on this small error. I am completely new with VScode so please let me know if you need more infomation, anyway the error when i try to build is;
Bad CMake executable “”. Is it installed or settings contain the correct path (cmake.cmakePath)?
I am using windows and have tried adding the Cmake location to my path, even tried on another laptop but nothing is working.
Also tried setting the configuration entry cmake.cmakePath to the executable path, which i believe the executable path is simply the location of vscode in my computer? (C:\Microsoft VS Code).
Cheers.

Having same issue... Installed CMake by Extension installer in VS Code

Still didnt found a solution


Each exercise needs "practices"

Each exercise need to practice some technique. However, the names we might choose don't turn up in other languages, e.g. "88-levels". We need to identify our techniques and then find some way of getting them past the linter.

If Erik says not needed, then not needed


[Feature Branch] Resolve review comments

Description
[Describe what this change achieves]
Category
[Enhancement, New feature, Bug fix, Test fix, Refactoring, Maintenance, Documentation]
Why these changes are required?
What is the old behavior before changes and new behavior after changes?
Issues Resolved
[List any issues this PR will resolve (Is this a backport? If so, please add backport PR # and/or commits #)]
Testing
[Please provide details of testing done: unit testing, integration testing and manual testing]
Check List

[ ] New functionality includes testing
[ ] New functionality has been documented
[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #1155 (9b54a52) into main_aggregation_view (52bb373) will decrease coverage by 0.29%.
The diff coverage is n/a.

:exclamation: Current head 9b54a52 differs from pull request most recent head ee16531. Consider uploading reports for the commit ee16531 to get more accurate results

@@                    Coverage Diff                    @@
##           main_aggregation_view    #1155      +/-   ##
=========================================================
- Coverage                  74.28%   73.98%   -0.30%
=========================================================
  Files                         86       86
  Lines                       1886     1899      +13
  Branches                     249      251       +2
=========================================================
+ Hits                        1401     1405       +4
- Misses                       428      437       +9
  Partials                      57       57

Impacted Files
Coverage Δ

...hboards-plugin/public/apps/account/account-app.tsx
56.66% <0.00%> (-5.41%)
:arrow_down:

...n/public/apps/configuration/utils/tenant-utils.tsx
69.23% <0.00%> (-5.02%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Count matrix

Hello.
Thanks for this nice dataset! I'd like to know if the count matrix is available to download.
Tanks!

https://portals.broadinstitute.org/single_cell/study/aging-mouse-brain


Add support for FFNx 1.8+

This PR will add all the required patches to ensure it can support any version of FFNx starting 1,8 and ongoing, and it contains:

Built-in Update mechanism to download and extract the latest Stable/Canary version available on Github on the chosen FF7.exe game path
Built-it auto-download of the latest Stable version on a fresh install ( Game Driver will no more be pre-packaged )
Reworked Game Driver configuration panel. It adds support for the new flags, it now supports natively the TOML language and it replaces ONLY the flag known to 7th. The flags that does not know, will be preserved. This will allow some hybrid manual/auto configuration.

This PR lacks translation for the various languages. Some shown text is hardcoded in code, some other is just left in English on the relative XML files. Anyone is welcome to translate those after this PR has been merged.
A CI is going to be added once this PR will be merged.

Sorry, wrong repo.

Sorry, wrong repo.


gitea show wrong version under FreeBSD

After an update from pkg repository to 1.11.2
root@gitea:/usr/local/etc # pkg info | grep gitea
gitea-1.11.2                  Compact self-hosted Git service

root@gitea:/usr/local/etc # /usr/local/sbin/gitea --v
Gitea version 1.9.0-dev built with go1.13.5

Same thing in web interface (wrong version).

1.9.0-dev is just the default of what is in go.main if the version isn't included in LDFLAGS:
https://github.com/go-gitea/gitea/blob/e2da9cd21f0d87696b9b72d8fb704f897e1920e7/main.go#L32
(its been changed to just 'development' for the next release and going forward).
I'm not really sure how they build it but it should be set like this example from the Gitea MAKEFILE if they are modifying LDFLAGS:
https://github.com/go-gitea/gitea/blob/e5a008f7b2298977405fdbd806d3fa5ff4fd837e/Makefile#L63

This should be a package problem.

Already fixed in package version 1.11.3, see bug 244898.
Please feel free to report issues wit the FreeBSD package via the FreeBSD bugzilla or directly to me.


new game, Aquelarre

hi, I request the upload of the character sheet for the game Aquelarre, thanks and regards

Greetings @kinower
Your sheet.json has an extra ",' on the last line. That comma will need to be removed.
You've also have changes to a Dungeon World sheet in this pull request. Is that intention? We generally like to keep pull request to 1 game system per request to make it easier to review.
Thanks,
Cassie

ok, thanks, it's already solved

@kinower
Thanks for fixing the Json. You still have the changes to the Dungeon World sheet in the pull request. Were the changes intended?

I think that you already create a new pull for each of the failures you commented on
https://github.com/Roll20/roll20-character-sheets/pull/4178
and https://github.com/Roll20/roll20-character-sheets/pull/4179

Greetings @kinower
I am sorry for the confusion. We normally request 1 sheet be change per request. This can be done by using multiple branches in Git. This helps me know the changes to a sheet are intentional. Some people accidentally submit changes to other games. If you do create a pull request updating more than one sheet that is okay. You will just want to leave a comment.
Thanks,
Cassie

Just so you know. All of your changes should be getting merged in. I had to do a little work around to fix the pull request but everything will be added to the repo. Disculpe para confusión.

thanks, you Clevett, know when my character sheet will be available?¿?¿

It should be available in 2-3 hours. :)

great, what speed.
I would also like to know if you are also ready for the Character Sheet Template in roll20. thanks!!!!!

I had to manually update your sheet.json. You will want to pull down those updates from the repo. This character sheet is now live.


Add host rewrite for Fedora URLs

The nginx proxy generates a mismatch between resource URIs in the RDF
metadata. The proper fix is to register a hostname for Fedora. This
provides a temporary fix and should be removed once that's done.

Coverage increased (+0.4%) to 67.659% when pulling 8586fd16f6fb2809d74d5b820a01f03118f3909d on url-rewrite into 8b114cc0a574cb5b3cef9de5d8b814fbdb3f7af1 on master.


[BUG] Merchants not working if you ever spend money in the game

Describe the bug
The tabs are a little different. So it's not buying anything.
Expected behavior
Should work as normal ;)
Screenshots/Logs

[DEBUG] doTest [365, 995] > HEX: d40000
[DEBUG] doTest [365, 995] > HEX: d40000
[DEBUG] doTest [365, 995] > HEX: d40000

For biweeklies, I'll look into it on Sunday I think ;)
Is there a dot on the bottom card?
  - Yes => Check if you find the red dot in the shop (at the location where it's free)
    - Yes => Pick
    - No => Scroll & check red dot
      - Yes => Pick
      - No => Msg
  - No => printInColor "INFO" "No 'Biweeklies' reward to collect."

For biweeklies, I'll look into it on Sunday I think ;)
Is there a dot on the bottom card?
  - Yes => Check if you find the red dot in the shop (at the location where it's free)
    - Yes => Pick
    - No => Scroll (Y=400) & check red dot (X=365; Y=1085, RGB=?)
      - Yes => Pick
      - No => Msg
  - No => printInColor "INFO" "No 'Biweeklies' reward to collect."

Since you didn't spend any money in the game, in a first time, when the script is supposed to scroll, just send a warning msg "Oops, not at the moment, need quick fix" or something like that :p

No need to scroll....


Expand type specializations and multiple "by" parameters in merge_asof()

pd.merge_asof() can take an integer or floating-point number in the on parameter, and it can take an integer or an object in the by parameter. Specifically, the user's types are promoted to int64_t, double, or object as needed. That means, for example, that an int32_t is permitted, but we'll have to create a copy of the user's column to promote to int64_t.
This brings a question of whether we should add type specializations for every integer and floating-point number for better performance.
A second issue to consider is that only one column is permitted in the by parameter. But the user may wish to match on both ticker symbol and stock exchange, for example. To allow for this, the implementation logic would need too allow arrays of objects/integers for our grouping.

can you show some specific examples which fail and/or you want to work (in the top section). This will provide some examples / tests cases.

Performance
Using merge_asof_noby from the join_merge.py benchmark:
k = merge_asof_noby()
k.setup()

Runtime of the 64-bit case:
In [4]: %timeit k.time_merge_asof_noby()
100 loops, best of 3: 12.4 ms per loop

Now cast to 32-bit:
k.df1.time = np.int32(k.df1.time)
k.df2.time = np.int32(k.df2.time)

And re-run it:
In [7]: %timeit k.time_merge_asof_noby()
100 loops, best of 3: 18.6 ms per loop

The added overhead comes from converting the time column back to 64-bit.

Multi-By
Let's say I have these DataFrames:
trades = pd.DataFrame({
    'time': pd.to_datetime(['20160525 13:30:00.023',
                            '20160525 13:30:00.023',
                            '20160525 13:30:00.046',
                            '20160525 13:30:00.048',
                            '20160525 13:30:00.050']),
    'ticker': ['MSFT', 'MSFT',
               'GOOG', 'GOOG', 'AAPL'],
    'exch': ['ARCA', 'NSDQ', 'NSDQ', 'BATS', 'NSDQ'],
    'price': [51.95, 51.95,
              720.77, 720.92, 98.00],
    'quantity': [75, 155,
                 100, 100, 100]},
    columns=['time', 'ticker', 'exch',
             'price', 'quantity'])

quotes = pd.DataFrame({
    'time': pd.to_datetime(['20160525 13:30:00.023',
                            '20160525 13:30:00.023',
                            '20160525 13:30:00.030',
                            '20160525 13:30:00.041',
                            '20160525 13:30:00.045',
                            '20160525 13:30:00.049']),
    'ticker': ['GOOG', 'MSFT', 'MSFT',
               'MSFT', 'GOOG', 'AAPL'],
    'exch': ['BATS', 'NSDQ', 'ARCA', 'ARCA',
             'NSDQ', 'ARCA'],
    'bid': [720.51, 51.95, 51.97, 51.99,
            720.50, 97.99],
    'ask': [720.92, 51.96, 51.98, 52.00,
            720.93, 98.01]},
    columns=['time', 'ticker', 'exch', 'bid', 'ask'])

I want to join by both the ticker symbol and the stock exchange:
In [80]: trades
Out[80]:
                     time ticker  exch   price  quantity
0 2016-05-25 13:30:00.023   MSFT  ARCA   51.95        75
1 2016-05-25 13:30:00.023   MSFT  NSDQ   51.95       155
2 2016-05-25 13:30:00.046   GOOG  NSDQ  720.77       100
3 2016-05-25 13:30:00.048   GOOG  BATS  720.92       100
4 2016-05-25 13:30:00.050   AAPL  NSDQ   98.00       100

In [81]: quotes
Out[81]:
                     time ticker  exch     bid     ask
0 2016-05-25 13:30:00.023   GOOG  BATS  720.51  720.92
1 2016-05-25 13:30:00.023   MSFT  NSDQ   51.95   51.96
2 2016-05-25 13:30:00.030   MSFT  ARCA   51.97   51.98
3 2016-05-25 13:30:00.041   MSFT  ARCA   51.99   52.00
4 2016-05-25 13:30:00.045   GOOG  NSDQ  720.50  720.93
5 2016-05-25 13:30:00.049   AAPL  ARCA   97.99   98.01

In [82]: pd.merge_asof(trades, quotes, on='time', by=['ticker', 'exch'])
Out[82]:
                     time ticker  exch   price  quantity     bid     ask
0 2016-05-25 13:30:00.023   MSFT  ARCA   51.95        75     NaN     NaN
1 2016-05-25 13:30:00.023   MSFT  NSDQ   51.95       155   51.95   51.96
2 2016-05-25 13:30:00.046   GOOG  NSDQ  720.77       100  720.50  720.93
3 2016-05-25 13:30:00.048   GOOG  BATS  720.92       100  720.51  720.92
4 2016-05-25 13:30:00.050   AAPL  NSDQ   98.00       100     NaN     NaN

I.e., the expected result is:
expected = pd.DataFrame({
    'time': pd.to_datetime(['20160525 13:30:00.023',
                            '20160525 13:30:00.023',
                            '20160525 13:30:00.046',
                            '20160525 13:30:00.048',
                            '20160525 13:30:00.050']),
    'ticker': ['MSFT', 'MSFT',
               'GOOG', 'GOOG', 'AAPL'],
    'exch': ['ARCA', 'NSDQ', 'NSDQ', 'BATS', 'NSDQ'],
    'price': [51.95, 51.95,
              720.77, 720.92, 98.00],
    'quantity': [75, 155,
                 100, 100, 100],
    'bid': [np.nan, 51.95, 720.50, 720.51, np.nan],
    'ask': [np.nan, 51.96, 720.93, 720.92, np.nan]},
    columns=['time', 'ticker', 'exch',
             'price', 'quantity', 'bid', 'ask'])

For the by parameter to take an array of column names, the hashing solution must be able to handle more than one object.

These two requests are of low priority right now, so I personally won't be able to get to them right away.

does the 'by' issue work? (and just is somewhat slower)?

@jreback No, the by parameter is limited to a scalar right now. Can the PyObjectHashTable take tuples?

yes it can take tuples. normally that is not a good idea, but might work here.
mainly I would like to raise if there is something that is non-sensical (ATM). If it works but is slow that is fine as well.

It raises an error now, yes.
In [2]: pd.merge_asof(trades, quotes, on='time', by=['ticker', 'exch'])
...

MergeError: can only asof by a single key

@chrisaycock perfect. Then good to go for now.


Empty ca.crt for dex-k8s-authenticator and dex-tls secrets

Issue
The ca.crt value in dex-k8s-authenticator and dex-tls secrets for dex-app is empty. The value is required by the app if a private CA is used.
Background
Private CAPA clusters use a custom CA and its public key needs to be made available to the dex-app.
The issue was encountered on thor & thunder where the dex-tls secret was manually updated. Unfortunately, the value in ca.crt is overwritten on the next deployment.
Possible solution
Update the dex-app to accept a second secret which contains only the CA's public key and mount the ca.crt from this one instead of the dex-tls secret.
TODO

[ ] Update the app to not overwrite the ca.crt;
[ ] Deploy the change to all impacted clusters;
[ ] ...

@weatherhog I'm dispatching this to @giantswarm/team-rainbow because you own the app.

@alex-dabija Where does the CA come from?
AFAIK it needs to be configured manually in Dex App chart values in case letsencrypt is disabled.
When the .Values.ingress.tls.letsencrypt property is not true, the Dex app deployment creates a secret called dex-tls and populates it with contents of properties defined here: https://github.com/giantswarm/dex-app/blob/main/helm/dex-app/values.yaml#L27
Does it need to come from an existing secret?
The dex-k8s-authenticator secret is populated with the same properties. Does the authenticator need a different certificate and key? If so, then we need to expose them if a new set of properties.

@alex-dabija Where does the CA come from? AFAIK it needs to be configured manually in Dex App chart values in case letsencrypt is disabled.

The CA's public key is stored in a secret (giantswarm / installation-ca) on the MC:
kubectl -n giantswarm get secret installation-ca -o yaml

When the .Values.ingress.tls.letsencrypt property is not true, the Dex app deployment creates a secret called dex-tls and populates it with contents of properties defined here: https://github.com/giantswarm/dex-app/blob/main/helm/dex-app/values.yaml#L27

Yes, we saw , but the same secret name dex-tls is configured on the ingress CR, which means that it's overwritten by cert-manager and it doesn't have the ca.crt property set (it's unknown to cert-manager).

Does it need to come from an existing secret instead?

Yes, the ca.crt value should be taken from the giantswarm / installation-ca secret.

The dex-k8s-authenticator secret is populated with the same properties. Does the authenticator need a different certificate and key? If so, then we need to expose them if a new set of properties.

I don't really know. We manually updated the secret to fix the problems that we are seeing.

This is a short summary of the issue after further discussion with Alex:
We need to introduce an additional way to configure the certificates in private clusters with a custom CA and certificates managed by cert manager: provide a reference to an existing secret, which contains the CA, mount it to Dex K8s Authenticator and let the cert manager do the rest.

@alex-dabija
This PR adds a possibility to configure the trusted root CA for the dex-k8s-authenticator app from an existing resource: https://github.com/giantswarm/dex-app/pull/248
The dex-k8s-authenticator secret for ingress is still created during the app installation, but if I understand it correctly, the certificate and key should be populated by the cert manager and the CA won't matter anymore.
Is this solution acceptable?

@alex-dabija This PR adds a possibility to configure the trusted root CA for the dex-k8s-authenticator app from an existing resource: giantswarm/dex-app#248 The dex-k8s-authenticator secret for ingress is still created during the app installation, but if I understand it correctly, the certificate and key should be populated by the cert manager and the CA won't matter anymore. Is this solution acceptable?

Yes, the solution looks good to me. @Jose could have a look over the PR?

The change has been released in v1.32.3
The custom CA can be configured in the Dex app's user values like this:
trustedRootCA:
  name: "ca.pem"
  secretName: "installation-ca"

The ingress.tls-letsencrypt property needs to be false.

Added config for thor and thunder https://github.com/giantswarm/config/pull/1611

We just need to resume flux on thor for the changes to be applied. @AndiDog is working with thorat the moment and needsfluxto be suspended. When that work is done,flux` will be resumed and configuration applied.


Kotlin Extension Function for easier usability.

Library can make use of kotlin extension functions to make it easier to use.
current usage:
ToastHandler.showToast(this, "Hello,I am Toast", Toast.LENGTH_LONG)

proposed usage:
showToast as an Extension function of Context
showToast("Hi,I am Toast", Toast.LENGTH_LONG)

Hey, Yeah on the way for next release. Good suggestion. Thank you!! 👍🏻

can i open a PR for the same?

Oh, I already did the change yesterday.


add glide files for transitory backwards compatibility

Codecov Report

Merging #236 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #236   +/-   ##
=======================================
  Coverage   65.56%   65.56%
=======================================
  Files         135      135
  Lines        9774     9774
=======================================
  Hits         6408     6408
  Misses       2666     2666
  Partials      700      700

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 a53513b...b0f0c80. Read the comment docs.


async main() support

Motivation
I think it would be great to support something like this:
#[wasm_bindgen(start)]
async fn main() { }

It would add a bit of quality-of-life to prevent users from having to use weird workarounds. It would also help a bit with cross-platform codebases.
Proposed Solution
The solution is probably the same as the ones used by tokio::main and async_std::main, they usually remove the async keyword and insert their code inside the function. I believe the only current limitation of #[wasm_bindgen(start)] is that it doesn't remove the async keyword.
Alternatives

Stick with what we have now, which works quiet fine.
Introduce a separate attribute? E.g.: #[wasm_bindgen(start_async)].

Additional Context
Original issue: https://github.com/rustwasm/wasm-bindgen/issues/1904
PR: https://github.com/rustwasm/wasm-bindgen/pull/1905
I'm happy to do a PR, but wanted to ask if this feature is desired first.
Also some pointers would be great, I briefly looked into it and the architecture around proc-macro handling in wasm-bindgen is quite big.

Is it currently not supported? It seems like #1905 added that

Oh, that makes sense.
Checking if the function name is main and it returns () (only type that spawn_local supports) and removing the async keyword sounds good to me.


Flow deployment failed

Flow deployment failed
Command
# # jc deploy flow.yml

Flow yaml
# jtype: Flow
version: '1'

gateway:
  protocol: http
  port: 54321
pods:
  - name: index_table_extractor
    uses: jinahub+docker://PDFTableExtractor/latest
    install_requirements: true
  - name: index_segmenter
    uses: jinahub+docker://PDFSegmenter
    install_requirements: true
  - name: index_tagger
    uses: jinahub+docker://ElementTypeTagger
    uses_with:
      traversal_paths: "@c"
  - name: index_sentencizer
    uses: jinahub+docker://SpacySentencizer
    uses_with:
      traversal_paths: "@c"
    install_requirements: true
  - name: index_tags_copier
    uses: jinahub+docker://TagsCopier
    uses_with:
      traversal_paths: "@c"
  - name: index_flattener
    uses: jinahub+docker://ChunkFlattener
  - name: index_image_processor
    uses: jinahub+docker://ImagePreprocessor-skip-non-images
    uses_with:
      traversal_paths: "@c"
    install_requirements: true
  - name: search_image_processor
    uses: jinahub+docker://ImagePreprocessor-skip-non-images
    uses_with:
      traversal_paths: "@r"
    install_requirements: true
  - name: index_encoder
    uses: jinahub+docker://CLIPEncoder/latest-gpu
    uses_with:
      traversal_paths: "@c"
    install_requirements: true
  - name: search_encoder
    uses: jinahub+docker://CLIPEncoder/latest-gpu
    install_requirements: true
  - name: all_indexer
    uses: jinahub+docker://AnnLiteIndexer
    uses_with:
      index_traversal_paths: "@c"
      search_traversal_paths: "@c"
      columns:
        - ["element_type", "str"]
      n_dim: 512
    install_requirements: true

Flow ID / Request ID
Flow ID: N/A
Request ID: N/A

jina version
jina -vf
jina 3.14.1
...

Logs

N/A

Additional context
Add any other context about the problem here.

busercontent.com/79641303/225560209-e1f56b21-af8c-4603-b1cd-762dd2b06d08.PNG)

Hello @chimo599 thank you for the issue. Can I ask you to retry this with the below flow.yml
jtype: Flow
version: '1'

gateway:
  protocol: [http]
  port: [54321]
executors:
  - name: index_table_extractor
    uses: jinahub+docker://PDFTableExtractor/latest
    install_requirements: true
  - name: index_segmenter
    uses: jinahub+docker://PDFSegmenter
    install_requirements: true
  - name: index_tagger
    uses: jinahub+docker://ElementTypeTagger
    uses_with:
      traversal_paths: "@c"
  - name: index_sentencizer
    uses: jinahub+docker://SpacySentencizer
    uses_with:
      traversal_paths: "@c"
    install_requirements: true
  - name: index_tags_copier
    uses: jinahub+docker://TagsCopier
    uses_with:
      traversal_paths: "@c"
  - name: index_flattener
    uses: jinahub+docker://ChunkFlattener
  - name: index_image_processor
    uses: jinahub+docker://ImagePreprocessor-skip-non-images
    uses_with:
      traversal_paths: "@c"
    install_requirements: true
  - name: search_image_processor
    uses: jinahub+docker://ImagePreprocessor-skip-non-images
    uses_with:
      traversal_paths: "@r"
    install_requirements: true
  - name: index_encoder
    uses: jinahub+docker://CLIPEncoder/latest-gpu
    uses_with:
      traversal_paths: "@c"
    install_requirements: true
  - name: search_encoder
    uses: jinahub+docker://CLIPEncoder/latest-gpu
    install_requirements: true
  - name: all_indexer
    uses: jinahub+docker://AnnLiteIndexer
    uses_with:
      index_traversal_paths: "@c"
      search_traversal_paths: "@c"
      columns:
        - ["element_type", "str"]
      n_dim: 512
    install_requirements: true

I am closing since there was no activity for it. Feel free to reopen @chimo599 if you face any more issues.