Support NSUbiquitousKeyValueStore

https://developer.apple.com/documentation/foundation/nsubiquitouskeyvaluestore
It would be nice to be able to mark keys as being sync'able and have them be automatically synced with iCloud. Syncing settings/data is a very common need, but it's currently difficult to get right. We could make it super easy.
UserDefaults would still be the main storage, as per Apple docs:

Avoid using this class for data that is essential to your app’s behavior when offline; instead, store such data directly into the local user defaults database.

We could take some inspiration from https://github.com/ArtSabintsev/Zephyr:
// Add keys to be automatically synced.
Defaults.iCloud.add(.foo, .bar)

// Remove keys to be automatically synced.
Defaults.iCloud.remove(.foo)

// Lists the synced keys.
Defaults.iCloud.keys

// Force sync all added keys.
Defaults.iCloud.sync()

We could also make a key syncable by default:
extension Defaults.Keys {
	static let quality = Key<Double>("quality", default: 0.8, iCloud: true)

}

@hank121314 Thoughts on the idea and the API?

think we might also need to add an observation for NSUbiquitousKeyValueStore.didChangeExternallyNotification.

I was thinking that we handle that internally. The user would just use Defaults.publisher, which would also be triggered by that notification.
The point of this feature is to handle the sync automatically. All the user has to do is to provide the set of keys that should be synced. Everything else is just normal Defaults usage.

Should we also do this in Defaults?

Yeah, I think so.

I was thinking that we handle that internally. The user would just use Defaults.publisher, which would also be triggered by that notification.

Got it! Maybe we can add a new ObservationOption for this notification?
It will be useful for users to recognize this notification.
For example:
Defaults.publisher(.key, options: [.iCloud or .sync])

Maybe we can add a new ObservationOption for this notification?

What's the use-case?

What's the use-case?

I am not sure what kinds of use-case honestly.
But this will be more convenient for those who only want to listen to the  NSUbiquitousKeyValueStore.didChangeExternallyNotification notification.

Yes, but I'm curious why people would need to listen to NSUbiquitousKeyValueStore.didChangeExternallyNotification, since with my proposed solution, that event is just handled for them, so they don't need to care.
I feel like we're maybe talking past each other. With my solution, Defaults would listen to NSUbiquitousKeyValueStore.didChangeExternallyNotification internally, fetch the changes, merge them in, and then trigger a normal defaults update. From the user's perspective, they just use Defaults like they always have, but they now have full syncing included for free without any extra work, other than registering the keys they want synced.

Defaults would listen to NSUbiquitousKeyValueStore.didChangeExternallyNotification internally, fetch the changes, merge them in, and then trigger a normal defaults update. From the user's perspective, they just use Defaults like they always have, but they now have full syncing included for free without any extra work, other than registering the keys they want synced.

Yeah! That's the main feature.
But I would like to let users know who make the changes.
With Defaults.publisher(.key, options: [.iCloud or .sync]) they will be able to know this change was made by remote synchroization.

I think a property on the Observation object would be better. Maybe .isSyncUpdate. But I would wait until someone has an actual need for this. It would be easier to design a solution around an actual need than trying to anticipate what users will need.

But I would wait until someone has an actual need for this.

Yeah! Let's just keep an open mind to this additional feature.

It would be easier to design a solution around an actual need than trying to anticipate what users will need.

That's true 👍. Learn a lot from it 😃 !

It was missing by the time I needed it so I implemented something on my own (locally) for now but it's not as deeply integrated as what you plan on adding and relies on me checking for NSUbiquitousKeyValueStore.didChangeExternallyNotification and updating the values then so… please let me know if I can help! 😄

This is now available for testing: https://github.com/sindresorhus/Defaults/releases/tag/v9.0.0-beta.1
// @Pomanks @Kinark @seungwoochoe @Frostplexx @arekf

It's officially out now: https://github.com/sindresorhus/Defaults/releases/tag/9.0.0


Breaking change in firefox-profile

Hi,
I am the maintainer of firefox-profile package. This is just a heads-up that I am about to publish a new 1.0 package that introduces a breaking change: Firefox.prototype.encoded(cb) now expects an error-first callback (encoded(function (err, base64Profile) {})). So if you decide to update your package dependencies, you might want to update this line (... and also handle the error...).

@saadtazi thanks for letting me know

@christian-bromann
Could you please take a look at
https://github.com/webdriverio/wdio-firefox-profile-service/pull/10 ?

Let's close this and continue convo in #10


Fix gitea login

Closes #3531

We really need more tests. Sorry missed that in the review as well.


Unexpected result when dragging multiple files into editor with shift down

Testing #150321
It adds both files, the first just the file name, the second the full path:

What language file are you dropping these into? Is this using the extension sample from #150321?

That was into a .gitignore file, this is without the example sample

/verified? I can't repro on the stable version but it does generate the full path on both.

Works for me too now 👍


Merge google -> main

a0e6ad80 Synchronize submodules
ba397437 Update Tensorflow submodules
631a1dd2 Synchronize submodules
64a6aef7 Integrate LLVM at llvm/llvm-project@834133c950fc

This should have been merged with a merge commit. It may complicate the next set of merges when Copybara gets involved.
The merge commit message should also have matched the PR description - the PiperOrigin-RevId in particular causes further issues with Copybara.

This should have been merged with a merge commit. It may complicate the next set of merges when Copybara gets involved.
The merge commit message should also have matched the PR description - the PiperOrigin-RevId in particular causes further issues with Copybara.

We may need to git revert the squashed merge of this PR, or even force push over to undo it.

This should have been merged with a merge commit. It may complicate the next set of merges when Copybara gets involved.
The merge commit message should also have matched the PR description - the PiperOrigin-RevId in particular causes further issues with Copybara.

We may need to git revert the squashed merge of this PR, or even force push over to undo it.

I've created #2716, can't it be done with that change? If force push is easier, let's do it. Could you do it for me, just afraid to mess things up again :( ?

This should have been merged with a merge commit. It may complicate the next set of merges when Copybara gets involved.
The merge commit message should also have matched the PR description - the PiperOrigin-RevId in particular causes further issues with Copybara.

We may need to git revert the squashed merge of this PR, or even force push over to undo it.

I've created #2716, can't it be done with that change? If force push is easier, let's do it. Could you do it for me, just afraid to mess things up again :( ?

I'm not positive, the merge process can be fragile. Let's check with @GMNGeoffrey .


Issues encountered while working offline

Describe the bug
Not functioning offline. The issue has been reported in #720 in 2022 but ignored.
Versions
Ray version (you can see this in "About Ray"): Version 2.7.5 (2.7.5)
PHP version: 8.3.0
To Reproduce
Steps to reproduce the behavior:

Start the application while not connected to the internet.

Expected behavior
It should work.
Screenshots

Desktop (please complete the following information):

OS: macOS
Version: Sonoma 14.1.1 (23B81)

Additional context
N/A

bump up, same issue here, I love working distraction free, offline, but Ray is unusable in this moment...


Add copy button to top right of code window

I've been copy pasting code on and off all day, and having a "Copy" button that put the contents of the code box into the clipboard would be great. Loving the tool.
Something like this.

When you are right, you are right. I'll add that shortly


Update itemEvents HAL Link To Sort Events (from 105)

Expected Behavior
The lux:itemEvents hal link will return events sorted by date in ascending order (oldest top, newest bottom)
UAT/Testing
In the HAL link, there will be a sort parameter.  UAT can happen via 1266 (below)
Prerequisite for
Sort item events by year (from 1266) #18

Deployed to DEV, changes should show up in the existing HAL link on the frontend, no frontend changes required


adds ability to override jenkins update url

provides a new variable "jenkins_update_url" that can allow the user to use the experiemental update URL. This allows users to install the BlueOcean CI view.

Apologies moving this to a branch on my end. Want to try to fix something else without breaking this PR.


fix val_split logic and add tests

What does this PR do?

Fixes #203
Before submitting

[ ] Was this discussed/approved via a Github issue? (no need for typos and docs improvements)
[ ] Did you read the contributor guideline, Pull Request section?
[ ] Did you make sure your PR does only one thing, instead of bundling different changes together?
[ ] Did you make sure to update the documentation with your changes?
[ ] Did you write any new necessary tests? [not needed for typos/docs]
[ ] Did you verify new and existing tests pass locally with your changes?
[ ] If you made a notable change (that affects users), did you update the CHANGELOG?

PR review

[ ] Is this pull request ready for review? (if not, please submit in draft mode)

Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
Make sure you had fun coding 🙃

Hello @edgarriba! Thanks for opening this PR.

In the file tests/vision/classification/test_data.py:

Line 30:38: E252 missing whitespace around parameter equals
Line 30:39: E252 missing whitespace around parameter equals
Line 95:14: E222 multiple spaces after operator

In the file tests/vision/classification/test_data_model_integration.py:

Line 51:64: W292 no newline at end of file

Do see the Hitchhiker's guide to code style

@edgarriba Could you fix the tests?

@kaushikb11 @tchaton install packages seems to pull a broken version


S3 bucket ACL for : AccessControlListNotSupported Errors

Amazon have changed default behaviour for S3 buckets as of April 2023 as per: https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html
The module creates an ACL that is now no longer applicable and causes errors of the form below:
Plan: 1 to add, 0 to change, 0 to destroy.
module.rubrik-cluster.module.rubrik_cluster.aws_s3_bucket_acl.cces-s3-bucket-acl: Creating...
╷
│ Error: error creating S3 bucket ACL for : AccessControlListNotSupported: The bucket does not allow ACLs

This was fixed as a by product of commit e45b6e9 where we removed setting ACLs on the bucket.


