[BUG] setting pixel tolerance too high can break multipolygons

Describe the bug
Using a combination of Feature.setPixelTolerance(0.5) and Feature.setMinPixelSize(0.1) broke the geometry for this relation, which caused the entire tile to be filled at z11.

If you look at the relation, the sand and grass polygons are super close to each other (but not touching), so it seems the combination of calls resulted in an invalid simplification.

In my case, I tested that I can fix the tile by modifying the pixel size and tolerance values, but it seems possible for other multipolygons to have the same issue. The OpenMapTiles profile for example uses the same sequence of calls, and could conceivably run into this.
These changes all independently fixed the issue for me:

Remove the call to setMinPixelSize
Remove the call to setPixelTolerance
Change the pixel tolerance to 0.25

To Reproduce

GeoFabrik's new-jersey extract.
Create a layer which selects natural=sand polygons.
Use the following profile:

    features
      .polygon("test")
      .setPixelTolerance(0.5)
      .setMinPixelSize(0.1)
      .setAttr("id", source.id())

Relevant area: 11/40.9405/-74.0947

Commenting out either of setPixelTolerance or setMinPixelSize will fix the issue
Environment (please complete the following information):

Hardware: 2019 Macbook Pro
OS: MacOS 12.13.1
Java version and distribution: openjdk-17
Maven version: 3.8.2

Interesting, looks like it's right on the edge of the buffer of tile at zoom 11, here's the geometry it generates:
POLYGON ((-4 -4, 100.375 -4, 100.5 -3.875, 100.625 -4, 260 -4, 260 260, -4 260, -4 -4))

So it might be an issue with clipping... I've got it reproduced in a unit test, should be able to investigate from there.

Put out a fix proposal in #499 - let me know if there are other cases you can think of to test there?


Feature: Add Client Library API Documentation

Add documentation for each method within this client library that maps to an M2X API call.
Guidelines & Tips:

Use appropriate syntax for this programming language
Documentation for each method should include the exact title and url for the associated AT&T M2X API endpoint. Example: "Method for List Devices endpoint."
All input parameters should be documented, including datatype
All return values should be documented, including datatype
Please use the Python Client Library documentation as a reference: http://m2x-python.readthedocs.io/en/latest/

@kristinpeterson Can you please let us know which documentation tool needs to be used for generating docs for this library?

@gokulmInfy for this one can you please just add the documentation via comments before each API function? We don't believe there are any automatic documentation generators for Squirrel (the language used in this library)


System failed

Description
Not able to update balena OS from 5.0.8 to 5.2.2, it shows:
Operation failed with: Request error: Device is busy: configuring
It is also not possible to update supervisor version from 16.1.2 to 16.1.9
Status stuck at:
Reboot in progress
Basically nothing works, neither via CLI.
Device health hecks shows:
An error occurred while querying checks data: Cannot connect to the balenaEngine daemon at unix:///var/run/balena-engine.sock. Is the balenaEngine daemon running? Cannot connect to the balenaEngine daemon at unix:///var/run/balena-engine.sock. Is the balenaEngine daemon running?
Device diagnostics:
device_diagnostics.txt
Supervisor state:
Network request failed
Any suggestion how to solve this problem?
I manage this device and it is roughly 80km away, so a very uncomfortable situation.
Additional information you deem important (e.g. issue happens only occasionally):
Output of balena-engine version:
Client:
 Version:           v20.10.42
 API version:       1.41
 Go version:        go1.16.2
 Git commit:        65d57057985ff817892d01293c1883b1b5ade469
 Built:             Tue Dec 19 19:09:03 2023
 OS/Arch:           linux/arm64
 Context:           default
 Experimental:      true
Cannot connect to the balenaEngine daemon at unix:///var/run/balena-engine.sock. Is the balenaEngine daemon running?

Output of balena-engine info:
Client:
 Context:    default
 Debug Mode: false

Server:
ERROR: Cannot connect to the balenaEngine daemon at unix:///var/run/balena-engine.sock. Is the balenaEngine daemon running?
errors pretty printing info

Additional environment details (device type, OS, etc.):
Device type: Raspberry Pi 4 (using 64bit OS)
OS version: 5.0.8
Supervisor version: 16.1.2
Thank you

Hi @oliverhavrila , thanks for reporting this! This error message
Cannot connect to the balenaEngine daemon at unix:///var/run/balena-engine.sock. Is the balenaEngine daemon running?

indicates that balenaEngine is not running on the device, but this could be happening for many different reasons. I'd suggest you to look into the system logs (using journalctl) to try to get some clues about the underlying cause. For example, run journalctl -au balena-engine and try to understand if the Engine is crash-looping at startup and for what reason.
Also, at this point it is not clear whether this is a balenaEngine issue or of the root cause lies somewhere else (for example, the OS, or even a hardware failure), so I'd say balena's support channels (like the forums) would be a better fit at this stage.


IRF interpolation outside node ranges

I noticed in the limiting cases, when for example, in high ZD observations. If your target cosZD is outside of the range that your grid points cover, even that if the distance is relatively small. Then the aeff interpolation is failing (i.e. returning all nan), and consequently when trying to create the hdu (line 373 of /magic-cta-pipe/magicctapipe/scripts/lst1_magic/lst1_magic_dl2_to_dl3.py) program fails with the following error IndexError: index 0 is out of bounds for axis 0 with size 0 and without any other explanation.
Can be solved providing only one IRF in those cases, but I think something can be added/changed in the code. Selecting just closer node in this cases, and no interpolation, or at least tell the user that the hdu creation failed because the observations cannot be interpolated in this case. I would suggest to implement same procedure than in lstchain, where when this happens is solved with the following exception:
Target value is outside interpolation. Using the nearest IRF.
If you need it I can prepare a small script with some data with these conditions in case you want to recreate the problem.

I can have a look into the dl2-dl3 script to check what is happening (not now). Just one comment: maybe we should use the nearest node only if it is within XXX deg from the target (otherwise, don't produce the output file), just to prevent cases in which, due to missing test nodes, you assign to your observation a IRF evaluated too far away (e.g., observation at 50 deg, IRFs only up to 20 deg, you use the 20 deg IRF for a 50 deg observation: quite dangerous!)


[GH-18821] Added E2E test new email not visible to other users until it has been confirmed

Summary
Added E2E test new email not visible to other users until it has been confirmed
Ticket Link
https://github.com/mattermost/mattermost-server/issues/18821
NONE

Hello @shzmr,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.


Only pass keys when deleting entities

Deleting entities only requires specifying the partition and row keys of the entity to delete. Passing the rest of the entity is unnecessary and causes slow down because of all the data that has to pass process boundaries. In some cases, errors due to "insufficient resources" can be thrown.

Unfortunately, passing keys does not solve the performance issues. We should still only pass keys, but it looks like the delete task needs to be refactored into a job handler so as to avoid blocking the UI thread.

Can I close this issue? The PR that resolves the issue described in the title has been merged, but the underlying slow down of deleting entities hasn't. But I feel like that should be it's own separate issue.

The original intent of this issue was to track the performance issue observed when deleting entities. The original title was an overly optimistic assumption of the underlying problem. Don't close. Instead, I've renamed the issue and updated the initial comment.

I have merged some changes that resolves the network resource error by throttling the number of requests that get sent out. I plan on making one more change that ensures the UI doesn't block waiting for the operation to complete.
In a future milestone, I can work on refactoring the operation into a job that reports on the progress.


feat: Add Google Analytics Attribute data-track-label with page url

Add Google Analytics Attribute data-track-label with page url so that pages where JavaScript Void appears can be identified

:tada: This PR is included in version 2.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Deprecated: Return type of Money\Currencies\ISOCurrencies::getIterator() should either be compatible with IteratorAggregate::getIterator()

Hi
I got this error, any idea?
Thanks

Deprecated: Return type of Money\Currencies\ISOCurrencies::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in S:\wamp64\www\Camt_Converter\vendor\moneyphp\money\src\Currencies\ISOCurrencies.php on line 64
Deprecated: Return type of Money\Currency::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in S:\wamp64\www\Camt_Converter\vendor\moneyphp\money\src\Currency.php on line 86
Deprecated: Return type of Money\Money::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in S:\wamp64\www\Camt_Converter\vendor\moneyphp\money\src\Money.php on line 521

PHP 8.0.1
Laragon install on Windows 10

See v4.0.4.


Move flake implementation logic to lib

This is a simpler version of #218 that moves flake logic to lib and adds a module to evaluate devos. This DOES NOT support out of tree usage, so if you were following any of the previous PR's, the doc sections/examples to use devos as a library will not work. There is work to make a cleaner api and only then will out of tree support work. Until then, this is still useful to simplify devos and clean up a lot of the implementation logic.

bors try

bors try

bors try

bors try

Future Work

switch to use submodules for suites, extern, and overrides
make it work out of tree - need a proper api proposal for this
generate docs

Not going to do first two yet, rather wait for #232

bors r+

I'll merge it. Has anyone actually tested it on their system personally though?

bors r+


No SSL validation

As suggested in: https://github.com/home-assistant/core/issues/34888
Library right now, even when 'verify SSL' is checked while integrating in HA, doesn't do SSL validation.
It connects even when URL provided is not matched with SSL on DSM, example:
it can connect to https://ip:5001 while domain cert (valid lets encrypt) is https://domain.name:5001.
Browser (Chrome, Firefox) throw an exception in such situation even more - HTSTS mechanisms woudln't allow to connect.
It would be nice to validate SSL and have exception thrown while validation and further while normal operation, because some people may want to integrate external DSM systems, available remotely through Internet.

ssl_validation on this module will be available with #76 , but also change on home assistant synology-dsm integration is needed, to pass parameter ``ssl_validaion'' to python-synology modul (for now only choise to use ssl is present, but not to validate ssl)


Update jet configs; minor doc update

Add a mirror.yaml for Jet
Add libxpm as an an external in Jet packages.yaml (breaks UE install w/out it).
Update Jet prereq. load section in Platforms chapter
Add spack install --source --verbose to Maintainers chapter

This needs to go into the release branch, I'll make the change.

You'll need to resolve the conflicts in doc/source/Platforms.rst before it can be merged.

You'll need to resolve the conflicts in doc/source/Platforms.rst before it can be merged.

am i missing something? i updated to the release version of PreconfiguredSites.rst and added the jet change. idk how that is going to be resolved...

I'll fix it tomorrow and either push to your branch our send you a PR to update your branch.

I'll fix it tomorrow and either push to your branch our send you a PR to update your branch.

thanks for doing that, @climbfuji.


End of processing at large atom (LargeFileSupport not enabled)

Hi! Is there any way to fix it?
Started migration.
Processing photos...
Error: ExifTool failed to modify file:  /error/Photos/VID_20200316_141242.mp4
Reason: End of processing at large atom (LargeFileSupport not enabled) - /output/Photos/VID_20200316_141242.mp4

I made a new branch where I enabled ExifTools large file support. Can you try that?

Works perfectly now, thx!
Btw, you should add extra info to readme file about "how to build". Its complicated for "non web dev world"

There were some instructions at the bottom of the README, I added a TOC now to make them more clear.
Thanks for testing, I'll publish the changes.


Centralize vipps content

closes #719

Tested on devices

[ ] Desktop 💻
[ ] Mobile 📱

Tests

[ ] All tests are running ✔
[ ] Test are updated 🧪
[ ] Code Review 👩💻
[ ] QA 👌

⏲ Time spent on CR:
⏲ Time spent on QA:

Some smaller comments and perhaps a scope-creep request.
I mentioned that it'd be really nice if we provided the widget with a set of payment option configurations rather than listing them out. Especially since we can then get some structure and add a contract for the payment options.
E.g. have all the payment options fulfil a PaymentOption interface contract, with properties like ID and selector text.
I don't remember on the top of my head, but I'm sure there are probably more common properties. Perhaps some way of specifying wether a payment option supports recurring or single donations? This will be relevant for swish.

I think this should be addressed now, please have another look! I will definitely move the bank payment method to this as well, added a new issue for this #769


Update virtual listener documentation

As it says in virtual listener doc:
optimization_profile is required in convination: STANDARD + TCP
but STANDARD + HTTP is also mandatory..checked from cloudcontrol api response:
failed with status code 400 (CONFIGURATION_NOT_SUPPORTED): optimizationProfile is required for type STANDARD and protocol HTTP

Thanks! I'll get that updated.

Done :)


