Commas in Bib(La)Tex keywords field

First of all, thanks for a great piece of work! I'm currently adopting Better Biblatex into my workflow and it would be really great if there were an option to use commas in keywords, while using ', ' (comma+space) as a keyword separator, as is realized by the default Bib(La)Tex translators, e.g.,

...
keywords = {1,2-diol, propargyl alcohol, reaction of, triphosgene},
...

Update: after a short survey it seems to me that different software expects different format, and Better BibTex attempts to stay on the safe side. However, a possibility to set up the delimiter and the allowed symbols, maybe as a hidden about:config option would be greatly appreciated.

There is indeed not any standard on how keywords should be encoded, or how they should be interpreted. Allowing user-specified separators would mean I'd also have to find a way to escape them; I agree the current approach is ham-fisted, but it guarantees valid, processable BibTeX output. I had not anticipated chemical-compound keywords however, where the commas are meaningful.
I'll think about something that supports your use-case; perhaps always add ,  (doesn't hurt) and an option to scrub commas in some way. If you're in a hurry, and not scared of a little javascript, something like the following postscript ought to do the trick (untested):
if (this.tags) {
  var tags = [];
  for (var i = 0; i < this.tags.length; i++) {
    tags.push(this.tags[i].tag);
  }
  // the "replace" param overwrites the existing keywords field.
  this.add({ name: 'keywords', replace: true, value: tags, sep: ', ' });
}

Thanks a lot, I'll test the code. I didn't know about the postscript feature, seems to be very powerfull. I tried to dig into the sources and found the relevant sections in the translators and reference.js, but for some reason my "patches" didn't have any effect. And yeah, a lot of javascript scares me a little bit. With the postscript, however, I might be even curious of hacking this and that. The real muddle will come with importing I guess. Wouldn't it be enough in this case just to set the delimiter and don't think about any special characters except really latex-troublesome, i.e. why to bother with commas if the delimiter is, say, ; and vice versa? And if not then, well, it is the responsibility of the user to take care of their keywords or rather to choose an adequate delimiter to suit their special needs. Anyway for me imporing is irrelevant until there's an automatic bidirectional sync between Better BibTex and a bib file. By the way are you interested in such a feature request?

Postscript is fairly new, and I don't really advertise it much, as it's a little tricky to get right. If something useful crops up, I usually just build it into BBT. The reason your postscript didn't take will be in the debug log (preferences -> advanced -> enable, try the export again, preferences -> advanced -> view output).
For output, this.add will take care of encoding LaTeX characters properly, and you may feel free to use ;  instead of , .
Importing is a different matter though. I can do pretty much what I want in the exporter as I can be sure it always runs in Zotero, but the importer also gets sent to other browsers through the chrome and other browser plugins, and I can't access the guts of my extension there, so importing is more constrained.
I'm not principally opposed to bidi sync, but I wouldn't expect it anytime soon, for several reasons:

Zotero wants to put files it imports into a new folder, so I'd have to re-implement chunks of Zotero to bypass that so it'd import into an existing folder
I'd have to duplicate the stuff in Zotero that does sync collision handling for changes in both ends (collision handling is tricky stuff)
There's not really a good way to retain state in a BibTeX file; if an entry is missing in the BibTeX file but present in Zotero, does that mean it needs to be added to the BibTeX, or deleted from Zotero?
Probably more stuff I haven't considered. Sync is tricky.

What's the use-case, if I may ask?

Ah, I think I've found it; the script should have been
if (this.item.tags) {
  var tags = [];
  for (var i = 0; i < this.item.tags.length; i++) {
    tags.push(this.item.tags[i].tag);
  }
  this.add({ name: 'keywords', replace: true, value: tags, sep: ', ' });
}

tags are defined on the item being exported (this.item), not on the reference being constructed (this)

I herein confirm that this piece works as supposed.
Regarding my use-case. I've been using Zotero to grab pdfs from publishers and bibliorgaphy (mainly as ris) from databases. My planning and note-taking workflow, however, is tightly tied to Emacs' Org-mode. I would also like to move the majority of my writing tasks from office suites into Latex and thus Emacs/Org-mode as well. That's where Better Bibtex apparently comes from. In Emacs, bibtex files can conveniently be managed with ebib. The latter is even capable of batch processing, the feature that Zotero lacks, for an unclear reason. For me thus it would be very convenient to have a possibility of syncing the changes, mainly keywords, back to Zotero. Right now I actually cannot edit anything outside Zotero as it will be instantly overwritten by autoexport. I can of course give up autoexporting, but then very soon my databases will diverge, something I intuitively do not want to happen. I realize though that the described set up must be rare and most people are quite satisfied with managing their references in Zotero and exporting into bibtex just before using.

What kind of batch processing does ebib do?

Eh,  what I actually meant is batch editing. It appears not that much though, only adding keywords to multiple entries at once, I thought it can do more. However, this is 80% of what I expect from batch editing, the rest 20% being the possibility to untag multiple entries. Mendeley is a superior competitor here, as far as I remember.

I have only used mendeley briefly, so I'm not in a position to comment.

It was a breath of fresh air for me 5 or 6 years ago, but there're certain important things which Zotero does better, not speaking of openess, of course.

The openness matters to me as a point of pragmatical interest. I haven't yet met a piece of software that does what I want the exact way I want it. Extensible or open source makes that I am not beholden to the programmers' interest. I might be fine with Mendeley if they had at least a minimal extension API, but they don't, so the things they do better are eclipsed by the fact that I can't tweak them where I disagree (I am very opinionated on how software should work for me rather than the other way around). Same goes for Scrivener; seems like an interesting program, and I was gifted a license, but non-adaptability makes it a non-starter for me, and I'm not going to lock up my work in a program I can't tinker with.
There's plenty of warts on Zotero, some of which I have addressed, some of which I really want to have addressed, but for me it's simply the best of a bad lot (the bad lot being software in general).

Looks like bulk tagging is supposed to be supported: http://ideophone.org/12-zotero-tips-and-techniques/

Completely agree with you about open-source,  that's why we're all here. And thanks a lot for the tips!

I've made some minor changes that will make your postscript simpler -- per 1.5.3, the whole script would (will have to) be
this.add({ name: 'keywords', replace: true, value: item.tags, sep: ', ' });