Update push.md

Description
Push operations don't always update all relevant attributes on associated datatypes in our cache and require a new sync of data to get everything 'in shape'. This is the root cause of a lot of contacts to support, so getting it documented here.
Type of change
Please delete options that are not relevant.

[ ] New document(s)/updating existing

@pj-simpson I have another PR #332 in progress for changes to the push page, so I will include your change in that - and close this PR in the meantime

Closed in lieu of PR #332


 This includes any spot that directs the user to run python setup.py test including:

the README
the readthedocs install page
the readthedocs install for developers page

These should be updated to just include directions on how to run the nosetests (which I'm not sure how to run independently). This should be a very simple fix.

fixed - tests are very fast now


Set custom date

Please I'd like to know if is now possibile to set a custom month/date in initialization phase of CVCalendar.
Thank you

Yeah I second that. It's important for when a user has already selected a date but is returning back to the calendar view to change it

Actually I believe I found the way to do it:
self.calendarView.toggleViewWithDate(date)

I tried in that way too but I supposed that was the same as a click on a custom date.
Am I making a mistake?
My issue is a little bit different: suppose you'd like to set your initial view (before any click) on a chosen month. Now it's march and I want a calendar view directly on July on app launching, how could we have it?

I haven't tried the situation you're describing personally, but I think the line above should work in your case if its called in the "viewDidLoad" or "viewWillAppear" methods of the view controller you want to launch the app with.
In my case I call the function with the date I want to set the calendar too in the viewWillAppear method and it opens the calendar directly on the date I specified

Hmm sounds strange - Im trying to call toggleViewWithDate(date) in viewDidLoad() but the calendar view  does not react on it! Selection remains empty unless you tap on some date...

Found a solution?

not really.. seems it does not work at all unless shouldAutoSelectDayOnMonthChange is set to true,
so a number of strange assumptions about user interaction still holds in this library

Any updates to this?

+1

Should be fixed in #387


Folder explorer Fold level control like editor

In Editor - feature exist
I can fold code by ctrl + shift + ] or [
and  shift + click, alt + click
Especially shift + click is really great that change all shown fold level like upper gif
In Folder Explorer - My request

alt + click - working but fold everything - not remembering previous state
shift + click - doesn't work - like in editor, control of folding level will be great feature

From what I can understand, shift click in the editor does the following:

(1) recursively collapses all descendants, if the current node is expanded;
(2) recursively expands the node and all descendants, if the current node is collapsed, just like alt click.

We can't use shift click in the tree, since that expands the selection.
But we can have alt click do (1) before it actually collapses the node itself. So alt click would:

(1) recursively collapses all descendants, if the current node is expanded and some descendants are expanded (new behavior);
(1) collapses the node, if the current node is expanded and all descendants are collapsed;
(2) recursively expands the node and all descendants, if the current node is collapsed.

In my experiment
Editor

shift + click - according to my question's gif, shift + click unfold tree level one by one, not all descendants
alt + click - Also, alt click remember last folding level, and toggle between (All Folded/Remembered Folding Level)

Explorer

shift + click (click selected folder) - do nothing
alt + click - expand recursively all descendants (i think it should remember previous state like in editor)

Explorer what i suggest

shift + click  (click selected folder) - like editor, unfold tree level one by one, because In my opinion logic could be diverged click same/!same folder.
alt + click - remember folding level!

alt click was my misconception!
another feature request - alt + click - unfold all codes in editor


review status is not set

set a codechecker review comment in the source code
store the results (review status is set properly)
change the review status in the browser to unreviewed
change the review status comment in the source code to something else (or keep the previous)
store the reports again
review status is not updated in the database

@gyorb If the source code of a file hasn't been changed before the store command we do not send that file to the server so we can't change the review status back. If we would like to do so we should send all the project files.

After some discussion we will send the files to the server if they contain a review status comment.


Gitea Chocolatey package on "Installation from package" page

Gitea version (or commit ref):
Git version: git version 2.25.1.windows.1
Operating system: Microsoft Windows [Version 10.0.18363.720]
Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[x] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[ ] No
[x] Not relevant

Log gist: N/A

Description
I made a Gitea package (Chocolatey) for Windows a while ago. I also configured CI/CD that will pull latest version from Gitea website and publish to Chocolatey automatically. The pipeline is very stable running since last year. So I'd like to ask list my package to the Installation from package page.
Screenshots

LGTM 👍 I think this package should be listed in https://gitea.com/lunny/awesome-gitea and documentation.

Hi @doggy8088 ! Why do you pop over to  https://gitea.com/lunny/awesome-gitea and create a PR there?

Please note the linked repos are forks. :wink:
The main repo is in the Gitea org.
https://gitea.com/gitea/awesome-gitea

@appleboy That's my fork! :)
@doggy8088 Thank you for your work! Could you send two PRs, one is to https://gitea.com/gitea/awesome-gitea to add your package information there. Another is to gitea installation page document to add a link to packages part on https://gitea.com/gitea/awesome-gitea.

And I just found NOT ALL package methods on https://docs.gitea.io/en-us/install-from-package/ are official (i.e. FreeBSD and Cloudron are also mantained by third-party). So we may also move all of them to awesome-gitea and only keep official packages.

In fact, we have mentioned the Chocolatey package but not link to the right place.
There are no published packages for Windows. This page will change when packages are published, in the form of MSI installers or via Chocolatey. In the meantime the deployment from binary guide.

@lunny Yes, maybe we should link (gitea.com/gitea/awesome-gitea) in install-from-package page?

@zeripath @lunny My package link was already there 1 month ago.

@doggy8088 can you send a pull to add it to  Installation from package page ?


feat: implement feeMultiplier arg #5

Implement a fee multiplier arg which can be used to increase the tx fee by a given percent for the purpose of prioritizing transactions.
Closes #5
Usage:
  -m, --feeMultiplier=feeMultiplier      Optionally specify a fee multiplier. If passed, the tx fee will be (estimated
                                         fee + (estimated fee * multiplier)).
                                         For example, a fee multiplier of 15 for a tx with an estimated fee of 200 would
                                         result in a tx with the fee of 230.

Usage example (bump fee by 15%):
$ ./bin/run send-many-memo-safe SP3Z7B90DWD65SRHZM70GSDN8MMGYAZKF6F2ERE2G,50,memo2 -m 15 -n mainnet -k <private key>
recipients:
  address: SP3Z7B90DWD65SRHZM70GSDN8MMGYAZKF6F2ERE2G
  amount: 50
  memo: memo2
  ----------
fee: 311
nonce: 0
contract: SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.send-many-memo
sender: SP1AY9TDBY9PZ8GN9MK8BHF46RMW472P2A0P59HJD
totalAmount: 50
transactionHex:<PHONE_NUMBER>040055e4e9abf26df442a9a4d0b8bc86c538438ac250000000000000000000000000000001370001dda7094ce07440976542f00624cfba3afd8b64be54d9fe8c185a64f7099edde728d5ba92dd0e4e8d0c609e3ad82088198d685f066539d85850fd02fe6b1f352c03020000000100021655e4e9abf26df442a9a4d0b8bc86c538438ac2500100000000000000320216debc095099629badb11b9d5335e874d12f1f1d450e73656e642d6d616e792d6d656d6f0973656e642d6d616e79000000010b000000010c00000003046d656d6f02000000056d656d6f3202746f0516fe75a40de34c5ce23fa1c10cb6a8a521e57e6f3304757374780100000000000000000000000000000032

And without the fee multiplier bump:
$ ./bin/run send-many-memo-safe SP3Z7B90DWD65SRHZM70GSDN8MMGYAZKF6F2ERE2G,50,memo2 -n mainnet -k <private key>
recipients:
  address: SP3Z7B90DWD65SRHZM70GSDN8MMGYAZKF6F2ERE2G
  amount: 50
  memo: memo2
  ----------
fee: 270
nonce: 0
contract: SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.send-many-memo
sender: SP1AY9TDBY9PZ8GN9MK8BHF46RMW472P2A0P59HJD
totalAmount: 50
transactionHex:<PHONE_NUMBER>040055e4e9abf26df442a9a4d0b8bc86c538438ac2500000000000000000000000000000010e000178313a12f34a3847154f82b58ac1a82d73ddcd14825d8c579b21a6b9b14c2d58509ba6896a2ddcc9fbc6f3493216098a76a61aca910eee5687bdd9f3449d8bf903020000000100021655e4e9abf26df442a9a4d0b8bc86c538438ac2500100000000000000320216debc095099629badb11b9d5335e874d12f1f1d450e73656e642d6d616e792d6d656d6f0973656e642d6d616e79000000010b000000010c00000003046d656d6f02000000056d656d6f3202746f0516fe75a40de34c5ce23fa1c10cb6a8a521e57e6f3304757374780100000000000000000000000000000032

cc/ @MarvinJanssen

I went ahead and merged the PR, @zone117x can you publish a new release? (Unless @MarvinJanssen you are able to)


Process page: Separate Output File links

Describe the bug
In DSpace 7, metadata export leads to a process page, e.g. https://demo7.dspace.org/processes/190, with links to the Output csv and log files. The links are run together as shown in this screenshot with Firefox.

To Reproduce
Steps to reproduce the behavior:

Do this
Then this...

Expected behavior
Please separate these links, preferably on separate lines.
Related work
Link to any related tickets or PRs here.

@tdonohue please assign to us, this is a quick win.
We would like to get this opportunity to also add a manual refresh button as it is often the case that you need to refresh the page waiting for the process to complete

@abollini : Sounds good & I agree that a manual refresh button would be nice on this page.  Assigning to you for your team.


The GraphQL Aggregate function, the count value of string (so also text) properties results to null

count should display the number of property values filled per Aggregated group, but a result of null is consistently returned.

I have this issue with all data types.
This is the query I used:
{
  Aggregate {
    Things {
      MyClass(groupBy: ["someProperty"]) {
        name {
          count
        }
         groupedBy {
          value
          path
        }

      }
    }
  }
}

Current workaround is:
{
  Aggregate {
    Things {
      MyClass (where: {
        path: ["someProperty"]
        operator:Equal
        valueBoolean: true
      }){
        meta {
          count
        }
      }
    }
  }
}

duplicates #974
Closing in favor of the linked issue.


New plugin structure

Our needs and requirements for plugins grow, and when we come to plugin-specific tests (that need plugin-specific files), it would be a good idea to give each plugin its own directory:
plugins
|
└───ecue
|   |   export.js
|   |   import.js
|
└───qlcplus
    |   export.js
    |   fixture-schema.xsd (see #102)
    |   import.js
    └───tests
        |   schema-conformity.js

There would also be plugin test file in the global tests dir that runs all plugin test scripts and that will be called by travis.

Maybe even a tests folder with multiple test files to self-contain each test.

@FloEdelmann see updated file structure

I think it will also be a good idea adding a plugin-manager module that searches the directory for plugin import, export and test scripts and makes the results accessible via module.exports. With node's module management, the file system operations will occur only once per node instance, so we can access plugins more easily and faster.

Possibly, we could allow the tests to fail (e.g. since some attributes are required for a plugin and optional for us). Then, a warning should be output to the user when they try to download a generated fixture file which has warnings for that plugin.


Fix default install location for aws sdk in setup-adapters.sh

Current default install location is based on DEPENDENCY_DIR which is inconsistent with other scripts.
Fix install location to default to system or based on INSTALL_PREFIX

@kgpai can you please help merge this small change? Thanks.


NotificationDialog Text cuts off in IPhone

Bug Report
Description

NotificationDialog text gets cut off in iPhone .
Steps to Reproduce

Access notification dialog in iphone.

Additional Context / Screenshots

Expected Behavior

It should display the complete notification dialog.

Environment

Component Name and Version: NotificationDialog v1.1.0
Browser Name and Version: Safari
Operating System and version (desktop or mobile): IPhone X

@paku-sruti What version of Safari is this happening on?

@bjankord It is 11.1.2.

I'm unable to reproduce on Safari 11 on iOS 11.4. I'll look and see if I can get 11.1.2.

@bjankord I do not have my old device anymore.

I'm also unable to reproduce this on v12.0.1.


Implement without androidx true

Steps to reproduce

Implemented react native share
Not working in android
Androidx true is asked.

Expected behaviour
Tell us what should happen
Actual behaviour
Tell us what happens instead
Environment

React Native version:
React Native platform + platform version: iOS 9.0, Android 5.0, etc

react-native-share
Version: npm version or "master"
Link to repo (highly encouraged)
https://github.com/

@ravifullestop you can provide more info about that?

Problem is that, it is giving me error of androidx, where I am having react native version 0.59. I don't want to enable androix, what is the solution?

Use jetifier in reverse mode https://github.com/mikehardy/jetifier#to-reverse-jetify--convert-node_modules-dependencies-to-support-libraries
You are fighting an uphill battle though. It is time to convert to AndroidX

can we close?


[Lifecycle] Do not fail deployments

Goal
Help user prepare their pre-checks without blocking any deployment
Details
Users that want to adapt Keptn for pre-checks might want to test that they nail down the right set of tasks and evaluations before they can safely run them in production. To support them, we can add a new config option that allows Keptn to run them without blocking the deployment.
Acceptance Criteria

[ ] Add a new entry block-deployment in KeptnConfig
[ ] Default value should be true
[ ] If block-deployment is true, then the status of WorkloadInstance for pre-tasks and -evaluations is based on the respective action results
[ ] If block-deployment is false, then the status of WorkloadInstance for pre-tasks and -evaluations is always set to succeed at the end of their execution

DoD

Documentation is updated
A user can execute pre-checks without blocking deployments if the configuration is enabled

@thisthat would take up this issue

Hey @YashPimple thanks 👍

I'm confused. This is assigned to @YashPimple but Yash says @thisthat will take it up. Concerned that this important safe default is falling through the cracks.
I'm happy to work on this if it needs people - just point me in the right direction of the code please and assign to me.
This is on the critical path for adoption.

any updates on this @YashPimple ?

I've just been hit by something like this again.
In this case, I'm using ArgoCD to roll out my cluster in steps (sync waves).
Keptn rolls out in wave 5. Backstage (and other components) rolls out after that in wave 6.
Keptn could not start (specifically the certificate operator) due to cluster sizing (insufficient CPU).
But now that Keptn components cannot start, the admission webhook endpoints are not available. Everything that comes after this is completely blocked.
PLEASE PLEASE make Keptn safe by default!

Since there was not coding activity on this issue since Dec 11th, setting the ticket again as free for assignment. Please feel free to re-apply for assignment if you want to work on the ticket!


what does the words in the def probability(self, word, words = "", gram = 'uni'): function present

def probability(self, word, words = "", gram = 'uni'):
"""Method to calculate the Maximum Likelihood Probability of n-Grams on the basis of various parameters."""
elif gram == 'bi':
return calc.log((self.bigram[words]+1)/(self.unigram[word]+len(self.unigram)))

I figured it out


Use bigstringaf instead of Lwt_bytes to remove unix dependencies

Lwt_bytes comes with some syscalls such as read/write on Unix file-descriptor. This PR is a simple replacement of Lwt_bytes by bigstringaf which is compatible with MirageOS.

The PR looks fine.
The CI is showing this warning (as error):
File "src/pure/body.ml", line 139, characters 8-24:
139 |         Bigstringaf.blit !buffer 0 new_buffer 0 !length;
              ^^^^^^^^^^^^^^^^
Error (warning 6): labels src_off, dst_off, len were omitted in the application of this function.

and a few more like it. Could you address these? I will then merge.

Yes will do a patch tonight 👍

Done ✔

Thanks!


Added Throwable Stacktrace to ShouldHaveCauseInstance

Check List:

Fixes #1355
Unit tests : YES(no new)
Javadoc with a code example (on API only) : NA
PR meets the contributing guidelines

Similar to #3351 but for shouldHaveCauseInstance.

@joel-costigliola bump 😉

Integrated thanks @shaikhu !


Add py.typed to support PEP-561 (type-hinting)

Summary
This adds support for type-hinting information as laid in PEP-561.
Closes #141
Checklist

[x] I understand and agree to the Code of Conduct.
[x] I have followed the Style Guide for Python Code as best as possible for the submitted code.
[ ] I have added pytest unit tests for any new functionality. NA

(note that docs deploy always fail for PRs from other repos, so this LGTM!)

LGTM!


RFE: Allow passing a different container image ref to use inside the new image

The container image passed into the build may refer to a registry with a host or IP like this:
podman ... quay.io/centos-bootc/bootc-image-builder:latest --type qcow2 --config /config.json \
  --tls-verify=false "${registry_host_on_host}:5000/bootc-insights:latest"

where registry_host_on_host is the way the registry is resolved on the host.  But there are cases where the host or IP used to resolve the registry from inside the running VM is different.  it would be nice to have an option like
quay.io/centos-bootc/bootc-image-builder:latest --image-ref "${registry_host_from_inside_vm}:5000/bootc-insights:latest" "${registry_host_on_host}:5000/bootc-insights:latest"

It would make sense to me for bib to offer a config knob that propagates --target-imageref indeed (this gets a bit...odd I guess of course because right now bib fetches to a cache and then uses that option on its own, but with the local storage I think that conceptually goes away?)
That said

--tls-verify=false

Is going to be a problem in general as we don't yet expose this (I think it's a really bad idea to do)...and the cases that want it usually are virtualized/local test cases that are often better done via fetching via non-network paths like virtiofs mounts.
It's similar to Anaconda fetching RPMs over plain http://; it's just a bad idea and we need to help people setup secure mechanisms.  In the Anaconda case that usually means customizing the ISO config to inject e.g. custom CA certificates and the like.

It would make sense to me for bib to offer a config knob that propagates --target-imageref indeed (this gets a bit...odd I guess of course because right now bib fetches to a cache and then uses that option on its own, but with the local storage I think that conceptually goes away?)

We currently don't use an osbuild cache for container images, everything goes via a container registry.

That said

--tls-verify=false

Is going to be a problem in general as we don't yet expose this on the bootc side (I think it's a really bad idea to do)...and the cases that want it usually are virtualized/local test cases that are often better done via fetching via non-network paths like virtiofs mounts.