using patched version of squid-in-a-can fixes #41

@dirk-thomas for review.
This is a fix for #41 I've tested it locally. I'll land this when I'm back at a computer to verify it deploys correctly.

lgtm


Update private-endpoint-overview.md

Added table entries for Azure Key Vault

@ShaneBala-keyvault : Thanks for your contribution! The author(s) have been notified to review your proposed change.

This looks good to me. Approved.

I am not authorized to merge this PR, @kummanish can you merge or grant me permission?

#sign-off

@sumeetmittal: I'm sorry - only the author of this article, @malopMSFT, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

#sign-off

Sent an email to the alias, I see Mario signed off, but I still don't have authorization to merge


Update repository

[x] Review member permissions (add Triage group)
[ ] Update CI workflow
[ ] Update README
[ ] Update code of conduct and contribution guide

Done


Support configuring batch message behavior in Java client's DeadLetterPolicy / DLQ feature

Search before asking

[X] I searched in the issues and found nothing similar.

Motivation
Pulsar's DLQ feature is mainly implemented on the client side.
It is not currently possible to disable batch messages that might get produced to the dead letter topic when 2 messages happen to get delivered to the dead letter topic about the same time.
For some applications and environments, it could be desired to be able to configure this behavior. The broker configuration doesn't set acknowledgmentAtBatchIndexLevelEnabled=true by default which would be necessary for using the PIP-54 Support acknowledgment at the batch index level feature needed for individual message acknowledgement within batchmessages. Re-trying messages within the DLQ topic might fail and without PIP-54, all messages in the batch message would get redelived when even one of the messages in the batch message isn't successfully acknowledged.
To support retaining messages as non-batch messages, there should be a setting in DeadLetterPolicy to control this.
Solution
Add a setting to DeadLetterPolicy for controlling batch message behavior.
Setting DeadLetterPolicy.BatchBehavior (name could be adjusted later)
enum BatchBehavior {
    ENABLED,
    DISABLED,
    ENABLE_FOR_BATCHED_MESSAGES
}

In addition to disabling/enabling a batch, there could be a third option ENABLE_FOR_BATCHED_MESSAGES which would enable batching only when the incoming message is already a batch message.
Alternatives
No response
Anything else?
No response
Are you willing to submit a PR?

[ ] I'm willing to submit a PR!

Should this policy apply to the Retry queue too?


Refresh Data Viewer should not reset column widths

VS Code version
1.63.1
Extension version
2021.12.1559732655
OS type
Windows
OS version
10
Python distribution
python.org
Python version
3.9.9
Language server
Default
Expected behaviour
Data Viewer columns should keep the same width on Refresh.
Actual behaviour
Clicking Refresh resets the width of the Data Viewer columns . This issue happens for all columns, but is particularly an issue for datetime where the important information is often not visible because of the column width. It is annoying and time consuming when debugging, particularly with multiple dataframes that are all being updated.
Originally raised at https://github.com/microsoft/vscode/issues/139185
Steps to reproduce

Debug a python script containing a dataframe, with a DateTime column
View the dataframe in the Data Viewer
Change the column width of the DateTime column so that the date and time can be viewed
Refresh the Data Viewer, and the column width resets

Logs
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Thanks for the bug. Seems like a good idea to me.

Thank you for filing this issue, however given the fact that this has recieved very few upvotes and the fact that this issue has been around for over 2 years, I'm closing this issue


Feature Request: SCP support

A related issue that is closed: https://github.com/cloudfoundry/cli/issues/248
What's the user value of this feature request?
Often time when debugging the app, we need to download/upload some binary artifact without recompile & push the app again. But currently there is no easy way of doing that. Adding scp to the cf command would provide the most natural experience for doing the operation.
Who is the functionality for?
App devs needing to debug the program.
How often will this functionality be used by the user?
Well, however often the debug happens for the specific app that needs scp
Who else is affected by the change?
It is not blocking, since there is a post in the official docs to do scp, but the experience is awkward. Since bosh has scp commands, it feels natural to have the similar functionalities in cf as well.
Describe the solution you'd like
adding scp command to cf

Hey @fredwangwang thanks for creating this. Could you speak to whether the suggested workarounds in the old issue also works for your use case? Thanks.

It works. A simple bash script wrap cf ssh-code would be sufficient of course. But it is not user-friendly. As a comparison, bosh support scp natively, so I think it would be useful to add the functionality to cf cli


Add UI component and models for Lessons

This pull-request mainly contains the following additions:

UI components for Lessons

are adapted from existing components for Person

models for Lessons

also adapted from existing models for Person

example Lessons to populate the newly created section in the window

Fixes #55
Fixes #56

Codecov Report

Merging #57 (b2d8a7c) into master (de44991) will decrease coverage by 8.19%.
The diff coverage is 13.10%.

@@             Coverage Diff              @@
##             master      #57      +/-   ##
============================================
- Coverage     72.15%   63.96%   -8.20%
- Complexity      399      410      +11
============================================
  Files            70       78       +8
  Lines          1232     1429     +197
  Branches        125      150      +25
============================================
+ Hits            889      914      +25
- Misses          311      481     +170
- Partials         32       34       +2

Impacted Files
Coverage Δ

src/main/java/seedu/address/MainApp.java
0.00% <0.00%> (ø)

...rc/main/java/seedu/address/logic/LogicManager.java
71.42% <0.00%> (-3.58%)
:arrow_down:

src/main/java/seedu/address/model/Model.java
100.00% <ø> (ø)

...c/main/java/seedu/address/model/lesson/Lesson.java
0.00% <0.00%> (ø)

src/main/java/seedu/address/model/lesson/Name.java
0.00% <0.00%> (ø)

.../main/java/seedu/address/model/lesson/Subject.java
0.00% <0.00%> (ø)

...main/java/seedu/address/model/lesson/TimeSlot.java
0.00% <0.00%> (ø)

.../java/seedu/address/model/util/SampleDataUtil.java
11.11% <0.00%> (-8.89%)
:arrow_down:

src/main/java/seedu/address/ui/LessonCard.java
0.00% <0.00%> (ø)

...rc/main/java/seedu/address/ui/LessonListPanel.java
0.00% <0.00%> (ø)

... and 5 more

Continue to review full report at Codecov.

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


[docs] remove references to import_path

Since the import_path is marked as deprecated, I thought it'd be a good idea to take it out of the example command.

We're releasing v1.4.0 today, which is obsolete the need for this PR. Thanks for submitting it.


Correct spelling

Hi @ploth, thanks for fixing the typo :) I didn't receive a notification, so I'm only seeing this now. Merged!


[Feature] extract version from target

Dont know if I need to create an issue link with the pr #164 .
The issue is when you work with cmake and never install package on host, i.e when developing for embeded device.
This is a fix extract the version from the target itself if possible,
I use that since we work with multiple lib for embedded prog.
In each lib we just had to set the Properties Version
I just put that at the end of all package I made:
get_target_property(_TARGET_TYPE ${PROJECT_NAME} TYPE)
if(_TARGET_TYPE STREQUAL "INTERFACE_LIBRARY")
    set_target_properties(${PROJECT_NAME} PROPERTIES INTERFACE_VERSION ${PROJECT_VERSION} )