so just this single line.
I'm not strictly ideological about open source. I have a soft preference for it, but probably because I'm a tinkerer. I use both Linux and OSX; I like the macbook air for its battery performance/weight balance, and OSX allows for sufficient tinkering (although I'm still stumped why people are so enthusiastic about OSX on the whole -- I don't find it to be better than Windows or Ubuntu), and I like Linux (currently in its Ubuntu form) because I'm used to it. I'd like windows better if cygwin were a better integrated experience (again because I'm used to Unixoids), but on the whole it's on a par with OSX qua tinkerability these days, and sometimes better than OSX.

Thank you, I think this solution is googlable now and hope it will be also helpful for other people.
Windows has had huge problems with their update system, at least in versions 6 and 7. After some amount of updates had been accumulated, the whole system began to experience considerable slowdown which worsened with time. Maybe this issue is partially fixed in the latest versions, I hardly care as I see no need to switch to windows unless I'm forced to. The latter is not impossible though, because there's still a lot of special software (for example in chemistry) which hasn't be ported/doesn't have usable analogues outside Windows. Currently wine is doing the job for me. As for now, I do not see any reasons why I may switch to OSX either. My mobility is provided by an Android tablet with a hard keybord (total ~600 g) ssh-ing through a vpn to my linux laptop located at my institution. This way I can do most of my non-graphical tasks and graphical tasks are usually work-related so in that case I'd better stay longer at work rather than taking them home or, worse, somewhere else.
Ok, seems like a little bit too much for a single comma. Thank you for your efforts once again!

Always a pleasure.
I have added your sample to the postscript wiki just to make sure.
I am too often without network connectivity (despite the claims Vodafone makes in this regard), so a remote solution won't do for me. I have an Ubuntu home server I could use (and indeed often did in the past), but having stuff at hand works much better for me, certainly where I need to test Zotero stuff.
I've never had great difficulties with Windows (which version is 6? I know 7), but as it's usually just the environment I use for Chrome/Firefox/Putty/Cygwin, it doesn't really accumulate cruft. I used to care about what people had on their desktops, but that was in younger days.
The sole reason I have OSX is that it came with what was at time of purchase the most bang for the buck when looking for a light system with long battery. The other option was a surface pro, which is actually a decent system, sans the keyboard that you can get for it, which is crap (I had one for about 3 months). I'd run Linux or Windows on the macbook air if I could, but it is terrible for battery life, which was the whole point of the purchase.

Vista was the 6th version. Windows slowdown with time is intrinsic to the system, here it's explained in more detail http://superuser.com/questions/890038/why-is-checking-windows-update-so-slow, the answer therein applies to the whole windows experience, not only to checking for updates. Although the actual experience will apparently depend on the hardware, and the external programs will also matter to some extent.
There's perhaps no ultimate solution suitable for everyone, and one therefore chooses what suits their needs best. It's only since very recently that good alternatives to Apple laptops are available.

I know a little about how Windows works, and while that gives a plausible explanation of how windows update works, it is not obvious to me how that ties into the general workings of windows from a technical point of view.


Allow percentages

Fixes #1

I need to update the CI here... turns out mocha doesn't run under oldnode anymore 😄

This would also allow values such as rgb(128, 70%, 50%) though which is invalid.


Track HLG layer name in Delayed

As discussed in https://github.com/dask/dask/issues/8173, it's necessary for Delayed and bag.Item objects to be able to keep track of the HLG layer name they're referencing. When constructed with to_delayed(optimize_graph=False), this layer name will not be the same as the key (array-abcde vs ('array-abcde', 0)).

[x] Closes #8173
[x] Tests added / passed
[x] Passes pre-commit run --all-files

Failing tests now seem to be only https://github.com/dask/dask/pull/8477, https://github.com/dask/dask/issues/8480, Windows CI running out of memory spawning subprocesses in test_set_index_consistent_divisions and test_reuse_pool.


[suggestion] Can it get the time since a user last logged in?

For example, in the image below, I want to get the last login time of an offline friend.
I didn't find this method in the docs, I was hoping to have this feature.

If you already have this method and I can't find it, then I'm sorry.

You can use the Property of last_login on the UsersAPI

thanks


Remove 64 bit UEFI from 32 bit version

Tested to menu with my laptop and qemu:
sudo qemu-system-i386 -m 2G -enable-kvm -cdrom <path to x86 infinity>
sudo qemu-system-x86_64 -m 2G -enable-kvm -cdrom <path to x86 or x64 infinity>
You'll need to revert the merge of #8 to merge this.

Closing to create a new PR that merges correctly


Short/Vanity Stream Email Addresses

Currently stream email addresses for streams are something like<EMAIL_ADDRESS>however the .abcd1234 makes it impossible to easily type from memory. I understand that the .abcd1234 probably exists to prevent email abuse, however it would be nice if there was a way to provide a shortened or alternative email address that people can easily remember so that it's easy to input.
The particular use case we're using this in is CC'ing the address in emails so that a whole conversation thread is stored in a Zulip stream & topic. So every time I make a new email thread I have to remember to include this email, and if I'm writing from a device/app that doesn't have this email already saved I have to go to the desktop client and paste it (if on mobile, onto a shared note as the email isn't available in the mobile app)

Currently the .abcd1234 is actually the important one - it's the unique token by which the target stream is identified. One challenge regarding short addresses is that, especially on a big installation with lots of realm like zulipchat.com, would be "collisions" in the short addresses - many organizations have general channel and many may want<EMAIL_ADDRESS>That could be dealt with by letting the organization pick the short name and then the actuall address would be<EMAIL_ADDRESS>or something like that.
Final limitation is that due to https://github.com/zulip/zulip/issues/9840 we don't want non-ascii characters in these addresses, so the short addresses would have to be limited to that too.
@timabbott Would that approach sound good?

I think it's somewhat unlikely that we're gonna change the actual emails.  I'm wondering if there's some kind of workaround like we could email you the "contact info" for the stream from the stream settings page.

I am actually in the process of evaluating Zulip on a self-hosted instance to replace a mailing distribution list (google groups). At the end of the day, for my use case (self hosting zulip for a single org), I'd like to give out a short email address to the users, as I expect over half of them to not log into the web interface most of the time. They would get the stream email notifications, reply to those, and send new messages to the short email address.
I can see the need for tokens on large realms with multiple organizations, but some form of vanity or shortened email would be desirable.I like the<EMAIL_ADDRESS>option for mulit-orgs.
I was also thinking of a second option. I don't know if it's easier or more difficult.  If we control our own email, we could set up a forward. For instance, if we look at a stream and its email is<EMAIL_ADDRESS>we could setup an email forward on our mail server like<EMAIL_ADDRESS> Then, what we would need in zulip is the ability for an org admin to edit a stream and set an email alias (which gets displayed instead of the longer one).

@ytjohn hmm, couldn't you just configure that email alias and then document the email list to use somewhere more visible (E.g. in the stream description?) for this sort of use case?
We will want to do need to do something in this code path, mainly because at present it isn't possible to rotate the keys in the email addresses without server access.  It might be reasonable to just allow changing the email address.  @mateuszmandera what do you think?
One thing that's tricky with a generic version of a vanity email addresses feature is that I think we'd want to replace the streams.zulipchat.com with subdomain.zulipchat.com so that the namespace is for an individual Zulip realm, rather than being global.  I think that might be easy; we'd mostly just need to setup a wildcard MX record.

@timabbott  I didn't have a good place to test inbound email, but I went ahead and spun up a linode with some processing. The short answer is that zulip seems to read the original To.  I'll post my details in case I'm missing something, but I think the best option is being able to "just allow changing the email address".  Alternatively, creating a namespace (like the subdomain) seems even more user-friendly.  Even in my use case of just one organization, I could definitely associate that with the subdomain.
On my end, I tried editing the virtual aliases so that<EMAIL_ADDRESS>gets re-routed to a stream specific email.
Contents of /etc/postfix/virtual
<EMAIL_ADDRESS><EMAIL_ADDRESS>/\+.*@/ zulip@localhost
/\..*@/ zulip@localhost
/^mm/ zulip@localhost

Postmap showing the mappings
root@localhost:/var/log/zulip# postmap -q<EMAIL_ADDRESS>regexp:/etc/postfix/virtual
<EMAIL_ADDRESS>root@localhost:/var/log/zulip# postmap -q<EMAIL_ADDRESS>regexp:/etc/postfix/virtual
zulip@localhost

Mail logs. It seems to look at the original to address and look for the stream token from that.
Sep 14 20:02:56 localhost postfix/qmgr[2581027]: 8D307DCCBF<EMAIL_ADDRESS>size=1636, nrcpt=1 (queue active)
Sep 14 20:02:56 localhost postfix/pipe[2581068]: 8D307DCCBF: to=<zulip@localhost>, <EMAIL_ADDRESS>relay=zulip, delay=0.15, delays=0.04/0.01/0/0.11, dsn=5.1.1, status=bounced (Bad destination mailbox address: Bad stream token from email recipient<EMAIL_ADDRESS>)
Sep 14 20:02:56 localhost postfix/cleanup[2581067]: B1B65DCD01<EMAIL_ADDRESS>Sep 14 20:02:56 localhost postfix/qmgr[2581027]: B1B65DCD01: from=<>, size=3725, nrcpt=1 (queue active)
Sep 14 20:02:56 localhost postfix/bounce[2581070]: 8D307DCCBF: sender non-delivery notification: B1B65DCD01
Sep 14 20:02:56 localhost postfix/qmgr[2581027]: 8D307DCCBF: removed

Hey, I have a similar situation to @ytjohn where I would like to use Zulip as a drop-in replacement to a mailing list with some people solely using email.
Is is possible to change the addresses on a self-hosted Zulip instance?

Just stumbled upon https://docs.zulip.com/help/using-zulip-via-email again and was confused that the recommendation is to setup a separate mailing list next to Zulip.
I think this unnecessarily complicates and blurs the interaction.
I would really like to see progress on this, because then I could recommend Zulip to a whole new type of user as a product uniquely combining Mailing Lists with Archiving, Chat, and interactivity.

Just stumbled upon https://docs.zulip.com/help/using-zulip-via-email again and was confused that the recommendation is to setup a separate mailing list next to Zulip.
I think this unnecessarily complicates and blurs the interaction

There is no requirement to set up a mailing list. The suggestion for subscribing a stream to a list is for folks who want to keep using a list they've got (while others would like to receive emails to that list in Zulip).


[Cosmos] GROUP BY query in Portal doesn't show query execution metrics

Package Name: azure-cosmos
Package Version:
Operating system:
[ ] nodejs

version:

[ ] browser

name/version:

[ ] typescript

version:

Is the bug related to documentation in

[ ] README.md
[ ] source code documentation
[ ] SDK API docs on https://docs.microsoft.com

Describe the bug
The Cosmos DB Portal uses the JavaScript SDK to execute queries in the Data Explorer. For GROUP BY queries, no query execution metrics are returned.
To Reproduce

Go to any Cosmos DB account that has data. Go to Data Explorer.
Run a GROUP BY query: https://docs.microsoft.com/en-us/azure/cosmos-db/sql-query-group-by
Navigate to Query Stats.

Expected behavior
Query stats is populated with information.
Screenshots

Additional context
Add any other context about the problem here.

FYI The fix for this will also fix TOP and GROUP BY not playing nice together


Correction for raw affiliation Division of Stem Cell Biology and Developmental Genetics, Medical Research Council, National Institute for Medical Research (NIMR), Mill Hill, London, UK.

Correction needed for raw affiliation Division of Stem Cell Biology and Developmental Genetics, Medical Research Council, National Institute for Medical Research (NIMR), Mill Hill, London, UK.
raw_affiliation_name: Division of Stem Cell Biology and Developmental Genetics, Medical Research Council, National Institute for Medical Research (NIMR), Mill Hill, London, UK.
new_rors:
previous_rors: 04tnbqb63
works_examples: W2027764467
contact: 12c501ab38de30ebea1ad9d7d85a1044:24bd7e01aa44690f9d7a622ddc018b6c32aa3516 @ crick.ac.uk

This issue was accepted and ingested by the OpenAlex team on 2024-10-10. The new affiliations should be visible within the next 7 days.


Close button not working on Android

When pressing the close button on the paywall page on Android, the AdaptyUI paywall does not dismiss. In some cases, this also happens on iOS but it is not as easily reproducible. We have also had reports of the paywall not dismissing after a successfull purchase, but I have not been able to confirm if it's the same error or not. The following error is thrown on the console:
W/FlutterJNI(10542): Tried to send a platform message to Flutter, but FlutterJNI was detached from native C++. Could not send. Channel: flutter.adapty.com/adapty. Response ID: 4 (ID increments with every press)
This is happening in release mode, using Adapty 3.2.5, but was reproducible on older versions too.

Thanks for replying @x401om! Here you go:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.24.5, on macOS 15.1 24B83 darwin-arm64, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 16.2)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2024.2)
[✓] VS Code (version 1.96.0)
[✓] Connected device (6 available)
[✓] Network resources

• No issues found!

I have a similar issue in my app with adapty_flutter 3.2.4. So far, I encountered this issue only on Android devices.
During testing, the paywall occasionally freezes after purchase and becomes unresponsive. The close button also does not work to dismiss it.
The issue surfaced during production testing today. After a successful purchase on an Android device, the paywall became unresponsive. I had to forcefully restart the app.
Haven't got any useful logs yet, I'll post if I catch some.
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.24.3, on macOS 15.1.1 24B91 darwin-arm64, locale en-GE)
[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 16.1)
[✗] Chrome - develop for the web (Cannot find Chrome executable at /Applications/Google
    Chrome.app/Contents/MacOS/Google Chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[✓] Android Studio (version 2024.2)
[✓] VS Code (version 1.96.2)
[✓] Connected device (3 available)
[✓] Network resources

I am having a similar issue:

it works on an old iPad (5th generation) from 2017 and iOS 16.7.10 (both when running from Android Studio and from TestFlight build.
it does not work on:

a pixel 8 with Android 15
on an iPad Air (5th generation) from 2022 with iOS 18.2.

Same code, same build, not working.
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.27.1, on macOS 15.1 24B83 darwin-arm64, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 16.2)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2024.2)
[✓] VS Code (version 1.92.2)
[✓] Connected device (5 available)
[✓] Network resources

• No issues found!

Hello! @agladyshev, @Brechard, could you please provide us with verbose logs from the devices when you encounter the issue with the paywalls? Also, I am curious: is there a chance that a hot restart occurred before you experienced this issue?