That's true. :/

I haven't tried it yet, but a simple workaround would be to define a host 'alias' for the registry hostname.  e.g. on the host:
/etc/hosts
IP_ADDR_ON_HOST real_hostname .... registry_host

in the vm:
/etc/hosts
IP_ADDR_IN_VM real_hostname .... registry_host

Then you can pass in registry_host:5000/image-name:tag which will resolve correctly on both the host and from the VM.
I believe the /etc/hosts configuration can be done in the Containerfile for image-name:tag (assuming you know what IP_ADDR_IN_VM is ahead of time).


Commercial support

Any commercial support can be provided?

Thank you for the question.
As ymmt said in #428, we have no plan for commercial support.


KeyError: 'ns_targets' when creating a reserved domain

When I create a reserved domain, I get the following error while the domain is created in ngrok.
>>> import os
>>> import ngrok
>>> ng = ngrok.Client(os.getenv('API_KEY'))
>>> ng.reserved_domains.create(name="test.example.com")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/takehiko.kodama/Documents/test/ngrok/env/lib/python3.9/site-packages/ngrok/services.py", line 2487, in create
    return ReservedDomain(self._client, result)
  File "/Users/takehiko.kodama/Documents/test/ngrok/env/lib/python3.9/site-packages/ngrok/datatypes.py", line 2694, in __init__
    ReservedDomainCertStatus(client, props["certificate_management_status"])
  File "/Users/takehiko.kodama/Documents/test/ngrok/env/lib/python3.9/site-packages/ngrok/datatypes.py", line 2849, in __init__
    ReservedDomainCertJob(client, props["provisioning_job"])
  File "/Users/takehiko.kodama/Documents/test/ngrok/env/lib/python3.9/site-packages/ngrok/datatypes.py", line 2907, in __init__
    if props["ns_targets"] is not None