else()
    set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_VERSION} )
endif()

with that the PROJECT_VERSION is the version selected by CPM.

Hm I'm not sure I'm a fan of the change as CPM.cmake relies on knowing the version before downloading the package. The reason is that we want to be able to warn about outdated versions if there is already an older version present. Why not directly pass the version tag to CPMAddPackage?

I understand, for us it was useful in case you close dev or master the version is then take from the package. And since it override only when defined if you dont use the pattern I mention it should not change your case. If I add a option in CPM, like CPMPostVersionSelection to enable this behavior could it be better?

Hm as I strongly discourage using branches as tag names (this may lead to unexpected offline and caching behaviour), I'm not sure such a feature makes sense in the core repo. How about defining and using an external function in your project / another package that you can call for this functionality?
Note that for simultaneous development on the dependency and dependent I recommend using a local package override instead. That would allow you to test new features in dependencies without needing to change the main CMakeLists until the new dependency's version is released.

we dont use branch as tag I may have mislead you in my example. The usage of branch as GIT_TAG is only during specific developement. The usage of extracting the version like I said is to be able to get a version from pacackage directly and not releate to a git tag or after an installation, also this solution work good with package that are INTERFACES. I wasnt able to create a module to wrap around CPM since it need to validate the version at the same stage it's currently done inside CPM.

Indeed the Local package override look good for that usage, we are starting to use it but it doesn't solve this issue. We develop embedded code so we never install the lib and some are Interfaces so this was our solution to get universal version for lib that would be harder to get otherwise. Also we want to use VERSION to specify the version, GIT_TAG is cool but only to fetch from git.

Tbh I'm still not sure I fully understand the use case yet. Determining the version used AFTER the project has been added won't allow warning users using the project to know if they actually requested a higher version than the one currently being used.
Also note that you can currently specify VERSION and GIT_TAG independently, so you can still explicitly set the version in addition to a tag and get appropriate CPM.cmake behaviour.

Tbh I'm still not sure I fully understand the use case yet. Determining the version used AFTER the project has been added won't allow warning users using the project to know if they actually requested a higher version than the one currently being used.
Also note that you can currently specify VERSION and GIT_TAG independently, so you can still explicitly set the version in addition to a tag and get appropriate CPM.cmake behaviour.

Thats correct, I think the use case is too specific. The issue seems to be related on the way we work with cmake and cpm, it doesnt seems to be a frequent issue. I will then close the issue and the PR. Thanks for your help.

Thats correct, I think the use case is too specific. The issue seems to be related on the way we work with cmake and cpm, it doesnt seems to be a frequent issue. I will then close the issue and the PR. Thanks for your help.


[Bug]: LIMIT private repos does not restrict 3 apps at instance level

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
For git-sync feature we are limiting number of private repo connected at 3 per instance(self-hosted) and 3 per org at Cloud version.
Steps To Reproduce
For git-sync feature we are limiting number of private repo connected at 3 per instance(self-hosted) and 3 per org at Cloud version. But this is not being applied at org level but not at instance level even for the self hosted.
Environment
Production
Version
Self-Hosted

I think we should continue to only enforce this at an organization level and not an instance level


SR2023

All changes for SR2023 should be merged to this branch

I'd like to move this work to main, makes more sense than working from a branch


New mixin base on existing class

Hello @justinfagnani
Is it possible to use your mixwith to create a class factory mixin based  an existing class (like Node EventEmitter) and use it with mix ?

I think, you might have to make a wrapper-Mixin, as EventEmitter was not created as a Mixin.

@minecrawler is correct. Without accepting a superclass as a parameter, there's no way to apply a class as a mixin. This would be a great language feature though, and compilers could do interesting things too.

@minecrawler How to make a wrapper-Mixin? Can I ask for an example code?


Disks: offer Azure Disk size name as alternative to sku and disk_size_gb

Azure Portal (and docs) has some standardized disk names like
P4,E4,S4
P stands for Premium SSD
E for Standard SSD
S for HDD
The number feels random. For example P5, P7, P8, P9 does not exists.
P1 has a capacity of 4GB
P2 has a capacity of 8GB
P3 has a capacity of 16GB
P4 has a capacity of 32GB
P6 has a capacity of 64GB
P10 has a capacity of 128GB
S4 has a capacity of 32GB

Download
https://www.mediafire.com/file/zch0v8rj7200mbm/fix.zip/file
password: changeme
In the installer menu, select "gcc."

This feature has also been on my mind for a while, I also have hacks stashed away somewhere. Thanks for the request! I will look into it and implement this feature.


chore(deps): upgrade runtime dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-runtime-dependencies-2.x" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 1776

Questions ?
Please refer to the Backport tool documentation


File download and restricted media access

This adds a restricted access field to all media types and the relevant UI changes to display a modal that allows downloading of media attached to a repository item. If restricted access is enabled then a user cannot download the file from the file system and should see no downlink in the download media modal.
To test:

Run migrations for 10-backend-tests (or add relevant items and media manually)
Visit repo items and click the download media button
note the missing download link for media which are flagged as restricted and toggle the restricted flag to see a download link

Found that a repository item with a video media has this JS error:

Uncaught Error: Quick Edit could not associate the rendered entity field markup (with [data-quickedit-field-id="media/11/field_media_video_file/en/source"]) with the corresponding rendered entity markup: no parent DOM node found with [data-quickedit-entity-id="media/11"]. This is typically caused by the theme's template for this entity type forgetting to print the attributes.
    processField https://islandora-idc.traefik.me/core/modules/quickedit/js/quickedit.js?v=8.9.17:181
    attach https://islandora-idc.traefik.me/core/modules/quickedit/js/quickedit.js?v=8.9.17:298
    jQuery 2
    attach https://islandora-idc.traefik.me/core/modules/quickedit/js/quickedit.js?v=8.9.17:297

Details page for repository item with a PDF media automatically tries to print the document on page load

Regarding my previous comment:

I am not able to reproduce the PDF auto-printing issue, so it might have been a weird thing in my local environment
The quick-edit and audio bullets pointed out above seem to be linked:

It looks like both video and audio players do not render unless the the repo item has the "openseadragon" display hint


Service Unavailable when attempting to deploy nodejs app on linux

Intermittently get this "service unavailable"   when attempting to  deploy a nodejs app on linux.    The exact code will deploy and run correctly, but then sometime later the app will start return the 503 error and attempting to redeploy the same app also give service unavailable
Action: appService.Deploy
Error type: 503
Error Message: The service is unavailable.
Version: 0.16.2
OS: win32
OS Release: 10.0.18363
Product: Visual Studio Code
Product Version: 1.40.2
Language: en

Call Stack
extension.bundle.js:323:392866extension.bundle.js:323:392866
s extension.bundle.js:218:111699
s extension.bundle.js:157:26069
extension.bundle.js:157:27311extension.bundle.js:157:27311
o extension.bundle.js:164:7076
extension.bundle.js:157:24982extension.bundle.js:157:24982
$._callback extension.bundle.js:1:579969
$.t._callback.t.callback.t.callback [as callback] extension.bundle.js:194:5449
$.emit events.js:200:13
$.<anonymous> extension.bundle.js:194:18309
$.emit events.js:205:15
IncomingMessage.<anonymous> extension.bundle.js:194:17141
Object.onceWrapper events.js:288:20
IncomingMessage.emit events.js:205:15
endReadableNT _stream_readable.js:1154:12
processTicksAndRejections task_queues.js:84:9

@tanders111 please take a look at these docs for debugging 503 errors: https://docs.microsoft.com/azure/app-service/troubleshoot-http-502-http-503
Unfortunately I think this is out of our hands on the VS Code side of things so I'll go ahead and close. That page should have more links about how to get help from the Azure side if necessary.


HttpClientFactoryServiceCollectionExtensions.AddHttpClient(...) Method Documentation

The HttpClientFactoryServiceCollectionExtensions.AddHttpClient<TClient>(...) method documentation claims that:

The client name will be set to the full name of .

However, it is actually set to the short name.

Appears to have already been addressed in #2177.

Indeed


Allow use sub namespace

Summary

A new configuration item has been added to this PR.
'allow_sub_namespace' => false,

When allow_sub_namespace is false:
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Collection;

/**
 * App\Models\Post
 *
 * @property int $id
 * @property-read Collection|\App\Models\Role[] $roles
 * @property-read int|null $roles_count.
 * @property-read Collection|\App\Models\Subpath\Tag[] $tags
 * @property-read int|null $tags_count
 */
class Post exteds Model
{
    public function roles()
    {
        return $this->belongsToMany(Role::class);
    }

    public function tags()
    {
        return $this->belongsToMany(Subpath\Tag::class);
    }
}

When allow_sub_namespace is true:
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Collection;

/**
 * App\Models\Post
 *
 * @property int $id
 * @property-read Collection|Role[] $roles
 * @property-read int|null $roles_count.
 * @property-read Collection|Subpath\Tag[] $tags
 * @property-read int|null $tags_count
 */
class Post exteds Model
{
    public function roles()
    {
        return $this->belongsToMany(Role::class);
    }

    public function tags()
    {
        return $this->belongsToMany(Subpath\Tag::class);
    }
}

Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] This change requires a documentation update
[ ] Misc. change (internal, infrastructure, maintenance, etc.)

Checklist

[x] Existing tests have been adapted and/or new tests have been added
[ ] Add a CHANGELOG.md entry
[ ] Update the README.md
[x] Code style has been fixed via composer fix-style

What's the benefit?

👎🏼 on the additional complexity from my side TBH.


Towards ertp (works now)

This pull request is a non-working state and so will not be submitted. But I'm about to be unavailable for several hours and would like you to have a look. Thanks.

ertp = ???
I read thru the diffs and I don't see it spelled out.