@x401om To ensure it is not a problem of hot restarts, I am uninstalling the app before executing it to have a clean install and run. Here are the logs (I have filtered them so that only those that have Adapty on it are shown):
iPad Air (5th generation) from 2022 with iOS 18.2:
flutter: [AdaptyFlutter i3.2.3] - VERBOSE: [yOEY] --> Adapty.get_paywall(), Args: {"placement_id":"onboarding","locale":"fr","fetch_policy":{"type":"reload_revalidating_cache_data"},"load_timeout":5.0}
flutter: [AdaptyFlutter i3.2.3] - VERBOSE: [yOEY] <-- Adapty.get_paywall(), Result: {"success":{"variation_id":"87b4faa5-2a6e-4a16-90b7-9eb5033600b9","response_created_at":1735651180106,"developer_id":"onboarding","paywall_name":"Onboarding 2025.1.A","remote_config":{"lang":"en","data":"{\"header_text\":\"Success is not random\"}"},"revision":1,"products":[{"vendor_product_id":"yourstep_subscription_yearly","adapty_product_id":"d60b1a94-09d5-4d3a-8521-7713ab5425f2"},{"adapty_product_id":"011cec8c-48f4-4351-8d32-25ba296291f1","vendor_product_id":"yourstep_subscription_monthly"},{"vendor_product_id":"yourstep_lifetime","adapty_product_id":"e9215f82-de6a-4898-a373-332352907469"}],"ab_test_name":"Onboarding 2025.1.A","paywall_builder":{"paywall_builder_id":"255868b6-0183-4f7c-801f-c78f07ae6265","lang":"en"},"paywall_id":"bfddcd9b-3895-4e1b-b99d-f823d747306e"}}
flutter: [AdaptyFlutter i3.2.3] - VERBOSE: [yOEY] <-- Adapty.get_paywall(), Result: {success: {variation_id: 87b4faa5-2a6e-4a16-90b7-9eb5033600b9, response_created_at:<PHONE_NUMBER>106, developer_id: onboarding, paywall_name: Onboarding 2025.1.A, remote_config: {lang: en, data: {"header_text":"Success is not random"}}, revision: 1, products: [{vendor_product_id: yourstep_subscription_yearly, adapty_product_id: d60b1a94-09d5-4d3a-8521-7713ab5425f2}, {adapty_product_id: 011cec8c-48f4-4351-8d32-25ba296291f1, vendor_product_id: yourstep_subscription_monthly}, {vendor_product_id: yourstep_lifetime, adapty_product_id: e9215f82-de6a-4898-a373-332352907469}], ab_test_name: Onboarding 2025.1.A, paywall_builder: {paywall_builder_id: 255868b6-0183-4f7c-801f-c78f07ae6265, lang: en}, paywall_id: bfddcd9b-3895-4e1b-b99d-f823d747306e}}
flutter: [AdaptyFlutter i3.2.3] - VERBOSE: [yOEY] <-- Adapty.get_paywall(), Success Object: (placementId: onboarding, instanceIdentity: bfddcd9b-3895-4e1b-b99d-f823d747306e, name: Onboarding 2025.1.A, abTestName: Onboarding 2025.1.A, variationId: 87b4faa5-2a6e-4a16-90b7-9eb5033600b9, revision: 1, hasViewConfiguration: true, remoteConfig: Instance of 'AdaptyPaywallRemoteConfig', _products: [(vendorId: yourstep_subscription_yearly, _adaptyProductId: d60b1a94-09d5-4d3a-8521-7713ab5425f2, promotionalOfferId: null, winBackOfferId: null, basePlanId: null, offerId: null), (vendorId: yourstep_subscription_monthly, _adaptyProductId: 011cec8c-48f4-4351-8d32-25ba296291f1, promotionalOfferId: null, winBackOfferId: null, basePlanId: null, offerId: null), (vendorId: yourstep_lifetime, _adaptyProductId: e9215f82-de6a-4898-a373-332352907469, promotionalOfferId: null, winBackOfferId: null, basePlanId: null, offerId: null)], _payloadData: null, _version:<PHONE_NUMBER>106)
flutter: [AdaptyFlutter i3.2.3] - VERBOSE: [Xga9] --> Adapty.adapty_ui_create_view(), Args: {"paywall":{"developer_id":"onboarding","paywall_id":"bfddcd9b-3895-4e1b-b99d-f823d747306e","paywall_name":"Onboarding 2025.1.A","ab_test_name":"Onboarding 2025.1.A","variation_id":"87b4faa5-2a6e-4a16-90b7-9eb5033600b9","revision":1,"remote_config":{"lang":"en","data":"{\"header_text\":\"Success is not random\"}"},"paywall_builder":{"paywall_builder_id":"255868b6-0183-4f7c-801f-c78f07ae6265","lang":"en"},"products":[{"vendor_product_id":"yourstep_subscription_yearly","adapty_product_id":"d60b1a94-09d5-4d3a-8521-7713ab5425f2"},{"vendor_product_id":"yourstep_subscription_monthly","adapty_product_id":"011cec8c-48f4-4351-8d32-25ba296291f1"},{"vendor_product_id":"yourstep_lifetime","adapty_product_id":"e9215f82-de6a-4898-a373-332352907469"}],"response_created_at":1735651180106},"preload_products":true}
flutter: [AdaptyFlutter i3.2.3] - VERBOSE: [Xga9] <-- Adapty.adapty_ui_create_view(), Result: {"success":{"id":"BD59EC7D-5355-462D-A245-F26BB115CB71","paywall_variation_id":"87b4faa5-2a6e-4a16-90b7-9eb5033600b9","placement_id":"onboarding"}}
flutter: [AdaptyFlutter i3.2.3] - VERBOSE: [Xga9] <-- Adapty.adapty_ui_create_view(), Result: {success: {id: BD59EC7D-5355-462D-A245-F26BB115CB71, paywall_variation_id: 87b4faa5-2a6e-4a16-90b7-9eb5033600b9, placement_id: onboarding}}
flutter: [AdaptyFlutter i3.2.3] - VERBOSE: [Xga9] <-- Adapty.adapty_ui_create_view(), Success Object: (id: BD59EC7D-5355-462D-A245-F26BB115CB71, placementId: onboarding, paywallVariationId: 87b4faa5-2a6e-4a16-90b7-9eb5033600b9)
flutter: [AdaptyFlutter i3.2.3] - VERBOSE: [RcWJ] --> Adapty.adapty_ui_present_view(), Args: {"id":"BD59EC7D-5355-462D-A245-F26BB115CB71"}
flutter: [AdaptyFlutter i3.2.3] - VERBOSE: [RcWJ] <-- Adapty.adapty_ui_present_view(), Result: {"success":true}
flutter: [AdaptyFlutter i3.2.3] - VERBOSE: [RcWJ] <-- Adapty.adapty_ui_present_view(), Result: {success: true}
flutter: [AdaptyFlutter i3.2.3] - VERBOSE: [RcWJ] <-- Adapty.adapty_ui_present_view(), Success Object: null