KeyError: 'ns_targets'

@takehikokodama we just released a new version of this client. can you update and verify the issue is resolved?

@russorat I confirmed it's been fixed, Thank you!


[BUG] CompoundProcessor limits ingest pipeline length

Describe the bug
I have used the ingest pipeline to rename a large number of fields and I found that it is possible to get a stack overflow exception when running an ingest pipeline with many processors.
I've found similar issue on the Elasticsearch github => https://github.com/elastic/elasticsearch/issues/84274
Expected behavior
Can you fix the problem like the PR below ?
https://github.com/elastic/elasticsearch/pull/84250
Host/Environment (please complete the following information):

OS: Docker
Version : Opensearch 1.3.6

@MaximeWewer thanks for reaching out. We cannot look at code which is not compatible with ALv2.
It would be nice to see the stacktrace of the problem and we can learn about it more.

Hi @saratvemulapalli,
Yes, of course, I understand for license compliance.
Here is an example of my stacktrace when the ingest pipeline stops working :
[2023-02-20T10:22:03,191][ERROR][o.o.b.OpenSearchUncaughtExceptionHandler] [opensearch.node01] fatal error in thread [opensearch[opensearch.node01][write][T#1]], exiting java.lang.StackOverflowError: null         at org.opensearch.ingest.IngestDocument.createTemplateModel(IngestDocument.java:713) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.IngestDocument.renderTemplate(IngestDocument.java:709) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.common.RenameProcessor.execute(RenameProcessor.java:82) ~[?:?]         at org.opensearch.ingest.Processor.execute(Processor.java:65) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.CompoundProcessor.innerExecute(CompoundProcessor.java:161) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.CompoundProcessor.execute(CompoundProcessor.java:147) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.CompoundProcessor.innerExecute(CompoundProcessor.java:161) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.CompoundProcessor.lambda$innerExecute$1(CompoundProcessor.java:179) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.CompoundProcessor.innerExecute(CompoundProcessor.java:152) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.CompoundProcessor.lambda$innerExecute$1(CompoundProcessor.java:179) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.Processor.execute(Processor.java:70) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.CompoundProcessor.innerExecute(CompoundProcessor.java:161) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.CompoundProcessor.execute(CompoundProcessor.java:147) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.CompoundProcessor.innerExecute(CompoundProcessor.java:161) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.CompoundProcessor.lambda$innerExecute$1(CompoundProcessor.java:179) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.CompoundProcessor.innerExecute(CompoundProcessor.java:152) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.CompoundProcessor.lambda$innerExecute$1(CompoundProcessor.java:179) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.Processor.execute(Processor.java:70) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.Processor.execute(Processor.java:70) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.CompoundProcessor.innerExecute(CompoundProcessor.java:161) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.CompoundProcessor.execute(CompoundProcessor.java:147) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.CompoundProcessor.innerExecute(CompoundProcessor.java:161) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.CompoundProcessor.lambda$innerExecute$1(CompoundProcessor.java:179) ~[opensearch-1.2.4.jar:1.2.4]         at org.opensearch.ingest.CompoundProcessor.innerExecute(CompoundProcessor.java:152) ~[opensearch-1.2.4.jar:1.2.4] fatal error in thread [opensearch[opensearch.node01][write][T#1]], exiting java.lang.StackOverflowError         at org.opensearch.ingest.IngestDocument.createTemplateModel(IngestDocument.java:713)         at org.opensearch.ingest.IngestDocument.renderTemplate(IngestDocument.java:709)         at org.opensearch.ingest.common.RenameProcessor.execute(RenameProcessor.java:82)         at org.opensearch.ingest.Processor.execute(Processor.java:65)         at org.opensearch.ingest.CompoundProcessor.innerExecute(CompoundProcessor.java:161)         at org.opensearch.ingest.CompoundProcessor.execute(CompoundProcessor.java:147)         at org.opensearch.ingest.CompoundProcessor.innerExecute(CompoundProcessor.java:161)         at org.opensearch.ingest.CompoundProcessor.lambda$innerExecute$1(CompoundProcessor.java:179)         at org.opensearch.ingest.CompoundProcessor.innerExecute(CompoundProcessor.java:152)         at org.opensearch.ingest.CompoundProcessor.lambda$innerExecute$1(CompoundProcessor.java:179)         at org.opensearch.ingest.Processor.execute(Processor.java:70)         at org.opensearch.ingest.CompoundProcessor.innerExecute(CompoundProcessor.java:161)         at org.opensearch.ingest.CompoundProcessor.execute(CompoundProcessor.java:147)         at org.opensearch.ingest.CompoundProcessor.innerExecute(CompoundProcessor.java:161)         at org.opensearch.ingest.CompoundProcessor.lambda$innerExecute$1(CompoundProcessor.java:179)         at org.opensearch.ingest.CompoundProcessor.innerExecute(CompoundProcessor.java:152)         at org.opensearch.ingest.CompoundProcessor.lambda$innerExecute$1(CompoundProcessor.java:179)         at org.opensearch.ingest.Processor.execute(Processor.java:70)

Looks like a bug. Looking for someone to write a unit test that reproduces this problem and a fix, without looking at any non-APLv2 code, please.

I poked at the CompoundProcessor code for a few minutes. It's not a simple matter of turning it into a for-loop, since some processors may do things that we want to do asynchronously, like network calls to get some extra data to enrich documents.
I'll give it some more thought.
It would be so much easier if Java had tail-call optimization. :)

We should probably address this by adding a method to Processor (and SearchRequestProcessor and SearchReponseProcessor) like:
default boolean isSynchronous() {
  return true;
}

For search pipelines, we have "handy" async subinterfaces that flip the sync-vs-async abstractness, so we can override isSynchronous there.
For ingest processors, we could similarly add a subinterface that flips things. Right now, we don't have any async ingest processors AFAIK, but e.g. the ML inference ingest processor (and probably the GeoIP ingest processor) should be async, to avoid holding the transport_worker thread.
Then, for both cases, we can process a whole chain of synchronous processors in a while loop, only using callbacks for async processors. Since the async processors should be running on a task executor, the callback should execute on a different thread (with a fresh stack) anyway.

For CompoundProcessor we are using the execute method with callback via BiConsumer only. Can we use the same for the all type [sync + async] processor, and implement a mechanism where Compound processor will wait for the response from BiConsumer via Countdown latch and after that execute the next processor. With this way we can move this recursive call to iterative call as well.
Simple snippet to explain idea :
void innerExecute(int currentProcessor, IngestDocument ingestDocument, BiConsumer<IngestDocument, Exception> handler) {
    for(int i = 0 ; i < processors ; i++) {
        CountDownLatch latch = new CountDownLatch(1);
        ...
        processor.execute(ingestDocument, (result, e) -> {
            ...
            latch.countDown();
        });
        latch.wait();
    }
}

@msfroh  Thoughts? Let me know if I have missed something over here.
cc: @shwetathareja / @ankitkala

@msfroh Thoughts? Let me know if I have missed something over here.

The difficulty with that approach is that the latch.wait() blocks the current thread, which is what the async processors are trying to avoid.
If you have an async ingest processor that makes a long network call (e.g calling out to a remote ML inference service to compute embeddings), it could exhaust the available indexing threads. Normally the remote call would not hold a thread, but only need to execute the callback on a threadpool once the call completes.


[camera] crash of camera preview on camera controller disposing

Steps to reproduce

Create camera with preview, start video recording.
try to dispose camera controller and rebuild state using for example

  unawaited(controller?.dispose());
  setState(() {});

Expected results
App should stop recording without crash
Actual results
App crashed with exception
Code sample
Code sample
Tapping stop video causes crash.
import 'dart:async';

import 'package:camera/camera.dart';
import 'package:flutter/material.dart';

class CameraExampleHome extends StatefulWidget {
  const CameraExampleHome({super.key});

  @override
  State<CameraExampleHome> createState() => _CameraExampleHomeState();
}

class _CameraExampleHomeState extends State<CameraExampleHome>
    with WidgetsBindingObserver, TickerProviderStateMixin {
  CameraController? controller;

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addObserver(this);

    Future(
      () {
        onNewCameraSelected(_cameras.first).then((_) => startVideoRecording()).then((_) {
          if (mounted) {
            setState(() {});
          }
        });
      },
    );
  }

  @override
  void dispose() {
    WidgetsBinding.instance.removeObserver(this);
    super.dispose();
  }

  // #docregion AppLifecycle
  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    final CameraController? cameraController = controller;

    // App state changed before we got the chance to initialize.
    if (cameraController == null || !cameraController.value.isInitialized) {
      return;
    }

    if (state == AppLifecycleState.inactive) {
      cameraController.dispose();
    } else if (state == AppLifecycleState.resumed) {
      _initializeCameraController(cameraController.description);
    }
  }

  // #enddocregion AppLifecycle

  @override
  Widget build(BuildContext context) => Column(
        children: <Widget>[
          Expanded(
            child: Center(
              child: _cameraPreviewWidget(),
            ),
          ),
          _captureControlRowWidget(),
        ],
      );

  Widget _cameraPreviewWidget() =>
      controller == null ? const Offstage() : CameraPreview(controller!);

  /// Display the control bar with buttons to take pictures and record videos.
  Widget _captureControlRowWidget() {
    final CameraController? cameraController = controller;

    return Row(
      mainAxisAlignment: MainAxisAlignment.spaceEvenly,
      children: <Widget>[
        IconButton(
          icon: const Icon(Icons.stop),
          color: Colors.red,
          onPressed: cameraController != null &&
                  cameraController.value.isInitialized &&
                  cameraController.value.isRecordingVideo
              ? onStopButtonPressed
              : null,
        ),
      ],
    );
  }

  Future<void> onNewCameraSelected(CameraDescription cameraDescription) async => controller != null
      ? controller!.setDescription(cameraDescription)
      : _initializeCameraController(cameraDescription);

  Future<void> _initializeCameraController(CameraDescription cameraDescription) async {
    final CameraController cameraController = CameraController(
      cameraDescription,
      ResolutionPreset.low,
    );

    controller = cameraController;

    cameraController.addListener(() {
      if (mounted) {
        setState(() {});
      }
    });

    await cameraController.initialize();

    if (mounted) {
      setState(() {});
    }
  }

  void onStopButtonPressed() {
    unawaited(controller?.dispose());
    setState(() {});
  }

  Future<void> startVideoRecording() async {
    final CameraController? cameraController = controller;

    if (cameraController == null || !cameraController.value.isInitialized) {
      return;
    }

    if (cameraController.value.isRecordingVideo) {
      return;
    }

    await cameraController.startVideoRecording();
  }
}