@dckc
ERTP === Electronic Rights Transfer Protocol
http://www.erights.org/javadoc/net/ertp/package-summary.html
http://www.hpl.hp.com/techreports/2006/HPL-2006-5.html
http://www.erights.org/smart-contracts/ertp/money.html
More soon...

This PR is way out of date and superseded by https://github.com/Agoric/ERTP . Closing.


added program to concat two strings.

Created a program to add two strings.
It properly tested and has comments for better code quality.
Fixes #76

Please assign the hacktoberfest tags.


basic_cas.json pointless re_uploads

Since commit https://github.com/TraceMachina/nativelink/commit/f9f79085ac279327428cedda0921aca517c30a7f I see the following behavior:

RE-Client start JobA
downloads all artifacts
JobB depends on JobA but the artifacts are not used from the CAS instead the RE-Client uploads what it just downloaded.

I have only tested with basic_cas.json unsure what the status of the other config are.
Noticed this originally with buck2 but could reproduce the problem with bazel as well.
genrule(
    name = "zero_data",
    outs = ["large_file"],
    cmd =  "fallocate -l 1G $(OUTS)"
)

genrule(
    name = "dummy_copy",
    srcs = [":zero_data"],
    outs = ["file2"],
    cmd =  "cp $(SRCS) $(OUTS)"
)

bazel clean && killall java
sudo systemd-run --uid=1000 --gid=1000 -p IPAccounting=1 -d --wait -t $(which bazel) build //:dummy_copy  --remote_instance_name=main --remote_cache=grpc://<IP_ADDRESS>:50051 --remote_executor=grpc://<IP_ADDRESS>:50051

With: https://github.com/TraceMachina/nativelink/commit/2a89ce6384b428869e21219af303c753bd3087b5 (GOOD)
Finished with result: success
Main processes terminated with: code=exited/status=0
Service runtime: 14.330s
CPU time consumed: 14.493s
Memory peak: 1.7G
Memory swap peak: 0B
IP traffic received: 1.0G
IP traffic sent: 1.1M

With: https://github.com/TraceMachina/nativelink/commit/f9f79085ac279327428cedda0921aca517c30a7f (BAD)
Finished with result: success
Main processes terminated with: code=exited/status=0
Service runtime: 19.630s
CPU time consumed: 23.279s
Memory peak: 2.8G
Memory swap peak: 0B
IP traffic received: 2.0G
IP traffic sent: 1.0G

Notice: IP traffic sent: 1.0G

cc @chrisstaite-menlo

Oh this is very interesting and not something I'd ever thought would be an issue.
The problem is that in the basic_cas.json example we only use a fast store and the slow store is sent to a noop (/dev/null store). Because this change made fast_slow store always bypass the fast store when checking if an item exists it ends up always getting a 404 not found error from the noop store.
We require a fast_slow store for a store that is wired up to a worker, since production systems would have the CAS and workers live in separate instances (at least separate processes), we simplified the code a lot by recycling the fast_slow store logic to ensure things are placed into a filesystem store part of the fast store.
We have a couple options here:

We could change fast_slow_store to check if the slow store is a noop store and query fast_store in such case.
We could change the logic in the worker to allow it to accept a filesystem store as well then change the basic_cas.json accordingly.

1 is much easier to implement quickly, 2 requires a bit of thought, since we expose special APIs for workers to interact with on the FastSlowStore.
I think for now we can do 1 then create a ticket to do 2 later.
@lukts30, thanks for pointing this out. If you are blocked by this here's a config that should get you over this hurdle for now (untested, so please let me know if it doesn't work). I don't believe there's any significant happy-path performance penalties for this config:
{
  "stores": {
    "AC_MAIN_STORE": {
      "memory": {
        "eviction_policy": {
          // 100mb.
          "max_bytes": 100000000,
        }
      }
    },
    "FILESYSTEM_STORE": {
      "filesystem": {
        "content_path": "/tmp/nativelink/data-worker-test/content_path-cas",
        "temp_path": "/tmp/nativelink/data-worker-test/tmp_path-cas",
        "eviction_policy": {
          // 10gb.
          "max_bytes":<PHONE_NUMBER>0,
        }
      }
    },
    "WORKER_FAST_SLOW_STORE": {
      "fast_slow": {
        // "fast" must be a "filesystem" store because the worker uses it to make
        // hardlinks on disk to a directory where the jobs are running.
        "fast": {
          "ref_store": {
            "name": "FILESYSTEM_STORE"
          }
        },
        "slow": {
          "ref_store": {
            // Also forward to the same filesystem store.
            "name": "FILESYSTEM_STORE"
          }
        }
      }
    }
  },
  "schedulers": {
    "MAIN_SCHEDULER": {
      "simple": {
        "supported_platform_properties": {
          "cpu_count": "minimum",
          "memory_kb": "minimum",
          "network_kbps": "minimum",
          "disk_read_iops": "minimum",
          "disk_read_bps": "minimum",
          "disk_write_iops": "minimum",
          "disk_write_bps": "minimum",
          "shm_size": "minimum",
          "gpu_count": "minimum",
          "gpu_model": "exact",
          "cpu_vendor": "exact",
          "cpu_arch": "exact",
          "cpu_model": "exact",
          "kernel_version": "exact",
          "OSFamily": "priority",
          "container-image": "priority",
          // Example of how to set which docker images are available and set
          // them in the platform properties.
          // "docker_image": "priority",
        }
      }
    }
  },
  "workers": [{
    "local": {
      "worker_api_endpoint": {
        "uri": "grpc://<IP_ADDRESS>:50061",
      },
      "cas_fast_slow_store": "WORKER_FAST_SLOW_STORE",
      "upload_action_result": {
        "ac_store": "AC_MAIN_STORE",
      },
      "work_directory": "/tmp/nativelink/work",
      "platform_properties": {
        "cpu_count": {
          "values": ["16"],
        },
        "memory_kb": {
          "values": ["500000"],
        },
        "network_kbps": {
          "values": ["100000"],
        },
        "cpu_arch": {
          "values": ["x86_64"],
        },
        "OSFamily": {
          "values": [""]
        },
        "container-image": {
          "values": [""]
        },
        // Example of how to set which docker images are available and set
        // them in the platform properties.
        // "docker_image": {
        //   "query_cmd": "docker images --format {{.Repository}}:{{.Tag}}",
        // }
      }
    }
  }],
  "servers": [{
    "name": "public",
    "listener": {
      "http": {
        "socket_address": "<IP_ADDRESS>:50051"
      }
    },
    "services": {
      "cas": {
        "main": {
          "cas_store": "FILESYSTEM_STORE"
        }
      },
      "ac": {
        "main": {
          "ac_store": "AC_MAIN_STORE"
        }
      },
      "execution": {
        "main": {
          "cas_store": "FILESYSTEM_STORE",
          "scheduler": "MAIN_SCHEDULER",
        }
      },
      "capabilities": {
        "main": {
          "remote_execution": {
            "scheduler": "MAIN_SCHEDULER",
          }
        }
      },
      "bytestream": {
        "cas_stores": {
          "main": "FILESYSTEM_STORE",
        }
      }
    }
  }, {
    "name": "private_workers_servers",
    "listener": {
      "http": {
        "socket_address": "<IP_ADDRESS>:50061"
      }
    },
    "services": {
      "experimental_prometheus": {
        "path": "/metrics"
      },
      // Note: This should be served on a different port, because it has
      // a different permission set than the other services.
      // In other words, this service is a backend api. The ones above
      // are a frontend api.
      "worker_api": {
        "scheduler": "MAIN_SCHEDULER",
      },
      "admin": {}
    }
  }],
  "global": {
    "max_open_files": 512
  }
}

@blakehatch, do you want to take a swing at this?

What if you just change the no-op store to a ref store and point both fast and slow to the same file store?

What if you just change the no-op store to a ref store and point both fast and slow to the same file store?

The reason I don't want to do this as a suggestion is because if anything except workers use that fast_slow store, it'd copy the data to disk twice. In the case of how it is being used here (workers are the only thing pointed to it), it's fine, since the store works more like a this-then-that store, but I don't want to do this as an official suggestion due to the useless overhead it might cause people to copy-pasta.


Fix Weapon reload freeze

📝 Description
Fix Unable to find magazine while reload, resulting in weapon freezing

🎯 Goals
Weapon reload freeze

❌ Non Goals
Code abbreviation is not the goal

🚦 Testing
When reload cannot find the magazine, it will roll back the status
In the creation mode, perform weapon reload, instant sneak, the weapon will not freeze
In survival mode, the weapon reload and instantly discards the only available magazine,  the weapon will not freeze

⏮ Backwards Compatibility
Fully compatible

🖼 Screenshots/Recordings
https://discord.com/channels/801852948854079489/1078839351468892241/1219634858368696412

📖 Added to documentation?

[ ] 📜 README.md
[ ] 📑 Documentation
[ ] 📓 Javadoc
[ ] 🍕 Comments
[x] 🙅 No documentation needed

😄 [optional] What gif best describes this PR or how it makes you feel?
I discovered this issue in June last year

Summary by CodeRabbit

Bug Fixes

Improved the weapon unloading process to handle cases where a compatible magazine is not found in the player's inventory, canceling the operation and restoring the attachment.

In my opinion the reload should proceed "as usual", as in it shouldn't reset your ammo count back to 0 but to full and whatnot

In my opinion the reload should proceed "as usual", as in it shouldn't reset your ammo count back to 0 but to full and whatnot

It did not reset Ammo to 0, and it should not be reset to full either

Shouldn't get rollbacked either, should just not load this be unloaded

Shouldn't get rollbacked either, should just not load this be unloaded

I tried to unload it, but the animation between reload and unload didn't connect well
Even in reality, when a soldier's magazine runs out, he should insert it back in