Pixel 8 with Android 15:
W/Adapty_v3.1.1(23866): WARN: Offer yourstep-subscription-yearly-free-trial was not found for the base plan yourstep-subscription-yearly-base for the product yourstep_subscription_yearly
I/flutter (23866): [AdaptyFlutter a3.2.3] - VERBOSE: [q7qn] <-- Adapty.adapty_ui_create_view(), Result: {"success":{"id":"5997dec0-0525-4219-a50d-dc54864ac3e7","paywall_variation_id":"87b4faa5-2a6e-4a16-90b7-9eb5033600b9","placement_id":"onboarding"}}
I/flutter (23866): [AdaptyFlutter a3.2.3] - VERBOSE: [q7qn] <-- Adapty.adapty_ui_create_view(), Result: {success: {id: 5997dec0-0525-4219-a50d-dc54864ac3e7, paywall_variation_id: 87b4faa5-2a6e-4a16-90b7-9eb5033600b9, placement_id: onboarding}}
I/flutter (23866): [AdaptyFlutter a3.2.3] - VERBOSE: [q7qn] <-- Adapty.adapty_ui_create_view(), Success Object: (id: 5997dec0-0525-4219-a50d-dc54864ac3e7, placementId: onboarding, paywallVariationId: 87b4faa5-2a6e-4a16-90b7-9eb5033600b9)
V/Adapty_v3.1.1(23866): VERBOSE: UI v3.1.1: #AdaptyMediaCache# downloaded media "...6a2142.png"
V/Adapty_v3.1.1(23866): VERBOSE: UI v3.1.1: #AdaptyMediaCache# saving media "...6a2142.png"
V/Adapty_v3.1.1(23866): VERBOSE: UI v3.1.1: #AdaptyMediaCache# saved media "...6a2142.png"
I/flutter (23866): [AdaptyFlutter a3.2.3] - VERBOSE: [sxy7] --> Adapty.adapty_ui_present_view(), Args: {"id":"5997dec0-0525-4219-a50d-dc54864ac3e7"}
I/flutter (23866): [AdaptyFlutter a3.2.3] - VERBOSE: [sxy7] <-- Adapty.adapty_ui_present_view(), Result: {"success":"true"}
I/flutter (23866): [AdaptyFlutter a3.2.3] - VERBOSE: [sxy7] <-- Adapty.adapty_ui_present_view(), Result: {success: true}
I/flutter (23866): [AdaptyFlutter a3.2.3] - VERBOSE: [sxy7] <-- Adapty.adapty_ui_present_view(), Success Object: null
D/OneSignal(23866): [main] ApplicationService.onActivityCreated(1,APP_OPEN): com.adapty.internal.crossplatform.ui.AdaptyUiActivity@5ed78e5
D/OneSignal(23866): [main] ApplicationService.onActivityStarted(1,APP_OPEN): com.adapty.internal.crossplatform.ui.AdaptyUiActivity@5ed78e5
D/OneSignal(23866): [main] ApplicationService: current activity=com.adapty.internal.crossplatform.ui.AdaptyUiActivity@5ed78e5
D/OneSignal(23866): [main] ApplicationService.onActivityResumed(2,APP_OPEN): com.adapty.internal.crossplatform.ui.AdaptyUiActivity@5ed78e5
V/Adapty_v3.1.1(23866): VERBOSE: UI v3.1.1: AdaptyPaywallView (3681839) onAttachedToWindow
5
V/Adapty_v3.1.1(23866): VERBOSE: UI v3.1.1: #AdaptyMediaCache# requesting media "...6a2142.png"
2
V/Adapty_v3.1.1(23866): VERBOSE: UI v3.1.1: #AdaptyMediaCache# media "...6a2142.png" retrieved from cache
2
V/Adapty_v3.1.1(23866): VERBOSE: UI v3.1.1: #AdaptyMediaCache# media "...6a2142.png" retrieved from cache
V/Adapty_v3.1.1(23866): VERBOSE: UI v3.1.1: #AdaptyMediaCache# media "...6a2142.png" retrieved from cache
V/Adapty_v3.1.1(23866): VERBOSE: UI v3.1.1: non-skipping (custom insets: AdaptyPaywallInsets(start=0, top=132, end=0, bottom=63)
V/Adapty_v3.1.1(23866): VERBOSE: UI v3.1.1:<PHONE_NUMBER> logShowPaywall begin
V/Adapty_v3.1.1(23866): VERBOSE: logShowPaywall()
V/Adapty_v3.1.1(23866): VERBOSE: POST https://api.adapty.io/api/v1/sdk/events/ Body: {"data":{"type":"sdk_background_event","attributes":{"events":[{"event_id":"6347788e-6f1c-4baf-8f82-838ff63ea10d","event_name":"paywall_showed","profile_id":"ba45d613-04ac-46a3-af32-cdfa5a66f05a","session_id":"8ea4bfda-14d0-488c-8844-ca2914c3b3a8","device_id":"ae5de5be-0ec6-42bf-bde0-6495ef53944b","created_at":"2024-12-31T13:28:20.718Z","platform":"Android","counter":4,"variation_id":"87b4faa5-2a6e-4a16-90b7-9eb5033600b9","paywall_builder_id":"255868b6-0183-4f7c-801f-c78f07ae6265"}]}}}
V/Adapty_v3.1.1(23866): VERBOSE: UI v3.1.1:<PHONE_NUMBER> logShowPaywall success
I/Adapty_v3.1.1(23866): INFO: CF-Cache-Status: DYNAMIC
V/Adapty_v3.1.1(23866): VERBOSE: Request is successful. https://api.adapty.io/api/v1/sdk/events/ Response: {"data":null}

@Brechard I see that you successfully presented the paywall, but I don’t see what happened next. What was the issue? Did you try to make a purchase? There are no logs indicating any actions taken after the presentation.

@x401om that is the problem indeed, when I click the close button nothing happens, and paywallViewDidPerformAction is not executed. Though this is working on my old iPad with iOs 16.7.10, it is not working on Android nor the other iPad Air with iOs 18.2

I have also tried to make purchase to see if the paywall is closed automatically on my Pixel 8, the purchase completes correctly but the paywall stays (again , on the old iPad this flow works properly). Here are the logs of the pixel 8 if it helps:
V/Adapty_v3.1.1(23866): VERBOSE: UI v3.1.1:<PHONE_NUMBER> makePurchase begin
V/Adapty_v3.1.1(23866): VERBOSE: makePurchase(vendorProductId = yourstep_subscription_yearly; basePlanId = yourstep-subscription-yearly-base; offerId = yourstep-subscription-yearly-free-trial)
D/OneSignal(23866): [main] ApplicationService.onActivityPaused(1,APP_OPEN): com.adapty.internal.crossplatform.ui.AdaptyUiActivity@5ed78e5
D/OneSignal(23866): [main] ApplicationService.onActivityResumed(2,APP_OPEN): com.adapty.internal.crossplatform.ui.AdaptyUiActivity@5ed78e5
D/OneSignal(23866): [main] ApplicationService: current activity=com.adapty.internal.crossplatform.ui.AdaptyUiActivity@5ed78e5
V/Adapty_v3.1.1(23866): VERBOSE: POST https://api.adapty.io/api/v1/sdk/purchase/play-store/token/v2/validate/ Body: {"data":{"attributes":{"is_subscription":true,"product_details":{"product_id":"yourstep_subscription_yearly","subscription_offer_details":[{"base_plan_id":"yourstep-subscription-yearly-base","pricing_phases":[{"billing_cycle_count":0,"billing_period":"P1Y","price_currency_code":"EUR","price_amount_micros":19990000,"recurrence_mode":1}]}]},"product_id":"yourstep_subscription_yearly","profile_id":"ba45d613-04ac-46a3-af32-cdfa5a66f05a","purchase_token":"jokicinieabbacdfgacnkejp.AO-J1OzJsJBOBj3jufW5ugHJTcV3czD86EY3MWWOBboCfqzTVWHp2CufYZwv9EDtjEWSYhGKAKW5wITTjf0Q2DuFU0-3yrQPYg","variation_id":"87b4faa5-2a6e-4a16-90b7-9eb5033600b9"},"id":"ba45d613-04ac-46a3-af32-cdfa5a66f05a","type":"google_receipt_validation_result"}}
I/Adapty_v3.1.1(23866): INFO: CF-Cache-Status: DYNAMIC
V/Adapty_v3.1.1(23866): VERBOSE: Request is successful. https://api.adapty.io/api/v1/sdk/purchase/play-store/token/v2/validate/ Response: {"data":{"type":"google_receipt_validation_result","id":"ba45d613-04ac-46a3-af32-cdfa5a66f05a","attributes":{"app_id":"523b7520-d0b4-44d9-8629-01825fa9d4d1","profile_id":"ba45d613-04ac-46a3-af32-cdfa5a66f05a","customer_user_id":"dd380756-5ca5-4301-b16f-03c33f43b933","is_test_user":false,"total_revenue_usd":20.811643692999624,"segment_hash":"ef46db3751d8e999","timestamp":1735652814757,"paid_access_levels":{"premium":{"is_refund":false,"is_lifetime":false,"expires_at":"2024-12-31T14:16:45.998000+0000","starts_at":null,"will_renew":true,"vendor_product_id":"yourstep_subscription_yearly:yourstep-subscription-yearly-base","vendor_transaction_id":"GPA.3388-6035-6180-00644","vendor_original_transaction_id":"GPA.3388-6035-6180-00644","store":"play_store","activated_at":"2024-12-31T13:46:50.799000+0000","renewed_at":"2024-12-31T13:46:50.799000+0000","unsubscribed_at":null,"billing_issue_detected_at":null,"is_in_grace_period":false,"active_introductory_offer_type":null,"offer_id":null,"active_promotional_offer_type":null,"active_promotional_offer_id":null,"cancellation_reason":null,"id":"premium","is_active":true,"base_plan_id":"yourstep-subscription-yearly-base"}},"subscriptions":{"yourstep_lifetime":{"is_refund":true,"is_lifetime":true,"expires_at":"2024-09-21T11:25:45.479933+0000","starts_at":null,"will_renew":false,"vendor_product_id":"yourstep_lifetime","vendor_transaction_id":"GPA.3345-7605-4446-91243","vendor_original_transaction_id":"GPA.3345-7605-4446-91243","store":"play_store","activated_at":"2024-03-07T11:19:58.850000+0000","renewed_at":"2024-03-07T11:19:58.850000+0000","unsubscribed_at":null,"billing_issue_detected_at":null,"is_in_grace_period":false,"active_introductory_offer_type":null,"offer_id":null,"active_promotional_offer_type":null,"active_promotional_offer_id":null,"cancellation_reason":"refund","is_sandbox":true,"is_active":false,"base_plan_id":null},"yourstep_subscription_yearly:yourstep-subscription-yearly-base":{"is_refund":false,"is_lifetime":false,"expires_at":"2024-12-31T14:16:45.998000+0000","starts_at":null,"will_renew":true,"vendor_product_id":"yourstep_subscription_yearly:yourstep-subscription-yearly-base","vendor_transaction_id":"GPA.3388-6035-6180-00644","vendor_original_transaction_id":"GPA.3388-6035-6180-00644","store":"play_store","activated_at":"2024-12-31T13:46:50.799000+0000","renewed_at":"2024-12-31T13:46:50.799000+0000","unsubscribed_at":null,"billing_issue_detected_at":null,"is_in_grace_period":false,"active_introductory_offer_type":null,"offer_id":null,"active_promotional_offer_type":null,"active_promotional_offer_id":null,"cancellation_reason":null,"is_sandbox":true,"is_active":true,"base_plan_id":"yourstep-subscription-yearly-base"}},"non_subscriptions":null,"custom_attributes":{},"promotional_offer_eligibility":false,"introductory_offer_eligibility":true,"google_validation_result":{"kind":"androidpublisher#subscriptionPurchaseV2","startTime":"2024-12-31T13:46:50.799Z","regionCode":"ES","subscriptionState":"SUBSCRIPTION_STATE_ACTIVE","latestOrderId":"GPA.3388-6035-6180-00644","testPurchase":{},"acknowledgementState":"ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED","lineItems":[{"productId":"yourstep_subscription_yearly","expiryTime":"2024-12-31T14:16:45.998Z","autoRenewingPlan":{"autoRenewEnabled":true},"offerDetails":{"basePlanId":"yourstep-subscription-yearly-base"}}]}}}}
I/flutter (23866): [AdaptyFlutter a3.2.3] - VERBOSE: handleIncomingCall did_load_latest_profile
V/Adapty_v3.1.1(23866): VERBOSE: UI v3.1.1:<PHONE_NUMBER> makePurchase success

Thank you for the logs, @Brechard! Unfortunately, we weren’t able to reproduce the issue yet, but we’ll take a closer look.
Could you please try running our Example app (set your bundle ID, API key, and paywall IDs) and check if the issue still persists?

@x401om I have tried with the Adapty example, and it works on both devices. So could it be that Adapty clashes with some other package that we are using? (I know that we gave a try to Superwall and it was conflicting with home_widget package and we could not use it because of that)


Circle protocol

TITLE
Description
Description of the pull request changes and motivation.
Type of change
Please delete options that are not relevant.

[ ] New feature
[ ] Bug fix
[ ] Optimization

Checklist

[ ] Linked to Github Issue
[ ] Unit tests added
[ ] This change requires new documentation.

[ ] Documentation has been added/updated.

[ ] This change is an Optimization

[ ] Benchmarks added/run

Codecov Report
Attention: Patch coverage is 99.14530% with 1 line in your changes missing coverage. Please review.

Project coverage is 71.74%. Comparing base (a6738c7) to head (3b165ee).

Files with missing lines
Patch %
Lines

math/src/circle/polynomial.rs
97.56%
1 Missing :warning:

Additional details and impacted files
@@                Coverage Diff                @@
##           circle-starks     #938      +/-   ##
=================================================
+ Coverage          71.62%   71.74%   +0.11%
=================================================
  Files                149      151       +2
  Lines              32560    32677     +117
=================================================
+ Hits               23321    23443     +122
+ Misses              9239     9234       -5

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Support for optional argument of \makeindex

From here: https://tex.stackexchange.com/q/505335/134574
The \makeindex (and \printindex) commands accept an optional argument to change the base name of the index files and thus allow one to make more than one index in a single document. However the current makeindex rule does not allow a different base name other than the name of the main .tex file.
It would be nice to have a (say) basename option, whose argument would be the same as the optional argument to \printindex, and then Arara would run makeindex for that base name instead of the name of the main .tex. The linked TeX.SX thread contains a possible way to do that.

Using % arara: makeindex: { files: [ names ] } has the exact same effect. Reading the manual would have avoided this :-)


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target/pull/813 is merged into live branch.
Auto archive content to https://github.com/opstest2/docs-archive-test-target.git

Docs Build status updates of commit b785f67:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-GitBranchDeletedOrForcePushed] Cannot sync git repo to specified commit because branch Release_Archive_master_2021-05-14-05-39-12 has been deleted or has been force pushed

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
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.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Support text types in sklearn predictors

Description
Khiops 11 supports Text columns which have a specialized AutoML treatment as oppossed to normal strings(Categorical). Sklearn predictors should also support this type.
Questions/Ideas

Does pandas and/or numpy have a specialized Text type?
Option 1: Implement it as a Dataset property

Add to the table specification tuple should have an optional field text_columns with the names of the text fields or
Add another field to the spec table_text_columns indexed by the table name and whose values are the names of the text columns (I prefer this one)
When creating the dictionary the Dataset object will have all the necessary info to add the specified columns as Text

Option 2: Implement it as a fit parameter

As above add table_text_columns but as a fit optional parameter

I works but the fact that a column is a Text is part of the description of the dataset
This parameter should be feeded to the dictionary creation routine

Expose Dataset API it will have two init patters:

Big Constructor
Builder pattern

The big constructor uses the builder
And the dict interface should be maintained