class CameraApp extends StatelessWidget {
  const CameraApp({super.key});

  @override
  Widget build(BuildContext context) => const MaterialApp(
        home: CameraExampleHome(),
      );
}

List<CameraDescription> _cameras = <CameraDescription>[];

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  _cameras = await availableCameras();
  runApp(const CameraApp());
}

Screenshots or Video

Screenshots / Video demonstration
Launch:

After stop tap:

Logs
Logs
======== Exception caught by widgets library =======================================================
The following CameraException was thrown building ValueListenableBuilder<CameraValue>(state: _ValueListenableBuilderState<CameraValue>#b2049):
CameraException(Disposed CameraController, buildPreview() was called on a disposed CameraController.)

The relevant error-causing widget was:
  CameraPreview CameraPreview:file:///D:/work/flutter/camera_switching_test/lib/main.dart:71:47
When the exception was thrown, this was the stack:
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 297:3       throw_
packages/camera/src/camera_controller.dart 870:7                                  [_throwIfNotInitialized]
packages/camera/src/camera_controller.dart 623:5                                  buildPreview
packages/camera/src/camera_preview.dart 35:57                                     <fn>
packages/flutter/src/widgets/value_listenable_builder.dart 181:19                 build

Flutter Doctor output
Doctor output
[√] Flutter (Channel stable, 3.19.5, on Microsoft Windows [Version 10.0.22631.3296], locale en-US)
    • Flutter version 3.19.5 on channel stable at C:\Programs\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 300451adae (11 days ago), 2024-03-27 21:54:07 -0500
    • Engine revision e76c956498
    • Dart version 3.3.3
    • DevTools version 2.31.1

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at C:\Programs\android\sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = C:\Programs\android\sdk
    • Java binary at: C:\Programs\android-studio\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-b2043.56-10550314)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.9.0)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.9.34607.119
    • Windows 10 SDK version 10.0.22621.0

[√] Android Studio (version 2023.1)
    • Android Studio at C:\Programs\android-studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-b2043.56-10550314)

[√] IntelliJ IDEA Ultimate Edition (version 2024.1)
    • IntelliJ at D:\Programs\JetBrains\IDEA
    • Flutter plugin version 78.5.1
    • Dart plugin version 241.15845

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.22631.3296]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 123.0.6312.106
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 123.0.2420.81

[√] Network resources
    • All expected network resources are available.

• No issues found!

Reproduced the issue with package sample code on Web and Android apps (need to update stopVideoRecording() method as the given onStopButtonPressed() method above.
The current package version: camera: ^0.10.5+9

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.19.5, on macOS 14.1 23B74 darwin-x64, locale en-VN)
    • Flutter version 3.19.5 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 300451adae (8 days ago), 2024-03-27 21:54:07 -0500
    • Engine revision e76c956498
    • Dart version 3.3.3
    • DevTools version 2.31.1

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15C500b
    • CocoaPods version 1.15.2

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

[✓] Android Studio (version 2023.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)

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

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 14.1 23B74 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 123.0.6312.106

[✓] Network resources
    • All expected network resources are available.

• No issues found!

[!] Flutter (Channel master, 3.22.0-6.0.pre.22, on macOS 14.1 23B74 darwin-x64, locale en-VN)
    • Flutter version 3.22.0-6.0.pre.22 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision c13e3fe142 (52 minutes ago), 2024-04-08 22:31:12 -0400
    • Engine revision 0226114d5c
    • Dart version 3.5.0 (build 3.5.0-36.0.dev)
    • DevTools version 2.34.1
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
    • Xcode at /Applications/Xcode15.3.app/Contents/Developer
    • Build 15E204a
    • CocoaPods version 1.15.2

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

[✓] Android Studio (version 2023.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)

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

[✓] Connected device (3 available)
    • RMX2001 (mobile) • EUYTFEUSQSRGDA6D • android-arm64  • Android 11 (API 30)
    • macOS (desktop)  • macos            • darwin-x64     • macOS 14.1 23B74 darwin-x64
    • Chrome (web)     • chrome           • web-javascript • Google Chrome 123.0.6312.107

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

  @override
  Widget build(BuildContext context) => Column(
        children: <Widget>[
          Expanded(
            child: Center(
              child: _cameraPreviewWidget(),
            ),
          ),
          _captureControlRowWidget(),
        ],
      );

  Widget _cameraPreviewWidget() =>
      controller == null ? const Offstage() : CameraPreview(controller!);

This code is using controller unconditionally, but it's not valid to use a disposed object. The calling code should be nulling out the controller when disposing it, so that other code in the app isn't continuing to try to use it.
Closing as this is a bug in the provided code rather than the plugin.


Add description in qos-pod-4.yaml

Add description that distinguish between container-1 and container-2 make it easy to read.
Signed-off-by: ydFu<EMAIL_ADDRESS>

@sftim
Thank for review this PR.

@sftim
Thank for review this PR.

/assign @zparnold
Thanks.

/assign @zparnold
Thanks.

/assign @tengqm
Please help review this PR.
Let me know if there is anything need to be revised.

@ydFu TBH, I don't think we really need comments like these. The manifest is already straightforward.

Thanks for your guidance.
At the time I thought the code in qos-pod-4.yaml of this article in configure-pod-container/quality-service-pod.md that is for
introduction to getting started,so just added description to replace the special blank line.

@ydFu All the YAML manifests under the examples directory are associated with some contexts. These examples are provided to save the users some time on manually creating every YAML file. In this case, I'd prefer leaving some room for users to digest the manifests. Comments are only necessary when something unusual or something worth noting.

@tengqm
Thank you for your instruction and advice.
It let me know the norms in the YAML manifests under the examples directory.
The next submission is similar the adjustment,I will pay special attention.


ARTEMIS-4354 Allow the recovery XAResource to be osing and reconnceting

the underlying CLientSession.

Couple of typos in the commit message.


[BUG]: Improve responsiveness of landing page

Please describe the bug

Describe the device where you encountered the bug on
MacOS Sonoma, Chrome
Relevant log output and/or screenshot(s)
No response

@ShreyaPrasad1209 Is there an issue from backend? Can you describe further as I didn't get it from the screenshot?
Edit: are you talking about CSS responsiveness? To render the UI better?

@ShreyaPrasad1209 Is there an issue from backend? Can you describe further as I didn't get it from the screenshot?
Edit: are you talking about CSS responsiveness? To render the UI better?

@jatinkrmalik yes I'm talking about CSS responsiveness. This is not related to backend.


Issue with ConstBufferPointer

I would like to convert a GLSL shader that uses buffer_reference to Slang. However, the result I am getting is incorrect. I have the impression that there is a missing indirection, but I have a hard time seeing where the problem is.
Can you see if something is wrong in the following code?

GLSL
Slang

In GLSL the layout looks like this:
struct PrimMeshInfo
{
  uint64_t vertexAddress;
  uint64_t indexAddress;
};

struct SceneDescription
{
  uint64_t materialAddress;
  uint64_t instInfoAddress;
  uint64_t primInfoAddress;
  Light    light;
};

layout(buffer_reference, scalar) readonly buffer Materials { Material m[]; };
layout(buffer_reference, scalar) readonly buffer InstanceInfos { InstanceInfo i[]; };
layout(buffer_reference, scalar) readonly buffer PrimMeshInfos { PrimMeshInfo i[]; };
layout(buffer_reference, scalar) readonly buffer Vertices { Vertex v[]; };
layout(buffer_reference, scalar) readonly buffer Indices { uvec3 i[]; };

layout(set = 0, binding = B_tlas) uniform accelerationStructureEXT topLevelAS;
layout(set = 0, binding = B_outImage, rgba32f) uniform image2D image;
layout(set = 0, binding = B_frameInfo, scalar) uniform FrameInfo_ { FrameInfo frameInfo; };
layout(set = 0, binding = B_sceneDesc, scalar) readonly buffer SceneDesc_ { SceneDescription sceneDesc; };