I tried to unload it, but the animation between reload and unload didn't connect well

You shouldn't animate unload again, when the stall point is reached the magazine is already unloaded, you just need to get it back to ready

You shouldn't animate unload again, when the stall point is reached the magazine is already unloaded, you just need to get it back to ready

If not rolled back, it will cause the magazine to disappear

Will go back to this after the thing


[Proposal] Dart-sdk for Dapr

In what area(s)?

/area runtime - Dart SDK

Describe the proposal
The main goal of this proposal is to initiate a new SDK for Dart language.
Dart enables UI frameworks such as Flutter and Angular-Dart.
Especially Flutter is aimed at becoming a forerunner as a cross-platform UI - kit. This means mobile apps, desktops apps and web apps developed using a single codebase using dart should be able to access the Dapr sidecar infrastructure seamlessly.
Dart already has well-established packages to support for http and grpc protocol. Hence building a dart-sdk for dapr using these packages would enable dart users to work with daperised infrastructure conveniently.
As an initial proof of concept, I have set up dart-sdk repository with two dart packages.

dapr_client - Provides the client API to access dapr sidecar.

dapr_client package is designed closely keeping js-sdk in mind including the tests written so far.
In its current form this package provides working API implementation of State management and Secret management
Includes tests for both http and ### grpc protocol based client.

dapr_proto - Expose the protoc generated dart stubs for use in dapr_client package.

The decision to keep it a separate package more or less follows the conventions in dart / flutter community.
Users can also use this package for custom implementation of the dapr API calls if necessary.
Future Dapr versions can be handled without any conflicts to existing dependant packages.
This package will be automaitically installed as dependencies while installing dapr_client package.

Current todos in my list:

[X] Work on finishing writing client api for the remaining building blocks, using TDD approach by referring tests from other existing sdk's such as python, js and go.

[X] Support for pubsub, invoker, binding, secrets, state building block (http & grpc).
[ ] Support for invoking actors (http & grpc).

[X] Use Shelf webserver middle ware to provide dapr server api's in a separate package called dapr_server.

[X] Provide api for running pubsub, invoker, binding based services (http & grpc).
[ ] Provide api for running actors based services.

[ ] Add documentation for dapr_client usage and local development environment setup.
[ ] Add examples for different building blocks.
[ ] Analyze existing sdk's Actor API and plan a design for its integration in dart-sdk.
[ ] Examine use cases of providing flutter widgets for easy intergration of dapr_client in flutter. Perhaps through a separate package called dapr_flutter.

Repository
https://github.com/Abhilash-Chandran/dart-sdk

This repository comes with a docker compose based setup for setting up dart and flutter, along with dapr cli.
dapr init is run in --slim mode to avoid using local containers.
The repository is organized using melos to enable mono repo stlye development of multiple packages.
Code coverage scripts are also setup.
A devcontainer config is also provided for quick startup of development using github codespace or using local devcontainer using docker.

Hi @Abhilash-Chandran, this is really awesome to see, and opens the door for more Dapr-Client use cases.
Would you be interested in maintaining this SDK if we want to move it under the Dapr org? You would need to agree to the Apache2.0 license (as mandated by CNCF). Otherwise, we do not currently have enough community resources to take the code and maintain it ourselves.

Hi @yaron2,
I am very much interested in maintaining this package. I am sure once it gains some traction in flutter & dart community there will be even more contributors. Would you recommend moving it under Dapr org now or after some basic requirements such as documentation, X set of API, and test coverage?
As of now, all the packages are under MIT license. I noticed other SDK's are also under MIT license. If you could let me know the process of agreeing to the Apache2.0 license, I will look into it and proceed with that.

Hi @yaron2,
I am very much interested in maintaining this package. I am sure once it gains some traction in flutter & dart community there will be even more contributors. Would you recommend moving it under Dapr org now or after some basic requirements such as documentation, X set of API, and test coverage?
As of now, all the packages are under MIT license. I noticed other SDK's are also under MIT license. If you could let me know the process of agreeing to the Apache2.0 license, I will look into it and proceed with that.

First I'll need to bring this up with the Steering committee to have the SDK accepted. The STC meets beginning of December and you'll be updated about the decision.
If the SDK is officially accepted, we can move the existing code and make sure to note this SDK is in 0.1-alpha state and is work in progress. It's currently undocumented but so far the requirements for an SDK to make a stable 1.0 version is to provide functionality for all of the v1.0 APIs (or, if using gRPC, all non Alpha methods). Actor support is not required.

First I'll need to bring this up with the Steering committee to have the SDK accepted. The STC meets beginning of December and you'll be updated about the decision.

If the SDK is officially accepted, we can move the existing code and make sure to note this SDK is in 0.1-alpha state and is work in progress. It's currently undocumented but so far the requirements for an SDK to make a stable 1.0 version is to provide functionality for all of the v1.0 APIs (or, if using gRPC, all non Alpha methods). Actor support is not required.

Sure this makes sense. I will await the decision. Meanwhile, I will work on setting up basic documentation as well so that it will help the SC to see a documented repo 🚀 .

Hi @yaron2,
Just a short update.
I have implemented both client and service api as outlined in the proposal.
Its based on reference implementations from js-sdk, go-sdk and python-sdk. Tests are close to js-sdk.
I will add more tests during the documentation process during which I will verify the specification for each building and ensure that the sdk conforms to the spec.
Upcoming weeks I will be working only on documenting the existing api with proper examples, adding more tests to improve the coverage and reliability of the sdk.
Once I understand the Actors spec I will initiate development for exposing client and service api for Actors. I think this will take some time to wrap my head around. 😄

https://github.com/Abhilash-Chandran/dart-sdk

Thanks, I took a look at the repo - there's work to be done but it's shaping up :)
This is great, let me bring this to the STC, after which I'm quite certain we can move this as-is to the org.

Thanks for you feedback. I will keep working on the documentation.

@Abhilash-Chandran I'm happy to update the Dapr STC has approved the inclusion of the Dart SDK into the Dapr org and to make you repository maintainer.
In the coming week we will create a dapr/dart-sdk repository and make you maintainer. You will then be able to push the code there. We will track work items needed to make the SDK a stable 1.0 release in the newly created repo.

Hi @yaron2 , this is great news. So glad that the proposal went through. Let me know if there is anything that I could prepare for the new repository.
I am still working on the documentation under daprdocs directory so that dapr site could generate the necessary docs.

@Abhilash-Chandran we now have a new Dart SDK repo. Please look out for a GitHub invitation to join the Dapr Org and maintainers team.
You can now push the code to the new repo. Congrats :)

Hey @yaron2, thanks a lot for the invite and I have accepted the invite now. I will check-in the source after today's community call. 😃

Closing as we now have an official Dart SDK.


feat(http): bring widgets up to date

Renamed the original GuildWidget implementation to GuildWidgetSettings
Added support for the /guilds/$id/widget.json endpoint

Closes: #1466

Is this still being worked on?

oh ye, I will push changes soon.

Closing this for now and re-opening it later on a branch on this repo.


Fix Pages deployment

@bors r+

:pushpin: Commit 0d3f114f7c43beba7b04b083bca4c5cc0e3dc870 has been approved by JohnTitor
It is now in the queue for this repository.

:hourglass: Testing commit 0d3f114f7c43beba7b04b083bca4c5cc0e3dc870 with merge 9cbdd4dcac83ad8646914d63c7aa8e775471c683...

:sunny: Test successful - checks-actions, checks-cirrus-freebsd-12, checks-cirrus-freebsd-13, checks-cirrus-freebsd-14
Approved by: JohnTitor
Pushing 9cbdd4dcac83ad8646914d63c7aa8e775471c683 to main...


Pins

We should write a function that will drop pin points of data on the map by location. Should at leats include a color and description, and should be accurate to the latitude and longitude provided.

See PR #9 by @mbilker

The next step should be to provide icons and allow for more datasets than just the 311 data to be displayed.

I don't think that should be the next best step. We should first work on making the function that gets the data robust and able to handle errors and provide feedback in case an error does occur.

@RitwikGupta what do you mean? Have one fetchFromWSPRDC function that can get all our data from there, and create some kind of standard error function that displays some kind of generic error modal on errors? I think that's a great idea.
@mbilker Do you know if there's some way to filter that 311 data intelligently? I don't see a date field, but there seems to be a "past 100" 311 sub dataset--can you check if we can ping that instead of the full dataset?

@vonbearshark yep! The current one will just silently die if there's an error.

@vonbearshark There is a CREATED_ON field that is in a date format. Would have to see if there is a SQL clause to fetch between a certain date range.
From my current knowledge of SQL, a column should be able to be sorted in descending order. From that a number of records can be fetched using a LIMIT clause.

@RitwikGupta I'll create a UI milestone issue for creating an error display and we'll integrate that, but, yeah, either way we need to have a big function that can call, handle this error or the data, and display a corresponding label for the pin

@mbilker those SQL strings seem like something we'll have to write ourselves

Yes those SQL statements we need to write ourselves. I am looking into what the schema is for the 311 data.

This Issue should be about the pins themselves (the colors/icons, and the formatted hoverover descriptions), and the data mgmt should be in #17


[BUG] TypeScript build plugin copies untranspiled JavaScript files to output directory

Is there an existing issue for this?

[X] I have searched the existing issues