In pandas >= 1.0.0 there is a StringDType (see https://pandas.pydata.org/docs/reference/api/pandas.StringDtype.html#pandas.StringDtype), but AFAIU it's considered experimental for now.

:thumbsup: for Option 1 (IMHO, having a text type column should be an intrinsic property of the dataset, not just a particular usage detail; should we need to reinterpret the text column as categorical in a particular context, we should be able to create a new dataset with a new spec).


Asn.1 top-level spec

Describes the interface based on the documentation, similar to asn1_parser_spec.rb.
Include specs for tagged encodings, test whether they are correctly represented as ASN1Data/ASN1Constructive. Determine to what extent users should be allowed to create ASN1Data, ASN1Constructive and ASN1Primitive from scratch.
Should we also specify lazy parsing behavior? First thought: no, this is an implementation detail and should not be enforced. Try to stay agnostic of it as much as possible.

@nahi: I added a spec for ASN1Data.
Current situation:
1052 examples, 12 pending, 4 failing (Cext), 2 failing (Jext)
Just the Bignum specs are failing, all the rest is green.
Cext: 82.6% coverage with >95% coverage for asn1.c, asn1_codec.c and asn1-internal.c
Jext: 97% coverage (which is practically 100%)


api change: enableOwnership --> ownedBy

More terminologically parallel with createdAt and updatedAt. Also consider supporting an additional createdBy attribute, which could conceivably be different than ownedBy

Changed to autoCreatedBy


Repository code practice enhancements

An epic to track work to improve consistency of the code and process quality across all of our repos; this includes consistent builds, analyzers, style guidelines, etc.

Design/proposal being reviewed. Work currently in-progress


Feature suggestion: Clear Empty Lines On Format

Image this code.
var items = new List<Item>();
 <---Empty Line
for (int i=0; i<10;i++)
{
 <--- Empty Line
 <--- Empty Line
 <--- Empty Line
    items.Add(new Item { Id = Guid.NewGuid() });
}

preferred after formatting:
var items = new List<Item>();
 <---Empty Line
for (int i=0; i<10;i++)
{
    items.Add(new Item { Id = Guid.NewGuid() });
}

A Feature that clears the document of excessive empty lines would be nice, maybe with an option to set how many empty lines to allow between code.
EDIT: Woops! Formatting was more or less unreadable, updated.
/J

All feature requests to this extension must be backed by a real Visual Studio suggestion registered at Developer Community. Please create one and post the link back here.

Hi.
I created a feature suggestion at Developer Community: Here


message field ignored for extensions

Hello,
I am trying to get Hlint warnings for the redundant extensions enabled globally (either via GHC2021 or additional default-extensions in Cabal files), as per https://github.com/ndmitchell/hlint/issues/1386
The following works fine:
- extensions:
    - default: false
    - name:
        - AllowAmbiguousTypes

If I use another extension, e.g. {-# LANGUAGE OverloadedStrings #-}, I correctly get an error:
$ hlint .
Some/File.hs: Warning: Avoid restricted extensions
Found:
  {-# LANGUAGE OverloadedStrings #-}
Note: may break the code

1 hint

I am now trying to customize the Note: error message, as per https://github.com/ndmitchell/hlint#restricting-items but to no avail.
E.g. the following:
- extensions:
    - default: false
    - message: Hello world
    - name:
        - AllowAmbiguousTypes

still prints the exact same error message.
Is my use case possible?

What I am trying to achieve: in .hlint.yaml, forbid all extensions by default, and provide a whitelist of allowed extensions. Whenever a forbidden extension is used, I would like to customize the error message (always use the same though, to direct the developers at the .hlint.yaml file).
(My original need is actually to report errors whenever an extension is enabled in a file while it's already enabled globally by GHC2021, but cf https://github.com/ndmitchell/hlint/issues/1386 this is not yet supported in Hlint)
So given the 2 files:
# .hlint.yaml
- extensions:
    - default: false
    - name:
        - AllowAmbiguousTypes

-- Some/File.hs
{-# LANGUAGE OverloadedStrings #-}

I expect the following:
$ hlint .
Some/File.hs: Warning: Avoid restricted extensions
Found:
  {-# LANGUAGE OverloadedStrings #-}
Note: This is my customized message. If this extension is part of GHC2021, remove it. Otherwise, add it to `.hlint.yaml` to allow it.

1 hint


Limit PoolData::cost_per_block

The cost per block should not be greater than the reward, so that when it's subtracted from the reward it doesn't underflow.
Think about how to handle this situation properly because rewards and costs can be arbitrary.

Perhaps Pavel's idea is not bad here... if cost_per_block is too high, we just hand the whole reward to the staker.


Add reminder on how to disable a specific rule to rules pages

This is, for example, what I'm calling a rule page:  https://eslint.org/docs/rules/no-await-in-loop
I believe a practical addition to rule pages would be a reminder on how to disable the rule.
Most of the time people reaching this page will look for a way to disable the rule.
If it sounds good enough, I can send a PR.

Closing this since there hasn't been any discussion in quite a while and progress on the issue has stalled. While we wish we could accommodate all requests, we have limited resources and do need to prioritize.
Feel free to open a new issue with a proposal to continue this discussion if this is something you would like to continue advocating for. Please also remember that you can always create this rule for yourself and distribute it as a plugin.


Remove dependency on patched reflex-dom

Technical debt note: I'm using a patched version of reflex-dom that reports mouse events in coordinates relative to the element that caught the event.
Find a workaround that works under Chrome & Firefox and allows me  to stay on the the reflex-platform's reflex-dom

Assigning this to @Xerimor - since scaledImageWidget is the only element that needs special mouseevent coordinates, he can wrap that in a one-off event handler and we'll revert to mainline reflex-dom, dropping the submodule.

Closed by 76f52485f4e58e9fc38a900aeb3f9ecb09bb9354,  nice job @Xerimor!


[11.x] Created a markdown helper to utilise the Illuminate\Mail\Markdown class

I have created a markdown helper function to reduce the utilisation of classes within the blade components.

[x] Added a function to the helpers file that will use the Markdown class
[x] Updated the mail blade components which utilises the Markdown class

If it's going to be a helper that just parses, you could abstract away the parse method as well? Or am I missing something?

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If possible, please consider releasing your code as a package so that the community can still take advantage of your contributions!
If you feel absolutely certain that this code corrects a bug in the framework, please "@" mention me in a follow-up comment with further explanation so that GitHub will send me a notification of your response.

@taylorotwell No worries, I completely understand, this is strictly cosmetic following the same methodology as the str and arr helpers.
It does not improve or fix anything and I'm happy for you to completely disqualify this PR.
Have a great weekend!


[iOS 10] Cannot reset ads on iOS

We utilize Iris.tv for one our clients.  It allows a user to skip to a new video (provided by their api in chunks of 5 videos), like or dislike a video, etc.
When a video switch happens, the video source is changed, and we do another call to ads.  On Desktop and Android, this works perfectly fine.  On iOS 10 (Safari), this fails.  It draws a black div and hides the player, and does nothing.  It makes no network calls to any ad server, and doesn't appear to do anything.  I have an ad events plugin that acknowledges a timeout (a custom timeout on our end), so I know the ads plugin is triggering.
Is there a way to switch out ads in iOS that maybe I'm not seeing?  I currently just call player.ima(options) again and that works on Android and iOS.
Player: http://staging.player.dotstudiopro.com/share/58c48e8397f8158a5e1ad4ff?targetelm=.player&companykey=56798e9197f815d36f339ee4&loopplayback=false&autostart=true&muteonstart=false&enablesharing=false&skin=0000ff

Hey there,
I think our playlist example is exactly what you're looking for. That example prevents users from changing the video while the ad is playing, so you'll need to wait until you see the content video to try to switch. Is that working on the devices you're using? If not, could you let me know which device and iOS versions you're using and at what point you're trying to switch videos?
Thanks,
Shawn

It seems (to me at least) that the once one video ends, it is not possible to successfully play another video w/ads.
I modified the playlist example, to call another video play w/ adTag on the ended event: https://gist.github.com/chrisboustead/a5af07fc72c4bd62f594238a37a3b633
    // On 'ended' event of first video:
    player.ima.setContentWithAdTag(
          'some valid source',
          'some valid adtag',
    true);
    player.ima.requestAds();

Error:
TypeError: Cannot read property 'trackChangeHandler' of null
    at Player.<anonymous> (videojs.ads.js:202)
    at HTMLDivElement.bound (video.js:2232)
    at HTMLDivElement.data.dispatcher (video.js:1867)
    at trigger (video.js:1994)
    at Player.trigger$$1 [as trigger] (video.js:2795)
    at Player.checkSrc (videojs.ads.js:481)
    at HTMLDivElement.bound (video.js:2232)
    at HTMLDivElement.data.dispatcher (video.js:1867)
    at trigger (video.js:1994)
    at Player.trigger$$1 [as trigger] (video.js:2795)

More Detail:
Seems that reset is called before player.ima.setContentWithAdTag is, and snapshot (among other properties) are no longer objects, needing re-initialization.
function initialize(player) {
  player.on('contentupdate', function () {
>>> if (player.ads.snapshot.trackChangeHandler) {
      var textTrackList = player.textTracks();

      textTrackList.removeEventListener('change', player.ads.snapshot.trackChangeHandler);
      player.ads.snapshotIOSTrackHandlerAdded_ = false;
    }
  });

  player.ads.snapshotInitialized_ = true;
}

Dependencies:

videojs v6.2.8
videojs-contrib-ads v5.1.0
videojs-ima v0.6.0

Are you seeing this issue with older video.js versions? Currently we only support up to 5.3.
Also, can you try requesting more ads in a contentAndAdsEndedListener instead of on the videoPlayer's ended event? That will avoid breaking any state we maintain in the plugin. Thanks!

Sorry for the confusion with versions there, tested with:

videojs 5.20.3
videojs-ima 0.7.0
videojs-contrib-ads 5.0.3

Tested and updated the gist with the contentAndAdsEndedListener, results are similar.  No pre-roll after the first video.  Interestingly enough, if you seek or pause/play the second video the pre-roll will play, and content will resume once ad is complete.  Probably unrelated to the initial issue, can open an separate issue to track.

Actually, even the playlist example right out of the box (only updating the paths for videojs-contrib-ads assets) no longer works even when clicking on the second video.
Only the ads for the first video are played.  If there is interaction after clicking the second video (seek/pause -> play) then the ads for the second video will kick off.

I just noticed that too - that's indeed a bug. We'll take a look and see what we need to do to get it remedied.

Hey @shawnbuso, I've looked into this a little but haven't been successful finding a resolution.  Have you made any progress or do you have any thoughts about what I should look into?
I was able to have some success using IMA SDK directly with videoJS, without this plugin or the contrib-ads plugin (html5 only), but is far from a production-ready solution.

Hey sorry about this, I've actually been working with the contrib-ads folks on troubleshooting this one. You can follow our progress in this issue.

Appreciate it!  Jumping over there...

It looks like this is fixed with contrib-ads 5.1.3. The plugin in its current state isn't yet updated to use that version, but I'm working on a refactor that will get the plugin up to date with the latest contrib-ads. Once that refactor is complete we should be good to go. If you want to take a crack at using 5.1.3 with the plugin in its current form you can give it a shot and let me know if it works.

Confirmed- works with 5.1.3.
Not sure yet if there's any clashes with the upgrade but simple pre-rolls worked with:
videojs: 5.2.8
videojs-contrib-ads: 5.1.3
videojs-ima: 0.6.0
As far as i'm concerned this issue can be closed as it was regarding subsequent prerolls only, but that's your call.  Thanks for the help @shawnbuso!

Sweet, glad it's working!


Cannot Change Existing Accessory DisplayName

Hello,
Once an accessory is registered (under a platform) it doesn't appear possible to change it's display name without fully unregistering it and then readding it.
An accessories' display name isn't shown anywhere in the Home app, but other HomeKIt apps do display it.
Here's what I've tried (and then later adding/removing services to force through a config update to HAP/HomeKit).
this.platformAccessory.displayName = newDisplayName;
this.platformAccessory._associatedHAPAccessory.displayName = newDisplayName;

var accessoryInformationService = this.platformAccessory.getService(Service.AccessoryInformation) || this.platformAccessory.addService(Service.AccessoryInformation));

(accessoryInformationService.getCharacteristic(Characteristic.Name) || accessoryInformationService.addCharacteristic(Characteristic.Name)).setValue(newDisplayName);

This may be a HomeKit issue, I'm fairly certain it pulls the accessory name from Service.AccessoryInformation, and that is changing successfully with the above code.

I hate to chime in but did anyone figure this out??


Allow Android M+ (and config updates)

A very simple change to Galgo#checkPermissions to use android.provider.Settings#canDrawOverlays() for M+ support
Updated gradlew to 2.2.3
Updated Build tools to 26.0.1
Updated targetVersion to 26
Tested on 7.1.2, 6.0.1, 5.1.1, 4.4.4

I respectfully disagree with your Inspector Gadget


User can view swiming extended activity data

Garmin:
https://connect.garmin.com/modern/activity/890850357
Strava
https://www.strava.com/activities/387899675

This looks exciting - what metrics would you be thinking off adding

@jamesmstone It's brainstorming at the moment ;)


Coverage failed to send but travis succeeded?

https://travis-ci.org/block-forest/dart-coveralls/jobs/206589962#L1573
Sending coverage information. JSON length: 35498
Coverage information sent.
Error sending
Exception: Internal Server Error
Retrying 1 of 2.
Sending coverage information. JSON length: 35498
Coverage information sent.
Error sending
Exception: Bad Gateway
Retrying 2 of 2.
Sending coverage information. JSON length: 35498
Coverage information sent.

The command "./tool/travis.sh" exited with 0.
Done. Your build exited with 0.

Maybe we should change our travis.sh to fail in that case?

Looks like the last successful build was from Feb 20th:
https://coveralls.io/builds/10291701
The the job I reported on above was from Today (March 1st).

You mean by providing --throw-on-error, or --throw-on-connectivity-error option? I can't remember having tested those explicitly, so I'll do that and will change travis.sh, accordingly.
At least, our side seems to work fine, as the last successful coverage is from Feb 23, after I had merged PR #64. Merges and commits before that are also there.

Seems like it's worth fixing coverage to be known-to-work for our repo here before publishing. :)

I was able to reproduce the "Bad Gateway" error locally, and then it succeeded on retry (I also have seen it fail multiple times in a row).
We currently don't have any back-off logic in the retries which may be related.  We also might be tickling the coveralls endpoint in a bad way.
For example, just now:
Sending coverage information. JSON length: 35537
Coverage information sent.
Error sending
Exception: Bad Gateway
Retrying 1 of 2.
Sending coverage information. JSON length: 35537
Coverage information sent.
200 OK
Response:
{"message":"Job #2.1","url":"https://coveralls.io/jobs/23426545"}
Coveralls Job #2.1 – https://coveralls.io/jobs/23426545

It's possible that our usage of the API is dated and influencing the bad gateways?
https://github.com/block-forest/dart-coveralls/issues/70

When testing almost all config combinations of the report command with several of my repos, I only encountered a failed upload once, and attributed it to the internet being the internet :-) Thanks for looking into it!


Linux installation in not in sync with manual

Hi
Context
Manual says :" cd bin/, run ./AsciidocFX.sh"
There no more AsciidocFX.sh nor bin folder in the archive.
Action
Correct manual

Looks like https://github.com/asciidocfx/AsciidocFX/blob/master/README.adoc#install-on-linux is correct but https://asciidocfx.com/#trueinstall-on-linux is lagging behind?

New release is available https://github.com/asciidocfx/AsciidocFX/releases/tag/v1.7.4
Please check if that fix your issue.


add valid-until to preconditions

triggered workflow manually (no idea why it didn't run): https://github.com/o1-labs/snarkyjs/actions/runs/3693469060

Check in with Jiawei when picking this up


Music Player #59: only part of the code snippet is highlighted correctly

Describe the Issue
The error message has a correct line of code for solution.
song?.title ? `Play ${song.title}` : "Play"

Part of it is highlighted, part of it is not(red shape on the picture below).

Affected Page
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures-v8/learn-basic-string-and-array-methods-by-building-a-music-player/step-59
Your code
const setPlayButtonAccessibleText = () => {
  const song = userData?.currentSong || userData?.songs[0];
  playButton.setAttribute(
    "aria-label",
    song?.title ? `Play ${song.title}` : "Playy" // intentional typo to make the error message show up
  );
};

Expected behavior
In the error message, the whole line
song?.title ? `Play ${song.title}` : "Play"

should be highlighted.
Screenshots
No response
System

Device: Laptop
OS: Windows 10
Browser: Chrome
Version: [e.g. 22]

Additional context
No response

already fixed in #52745


TypeError: Cannot read property 'catch' of undefined.

When I tried to run your script errorHandling.js I ran into this error:
TypeError: Cannot read property 'catch' of undefined
    at Object.<anonymous> (C:\steemUpvoteBot\upvote-bot\errorhandle.js:30:12)
    at Module._compile (module.js:643:30)
    at Object.Module._extensions..js (module.js:654:10)
    at Module.load (module.js:556:32)
    at tryModuleLoad (module.js:499:12)
    at Function.Module._load (module.js:491:3)
    at Function.Module.runMain (module.js:684:10)
    at startup (bootstrap_node.js:187:16)
    at bootstrap_node.js:608:3

It seems like the catch() in the last line is not working properly, while the one after responder.comment() is working just fine.

I can't replicate this issue. Please make sure your package is updated to the latest version. In order to do that make sure the version for steem-bot in your package.json is 0.8.0 and do this in terminal:
rm -rf node_modules
npm i

Yes I did check that in package.json, my steem-bot version is 0.8.0 but after I change this line
const SteemBot = require('steem-bot').default

and command
node errorHandling.js

the error occured.

My apologies I forgot to update the dist files. Please get the latest package @0.8.1 and the problem should be solved.

@p0o Thanks a lot!


Implement into IntoArrowNumericType  trait

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
We are trying to implement more generic "scalar" kernels -- see discussion on https://github.com/apache/arrow-rs/pull/984
If one wants to call eq_scalar on a PrimtiveArray,
    let array: Int8Array = vec![1,2,3]
        .into_iter()
        .map(Some)
        .collect();

    let comparison = arrow::compute::eq_scalar(&array, 2).unwrap();

    let expected: BooleanArray = vec![false, true, false]
        .into_iter()
        .map(Some)
        .collect();

    assert_eq!(comparison, expected);

In this case, since the data type (Int8Type ) is an associated type of the PrimitiveArray type, Rust can infer the correct type for argument 2 into the 2i8 needed for calling eq_scalar.
However as soon as you have an ArrayRef (aka dynamic array), it becomes challenging. To write a generic "compare this array to a scalar value" we would liek to write something like this:
/// Perform `left == right` operation on an array and a numeric scalar
/// value. Supports PrimtiveArrays, and DictionaryArrays that have primitive values
pub fn eq_dyn_scalar<T>(
    left: &dyn Array,
    right: T::Native,
) -> Result<BooleanArray>
where
    T: ArrowNumericType,
{
...
}

However, to actually call this function, the type of right needs to match T, but there is a potentially infinite number of concrete T types that could have a matching associated type Native, as explained by @shepmaster in https://github.com/apache/arrow-rs/pull/984#issuecomment-992777187
Practically that means that all calls to eq_dyn_scalar would require type annotations which matched the values of the array, which largely defeats the purpose of eq_dyn_scalar
        let array = builder.finish();
        // still need the UInt8Type annotations
        let a_eq = eq_dyn_scalar::<UInt8Type>(&array, 123u8).unwrap();
        assert_eq!(
            a_eq,
            BooleanArray::from(vec![Some(true), None, Some(false)])
        );

Describe the solution you'd like
So the proposal from @shepmaster at https://github.com/apache/arrow-rs/pull/984#issuecomment-992806010 is to add a trait that maps in the reverse direction, so we could have something like:
struct UInt8Type;
struct Int64Type;
struct DictionaryArray<K>(K);

// ----

trait ArrowNumericType {
    type Native;
}

trait IntoArrowNumericType {
    type Arrow: ArrowNumericType<Native = Self>;
}

// ----

impl ArrowNumericType for UInt8Type {
    type Native = u8;
}

impl IntoArrowNumericType for u8 {
    type Arrow = UInt8Type;
}

impl ArrowNumericType for Int64Type {
    type Native = i64;
}

impl IntoArrowNumericType for i64 {
    type Arrow = Int64Type;
}

// ----

fn eq_dict_scalar<K, T>(left: &DictionaryArray<K>, right: T)
where
    K: ArrowNumericType,
    T: IntoArrowNumericType,
{
    todo!()
}

// ----

fn usage<K>(d: &DictionaryArray<K>)
where
    K: ArrowNumericType,
{
    eq_dict_scalar(d, 8u8);
    eq_dict_scalar(d, -64i64);
}

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

I think we have decided on a different approach for https://github.com/apache/arrow-rs/pull/1074 so closing this ticket


call Cancel after Tick stops

If Tick decides not to continue, call Cancel before reporting back.

Blast, going to redo this so it makes sense. "on error" is not right.


feat: support for http_proxy & https_proxy

Support handle proxy settings for http requests.

thanks @cqlzliang! just so I understand, what use case does this solve for? and should we add a note in the README about when and how to use this?

✖ Request to OpenAI failed with status 400:

"\r\n<title>400 The plain HTTP request was sent to HTTPS port</title>\r\n\r\n
400 Bad Request
\r\nThe plain HTTP request was sent to HTTPS port\r\n
cloudflare\r\n\r\n\r\n"

An error happens when I use a local proxy with v2ray client.
I try this PR can resolve this error. But, I don't understand why?
Because ai-shell worked fine when I used ClashX as my proxy without this PR.

Due to well-known reasons, accessing api.openai.com from mainland China requires the use of a proxy. The common way to set a proxy in a shell environment is to set the http_proxy and https_proxy environment variables. My modification is to support network requests using these two environment variables as the network proxy. Actually, the latest version of axios already supports this feature, but the lower version of axios that openai package depends on does not.
As I mentioned above, setting a network proxy through http_proxy and https_proxy is a common practice, so I think no additional explanation is needed. However, if there is any, it would be better.

@saltbo Are sure ai-shell will use the system proxy when you used ClashX？I use clashxpro on mac and setting it as system proxy, and ai-shell doesn't use proxy when reqeust api.openai.com

@saltbo Are sure ai-shell will use the system proxy when you used ClashX？I use clashxpro on mac and setting it as system proxy, and ai-shell doesn't use proxy when reqeust api.openai.com

I'm not use the system proxy, I set the env http_proxy and https_proxy as bellow:
# proxy
PROXY_ADDR="http://docker.for.mac.localhost:6666"
export http_proxy=$PROXY_ADDR
export https_proxy=$PROXY_ADDR
export all_proxy=$PROXY_ADDR
export no_proxy="localtest.rs,localtest.me,localtest,localhost,<IP_ADDRESS>"

@saltbo I tried your setting, and ai-shell used the proxy setting. So the issue is my proxy setting, ai-shell support the proxy setting without this PR. For the error happens when you use a local proxy with v2ray client, you can submmit another issue.
@steve8708 I'm so sorry for my mistake, I wiil close this PR.

@saltbo I tried your setting, and ai-shell used the proxy setting. So the issue is my proxy setting, ai-shell support the proxy setting without this PR. For the error happens when you use a local proxy with v2ray client, you can submmit another issue.
@steve8708 I'm so sorry for my mistake, I wiil close this PR.

I don't understand what happens with the v2ray client, Please tell me if anyone knows something...

I found this issue, but I don't know why closed.  https://github.com/axios/axios/issues/3384
The errors happen with https_proxy=http://example.com

The curl works fine, I prefer to think it's axios's problem.

As for the fact that Clash can work properly, I guess it may have done some special treatment.

there is a solution proposed here: https://github.com/openai/openai-node/issues/85#issuecomment-1454359657

I reproduce this problem, but don't know the reason

I found this issue, but I don't know why closed. axios/axios#3384
The errors happen with https_proxy=http://example.com
I debug in the v2ray-client, and I found axios used the plain HTTP request, and the curl used CONNECT tunnel

The curl works fine, I prefer to think it's axios's problem.

I have reproduced this problem, but I have not yet identified the root cause of the problem.

@saltbo Are sure ai-shell will use the system proxy when you used ClashX？I use clashxpro on mac and setting it as system proxy, and ai-shell doesn't use proxy when reqeust api.openai.com

I'm not using the system proxy, I set the env http_proxy and https_proxy as below:
# proxy
PROXY_ADDR="http://docker.for.mac.localhost:6666"
export http_proxy=$PROXY_ADDR
export https_proxy=$PROXY_ADDR
export all_proxy=$PROXY_ADDR
export no_proxy="localtest.rs,localtest.me,localtest,localhost,<IP_ADDRESS>"

I got this error when i use this setting:

┌  AI Shell
│
◐  Loading.

✖ Request to OpenAI failed with status 403:

{
  "error": {
    "message": "The OpenAI API can only be accessed over HTTPS. You should access https://api.openai.com rather than the current URL.",
    "type": "invalid_request_error"
  }
}

@JaysonAlbert same as me. are you using v2ray-client too?


proj.transform can't handle extents

proj.transform() doesn't handle extents correctly. It only transforms the first two coorinates, not the last two. However, proj.getTransform() handles extents correctly.
For example, consider the following extent:
var extent = [10, 10, 20, 20];

Then, proj.transform() leads to the wrong result:
ol.proj.transform(extent, 'EPSG:4326', 'EPSG:3857')

Wrong output (last two coordinates not transformed):
[1113194.9079327357, 1118889.9748579597, 20, 20]

But proj.getTransform() works correctly:
ol.proj.getTransform('EPSG:4326', 'EPSG:3857')(extent)

Output:
[1113194.9079327357, 1118889.9748579597, 2226389.8158654715, 2273030.926987689]

You should be using http://openlayers.org/en/v3.1.1/apidoc/ol.proj.html#transformExtent instead

Use ol.proj.transformExtent to transform extents.

With two answers I think we can safely close this :-)

Just one quesiton: What about proj.getTransform()? Should this be used or not? And why does it behave differently from proj.transform()?


add FAQs from PR-6687

Preview link
KB > CI FAQs > When using the --no-push option in a Harness build step, where is the locally built image stored ?
PRs must meet these requirements to be merged:

[ ] Successful preview build.
[ ] Code owner review.
[ ] No merge conflicts.
[ ] Release notes/new features docs: Feature/version released to at least one prod environment.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://665e1cf524f451466dadfefd--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://665e2e9fdc7eba56cf8bd2eb--harness-developer.netlify.app


How to access session object before firstRun?

First of all, thank you for your awesome contribution to the bot framework. I read the issues #1193 #196 and #1239 before posting this. I have some heavy loading that needs to be performed ONCE in the lifecycle of the node application before I can start accepting user messages. It turns out that one of the methods there needs a Session object. Currently inside the firstRun I call the method setSession(session) on that object which I believe happens ONCE per user. Is there a way to call setSession(session) just once in the whole process before the firstRun or '/' dialog

I figured out a better strategy and wont need this , thank you


Can i change postion of mycurrentlocation button?

Nice plugin! when i set showsmycurrent location to true, it appear by only on top!
is there anyway to change it to bottom or add any custom position to it?

yes definately you can change the position of location Button use this one style
<MapView
mapPadding={{
right: 10,
bottom: 0,
left: 0 ,
position:'absolute',top: 80
}}
/>

Please use this issue tracker for bug reports and features. Questions are better suited for Stack Overflow.
Thanks!


Cannot convert model using converter.py

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04):Linux Ubuntu 16.04
NDK version(e.g., 15c):15c
GCC version(if compiling for host, e.g., 5.4.0): 5.4.0
MACE version (Use the command: git describe --long --tags): v0.10.0-0-g22e40d6
Python version(2.7): 2.7.12
Bazel version (e.g., 0.13.0): 0.13.0

Model deploy file (*.yml)
mobilenet-v2.yml

Describe the problem
I tried to convert mobilenet-v2 on mace-models using converter.py but the following error message pops up:
To Reproduce
Steps to reproduce the problem:
1. cd /path/to/mace
2. python tools/converter.py convert --config_file=/path/to/mace-models/mobilenet-v2/mobilenet-v2.yml

Error information / logs
Please include the full log and/or traceback here.
Traceback (most recent call last):
  File "tools/converter.py", line 1242, in <module>
    flags.func(flags)
  File "tools/converter.py", line 757, in convert_func
    configs = format_model_config(flags)
  File "tools/converter.py", line 245, in format_model_config
    available_socs = sh_commands.adb_get_all_socs()
  File "/Documents/mace/tools/sh_commands.py", line 172, in adb_get_all_socs
    socs.append(props["ro.board.platform"])
KeyError: 'ro.board.platform'

Additional context
Thank you for your time and efforts.

Could you run "adb shell getprop" after connecting to your device, and send the log to us?

Never mind, I just set the platform manually and the problem is solved. Thank you for your assistance.

I just had the exact same problem.
I tried running adb shell getprop and it gave the following error: error: more than one device/emulator, which was accurate, as I had an emulator and a phone connected. After closing the emulator, I could run the adb command and the python error disappeared.
Solution: make sure you only have one device/emulator running


policy-server: Enable codecov

tarpaulin is failing to build the policy-server bin, both with stable and nightly, and with ptrace and llvm engines. I keep working on this.


How to load multiple Volumes in 1 3D interactive plane

I have multiple .nii files of different parts of body ( from a CT scan segmentation job) and I want to load all of them in a 3D interactive plane at their respective positions. How can I achieve that. I am also looking at how can I get something out so that there can be a toggle to hide or show each individual .nii files based on some selector.
I am able to do it in 3D Slicer, but not sure how I can combine multiple .nii files in one 3D interactive view with toggle to turn on and off each volume?

These are the format of the .nii files for different parts

I think this works
volumes = []
volumes.append(path_a)
volumes.append(path_b)
volumes.append(path_c)
show(*volumes, axes=1, interactive=True)

Is there a way I can interactively toggle each segment ( nifti file) on the composite interactive display??

Is there a way I can interactively toggle each segment ( nifti file) on the composite interactive display out of the box??

Try:
from vedo import *

settings.default_font = "Antares"
settings.enable_default_keyboard_callbacks = False

def func(event):
    global toggled

    if event.keypress == "z":
        if event.object:
            toggled = event.object
        if toggled:
            toggled.toggle()
        plt.render()

    elif event.keypress == "q":
        plt.close()
        exit()

toggled = None
vol1 = Volume(dataurl+"embryo.slc")
vol2 = Volume(dataurl+"embryo.tif").spacing([1,1,1])

plt = Plotter(axes=1)
plt.add_callback("key press", func)
plt.add(vol1, vol2, "Press z to toggle visibility of volumes on hovering")
plt.show()

Thanks @marcomusy, this works!
I'm wondering if there's a way to have buttons on the side representing each volume, allowing users to click and toggle them on and off, instead of having to hover and click.


Make api handlers more polymorphic to reduce duplication

Issue Number

N/A
Overview

[ ] I have made api handlers more polymorphic to reduce duplication

It was okay-ish to duplicate handlers for Byron random wallets in order
to quickly iterate and develop handler for those. However, a lot of the
logic was duplicated in the process and, with the upcoming support of
Yoroi wallets, we would need even more. However, this commit take
re-locate the discrepency between wallets types to arguments passed to
other more generic functions. This way, we can group the logic for
top-level functions and adjust how wallets are represented when needed.
This enables rather seamless support for Yoroi wallets, pretty much out
of the box.
Comments

bors try


KMS key clean up

Description
KMS key created as part of this module cannot be deleted by other admins.
https://github.com/aws-ia/terraform-aws-eks-blueprints/blob/6f571f2dbe3e5243681562f4ac9964af9e391c3c/data.tf#L89
This has cause a lot of issues with clean up in our use case, where the original creator role may not be available.
can we add root to the principal list?
        "arn:${local.context.aws_partition_id}:iam::${local.context.aws_caller_identity_account_id}:root"

If your request is for a new feature, please use the Feature request template.

[x] ✋ I have searched the open/closed issues and my issue is not listed.

⚠ Note
Before you submit an issue, please perform the following first:

Remove the local .terraform directory (! ONLY if state is stored remotely, which hopefully you are following that best practice!): rm -rf .terraform/
Re-initialize the project root to pull down modules: terraform init
Re-attempt your terraform plan or apply and check if the issue still persists

Versions

Module version [Required]:

Terraform version:

Provider version(s):

Reproduction Code [Required]

Steps to reproduce the behavior:

Expected behaviour

Actual behaviour

Terminal Output Screenshot(s)

Additional context

@xincanva you should be able to provide additional arns using cluster_kms_key_additional_admin_arns. See https://github.com/aws-ia/terraform-aws-eks-blueprints/blob/6f571f2dbe3e5243681562f4ac9964af9e391c3c/variables.tf#L129

Closing for now - please see the guidance provided above by Apoorva as well as https://github.com/aws-ia/terraform-aws-eks-blueprints/pull/1319 where the v19 of the terraform-aws-eks module handles this for users today


Failure to load state dict

First I want to say thank you for making this amazing peace of software, and made it open!!
I have a problem here.
After I train the model I try the test.ipynb notebook and when I try to use the function load_ckpt from utils it says size mismatch.
And I don't know why.

I am using aws ec2-instance, a p3.2xlarge with ubuntu 20.04.
I installed everything and it seems like everything is working, but for some reason it ain't.
Thank you in advance

Set the scale in NGP to 0.5 if you're using the provided pretrained model


Add cleanup test for testing cleanup keys export

Add an integration test for cleanup exports scenario:

First batch export
Ensure keys are exported
Second batch export
Ensure only second batch keys exist in latest
Inspect all exports, ensure both batches exist
Clean up export
Inspect all exports, ensure only second batch exist

Fixes: #640

/ok-to-test

Can I get a review please?

/lgtm

Thanks, I don't think I have permission approve PR in this repo yet, may I get a /approve as well

/approve


support http registry local cache

@cppforlife we are submitting this PR to address the rate limit issue on SL we ever discussed before, it's a blocker issue to us for rolling CPI NG in our all Bluemix environments, please help review. Thanks.
/cc @maximilien @edwardstudy

let's pull out CachingMetadataService object that takes HTTPMetadataService as an argument. that way all of caching logic can be separate from HTTP logic.

Hi, @jfmyers9 && @jrussett . I updated UT cases. Please help to review.

Hey @edwardstudy + @mattcui,
In the process of looking into this PR, we found the corresponding issue opened by @voelzmo (https://github.com/cloudfoundry/bosh-agent/issues/118). In this issue he suggests an alternative solution to this problem in which failure to connect to NATS does not cause the agent to restart, but instead it will try to reconnect with an exponential backoff.
I think this solution is cleaner and would prevent us from having to consider the complexity of caching metadata / invalidating that cache. Would this solution also work for you?
I've gone ahead and created a story tracking that issue, and we would be open to a PR implementing that exponential backoff if that works for you all.
Let me know what you think,
@jfmyers9

@jfmyers9 Hi, James. I'd prefer to combine both solutions to reduce requests.
Exponential backoff seems good to retry after hitting rate limit issue.
But we want to use local cache to reduce edundant requests. Softlayer has a rate limit policy that there only allows 50 requests sending to SL API per second in one account. Frequent requests of same data will occupy other SL account functionnality. However, using local cache can reduce redundant requests and thus avoid rate limit happen.
BTW, Agent have a choice to disable cache thus HTTPRegistryCachePreferred option, if others IaaS doesn't have strict rate limit.
https://github.com/bluebosh/bosh-agent/blob/http-reg-cache/infrastructure/settings_source_factory.go#L38
Thank you for your understanding.

The suggestion is to implement the exponential backoff in the nats_handler.go to attempt reconnecting after losing it's connection to NATS.
The way I understand the problem is that losing the connection to NATS causes the bosh-agent to exit. On restart, the bosh-agent queries the metadata service to refresh it's settings.
If we were to implement this reconnection logic, the agent would no longer exit on loss of NATS connection, and therefore would not attempt to retry fetching settings from the metadata service. If this was the case, there would not be a flood of requests after restarting the director/NATS, and subsequently the agent's would not be rate limited from accessing data from the metadata service.
I think this proposed solution results in a cleaner end result, and prevents us from having to consider the various complications that occur when implementing a cache (i.e. cache invalidation).

@jbayer 👍It sounds like great to avoid agent restart. But I just worried about OS reload or other thing to result in agent restart.
Anyway, your solution is good for reducing rate limits. So I propose to combine these two appoarches.
Thank you.

Hi @edwardstudy,
We are also concerned with OS reload / reboots, but in normal operation those should be limited by the max_in_flight: of a deploy. If that is the case, initial deploys and recreates will not benefit from this solution, so it is unlikely that you will have a max_in_flight: that would exceed 50 RPS.
We would like to try implementing the proposed exponential backoff when reattempting to connect to NATS, which is tracked by this story, as a solution to this issue before exploring other options.
I'll work with @mfine30 to get this work prioritized / we are always open to contributions.
We are going to close this PR for the time being. Please feel free to reopen/resubmit this PR if the above does not end up solving the original issue.
Best,
@jfmyers9 && @luan, CF BOSH

@jfmyers9 We would like to do some test (for rate limit) once exponential backoff code is ready, is there a tracker link we can watch the progress? Thanks.


docs: bump swagger generator version to 2.3.0

Signed-off-by: Anthony Casagrande<EMAIL_ADDRESS>

If your build fails  due to your commit message not passing the build checks, please review the guidelines here: https://github.com/edgexfoundry/edgex-go/blob/main/.github/Contributing.md
PR Checklist
Please check if your PR fulfills the following requirements:

[X] I am not introducing a breaking change (if you are, flag in conventional commit message with BREAKING CHANGE: describing the break)
[X] I am not introducing a new dependency (add notes below if you are)
[N/A] I have added unit tests for the new feature or bug fix (if not, why?)
[X] I have fully tested (add details below) this the new feature or bug fix (if not, why?)
[X] I have opened a PR for the related docs change (if not, why?)

Testing Instructions

New Dependency Instructions (If applicable)

@ajcasagrande already taken care off. ;-)
https://github.com/edgexfoundry/device-onvif-camera/pull/197

Oh, that is a different file...


[5.10] Fix problem where API Collections had no roleHeading assigned.

Cherrypick of https://github.com/apple/swift-docc/pull/754
Explanation: Fix role heading for API Collections.
Scope: Articles that link to symbols in the Topics section now will show "API Collection" as the eyebrow title.
Issue: rdar://90789460
Risk: Low.
Testing: Locally previewed the DocC documentation and implemented the corresponding unit tests.
Reviewer: @d-ronnqvist @daniel-grumberg @patshaughnessy

@swift-ci please test

@swift-ci please test


Known issue: AWS instance can go into an unresponsive state after running for a few days

We discovered that if the server runs on AWS for a few days it may get killed due to failing autoscaling health checks. When we disabled the health checks we noticed that the instance would be unresponsive, failing EC2 status checks and sshing to it times out.
Work is in progress to fix this.

Any updates on the progress/timeline for the fix? The context offered here seems rather concerning to us so any additional information would be helpful. Thank you.

We think it is an out of memory issue due to the continuously ingested test data in that environment. memory consumption in TEE is a bit tricky so we're still in the process of getting concrete evidence.

It turns out that we set Envoy logging verbosity level to DEBUG which generated too much logs and it used up our test machine disk over time. It is unrelated to the server code itself.


Interactions&colliders are not detected in multi-scene system

Describe the bug
Colliders are not detected in multi-scene system - hence all other functionality is not working.
To reproduce
Steps to reproduce the behavior:

Create a multi-scene system profile with content scenes (manual managed builds)
Open PrimaryPointerExample and set it as first content scene
Assign the profile
Load first
Run the project
Cheese is not detected - ie. pointer is not hitting the collider

Expected behavior
Interactions should be available.
Screenshots
If applicable, add screenshots to help explain your problem.
Your setup

Unity Version 2020.2.6
MRTK Version 2.6.0

Target platform

Oculus
Standalone

@elbuhofantasma, can you please repro this on Oculus?

@eusebiu, are you able to reproduce this on the Unity 2020 LTS (2020.3)?

@eusebiu, are you able to reproduce this on the Unity 2020 LTS (2020.3)?
I haven't tested on that version. If this is not reproducible on the LTS, you can close it.

@eusebiu I was unable to repro this on the LTS or with the versions that you listed above. I am closing this issue since it seems to be fixed in the LTS.


Revert acks

Pull Request Test Coverage Report for Build 432606705

47 of 71 (66.2%)  changed or added relevant lines in 5 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.1%) to 39.22%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

telegram/ack.go
10
16
62.5%

telegram/handle_ack.go
4
10
40.0%

telegram/rpc.go
28
40
70.0%

Totals

Change from base Build 432537376:
-0.1%

Covered Lines:
2243

Relevant Lines:
5719

💛  - Coveralls


Resetting invocation_context on generate_sql function when dbt_version > 1.8

Fix 405
On new dbt 1.8 version there is error  LookupError: <ContextVar name='DBT_INVOCATION_CONTEXT_VAR' at 0x10c4889f0>   when using function "Run query" or "Run diff". This happens because class DbtAdapter sets the invocation context with function set_invocation_context({}) when dbt version is 1.8, but on tasks/query.py file the default_context is regenererated before calling function generate_sql from DbtAdapter.

To fix this, added a new call of set_invocation_context({}) on start of function generate_sql if dbt version is greater or equal than 1.8.

PR checklist

[x] Ensure you have added or ran the appropriate tests for your PR.
[x] DCO signed

What type of PR is this?
Bug fix
What this PR does / why we need it:
Added a new call of set_invocation_context({}) on start of function generate_sql if dbt version is greater or equal than 1.8 to fix the issue described below.
With the fix, Run Diff works fine with dbt version 1.8:

Tests:

Which issue(s) this PR fixes:
Fix 405
When using new dbt 1.8 version, Run Diff feature will throw error LookupError: <ContextVar name='DBT_INVOCATION_CONTEXT_VAR' at 0x10c4889f0>
This happens because class DbtAdapter sets the invocation context with function set_invocation_context({}) when dbt version is 1.8, but on tasks/query.py file the default_context is regenererated before calling function generate_sql from DbtAdapter.

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

"NONE"

Thanks for your PR.

Could you please address the flake8 issue? Everything else looks good to me!

Thanks for your PR.

Could you please address the flake8 issue? Everything else looks good to me!

Addressed.


Printing # of logical CPU in the output of %qiskit_version_table

Print the number of logical CPUs in the output of %qiskit_version_table. Currently, only the number of physical CPUs is printed. Following code could help.

import psutil
psutil.cpu_count()

It is like this because logical cores (hyperthreads) do not add much in terms of performance if any. Indeed, when spawning processes, the memory overhead vs performance gain calculation is not good.

Closing. Feel free to reopen if anything else is needed.


Make arm and x86 builds run parallelly

Sequentially building both takes more than 8 minutes.
Improve our github actions pipeline to run builds in separate jobs

@sainak, does the Makefile help spin up the container? If so, why would we need to run arm and x86 builds? Could you explain in more detail where we should use it?

@sainak, does the Makefile help spin up the container? If so, why would we need to run arm and x86 builds? Could you explain in more detail where we should use it?

this is regarding the ci pipelines that we have in github actions, https://github.com/coronasafe/care/blob/master/.github/workflows/deployment.yaml

@sainak Got it! Thank you.

@rithviknishad Can I work on this issue ?

@rithviknishad  Sir could you please review the PR

buildkit already does some parallelization during builds, so the benefits of matrix builds are negligible in the case of just 2 platforms.


Blog Post Previews contain Markdown

How can I exclude Markdown Syntax in the Blog Post Previews?

Hey @Alfagun74
I am sorry to say, we still couldn't figure it out. But you can set excerpt in your post front-matter and call in on Blog Preview to bypass this issue for now.


[question] is returning {done: true, value: smth} valid?

Cannot read this out from the spec and I'm curious if returning a value and immediately indicating in the same {done, value} pair that the iteration is complete is valid? Or to be spec-compliant I would have to split this into 2 consequent pairs, one with value and the other one with {done: true, value: undefined}?
Thanks in advance.

It should behave in the same way as generator, and return is lead to return value and indicate that iteration is complete.
async function * foo()  {
    yield 'bar';
    return 'foobar';
};

var iter = foo();

iter.next().then(value => console.log(value))
// {done: false, value: "foo"}

iter.next().then(value => console.log(value))
// {done: true, value: "foobar"}

Generally the { done: true, value: ... } isn't part of the iterated sequence e.g. with @gskachkov's if you iterate over that sequence 'foobar' is not part of the sequence (this is the same as synchronous iterators so it's nothing special with async ones):
async function * foo()  {
    yield 'bar';
    return 'foobar';
}

async function main() {
    for await (const item of foo()) {
        console.log(item)
    }
}

main() // Only logs 'bar', 'foobar' is simply discarded
       // as the { done: true, value } value has no meaning
       // in a for-of loop

Wow, had a feeling there is some difference. Thanks for clarification @Jamesernator . Although its quite the shame that returned value is omitted in the iteration - especially in the case of async iterations. Not so much of a problem for sync ones.
I've created an async iterator for "loading more events" from the backend source and UX-wise I need to inform the consumer about done: true, so he might i.e. hide the loader - and thats a bummer that although my structure looks and behaves like an asyncIterator, it has to break the iteration protocol.

@gskachkov The first iter.next() should have value 'bar', not 'foo'.

@GabrielRatener Yeah, you are right, fixed


🐛 BUG: wrangler pages dev, trying to start localhost:8788 crashes

Which Cloudflare product(s) does this pertain to?
Pages, Wrangler
What version of Wrangler are you using?
3.0.1
What operating system are you using?
Mac OS 13.2.1
Describe the Bug

I upgraded to Wrangler 3.0.1.  Previously on wrangler 2.17.0 everything was working fine.
\I start application with npx wrangler pages dev -- npm start
npm start builds my files and starts application on localhost:33xx
Try to start on localhost:8788 & I get a crash with the following message:
*** Fatal uncaught kj::Exception: kj/compat/gzip.c++:80: failed: header = gzip decompression failed; ctx.msg = incorrect header check stack: 1031bf4d7 1031bf6a3 102ce3fbc 102ce3ce6 10444e7cf 10300d46d 102f51245 102f51462 104419d0d 102df1a0d 10441995f 104419cf3 102c9b45d 10441995f 10441adb4 10441b601 104418677 10294549b 1029451e4 1029451cc 10449b997 10449bac9 104499a9f 102937113 /usr/lib/dyld@630f

At this point browser tab is unresponsive and nothing else can be done.  No part of my code was invoked before the crash.
My code does nothing with gzip.  I believe gzip is invoked by the OS as it tries to decompress /usr/lib/dyld.  dyld is a system file and cannot be deleted.
Everything was working fine with previous versions of Wrangler.

Tried Wrangler 3.1.0 and got same error message with different hex numbers.

Did some more digging, and looks like we're blocked on https://github.com/nodejs/undici/pull/2159 if we want to fix this for when Content-Encoding contains multiple encodings. Should be able to fix the single encoding case though while we wait for a release though. 👍

Thank you.  This sounds great.  Will look here to see when I can try it.  Let me know if you need anything from me or suggest I try something.

This crash no longer happens as of 3.1.2.  Please let me know if you wish me to close the bug.

I had the same issue and I confirm it's fixed with 3.1.2. Thanks a lot!

looks like this is no longer an issue so closing this out :) please feel free to re-open if the issue comes up again!