Which was converted to Slang
struct PrimMeshInfoSlang
{
    ConstBufferPointer<Vertex> vertexAddress;
    ConstBufferPointer<uint3> indexAddress;
};

struct SceneDescriptionSlang
{
    ConstBufferPointer<Material> materialAddress;
    ConstBufferPointer<InstanceInfo> instInfoAddress;
    ConstBufferPointer<PrimMeshInfoSlang> primInfoAddress;
    Light light;
};

// Bindings
[[vk::push_constant]]  ConstantBuffer<PushConstant> pushConst;
[[vk::binding(B_tlas)]] RaytracingAccelerationStructure topLevelAS;
[[vk::binding(B_outImage)]] RWTexture2D<float4> outImage;
[[vk::binding(B_frameInfo)]] ConstantBuffer<FrameInfo> frameInfo;
[[vk::binding(B_sceneDesc)]] StructuredBuffer<SceneDescriptionSlang> sceneDesc;

To retrieve the material, in GLSL the syntax would be like:
Materials   materials = Materials(sceneDesc.materialAddress);
InstanceInfos iInfo_ = InstanceInfos(sceneDesc.instInfoAddress);
InstanceInfo  iInfo  = iInfo_.i[payload.instanceIndex];
Material    mat  = materials.m[iInfo.materialID];

In Slang, it was converted to
InstanceInfo instInfo = sceneDesc[0].instInfoAddress[payload.instanceIndex];
Material mat = sceneDesc[0].materialAddress[instInfo.materialID];

But mat does not contain the expected values in Slang.
In the following ZIP, I've added all shader versions, including the HLSL which is working.
ray_query.zip

It appears to be a data stride / layout issue. I recommend double check the address computation in the generated glsl code and look for how strides are calculated. I suspect something like indexAddress is having a 16 bytes stride instead of 12, or somewhere inside Vertex we are following a different layout than what the data is assumed.

In this particular case, it is worth checking the stride for InstanceInfo and Material.
Make sure instInfo.materialID is at least correct.

I'm using emit-spirv-directly,  do you suggest using `SpirV-cross' to generate the GLSL code? In case the stride is different, isn't there a flag in SpirV to do things the same way as GLSL?
Tomorrow I will check if instInfo.materialID contains the right values.

Yes, the easiest way is to use spirv-cross to generate glsl and examine the pointer offset.

I tested spriv-cross on the output, but it generated an error.
SPIRV-Cross threw an exception: VariablePointers capability is not supported in GLSL.

I decided to use -target glsl and not using -emit-spirv-directly . This is generating the same visual error, but I could extract the GLSL code for it.
Here is the GLSL layouts from the Slang output
layout(buffer_reference, buffer_reference_align = 16, std430) readonly buffer BufferPointer_Material_0_3
{ _735 _data; };

layout(buffer_reference, buffer_reference_align = 16, std430) readonly buffer BufferPointer_InstanceInfo_0_4
{ layout(row_major) _753 _data; };

layout(buffer_reference, buffer_reference_align = 16, std430) readonly buffer BufferPointer_PrimMeshInfoSlang_0_8
{ _771 _data; };

layout(buffer_reference, buffer_reference_align = 16, std430) readonly buffer BufferPointer_Vertex_0_5
{ _779 _data; };

layout(buffer_reference, buffer_reference_align = 16, std430) readonly buffer BufferPointer_S6_7
{ uvec3 _data; };

and some structs
layout(buffer_reference, std430) buffer _779
{
    vec3 position_1;
    vec3 normal_0;
    vec2 t_0;
};