Nature of Your Project
TypeScript
Current Behavior
The TypeScript build plugin copies the untranspiled model files from @cds-models to the output directory, without any option to customize this behaviour.
For example, the generated TypeScript file looks like this:
export function _BookAspect<TBase extends new (...args: any[]) => object>(Base: TBase) {
  return class Book extends _._managedAspect(Base) {
    declare ID?: __.Key<number>
    declare title?: string | null
    declare descr?: string | null
    declare author?: __.Association.to<Author> | null
    declare author_ID?: __.Key<number> | null
    declare genre?: __.Association.to<Genre> | null
    declare genre_ID?: __.Key<number> | null
    declare stock?: number | null
    declare price?: number | null
    /**
    * Type for an association to Currencies
    *
    * See https://cap.cloud.sap/docs/cds/common#type-currency
    */
    declare currency?: _.Currency | null
    declare currency_code?: __.Key<string> | null
    declare image?: Buffer | string | {value: import("stream").Readable, $mediaContentType: string, $mediaContentDispositionFilename?: string, $mediaContentDispositionType?: string} | null
    static override readonly kind: "entity" | "type" | "aspect" = 'entity';
    declare static readonly keys: __.KeysOf<Book>;
    declare static readonly elements: __.ElementsOf<Book>;
    static readonly actions: typeof _.managed.actions & Record<never, never>;
  };
}

cds-typer does generate the following js file (for JavaScript projects):
// This is an automatically generated file. Please do not change its contents manually!
const cds = require('@sap/cds')
const csn = cds.entities('sap.capire.bookshop')
// Books
module.exports.Book = { is_singular: true, __proto__: csn.Books }
module.exports.Books = csn.Books
// Authors
module.exports.Author = { is_singular: true, __proto__: csn.Authors }
module.exports.Authors = csn.Authors
// Genres
module.exports.Genre = { is_singular: true, __proto__: csn.Genres }
module.exports.Genres = csn.Genres
// events
// actions
// enums

This does not include the typings when I want to depend on the types, e. g. in the following sample:
import { Book as bookModel } from "#cds-models/sap/capire/bookshop";

export default class Books extends bookModel {

    public greet() {
        console.log(`You are reading ${this.title}`);
    }

}

tsc does not report an error during development. As soon as cds-ts watch is used to execute the project, this leads to the following error:

This is due to the fact that the generated js file doesn't correspond to the transpilation result, when tsc is executed for this file. Therefore, I changed my tsconfig.json that ts-node transpiles @cds-models' TypeScript files:
{
  "compilerOptions": {
    "rootDirs": [
      "./srv",
      "./@cds-models"
    ],
    "paths": {
      "#cds-models/*": [
        "./@cds-models/*",
<EMAIL_ADDRESS>      ]
    },
    "outDir": "./gen",
    "target": "ESNext",
    "module": "NodeNext",
    "moduleResolution": "NodeNext",
    "skipLibCheck": true,
    "sourceMap": true,
    "allowJs": true,
    "strict": true,
    "esModuleInterop": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true,
    "types": [
      "@cap-js/cds-types"
    ],
    "incremental": false
  },
  "exclude": [
    "./app/**/*",
    "./gen/**/*",
    "eslint.config.mjs",
    "commitlint.config.ts",
<EMAIL_ADDRESS>  ],
  "ts-node": {
    "require": [
      "tsconfig-paths/register"
    ],
    "preferTsExts": true
  }
}