layout(buffer_reference, std430) buffer _735
{
    vec3 albedo_0;
    float roughness_0;
    float metallic_0;
};
```

In the original GLSL code, no `buffer_reference_align` were defined, so I compiled the GLSL shader to SpirV and spriv-cross back to see how it looks.

Here are the layouts from the working GLSL

layout(buffer_reference, buffer_reference_align = 16, scalar) readonly buffer Vertices
{
_807 v[];
};
layout(buffer_reference, buffer_reference_align = 4, scalar) readonly buffer Indices
{
uvec3 i[];
};
layout(buffer_reference, scalar) buffer _807
{
vec3 position;
vec3 normal;
vec2 t;
};
layout(buffer_reference, buffer_reference_align = 16, std430) readonly buffer PrimMeshInfos
{
_1025 i[];
};
layout(buffer_reference, std430) buffer _1025
{
uint64_t vertexAddress;
uint64_t indexAddress;
};
layout(buffer_reference, buffer_reference_align = 4, scalar) readonly buffer Materials
{
_1129 m[];
};
layout(buffer_reference, buffer_reference_align = 4, scalar) readonly buffer InstanceInfos
{
_1177 i[];
};
layout(buffer_reference, std430) buffer _1177
{
mat4 transform;
int materialID;
};
layout(buffer_reference, std430) buffer _1129
{
vec3 albedo;
float roughness;
float metallic;
};

I can see two things
* buffer_reference_align = 4 : sometimes it is 4 instead of 16
* scalar : uses `scalar` instead of `std430`, but the `-force-glsl-scalar-layout` was set when compiling

But the biggest difference is how the data get retrieve

This is the GLSL (spirv-cross from original GLSL)

Vertices vertices = Vertices(pinfo.vertexAddress);
Indices indices = Indices(pinfo.indexAddress);
vec3 barycentrics = vec3((1.0 - barycentricCoords.x) - barycentricCoords.y, barycentricCoords.x, barycentricCoords.y);
uvec3 triangleIndex = indices.i[primitiveID];
_807 _851;
_851.position = vertices.v[triangleIndex.x].position;
_851.normal = vertices.v[triangleIndex.x].normal;
_851.t = vertices.v[triangleIndex.x].t;
_807 v0 = _851;
_807 _858;
_858.position = vertices.v[triangleIndex.y].position;
_858.normal = vertices.v[triangleIndex.y].normal;
_858.t = vertices.v[triangleIndex.y].t;
_807 v1 = _858;
_807 _865;
_865.position = vertices.v[triangleIndex.z].position;
_865.normal = vertices.v[triangleIndex.z].normal;
_865.t = vertices.v[triangleIndex.z].t;
_807 v2 = _865;
vec3 pos0 = v0.position;
vec3 pos1 = v1.position;
vec3 pos2 = v2.position;

And this is how Slang does it. Note the arithmetic instead of data access.

float _S9 = barycentricCoords_0.x;
float _S10 = barycentricCoords_0.y;
float _S11 = (1.0 - _S9) - _S10;
uint64_t _S12 = uint64_t(sceneDesc_0._data[0].primInfoAddress_0);
BufferPointer_PrimMeshInfoSlang_0_8 _S13 = BufferPointer_PrimMeshInfoSlang_0_8(_S12 + uint64_t(int64_t(16 * meshID_0)));
_771 _848;
_848.vertexAddress_0._data.position_1 = _S13._data.vertexAddress_0._data.position_1;
_848.vertexAddress_0._data.normal_0 = _S13._data.vertexAddress_0._data.normal_0;
_848.vertexAddress_0._data.t_0 = _S13._data.vertexAddress_0._data.t_0;
_848.indexAddress_0._data = _S13._data.indexAddress_0._data;
_771 _S14 = _848;
uint64_t _S15 = uint64_t(_S14.indexAddress_0);
BufferPointer_S6_7 _S16 = BufferPointer_S6_7(_S15 + uint64_t(int64_t(12 * primitiveID_0)));
uvec3 _S17 = _S16._data;
int _S18 = int(_S17.x);
uint64_t _S19 = uint64_t(_S14.vertexAddress_0);
BufferPointer_Vertex_0_5 _S20 = BufferPointer_Vertex_0_5(_S19 + uint64_t(int64_t(32 * _S18)));
_779 _923;
_923.position_1 = _S20._data.position_1;
_923.normal_0 = _S20._data.normal_0;
_923.t_0 = _S20._data.t_0;
_779 _S21 = _923;
int _S22 = int(_S17.y);
uint64_t _S23 = uint64_t(_S14.vertexAddress_0);
BufferPointer_Vertex_0_5 _S24 = BufferPointer_Vertex_0_5(_S23 + uint64_t(int64_t(32 * _S22)));
_779 _958;
_958.position_1 = _S24._data.position_1;
_958.normal_0 = _S24._data.normal_0;
_958.t_0 = _S24._data.t_0;
_779 _S25 = _958;
int _S26 = int(_S17.z);
uint64_t _S27 = uint64_t(_S14.vertexAddress_0);
BufferPointer_Vertex_0_5 _S28 = BufferPointer_Vertex_0_5(_S27 + uint64_t(int64_t(32 * _S26)));
_779 _993;
_993.position_1 = _S28._data.position_1;
_993.normal_0 = _S28._data.normal_0;
_993.t_0 = _S28._data.t_0;
_779 _S29 = _993;
vec3 pos0_0 = _S21.position_1;
vec3 pos1_0 = _S25.position_1;
vec3 pos2_0 = _S29.position_1;

It is unclear whether the `scalar` would solve the issue, as there is a disagreement between stride and alignment. While modifying all structs to be aligned to 16 is possible, it is not always feasible or recommended due to padding constraints. For instance, the indices are packed as `uvec3`, and changing this would require modifying the data access method.

Alignments can be explicitly specified in ConstBufferPointer type as ConstBufferPointer<T, alignment>.
Perhaps try explicitly specify the alignments to 4 in the shader code?

I tried, by doing the following
    ConstBufferPointer<Material, 4> materialAddress;

But I can see two layouts spitting out for the material, one with an alignment of 4 and one with 16
layout(buffer_reference, std430, buffer_reference_align = 4) readonly buffer BufferPointer_Material_0_3
{
    Material_0 _data;
};

layout(buffer_reference, std430, buffer_reference_align = 16) readonly buffer BufferPointer_Material_0_9
{
    Material_0 _data;
};

and unfortunately, it is using the wrong one
        BufferPointer_Material_0_9 _S66 = (BufferPointer_Material_0_9((_S65 + uint64_t(20 * _S60.materialID_0))));

I am adding true/complete pointer support to SPIRV, and will take care of this issue along the way.

General pointer type (T*) is now supported.
Currently this is only support on the direct-to-spirv backend. GLSL backend to come.

Sorry to jump in this one that seems to be closed but I have the same issue and if I try to use pointers as suggested still not working for me, I have the same case as the first post just struct of uint64_t vertexAddress, what would be the equivalent with the new pointer implementation? I tried to cast it to (Vertex*) but seems not correct, still the code compiles but in screen the cube is broken as show in the example, the padding is correct only to mat4 before the address declaration. Any help is appreciated.

You can declare Vertex* vertices directly in a uniform buffer. Casting uint64 to Vertex* should also work.
everything accessed through a buffer is laid out using std430 rules by default. I suggest double checking the generated spirv to make sure the offsets match what your host code expects.
If you find Slang generates any code that doesn’t seem to be correct, please share a reproducer and we can take a look.

Thank you so much for the fast reply, I will do again with the latest version and check. I will let you know.  Jic I left my code attached including the glsl that works.
meshSlangTest.zip
originalGLSL.mesh.txt

everything accessed through a buffer is laid out using std430 rules by default. I suggest double checking the generated spirv to make sure the offsets match what your host code expects.

From my attempts at compiling raw pointers to SPIR-V, they are using the natural layout variant of the type, which is equivalent to scalar in GLSL.
Also, this comment says that the natural layout matches how types are stored in storage buffers and structured buffers, which I believe is (at least partly) wrong.
The GLSL specs state that storage buffers use std430 by default when targetting SPIR-V (with scalar added by the GL_EXT_scalar_block_layout extension):

The initial state of compilation when generating SPIR-V is as if the following were declared:
layout(std140, column_major) uniform;
layout(std430, column_major) buffer;
However, when push_constant is declared, the default layout of the buffer will be std430. There is no method to globally set this default.

For the strucured buffers part, I'm not sure as I'm not familiar enough with D3D/HLSL.


Change logged errors to consistently provide error lengths.

Updated TagHelper errors to no longer highlight the entire tag as an error, instead just the tag name is marked as an error. This is now consistent with nested tags in @{ ... } errors.
Updated RazorError and corresponding error logging constructs to disallow creation without providing lengths.
Updated TagHelperDescriptorResolver and related classes to properly determine assembly locations within directives. This allows for exact error locations in the @addTagHelper directive.
Update tests to reflect new length provided RazorErrors.
Added new tests to validate TagHelperDescriptorResolver properly calculates assembly location.

#386

/cc @dougbu or @pranavkm or @ajaybhargavb

Had a cursory glance at tests but code looks :shipit:


Upgrade to sqlite3 version 3.39.4

@simolus3  Thanks. I am currently having problems pushing the new version and not enough time to debug it currently. It might be related to me using macOS 13 as build host. If you want, I can add you as second owner to the CocoaPods project and give you access to this repo. Then you can take over when I don't have enough time ;)

Hi. Sure, feel free to add me<EMAIL_ADDRESS>and I'll try to build and push the current version.

Hi, great, I added you here as collaborator and to CocoaPods Trunk.

Thanks. I've pushed the release and tagged it in Git.


⚠ SolarOscp has degraded performance

In 11fd138, SolarOscp ($SOLAROSCP_URL) experienced degraded performance:

HTTP code: 200
Response time: 152 ms

Resolved: SolarOscp performance has improved in 6fcb648 after 13 minutes.


Constant time Elgamal Encryption

Addresses CRYP 126.
Note that since regular Elgamal is not homomorphic depositing or withdrawing an EncryptedAmount will invalidate the regular Elgamal cipher text.

Closing in favour of the PR that's based on develop.


Add CONDUCT.md

I'd like to ensure that contributors are aware of the community expectations when interacting with people in relation to Pretender.

:+1: :muscle: :muscle:

:tada: :+1: :tada:

I don't like leaving +1 type comments, but I think this is great. Thanks for all the hard work you and the contributors to pretenderjs have put in, I know I've benefited a lot from using it in multiple projects!


[SPARK-18715][ML]Fix AIC calculations in Binomial GLM

The AIC calculation in Binomial GLM seems to be off when the response or weight is non-integer: the result is different from that in R. This issue arises when one models rates, i.e, num of successes normalized over num of trials, and uses num of trials as weights. In this case, the effective likelihood is  weight * label ~ binomial(weight, mu), where weight = number of trials, and weight * label = number of successes and mu = is the success rate.
@srowen @sethah @yanboliang @HyukjinKwon @zhengruifeng
What changes were proposed in this pull request?
I suggest changing the current aic calculation for the Binomial family from
-2.0 * predictions.map { case (y: Double, mu: Double, weight: Double) =>
        weight * dist.Binomial(1, mu).logProbabilityOf(math.round(y).toInt)
      }.sum()

to the following which generalizes to the case of real-valued response and weights.
      -2.0 * predictions.map { case (y: Double, mu: Double, weight: Double) =>
        val wt = math.round(weight).toInt
        if (wt == 0){
          0.0
        } else {
          dist.Binomial(wt, mu).logProbabilityOf(math.round(y * weight).toInt)
        }
      }.sum()

How was this patch tested?
I will write the unit test once the community wants to include the proposed change. For now, the following modifies existing tests in weighted Binomial GLM to illustrate the issue. The second label is changed from 0 to 0.5.
val datasetWithWeight = Seq(
    (1.0, 1.0, 0.0, 5.0),
    (0.5, 2.0, 1.0, 2.0),
    (1.0, 3.0, 2.0, 1.0),
    (0.0, 4.0, 3.0, 3.0)
  ).toDF("y", "w", "x1", "x2")

val formula = (new RFormula()
  .setFormula("y ~ x1 + x2")
  .setFeaturesCol("features")
  .setLabelCol("label"))
val output = formula.fit(datasetWithWeight).transform(datasetWithWeight).select("features", "label", "w")

val glr = new GeneralizedLinearRegression()
    .setFamily("binomial")
    .setWeightCol("w")
    .setFitIntercept(false)
    .setRegParam(0)

val model = glr.fit(output)
model.summary.aic

The AIC from Spark is 17.3227, and the AIC from R is 15.66454.

Jenkins, add to whitelist

Test build #3470 has started for PR 16149 at commit 7fdab86.

Test build #3470 has finished for PR 16149 at commit 7fdab86.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

@srowen @sethah
Thanks for the comments. Yes, the major use case is to be able to handle multiple trials (integer weight, real-valued response). Indeed, a better way to do this is through offset, which I have proposed to do in this JIRA SPARK-18710. Please let me know if this is worth pursuing.
I have submitted another two commits.

One commit makes minimal modification to the exiting Binomial GLM test so that one response record is now non-integer. This test still failed because the deviance residual calculation seems to work only for y in (0, 1)
The second commit fixes the issue in calculating the deviance. But I think the code can be improved, especially regarding the function y_logy. What's the best way to create a utility function like this? Please advise.

With the two commits, all tests now passed, including the ones on AIC and the deviance.

What you have is fine (though I might name it ylogy or something). I don't see other places in the code that compute x ln x or something similar, so it's OK to make this a private function. You might just make a private def of a local helper method rather than instantiate a lambda, but the difference is trivial.

@srowen @sethah
I have cleaned up the change as suggested. Please review and let me know if there is any question.

@srowen We can add a note to the doc for setWeightCol. We could also use logInfo about weights needing to be integer values for Binomial family, but that may not be very effective.

@sethah @srowen I have added a comment to the weigthCol doc for the Binomial case.
I also updated to test the case weight < 0.5, i.e., round(weight) = 0. All tests passed.

@sethah @srowen
I updated the documentation. I think we have everything needed for this fix. Please merge and close this PR if there is no other issue. Thanks much for all the comments.

@sethah Would you please review this? Thanks.

@srowen @sethah
One more commit that adds a test case with weight = 4.7 which will round up to 5 to test the case @sethah described. All tests passed.  I'm pretty sure R's rounding is the same as what I'm doing here. Please merge if there is no other issue. Thanks.

Test build #3495 has started for PR 16149 at commit 6e6c48b.

Test build #3495 has finished for PR 16149 at commit 6e6c48b.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

LGTM

Merged to master

@srowen @sethah
Thanks for all the helpful discussions!


Native transparency not respected

Hyprland Version
 System/Version info
Hyprland, built from branch main at commit 38911d6df4977b6b00557cc887eb151d032e505b  (box: fix noNegativeSize).
Date: Fri May 10 13:59:01 2024
Tag: v0.40.0-55-g38911d6d, commits: 4661

flags: (if any)

Bug or Regression?
Bug
Description
When using hyprwinwrap to display an audio visualizer on the background(for example glava), windows that have native transparency(alacritty, kitty etc.) will block the rendering of such apps.
By native transparency I am referring to a setting in alacritty/kitty config.
If transparency is applied via a window rule it works fine.
This happens in the tiled mode only, if you make the window floating, it'll behave properly.
If you fullscreen the app whilst it's tiled, visualizer won't be rendered either, but if fullscreened while the app is floating it should still be visible.
How to reproduce
Take an app with native window transparency and set it to a number less than 1.
Make sure that the app is not made transparent by the hyprland config via windowrule.
Have an app rendered on the background layer(can be achieved via hyprwinwrap).
Open the app with native transparency and put it in the tiling mode.
This should now block the rendering of a window placed on the background layer by hyprwinwrap.
Crash reports, logs, images, videos

this is a hyprwinwrap bug and is iirc reported there. If not, report it over there


Bot Framework web chat Channel

I created a robot with Luis functionality and opened the web chat channel, and now I'm going to add the Microsoft Speech API Service to implement speech recognition functionality, but I find I can't add a microphone to the web chat interface request Help

This repo is related to the documentation and documentation-related issues. You should ask your question on Stack Overflow per the instructions at https://docs.microsoft.com/en-us/bot-framework/resources-links-help.
Thanks!

Yes, Stack Overflow is the quicker way to get replies to your question. Also, we have a sample that illustrates how to put the microphone in Web Chat here: https://github.com/MicrosoftDocs/bot-framework-docs/issues/65#issuecomment-338737670

I tried, then jump to the page using the sample code, and did not achieve the expected effect, the Web Chat control text input box is not as you attach the picture to become a microphone


#8 added yassirakh.eth builder page

Description
Concise description of proposed changes, We recommend using screenshots and videos for better description
Additional Information

[ ] Adds a new profile builder page for 0x55fF7E28e7cd43C104dC89Aa69285E0E6EBa064e

Related Issues
Follows instruction for issue  #8
Your ENS/address: yassirakh.eth

@technophile-04  @carletex thank you guys for the comments, I did push the changes needed.


Disucussion: change scheduler-name in deployment yaml is not easy to use

Change scheduler-name in deployment yaml is not easy to use.
If user want to install wordpress from bitnami, he cannot run
helm install wp -n wp5 community/wordpress  --create-namespace

He should run:
helm install wp -n wp5 community/wordpress --set global.imageRegistry=docker.m.daocloud.io --set schedulerName=hwameistor-scheduler  --set mariadb.schedulerName=hwameistor-scheduler  --create-namespace

The config is very diffcult for user.

@yankay Thanks for your feedback
For now, we will add AdmissionController WebhookConfiguration to solve this question.


Fix JumpyJet collision detection

PR Details

Refactor the code, fix some logic error (that I see during the walkthrough) and fix bugs from collider detection
Description

I'll just focus on the bugs I fix, refactoring and fixing logic error are just trivial and does not break the game

The original JumpyJet project has an overlapping collider on the PipeSet prefab and for some reason when the player goes through that overlapped area, the collision detection sometimes(?) does not broadcast GameOverEventKey.
And for the same reason, sometimes, too, the score will be increased to 1 right on game restarted when the player dies on the Pipe
Overlapping collider

Player goes through that overlapping area

Player gains a score on game restarted when it dies on the Pipe

So what I do now is to move the PassedTrigger collider past the pipe and detect NewCollision() on CountPassedPipes task instead of CollisionEnded()
New PassedTrigger

Propose changes' result

Motivation and Context

At first, I just wanted to walk through the code but accidentally found bugs in JumpyJet, so I just try to fix it and learn from it at the same time
Types of changes

[ ] Docs change / refactoring / dependency upgrade
[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[ ] My change requires a change to the documentation.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Looks fine to me, I'll just merge this in.


Request throttler

I'd like to contribute the request throttler, a mechanism which allows you to throttle certain requests based on the current CPU load.

Coverage increased (+0.2%) to 41.956% when pulling fb6bc8695a7661fe2c5dea6bedd2d847a5d893df on joerghoh:feature/request-throttler into e31dd0ab89266e068c8f5ca5d334c4737ddeb89f on Adobe-Consulting-Services:master.

This is very interesting @joerghoh!  Thank you for this.  It looks like code climate is still being picky about a few things.  If I read this correctly, this doesn't do anything by default?  Is it possible to have the service not actively filtering if no paths are configured?

@badvision It's a service factory, so if there's no config it shouldn't be active at all. But I haven't considered the case if the configuration has no path configured.

Thanks @joerghoh for another quality submission.  I'll merge in and resolve the remaining code climate issues.

@badvision thanks for your work and accepting it!


WTD #31438 updated group-manager-tasks.md

updated to remove gendered language

@rachrobins : Thanks for your contribution! The author, @marktab, has been notified to review your proposed change.

... and it wasn't spelled correctly in the original too.
#sign-off


Memory Tx Power Not Sticking in v2.6

I'm not sure if it's a feature.
Previous Behavior (Before v2.6):
Let's say you have memory channel 1 set to High Tx power in Chirp, but then lowered it to Low on the radio. If you switched to channel 2, and then back to channel 1, the Tx power for channel 1 would stay at Low, just like you set it on the radio.
New Behavior (v2.6):
With the new version (v2.6), adjusting the Tx power on the radio for a channel only affects that channel until you switch to a different channel. Then, the power setting goes back to what was set in Chirp.

Hi,
Sorry but, if you change the power of a first memory channel from the radio, switch to a second channel and then back to the first, that's right, you'll get back to the original transmitting power (as it was, before you change it from the radio). It's always been that way.
The reason is : in memory mode, power is a "per channel" parameter. You can change it from the radio. But if you want this change to persist (after changing channel, restarting the pocket, etc.), you need to save the memory channel again (via menu 15/63, ChSave).
Regards,
Armel F4HWN.


update the readme.md

please update the readme it not useful and broken too
maybe use this
Airlink Panel 🚀
Streamlined Game Server Management

📖 Overview
Airlink Panel is an advanced, open-source game server management platform designed to simplify server deployment, monitoring, and administration.
✨ Features

🖥 Intuitive Server Management Interface
🔒 Secure Deployment Workflows
📊 Real-time Server Monitoring
🌐 Multi-Game Support
🚀 High Performance & Low Overhead

🛠 Prerequisites

Node.js (v16+)
npm (v8+)
Git
Supported Database (PostgreSQL/MySQL)

💾 Installation
1. Clone the Repository
git clone https://github.com/AirlinkLabs/panel.git
cd panel

2. Install Dependencies
# Install global dependencies
npm install -g typescript pm2

# Install project dependencies
npm install --production

3. Configuration

Copy .env.example to .env
Edit configuration settingscp .env.example .env
nano .env

4. Database Setup
# Run database migrations
npm run migrate-deploy

5. Build & Start
# Build TypeScript
npm run build

# Start the application
npm run start

# Or use PM2 for process management
pm2 start dist/app.js --name airlink-panel

🔧 Development
Local Development
# Install dev dependencies
npm install

# Run in development mode
npm run dev

Testing
# Run unit tests
npm test

# Run e2e tests
npm run test:e2e

📦 Docker Support
# Build Docker image
docker build -t airlink-panel .

# Run Docker container
docker run -p 3000:3000 airlink-panel

🤝 Contributing

Fork the repository
Create your feature branch (git checkout -b feature/AmazingFeature)
Commit your changes (git commit -m 'Add some AmazingFeature')
Push to the branch (git push origin feature/AmazingFeature)
Open a Pull Request

Contribution Guidelines

Follow TypeScript best practices
Write unit tests for new features
Maintain clean, readable code
Update documentation

📄 License
Distributed under the MIT License. See LICENSE for more information.
📞 Contact

Project Link: https://github.com/AirlinkLabs/panel
Discord: Join our Discord

🙌 Acknowledgments

Node.js
TypeScript
Prisma
All contributors and supporters

  Made with ❤ by AirLink Labs

Thanks for your contribution


AISTATS'24 papers about machine unlearning

Fair Machine Unlearning: Data Removal while Mitigating Disparities
https://arxiv.org/abs/2307.14754
https://github.com/AI4LIFE-GROUP/fair-unlearning

Paper added.


New version: JET v0.6.12

Registering package: JET
Repository: https://github.com/aviatesk/JET.jl
Created by: @aviatesk
Version: v0.6.12
Commit: 27f7da2d227d696db6e08b4dc56525c1c95f5c39
Reviewed by: @aviatesk
Reference: https://github.com/aviatesk/JET.jl/commit/27f7da2d227d696db6e08b4dc56525c1c95f5c39#commitcomment-87814573
Description: An experimental code analyzer for Julia, no need for additional type annotations

Please close this in favor of #71018.


invalid volume specification (windows)

Issue summary
When trying to run retro-contest run --agent $DOCKER_REGISTRY/simple-agent:v1     --results-dir results --no-nv Airstriker-Genesis Level1 I keep getting this error:
Internal Server Error ("invalid volume specification: 'C:\Users\Daniel\Development\rl\contest\results:/root/compo/results:rw'")

I don't have any docker experience so I'm not sure where to go from here. plz halp.
The full backtace
System information

Windows 10 Home (1709)
Python 3.5.3 (miniconda)
retro 0.5.3.dev11+g8a20c0f

COMPOSE_CONVERT_WINDOWS_PATHS is set to 1 on my computer, but maybe there's a way to configure it in a dockerfile? I don't know. I'm just keeping my thoughts and progress down here.
https://docs.docker.com/compose/reference/envvars/#compose_convert_windows_paths

You're running Win10 Home. What version of Docker are you running? I thought stock Docker for Windows required Hyper-V.

I'm using Docker Toolbox: https://docs.docker.com/toolbox/toolbox_install_windows/

Please try cloning the docker-toolbox-fix branch of openai/retro-contest and installing that to see if it fixes the issue. I don't have a Windows installation with Docker on it at the moment.

Ok, update and try again.

Fixed, as per off-site communication.