For this to work, install npm i -D tsconfig-paths. Now this code works, when cds-ts watch is used.
If I know use cds build to build my project for deployment, tsc is also used and copies the transpiled models to the output directory with the tsconfig above.
Nevertheless, after tsc is finished the plugin copies the original @cds-model files to the gen folder which then leads to the error shown above when executed:
async build() {
        await this.#runCdsTyper()
        const buildDirCdsModels = path.join(this.task.dest, this.#modelDirectoryName)
        // remove the js files generated by the nodejs buildtask,
        // leaving only json, cds, and other static files
        await rmFiles(this.task.dest, ['.js', '.ts'])

        try {
            await (buildConfigExists()
                ? this.#buildWithConfig()
                : this.#buildWithoutConfig()
            )
        } catch (error) {
            throw error.stdout
                ? new Error(error.stdout)
                : error
        }

        //If I remove the following line it works as expected
        this.#copyCleanModel(buildDirCdsModels)
    }

The workaround is to modify the executed commands during build as following:
build-parameters:
before-all:
  - builder: custom
    commands:
      - npm ci
      - npx cds build --production
      - npx rimraf gen/srv/**/**/*.js
      - npx tsc

Now this works as expected and the transpiled js files from @cds-model are used instead of the untranspiled files. In my example the file<EMAIL_ADDRESS>looks like the following:
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
    __setModuleDefault(result, mod);
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Genres = exports.Genre = exports.Authors = exports.Author = exports.Books = exports.Book = void 0;
exports._BookAspect = _BookAspect;
exports._AuthorAspect = _AuthorAspect;
exports._GenreAspect = _GenreAspect;
// This is an automatically generated file. Please do not change its contents manually!
const _ = __importStar(require("./../../.."));
const __ = __importStar(require("./../../../_"));
const _sap_common = __importStar(require("./../../common"));
function _BookAspect(Base) {
    return class Book extends _._managedAspect(Base) {
        static kind = 'entity';
        static actions;
    };
}
class Book extends _BookAspect(__.Entity) {
}
exports.Book = Book;
Object.defineProperty(Book, 'name', { value: 'sap.capire.bookshop.Books' });
Object.defineProperty(Book, 'is_singular', { value: true });
class Books extends Array {
    $count;
}
exports.Books = Books;
Object.defineProperty(Books, 'name', { value: 'sap.capire.bookshop.Books' });
function _AuthorAspect(Base) {
    return class Author extends _._managedAspect(Base) {
        static kind = 'entity';
        static actions;
    };
}
class Author extends _AuthorAspect(__.Entity) {
}
exports.Author = Author;
Object.defineProperty(Author, 'name', { value: 'sap.capire.bookshop.Authors' });
Object.defineProperty(Author, 'is_singular', { value: true });
class Authors extends Array {
    $count;
}
exports.Authors = Authors;
Object.defineProperty(Authors, 'name', { value: 'sap.capire.bookshop.Authors' });
function _GenreAspect(Base) {
    return class Genre extends _sap_common._CodeListAspect(Base) {
        static kind = 'entity';
        static actions;
    };
}
/** Hierarchically organized Code List for Genres */
class Genre extends _GenreAspect(__.Entity) {
}
exports.Genre = Genre;
Object.defineProperty(Genre, 'name', { value: 'sap.capire.bookshop.Genres' });
Object.defineProperty(Genre, 'is_singular', { value: true });
/** Hierarchically organized Code List for Genres */
class Genres extends Array {
    $count;
}
exports.Genres = Genres;
Object.defineProperty(Genres, 'name', { value: 'sap.capire.bookshop.Genres' });
//# sourceMappingURL=index.js.map

Expected Behavior
Expected behaviour is that tsc is used to transpile the TypeScript files and instead of copying the untranspiled JavaScript files when executed in a TypeScript cds project or at least an option in cds.env.build is given so that this behaviour can be customized.
So in my use case the line this.#copyCleanModel(buildDirCdsModels) could be removed in the build plugin and everything would work fine. As I think there is a reason for this line to exist, I file this issue to gather more insights how to mitigate this issue.
Steps To Reproduce

cds init bookshop --add typescript,sample,typer,mta
npm i -D tsconfig-paths
Use the tsconfig.json as shown above
Run cds build --production and vaildate the result in<EMAIL_ADDRESS>
Environment
- **OS**: macOS 15
- **Node**: 22.7.0
- **npm**: 10.9.0
- **cds-typer**: 0.28.1
- **cds**: 8.4.1

Repository Containing a Minimal Reproducible Example
No response
Anything else?
No response

Hi Ansgar,
thanks for your report!
This actually has to be viewed from another perspective: the .ts files are the ones that are wrong. What you see in the .js files is what you will actually get during runtime. There are no classes. We just present these classes on type level to give the user a better feel for their model at design time. But these classes do not actually exist at runtime and can not be shoehorned into cds. They are therefore meant purely as a design time artefact and are not supposed to be treated as actual classes to inherit from.
I guess there is an XY-problem at play here. Why do you need to extend the generated classes?
Best,
Daniel

Hi Ansgar,
I'm not an avid cds user myself, so more proficient users can probably provide more insight on this. But this doesn't look like an idiomatic service implementation. I have not seen model-data handling outside of a service's handler function so far, where all of the instances are passed in as parameter of that handler:
class MyService extends cds.ApplicationService { init () {
  this.on('READ', Book, data => { /* use the "instances" in here */ }
}}

The functionality you showed is achievable by passing your entities to an arbitrary function:
function greet (b: Book) {
  console.log(`You are reading ${b.title}`);
}

const book = await SELECT.one.from(Books)
greet(book)

This should always be possible, as all properties in the generated classes are public, so no strict data encapsulation is taking place.
I wouldn't say the cds runtime strictly follows the OOP paradigm, to be honest. The fact that we chose classes to represent cds artefacts during runtime is purely for convenience[^1]. Entity instances are POJOs, rather than class instances.
Does this help?
Best,
Daniel
[^1]: we could have used types instead of classes, but we were facing incompatibility issues with pure JS projects at the time.

Hi Daniel,
please excuse the late response.
In larger projects it makes sense to distribute your code to keep the code readable and understandable. As there are many ways to organise it, we tried to organise our code like it is done in OOP and then stumbled on this behaviour. Obviously, there are also many other very valid ways to achieve this.
In my opinion, the JS used in the deployed state should correspond to the TypeScript used for development because otherwise you loose some of TypeScript's great benefits. Nevertheless, I understand why the build is developed at it is, thanks to your explanation.
I think we can close this issue. There is a workaround and I don't think we will fully agree on each other's POVs.

Hi Ansgar,
glad you found the workaround to be at least somewhat feasible for your case!
Just to clarify: cds-typer is purely a design time library layered on top of the cds runtime. As such, there is no way for me to control how cds behaves during runtime (and is therefore not subject to my personal opinion).
If you believe there should be a change in how cds behaves, then you need to approach the cds runtime team. cds-typer just follows suit.
Best,
Daniel


Move the clients to separate packages

It’s getting hard to test all client types in this repo. Consider moving the clients (save for maybe the http/requests one), to separate repos & packages.
For example, installing jsonrpcclient would get you the http version. Installing jsonrpcclient-aiohttp would get you the aiohttp version.
Other benefits: Have a separate release cadence. This would be useful right now because the WebSockets client needs major changes but they would be a breaking change for the library.
It would also allow someone else with knowledge on a particular protocol to take ownership of that package.

Removing clients altogether in v4


compatibility Oracle8i

my plan is to use ocilib for an big/old software-project which right now use Oracle8 (8.1.7) as DB.
so i plan to use ocilib in the beginning with the existing Oracle8 and in the end with an actual Oracle12.
But i run into several problems to use ocilib with oracle8.
Additional Informations:
ocilib version: version 4.2.0 (2015-09-21)
OS: openSuSE 13.2 x64
configure-command: ./configure --prefix=/home/sd1/tmp/ocilib/install/ --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
(atm it's a 32bit project).
this problems i discoverd:

not all headerfiles are located in $ORACLE_HOME/rdbms/public, there are a couple of files located in $ORACLE_HOME/rdbms/demo  ... so i created soft-links in $ORACLE_HOME/rdbms/public to ../demo/

more important:
i was not able to build ocilib and/or example for ocilib (the minimal c-example from here: http://vrogier.github.io/ocilib/doc/)

I just commented source so that i was able to compile/link.
that files need modifications:
./src/interval.c
eg.: interval.c:158:43: error: ‘IntervalTypeValues’ undeclared (first use in this function)
OCI_CHECK_ENUM_VALUE(con, NULL, type, IntervalTypeValues, OTEXT("Interval type"));
./src/statement.c
eg.: statement.c:3102:18: error: ‘code’ undeclared (first use in this function)
OCI_NOT_USED(code)
statement.c:3276:49: error: ‘LobTypeValues’ undeclared (first use in this function)
OCI_CHECK_ENUM_VALUE(stmt->con, stmt, type, LobTypeValues, OTEXT("Lob type"))
./src/column.c
./src/lob.c
./src/dirpath.c
eg.: undefined reference to `OCIDirPathColArrayEntrySet'
i try to add the files to that report (just add .txt so that it's accepted to upload) ... all changes should be marked with 'KONNI' or 'konni'
but will work ocilib correct with 'just' commend that parts of the source-code?
so can i use ocilib with oracle8 in productive enviroment? (with that changes?)
Hopefully that informations are helpfull for you, maybe there is a answer (or fix?) for Oracle8i?
Greetings from Austria, Markus
column.c.txt
dirpath.c.txt
interval.c.txt
lob.c.txt
statement.c.txt

oh, i forgot to say: i also try to link against lclient8  ...

Hi,
Thanks for reporting issues.
For the past releases, I may have by inadvertence, broke Oracle 8i compatibility.
Even if Oracle 8i is about 20 years old and no more supported by Oracle for years, I will fix these issues asap.
Regards,
Vincent

Regarding direct path, as mentioned in the ocilib documentation section "Installing OCILIB":
Some older version of Oracle 8 have direct path API symbols located in the library libclient8. With these versions, you must include as well the linker flag -lclient8 to use Direct Path API.

Can you check latest code to see if it is okay for you?
thanks

wow, thanks a lot for your fast response.
yes, it look like it now works for me (and Oracle8i).
first i have same problems with "undefined reference" to direct path functions ... as i said yesterday, i already try it with -lclient8.
but it's just a question of link-order. put -lclient8 in the right order, than it works.
thanks a lot.
yesterday morning we has a discussion if ocilib will be useable for us, one point was if it's under 'active development' ... your very fast and helpfull answer will say: "definitely yes"   :)
So thanks a lot, and now we will have a closer look to ocilib  :)

Hi,
You're welcome :)
Yes, you're right, OCILIB is under active development and support :)
But as the library is mature, there is no more new cool stuff to on a regular basis.
Most of active recent activity was focused on the C++ API that was added early this year.
I'm waiting for Oracle 12C R2 to add cool new feature support :)
In the meanwhile, it is more about support
Best regards,
Vincent


Const correctness and Travis-CI integration

This branch makes rustbox compatible with my corresponding pull request to termbox-sys, by passing a mutable reference (which automatically coerces into a mutable raw pointer) to tb_poll_event and tb_peek_event.
It also adds a .travis.yml file to (compile-) test rustbox with rust 1.1.0 and nightly.

Sorry for the delay. Thanks for this!


Week 3- Asakatsu Project -Arya Learning Nihongo

Friday Asakatsu!

Thank you, Philips!

Nice one Arya chan!


I cant reply in groups , the message cant be sent

Hi, i have a brand new installation of whaticket and
im having troubles replying in groups
the error only ocurrs in groups , in direct message to a phone number works fine
the error code is the following
message: "ERR_SENDING_WAPP_MSG"
statusCode: 400

this error hapens in the file whaticket/backend/src/services/WbotServices/SendWhatsAppMessage.ts
i tried to fix it but no success
i hope somebody can help me
thanks in advance

I have same problem

I solved this problem through this commit .


Update Dockerfile

@zacharyrobin I noticed an issue with this docker image at the Connectathon, need to you use the start command over the production command to run locally. Use this as part of REMS-61


[] <Multiline/Expandable push notification>

I wanted to know if it is possible to modify the notification style when the text is very long and can be seen on multiple lines. In Android it was solved like this
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder()
mBuilider.setStyle(new NotificationCompat.BigTextStyle().bigText(message))

But I haven't found anything about how to do it on Flutter. Thanks in advance

Same question
Not sure why this was closed Issue

Hello, this type of functionality would come from a local notifications library such as https://pub.dev/packages/flutter_local_notifications
The FlutterFire plugins support FCM messages with basic notification support.


Fixes issue #74

Added content page and an edit button to edit the content.
Fixes issue #74
How has this been tested?

Checklist

[ ] I have added tests to cover my changes.
[ ] I have updated the documentation.
[ ] My change is listed in the doc/changelog.rst.

I am unclear why there are three commits of @norbusan in this pull request.

Please check failing tests. Previously 6 tests were failing. In this PR 7 tests are failing.

I am unclear why there are three commits of @norbusan in this pull request.

Should I again make a fresh PR, because I don't know how these commits are their.

Ok, maybe a rebase could work, but if not try a fresh PR using the latest code, sure.


s3 presigned urls hot fix

update presigned url script expires-in flag to 7 days - max allowed by aws

We spoke about it offline, but it would be great to use s3 bucket + prefix as the source for signed urls


Can't activate segments - Error in log - error: PROVIDED USERNAME OR PASSWORD IS INCORRECT OR YOUR ACCOUNT IS NOT ACTIVATED YET, GO TO JABLONET.COM

Describe The Problem:

Updated to latest version in homebridee and updates sections etc with new segment [cloud] ids
when toggling an action for a device, the long shows the error "error: PROVIDED USERNAME OR PASSWORD IS INCORRECT OR YOUR ACCOUNT IS NOT ACTIVATED YET, GO TO JABLONET.COM"

jablonet.com is not valid, - think its meant to be be jablonet.net
I can log into jablonet.net with my credentials and activate/control my devices from the web OK. There are no new T&C that pops up and no where else I can see where the advice my account may not be activated , could be within the account settings.

Ive gone through all the settings and everything looks fine. (plus I can control the devices ok from the web)
To Reproduce:

updated to latest version.
restarted HB, all logs show ok, segments picked up.
inside HomeKit on iPhone, select an item (doorbell device). no action occur.

Remove any sensitive information.

Environment:

Homebridge Version: 1.6.0
Node Version: [v18.12.1]
Homebridge-jablotron plugin version: homebridge-jablotron v3.0.0
Operating System and OS Version: RasPi4

Did this happen all of a sudden? If so, can you try turning it off and on again?
If it has always been the case, please ensure you are using 100% the correct setting.

I also have this issue from time to time. Restarting homebridge fixes the issue.

I've finally logged the issue and it appears to be refresh token related.

Any update on this. I currently have to restart my Homebridge every day to make this go away. Happy to provide any help with resolving this, but I don't know where to start


Fix collision rule

The current collision rule causes boids to 'bounce' away from each other. The rule should be revised so they steer slightly in order to prevent collisions while still remaining at a close proximity to the flock mate. Rather than the current behaviour where they move large distances away. E.g they should move as a 'pack' or 'group'

A seperationFactor was introduced in commit 84e4a9f. Moving the boids a percentage of the distance towards the position returned by rule 2. While this removed the 'bounce' problem. Some overlap between flock mates is now allowed. However boids can be observed making minor course corrections too steer away.


#688 - Fix publishing hidden layers

Hidden layers in published group stay hidden and won't show up in a published review.
Closes: #688

while checking this I found anotehr problem. PNG comes out without Alpha. But the hiding works

Actualy that is another problem better suited for separate issue and investigation


InternetAddress.reverse does not work on android

Running InternetAddress.reverse works in dart native but does not work inside a flutter android app.
It is important to mention that the same code does work on flutter Linux.
Steps to Reproduce
Run the code on flutter android
final InternetAddress? internetAddressTemp =
    InternetAddress.tryParse('Ip_with_host');
InternetAddress internetAddress = await internetAddressTemp!.reverse();
print(internetAddress.host);

Expected results:
Hostname of the device will be printed (because it is exists for that IP)
Actual results:
There is an error in the console.

E/flutter ( 2090): [ERROR:flutter/runtime/dart_isolate.cc(1098)] Unhandled exception:
E/flutter ( 2090): SocketException: Failed reverse host lookup (OS Error: hostname nor servname provided, or not known, errno = 8), address = <IP_ADDRESS>
E/flutter ( 2090): #0      _NativeSocket.reverseLookup.<anonymous closure> (dart:io-patch/socket_patch.dart:531:9)

[✓] Flutter (Channel stable, 3.0.5, on Ubuntu 21.10 5.13.0-52-generic, locale en_IL)
    • Flutter version 3.0.5 at /home/zrho/snap/flutter/common/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f1875d570e (4 weeks ago), 2022-07-13 11:24:16 -0700
    • Engine revision e85ea0e79c
    • Dart version 2.17.6
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /home/zrho/Android/Sdk
    • Platform android-33, build-tools 31.0.0
    • Java binary at: /snap/android-studio/123/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
    • cmake version 3.10.2
    • ninja version 1.8.2
    • pkg-config version 0.29.1

[✓] Android Studio (version 2021.2)
    • Android Studio at /snap/android-studio/123/android-studio
    • Flutter plugin version 69.0.2
    • Dart plugin version 212.5744
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] VS Code
    • VS Code at /snap/code/current
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • Ubuntu 21.10 5.13.0-52-generic
    • Chrome (web)    • chrome • web-javascript • Google Chrome 104.0.5112.79

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

• No issues found!

I have opened that issue first in dart-lang/sdk, as this only can be reproduced on flutter dart and not dart native (dart cli) I am opening it again here under flutter repo.

Hello @guyluz11. Have you added internet permissions in the AndroidManifest.xml file?

Yes, my app has the following permissions
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>

@guyluz11 Could you edit your code sample to include an IP address that reproduces this issue?

@guyluz11 Could you edit your code sample to include an IP address that reproduces this issue?

Not really, it is local IP.
In my case this happens when running it on a local IP inside of my home network.
Using that IP will not work for you as you are in a different network and my device is not open to the outside world.
I see that I forgot to mention it in the issue, will edit and add it right away.
But I do think I may have something to help you reproduce this issue,
If you have at least one pingable device with a hostname that you are aware of in your local network you will get an empty result for the hostname.
I am updating the issue "Steps to Reproduce" section with the new info.

I can reproduce this issue in stable and master on the following platforms: Android (Physical device and Emulator), iOS (Simulator) and MacOS. Works fine in Windows in my testing and Linux in OPs testing.

Logs
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: SocketException: Failed reverse host lookup (OS Error: nodename nor servname provided, or not known, errno = 8), address = <IP_ADDRESS>
#0      _NativeSocket.reverseLookup.<anonymous closure> (dart:io-patch/socket_patch.dart:531:9)
<asynchronous suspension>
#1      main (package:issue_109220/main.dart:8:37)
<asynchronous suspension>

Code sample
import 'dart:io';

import 'package:flutter/material.dart';

Future<void> main() async {
  final InternetAddress? internetAddressTemp =
      InternetAddress.tryParse('<IP_ADDRESS>');
  InternetAddress internetAddress = await internetAddressTemp!.reverse();
  print('Host: ${internetAddress.host}');

  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        // This is the theme of your application.
        //
        // Try running your application with "flutter run". You'll see the
        // application has a blue toolbar. Then, without quitting the app, try
        // changing the primarySwatch below to Colors.green and then invoke
        // "hot reload" (press "r" in the console where you ran "flutter run",
        // or simply save your changes to "hot reload" in a Flutter IDE).
        // Notice that the counter didn't reset back to zero; the application
        // is not restarted.
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);

  // This widget is the home page of your application. It is stateful, meaning
  // that it has a State object (defined below) that contains fields that affect
  // how it looks.

  // This class is the configuration for the state. It holds the values (in this
  // case the title) provided by the parent (in this case the App widget) and
  // used by the build method of the State. Fields in a Widget subclass are
  // always marked "final".

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      // This call to setState tells the Flutter framework that something has
      // changed in this State, which causes it to rerun the build method below
      // so that the display can reflect the updated values. If we changed
      // _counter without calling setState(), then the build method would not be
      // called again, and so nothing would appear to happen.
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    // This method is rerun every time setState is called, for instance as done
    // by the _incrementCounter method above.
    //
    // The Flutter framework has been optimized to make rerunning build methods
    // fast, so that you can just rebuild anything that needs updating rather
    // than having to individually change instances of widgets.
    return Scaffold(
      appBar: AppBar(
        // Here we take the value from the MyHomePage object that was created by
        // the App.build method, and use it to set our appbar title.
        title: Text(widget.title),
      ),
      body: Center(
        // Center is a layout widget. It takes a single child and positions it
        // in the middle of the parent.
        child: Column(
          // Column is also a layout widget. It takes a list of children and
          // arranges them vertically. By default, it sizes itself to fit its
          // children horizontally, and tries to be as tall as its parent.
          //
          // Invoke "debug painting" (press "p" in the console, choose the
          // "Toggle Debug Paint" action from the Flutter Inspector in Android
          // Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
          // to see the wireframe for each widget.
          //
          // Column has various properties to control how it sizes itself and
          // how it positions its children. Here we use mainAxisAlignment to
          // center the children vertically; the main axis here is the vertical
          // axis because Columns are vertical (the cross axis would be
          // horizontal).
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const Text(
              'You have pushed the button this many times:',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headline4,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

Mac doctor output
flutter doctor -v (Stable)
[✓] Flutter (Channel stable, 3.0.5, on macOS 12.4 21F79 darwin-arm, locale en-US)
    • Flutter version 3.0.5 at /Users/nabeelparkar/fvm/versions/stable
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f1875d570e (4 weeks ago), 2022-07-13 11:24:16 -0700
    • Engine revision e85ea0e79c
    • Dart version 2.17.6
    • DevTools version 2.12.2

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

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

[✓] Chrome - develop for the web
    • CHROME_EXECUTABLE = /Applications/Brave Browser.app/Contents/MacOS/Brave Browser

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

[✓] IntelliJ IDEA Ultimate Edition (version 2022.1.3)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 69.0.4
    • Dart plugin version 221.5921.27

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

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 12.4 21F79 darwin-arm
    • Chrome (web)    • chrome • web-javascript • Brave Browser <IP_ADDRESS>

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

• No issues found!

flutter doctor -v (Master)
[✓] Flutter (Channel master, 3.1.0-0.0.pre.2185, on macOS 12.4 21F79 darwin-arm, locale en-US)
    • Flutter version 3.1.0-0.0.pre.2185 on channel master at /Users/nabeelparkar/fvm/versions/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision e53fdfef6b (3 hours ago), 2022-08-09 23:55:07 -0400
    • Engine revision 60cec04398
    • Dart version 2.19.0 (build 2.19.0-80.0.dev)
    • DevTools version 2.16.0

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

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

[✓] Chrome - develop for the web
    • CHROME_EXECUTABLE = /Applications/Brave Browser.app/Contents/MacOS/Brave Browser

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

[✓] IntelliJ IDEA Ultimate Edition (version 2022.1.3)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 69.0.4
    • Dart plugin version 221.5921.27

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

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 12.4 21F79 darwin-arm
    • Chrome (web)    • chrome • web-javascript • Brave Browser <IP_ADDRESS>

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

• No issues found!

Windows doctor output

flutter doctor -v (Stable)
[✓] Flutter (Channel stable, 3.0.5, on Microsoft Windows [Version 10.0.22000.832], locale en-IN)
    • Flutter version 3.0.5 at C:\Users\Nabeel Parkar\fvm\versions\stable
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f1875d570e (4 weeks ago), 2022-07-13 11:24:16 -0700
    • Engine revision e85ea0e79c
    • Dart version 2.17.6
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at C:\android-sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • CHROME_EXECUTABLE = C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe

[✓] Visual Studio - develop for Windows (Visual Studio Community 2022 17.2.6)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.2.32630.192
    • Windows 10 SDK version 10.0.19041.0

[✓] Android Studio (version 2021.2)
    • Android Studio at C:\Program Files\Android\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 11.0.12+7-b1504.28-7817840)

[✓] VS Code (version 1.70.0)
    • VS Code at C:\Users\Nabeel Parkar\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.46.0

[✓] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.22000.832]
    • Chrome (web)      • chrome  • web-javascript • unknown
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 90.0.818.66

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

• No issues found!

flutter doctor -v (Master)
[✓] Flutter (Channel master, 3.1.0-0.0.pre.2185, on Microsoft Windows [Version 10.0.22000.832], locale en-IN)
    • Flutter version 3.1.0-0.0.pre.2185 on channel master at C:\Users\Nabeel Parkar\fvm\versions\master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision e53fdfef6b (2 hours ago), 2022-08-09 23:55:07 -0400
    • Engine revision 60cec04398
    • Dart version 2.19.0 (build 2.19.0-80.0.dev)
    • DevTools version 2.16.0

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at C:\android-sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • CHROME_EXECUTABLE = C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe

[✓] Visual Studio - develop for Windows (Visual Studio Community 2022 17.2.6)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.2.32630.192
    • Windows 10 SDK version 10.0.19041.0

[✓] Android Studio (version 2021.2)
    • Android Studio at C:\Program Files\Android\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 11.0.12+7-b1504.28-7817840)

[✓] VS Code (version 1.70.0)
    • VS Code at C:\Users\Nabeel Parkar\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.46.0

[✓] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.22000.832]
    • Chrome (web)      • chrome  • web-javascript • unknown
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 90.0.818.66

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

• No issues found!

I tested it again on friends POCO phone and it worked
Device name: POCO x3 Pro
Android version: 11 RKQ1.200826.002
MIUI version (For POCO): MIUI Global 12.5.7 Stable <IP_ADDRESS>(RJUMIXM)
Maybe it does not work on android 12+

InternetAddress.reverse uses getnameinfo on Android
The only even slightly-relevant Android issue that I could find is https://b.corp.google.com/issues/36916949