addFilter Generates Invalid Params When Filtering Multiple Ids on Reference Field

I’m trying to generate query params for filtering multiple term ids on an entity reference field. The expected query params I want are these:
filter[field_erm_audience-216-and][group][conjunction]=AND
&filter[field_erm_audience.meta.drupal_internal__target_id-216][condition][path]=field_erm_audience.meta.drupal_internal__target_id
&filter[field_erm_audience.meta.drupal_internal__target_id-216][condition][value]=216
&filter[field_erm_audience.meta.drupal_internal__target_id-216][condition][memberOf]=field_erm_audience-216-and

&filter[field_erm_audience-217-and][group][conjunction]=AND
&filter[field_erm_audience.meta.drupal_internal__target_id-217][condition][path]=field_erm_audience.meta.drupal_internal__target_id
&filter[field_erm_audience.meta.drupal_internal__target_id-217][condition][value]=217
&filter[field_erm_audience.meta.drupal_internal__target_id-217][condition][memberOf]=field_erm_audience-217-and

However, using this package, I can’t generate the correct query params for this. My simplified code, is basically this:
const tids = ["216", "217"];

tids.forEach((tid) => {
  const fieldName = "field_erm_audience";
  const groupName = `${fieldName}-${tid}-and`;
  const filterPath = `${fieldName}.meta.drupal_internal__target_id`;
  apiParams.addGroup(groupName, "AND");
  apiParams.addFilter(filterPath, tid, "=", groupName);
});

The output of this results in [3] as the filter key, which is an invalid query.
filter[3][condition][path]=field_erm_audience.meta.drupal_internal__target_id
&filter[3][condition][value]=217
&filter[3][condition][memberOf]=field_erm_audience-217-and
&filter[field_erm_audience-216-and][group][conjunction]=AND
&filter[field_erm_audience.meta.drupal_internal__target_id][condition][path]=field_erm_audience.meta.drupal_internal__target_id
&filter[field_erm_audience.meta.drupal_internal__target_id][condition][value]=216
&filter[field_erm_audience.meta.drupal_internal__target_id][condition][memberOf]=field_erm_audience-216-and
&filter[field_erm_audience-217-and][group][conjunction]=AND

Code sandbox example is here to reproduce the problem:
https://codesandbox.io/s/drupal-jsonapi-params-bug-wtgjt?file=/src/index.js
The problem seems to be inside the addFilter() method, the way name is set, will not work since the key won’t be unique as it's the same field name, just with multiple values.
I’ve experimented with patching, would need to test more, but changing how the name const is set to ensure its unique, generates the correct query.
https://github.com/wluisi/drupal-jsonapi-params/blob/master/src/index.ts#L221
Curious if this is a bug, or if there is another way to use this package to generate the correct query params? If it's a bug, I'd be happy to work on a PR to fix.
For context, this type of query I got from this drupal.org comment:
https://www.drupal.org/project/drupal/issues/3066202#comment-13181270

Hi @wluisi , thanks for the detailed report.
Background:
Unfortunately library doesn't support choosing arbitrary field names by design. It is a personal choice. I choose not to deal with validating user supplied values for uniqueness for intended purpose. Instead the library ensures its correctness.
Examination of bug report
Examining your case, I don't see this is a bug. The generated code which uses index "3" would perform identical to the one you would like to use.  In this case "field_erm_audience.meta.drupal_internal__target_id-217". Also I see you would also like to swap "field_erm_audience.meta.drupal_internal__target_id" with "field_erm_audience.meta.drupal_internal__target_id-216" in the code generated by the library
Explanation for the behaviour of the library
As you have already found out, the index is a function of "field name". However in case it is already used/allocated, it would generate a numerical index based on the size of the current elements in the query. This grantees uniqueness. Thats why, in the first pass, when the term id is 216, it used the field path for index field_erm_audience.meta.drupal_internal__target_id and thereafter, it starts using a numerical id, when the "path" was same for the case of 217. The order in which the query get printed out might confuse you.
Conclusion
What I explained above is from theory. In case the following two query provides an entirely different results, I would keep this open for further investigation..
Query A (Manual query)
filter[field_erm_audience-216-and][group][conjunction]=AND
&filter[field_erm_audience.meta.drupal_internal__target_id-216][condition][path]=field_erm_audience.meta.drupal_internal__target_id
&filter[field_erm_audience.meta.drupal_internal__target_id-216][condition][value]=216
&filter[field_erm_audience.meta.drupal_internal__target_id-216][condition][memberOf]=field_erm_audience-216-and

&filter[field_erm_audience-217-and][group][conjunction]=AND
&filter[field_erm_audience.meta.drupal_internal__target_id-217][condition][path]=field_erm_audience.meta.drupal_internal__target_id
&filter[field_erm_audience.meta.drupal_internal__target_id-217][condition][value]=217
&filter[field_erm_audience.meta.drupal_internal__target_id-217][condition][memberOf]=field_erm_audience-217-and

Query B (lib Query)
filter[3][condition][path]=field_erm_audience.meta.drupal_internal__target_id
&filter[3][condition][value]=217
&filter[3][condition][memberOf]=field_erm_audience-217-and
&filter[field_erm_audience-216-and][group][conjunction]=AND
&filter[field_erm_audience.meta.drupal_internal__target_id][condition][path]=field_erm_audience.meta.drupal_internal__target_id
&filter[field_erm_audience.meta.drupal_internal__target_id][condition][value]=216
&filter[field_erm_audience.meta.drupal_internal__target_id][condition][memberOf]=field_erm_audience-216-and
&filter[field_erm_audience-217-and][group][conjunction]=AND

Could you please let me know the result of both the query after running it against a Drupal instance?

@d34dman Thanks for the quick response. Query A works as expected and returns the correct results. When I use Query B, I get a 500 internal server error and '@root' is a reserved filter id.. In the Drupal logs I get
UnexpectedValueException: '@root' is a reserved filter id. in Drupal\jsonapi\Query\Filter::expand() (line 190 of /var/www/html/web/core/modules/jsonapi/src/Query/Filter.php).

I believe these errors comes from the filter[3].

@wluisi ok in that case I will setup a test gig and run few test myself. Based on your report, I am afraid, the library would have more serious issue. Any update in the method getIndexId would result in updating a lot of unit tests. So this won't be a simple task.

Also thanks for the offer for PR. Really apprecaite it a lot. But before we jump in for the fix, I would like to know "why" this is happening.

@wluisi  I couldn't reproduce the issue.
I created a site based on "umami" in simplytest.me. And used your script to generate query against article with multiple terms inside "field_tags".
It generated the following query,
https://master-7kvwzxc59zln2unf4lbnpr5d2uki59yo.tugboat.qa/jsonapi/node/article?filter[3][condition][path]=field_tags.meta.drupal_internal__target_id&filter[3][condition][value]=24&filter[3][condition][memberOf]=field_tags-24-and&filter[field_tags-26-and][group][conjunction]=AND&filter[field_tags.meta.drupal_internal__target_id][condition][path]=field_tags.meta.drupal_internal__target_id&filter[field_tags.meta.drupal_internal__target_id][condition][value]=26&filter[field_tags.meta.drupal_internal__target_id][condition][memberOf]=field_tags-26-and&filter[field_tags-24-and][group][conjunction]=AND

and gave me results without any error, so am not able to reproduce from my side for now.
{"jsonapi":{"version":"1.0","meta":{"links":{"self":{"href":"http:\/\/jsonapi.org\/format\/1.0\/"}}}},"data":[{"type":"node--article","id":"7f6e83c6-9483-4bce-93ce-17e3837c3857","links":{"self":{"href":"https:\/\/master-7kvwzxc59zln2unf4lbnpr5d2uki59yo.tugboat.qa\/en\/jsonapi\/node\/article\/7f6e83c6-9483-4bce-93ce-17e3837c3857?resourceVersion=id%3A24"}},"attributes":{"drupal_internal__nid":12,"drupal_internal__vid":24,"langcode":"en","revision_timestamp":"2022-01-31T18:19:17+00:00","revision_log":null,"status":true,"title":"The real deal for supermarket savvy shopping","created":"2022-01-31T18:19:17+00:00","changed":"2022-01-31T18:19:17+00:00","promote":true,"sticky":false,"default_langcode":true,"revision_translation_affected":null,"moderation_state":"published","path":{"alias":"\/articles\/the-real-deal-for-supermarket-savvy-shopping","pid":89,"langcode":"en"},"content_translation_source":"und","content_translation_outdated":false,"body":{"value":"\u003Cp\u003EThis may not surprise you - but your supermarket is a hot bed of marketing mayhem, designed to improve their profit and to encourage the consumer to spend more than they intended. The tricks that all supermarkets employ are sometimes sensible ploys that any retailer should do to improve sales - but some may be more subtle and less obvious than you might think.\u003C\/p\u003E\n\u003Cp\u003EWith consumer awareness articles and documentaries frequently picking up on this topic, it\u0027s likely the case that retailers find it harder to get away with the more obvious ploys. We are becoming ever more savvy consumers and there\u0027s probably not a great deal that gets past us. But here\u0027s a few retail tricks to keep in mind when you are rushing around the weekly supermarket stock-up.\u003C\/p\u003E\n\u003Ch2\u003ELost essentials\u003C\/h2\u003E\n\u003Cp\u003EThe layout of your supermarket may make sense to you when you have shopped there for a while. But for newcomers trying to find essentials, it may make very little sense at all. Some supermarkets have noted that people come to their store to buy milk, bread, or eggs and that by hiding these essentials in the far reaches of the store, they encourage the newcomer to wander the aisles - picking up other items as they go.\u003C\/p\u003E\n\u003Cp\u003ESure, this can be great for nudging the memory on essentials you might otherwise forget, but for saving the pennies it\u0027s tough to stick to grabbing only the things you came for and the supermarkets know it!\u003C\/p\u003E\n\u003Cblockquote\u003E\nOur tip: Make your shopping list before leaving the house, checking what you need and sticking to that list. You could be amazed by what you\u0027ll save over time.\n\u003C\/blockquote\u003E\n\u003Ch2\u003ENonsensical multibuys\u003C\/h2\u003E\n\u003Cp\u003EBuy one, get one free; two for \u0026pound;2 and meal deals. They all seem like a great deal. But in some cases these are loss leaders that are positioned to encourage you to take up the deal and buy other stuff while you are there. In other cases, deals for multi-buy or discounts on specific pack sizes might seem like a bargain, until you compare the pricing like-for-like on similar brands or with pack sizes for the same brand. These deals can mean you end up paying less but is it less for something you don\u0027t really need and in some cases you can end up paying more for the item. Remember, the supermarkets know you are often in a hurry and might not have the time to take in the full picture.\u003C\/p\u003E\n\u003Cblockquote\u003E\n\u003Cp\u003EOur tip: Don\u0027t be rushed, take the time to read the small print. The large print will draw you in but if you read the label small print, you should find the price per 100 grams or per ounce\/litre and you\u0027ll be surprised how often the headline deals are actually more expensive than just buying a different package type or size of the product.\u003C\/p\u003E\n\u003C\/blockquote\u003E\n\u003Ch2\u003EUnderstanding our shopping habits\u003C\/h2\u003E\n\u003Cp\u003EThe cheapest products in a supermarket are almost always positioned on the bottom of the shelving where you\u0027ll need to bend over to pick it up. You also may not be able to easily read the price ticket. Most people will shop on the middle rows because it is easier and often quicker. These are where the highest profit items are kept and they are the ones the supermarkets want you to buy.\u003C\/p\u003E\n\u003Cp\u003EThe layout, the music, the colors, and the product types are all decided based on principles laid down by industry experts on people - psychologists and behavioral experts who know how we think. And so the savvy shopper will certainly be able to take advantage of great deals in their weekly shop, but it takes a little time and effort just to be more aware of what we are being encouraged to reach for in the aisles.\u003C\/p\u003E\n","format":"basic_html","processed":"\u003Cp\u003EThis may not surprise you - but your supermarket is a hot bed of marketing mayhem, designed to improve their profit and to encourage the consumer to spend more than they intended. The tricks that all supermarkets employ are sometimes sensible ploys that any retailer should do to improve sales - but some may be more subtle and less obvious than you might think.\u003C\/p\u003E\n\u003Cp\u003EWith consumer awareness articles and documentaries frequently picking up on this topic, it\u0027s likely the case that retailers find it harder to get away with the more obvious ploys. We are becoming ever more savvy consumers and there\u0027s probably not a great deal that gets past us. But here\u0027s a few retail tricks to keep in mind when you are rushing around the weekly supermarket stock-up.\u003C\/p\u003E\n\u003Ch2\u003ELost essentials\u003C\/h2\u003E\n\u003Cp\u003EThe layout of your supermarket may make sense to you when you have shopped there for a while. But for newcomers trying to find essentials, it may make very little sense at all. Some supermarkets have noted that people come to their store to buy milk, bread, or eggs and that by hiding these essentials in the far reaches of the store, they encourage the newcomer to wander the aisles - picking up other items as they go.\u003C\/p\u003E\n\u003Cp\u003ESure, this can be great for nudging the memory on essentials you might otherwise forget, but for saving the pennies it\u0027s tough to stick to grabbing only the things you came for and the supermarkets know it!\u003C\/p\u003E\n\u003Cblockquote\u003E\u003Cp\u003E\nOur tip: Make your shopping list before leaving the house, checking what you need and sticking to that list. You could be amazed by what you\u0027ll save over time.\n\u003C\/p\u003E\u003C\/blockquote\u003E\n\u003Ch2\u003ENonsensical multibuys\u003C\/h2\u003E\n\u003Cp\u003EBuy one, get one free; two for \u00a32 and meal deals. They all seem like a great deal. But in some cases these are loss leaders that are positioned to encourage you to take up the deal and buy other stuff while you are there. In other cases, deals for multi-buy or discounts on specific pack sizes might seem like a bargain, until you compare the pricing like-for-like on similar brands or with pack sizes for the same brand. These deals can mean you end up paying less but is it less for something you don\u0027t really need and in some cases you can end up paying more for the item. Remember, the supermarkets know you are often in a hurry and might not have the time to take in the full picture.\u003C\/p\u003E\n\u003Cblockquote\u003E\u003Cp\u003EOur tip: Don\u0027t be rushed, take the time to read the small print. The large print will draw you in but if you read the label small print, you should find the price per 100 grams or per ounce\/litre and you\u0027ll be surprised how often the headline deals are actually more expensive than just buying a different package type or size of the product.\u003C\/p\u003E\n\u003C\/blockquote\u003E\n\u003Ch2\u003EUnderstanding our shopping habits\u003C\/h2\u003E\n\u003Cp\u003EThe cheapest products in a supermarket are almost always positioned on the bottom of the shelving where you\u0027ll need to bend over to pick it up. You also may not be able to easily read the price ticket. Most people will shop on the middle rows because it is easier and often quicker. These are where the highest profit items are kept and they are the ones the supermarkets want you to buy.\u003C\/p\u003E\n\u003Cp\u003EThe layout, the music, the colors, and the product types are all decided based on principles laid down by industry experts on people - psychologists and behavioral experts who know how we think. And so the savvy shopper will certainly be able to take advantage of great deals in their weekly shop, but it takes a little time and effort just to be more aware of what we are being encouraged to reach for in the aisles.\u003C\/p\u003E\n","summary":null}},"relationships":{"node_type":{"data":{"type":"node_type--node_type","id":"b0ec46e0-b563-485f-b0f6-f1990adbbd29","meta":{"drupal_internal__target_id":"article"}},"links":{"related":{"href":"https:\/\/master-7kvwzxc59zln2unf4lbnpr5d2uki59yo.tugboat.qa\/en\/jsonapi\/node\/article\/7f6e83c6-9483-4bce-93ce-17e3837c3857\/node_type?resourceVersion=id%3A24"},"self":{"href":"https:\/\/master-7kvwzxc59zln2unf4lbnpr5d2uki59yo.tugboat.qa\/en\/jsonapi\/node\/article\/7f6e83c6-9483-4bce-93ce-17e3837c3857\/relationships\/node_type?resourceVersion=id%3A24"}}},"revision_uid":{"data":{"type":"user--user","id":"90901dd7-2d16-457d-a9ee-7225b506e47a","meta":{"drupal_internal__target_id":6}},"links":{"related":{"href":"https:\/\/master-7kvwzxc59zln2unf4lbnpr5d2uki59yo.tugboat.qa\/en\/jsonapi\/node\/article\/7f6e83c6-9483-4bce-93ce-17e3837c3857\/revision_uid?resourceVersion=id%3A24"},"self":{"href":"https:\/\/master-7kvwzxc59zln2unf4lbnpr5d2uki59yo.tugboat.qa\/en\/jsonapi\/node\/article\/7f6e83c6-9483-4bce-93ce-17e3837c3857\/relationships\/revision_uid?resourceVersion=id%3A24"}}},"uid":{"data":{"type":"user--user","id":"90901dd7-2d16-457d-a9ee-7225b506e47a","meta":{"drupal_internal__target_id":6}},"links":{"related":{"href":"https:\/\/master-7kvwzxc59zln2unf4lbnpr5d2uki59yo.tugboat.qa\/en\/jsonapi\/node\/article\/7f6e83c6-9483-4bce-93ce-17e3837c3857\/uid?resourceVersion=id%3A24"},"self":{"href":"https:\/\/master-7kvwzxc59zln2unf4lbnpr5d2uki59yo.tugboat.qa\/en\/jsonapi\/node\/article\/7f6e83c6-9483-4bce-93ce-17e3837c3857\/relationships\/uid?resourceVersion=id%3A24"}}},"field_media_image":{"data":{"type":"media--image","id":"9c79bc14-9671-4854-9983-6df543c6e5c8","meta":{"drupal_internal__target_id":12}},"links":{"related":{"href":"https:\/\/master-7kvwzxc59zln2unf4lbnpr5d2uki59yo.tugboat.qa\/en\/jsonapi\/node\/article\/7f6e83c6-9483-4bce-93ce-17e3837c3857\/field_media_image?resourceVersion=id%3A24"},"self":{"href":"https:\/\/master-7kvwzxc59zln2unf4lbnpr5d2uki59yo.tugboat.qa\/en\/jsonapi\/node\/article\/7f6e83c6-9483-4bce-93ce-17e3837c3857\/relationships\/field_media_image?resourceVersion=id%3A24"}}},"field_multiple_tax":{"data":[],"links":{"related":{"href":"https:\/\/master-7kvwzxc59zln2unf4lbnpr5d2uki59yo.tugboat.qa\/en\/jsonapi\/node\/article\/7f6e83c6-9483-4bce-93ce-17e3837c3857\/field_multiple_tax?resourceVersion=id%3A24"},"self":{"href":"https:\/\/master-7kvwzxc59zln2unf4lbnpr5d2uki59yo.tugboat.qa\/en\/jsonapi\/node\/article\/7f6e83c6-9483-4bce-93ce-17e3837c3857\/relationships\/field_multiple_tax?resourceVersion=id%3A24"}}},"field_tags":{"data":[{"type":"taxonomy_term--tags","id":"eb678a55-66ed-4df0-aaa6-bf820f146738","meta":{"drupal_internal__target_id":26}},{"type":"taxonomy_term--tags","id":"93ba39f7-40eb-4c8d-bb4a-983a1ecb540e","meta":{"drupal_internal__target_id":24}}],"links":{"related":{"href":"https:\/\/master-7kvwzxc59zln2unf4lbnpr5d2uki59yo.tugboat.qa\/en\/jsonapi\/node\/article\/7f6e83c6-9483-4bce-93ce-17e3837c3857\/field_tags?resourceVersion=id%3A24"},"self":{"href":"https:\/\/master-7kvwzxc59zln2unf4lbnpr5d2uki59yo.tugboat.qa\/en\/jsonapi\/node\/article\/7f6e83c6-9483-4bce-93ce-17e3837c3857\/relationships\/field_tags?resourceVersion=id%3A24"}}}}}],"links":{"self":{"href":"https:\/\/master-7kvwzxc59zln2unf4lbnpr5d2uki59yo.tugboat.qa\/jsonapi\/node\/article?filter%5B3%5D%5Bcondition%5D%5Bpath%5D=field_tags.meta.drupal_internal__target_id\u0026filter%5B3%5D%5Bcondition%5D%5Bvalue%5D=24\u0026filter%5B3%5D%5Bcondition%5D%5BmemberOf%5D=field_tags-24-and\u0026filter%5Bfield_tags-26-and%5D%5Bgroup%5D%5Bconjunction%5D=AND\u0026filter%5Bfield_tags.meta.drupal_internal__target_id%5D%5Bcondition%5D%5Bpath%5D=field_tags.meta.drupal_internal__target_id\u0026filter%5Bfield_tags.meta.drupal_internal__target_id%5D%5Bcondition%5D%5Bvalue%5D=26\u0026filter%5Bfield_tags.meta.drupal_internal__target_id%5D%5Bcondition%5D%5BmemberOf%5D=field_tags-26-and\u0026filter%5Bfield_tags-24-and%5D%5Bgroup%5D%5Bconjunction%5D=AND"}}}

@d34dman Oh wow, interesting. I can look into my d9 setup a bit more and see if there's a conflict from another contrib module or core patch. But curious, what version of D9 are you running? Any d9 core patches related to json api? And are you using any json api add-on modules such as jsonapi_extras ?

@wluisi
I didn't use jsonapi_extras or any patches. The test was done on "umami demo" on https://simplytest.me/. After I got my instance, I enabled json_api module and ran the above query.
The preview site is gone already, but you may retry the procedure to get more details on simplytest.me site

@d34dman Hey, just want to say thanks again for helping me debug this! I was able to narrow down the issue to jsonapi_extras contrib module. Added a drupal.org issue here: https://www.drupal.org/project/jsonapi_extras/issues/3262994
Seems like any integer as a filter label will trigger the '@root' is a reserved filter id. issue if jsonapi_extras is installed.

@wluisi  thanks for figuring this out. I would close this for now.
And in case you would you like to have a feature in this library to use "alphanumeric" keys always, please create a feature request.


Create supervisor.md

added supervisor instructions

Thank you. I made a few modifications as according to the intro we're going to run it as user "mailpit" but there is no user specified (so I've added this). I also commented out the environment setting as many users will just copy/paste these configs without reading them. Please take another look at this and let me know if that is technically correct (I don't use supervisor so I'm unsure)


enable accelerated networking

Which issue this PR addresses:
Fixes https://issues.redhat.com/browse/ARO-1487
What this PR does / why we need it:
This PR enables Accelerated Networking for VM Types that support it by checking for the capability in the vm SKU.
Test plan for issue:

Added unit tests for determining network type.
Created a cluster and verified Azure Portal shows Accelerated Networking is enabled for masters/workers.  Did NOT test this with vmsizes that don't support accelerated networking as there are not any available in the dev sub.
Upgraded a cluster from from 4.11.16 -> 4.11.21 to validate network connectivity to Gateway.
Created an image stream and deployed an app using the image stream.

/lgtm

/approve

/cherry-pick release-4.11


Makes terminology consistent

There's a lot of misused words thrown around.
Symbols to streamline

withNewResolutionProvider
ResolutionProviderProps
ResolutionProvider
useDependency
useController
ControllerProtocol
ServiceLifetimes
Injectable
register
DependencyScope
InjectionContainer

I think I'll do this:

withNewResolutionProvider -> withNewContainer
ResolutionProvider -> NewContainer
useDependency -> useResolve
useController -> useResolveLifecycle
ControllerProtocol -> Lifecycle
ServiceLifetimes -> Scopes
Injectable -> I think that's good as is.
register -> I think that's good as is
DependencyScope -> Container (is more fitting)
InjectionContainer -> Resolution (is more fitting)


Convert current app to use mongoose for the mongodb connections

This will make it easier to add user authentication
REF:
https://mongoosejs.com/

database connection now uses mongoose. Now need to update the CRUD functions.

All functions now use mongoose for mongoDB interfacing


SFTP plugins not working as of 1.36

Any plugin that supports SFTP (I currently use Remote FS but have tried this with 3 different plugins) fails after upgrading VSC to 1.36. All three plugins throw the same error:
Error while signing data with privateKey: error:06000080:public key routines:OPENSSL_internal:UNSUPPORTED_ALGORITHM
However, downgrading to 1.35 and all three SFTP plugins work again

1.36 brought Electron 4, Chrome 69 and Node.js 10.11.0, so perhaps one or more of those upgrades is relevant. In any case I think you need to raise your issue with the extension provider.


fix slow query bug when order by other fields

revert #835
Only convert to ORDER BY TIME when the original is ORDER BY timestamp

@breeswish PTAL

@breeswish PTAL

/merge

/merge


Added Support for Different Size Cells

This is limited in a grid of 12
Description of the Change
This change allows the user to specify a size when creating a New-PodeWebCell in a grid of 12 as bootstrap allows here bootstrap docs
Examples
Start-PodeServer {
    Add-PodeEndpoint -Address localhost -Port 8888 -Protocol Http

    Use-PodeWebTemplates -Title 'Example' -Theme Light

    Add-PodeWebPage -Name 'Services' -NoTitle -Icon 'Settings' -ScriptBlock {
        New-PodeWebGrid -Cells @(
            New-PodeWebCell -Size 8 -Content @(
                New-PodeWebCard -Content @(New-PodeWebParagraph -Value 'Size 8')
            )
            New-PodeWebCell -Size 4 -Content @(
                New-PodeWebCard -Content @(New-PodeWebParagraph -Value 'Size 4')
            )
        )
    }
}

Without the change:

With the change:

@Badgerati I've fixed the formatting and renamed the parameter to Width.
Unless there are any other changes you would like this can probably get merged.


Feat/settings env var

add an environment variable for a settings directory,
add a port argument to riseapi and interactmsbot commands

DP_SETTINGS_PATH=../utils/settings/server_config.json python3 -m deeppavlov download configs/go_bot/gobot_dstc2.json (not dir, but file specified)
produces bad error (not informative)


[Question] Help with a InvalidCastException when calling wcf services

I have two plugins that both call wcf services. Both are referring System.ServiceModel with version 4.7. I'm marking both plugins as unloadable.
Only one of the plugins can call his service (always the first to be executed). Whenever the other plugin calls a service, the InvalidCastException is thrown (Exception: Unable to cast object of type 'generatedProxy_2' to type 'System.ServiceModel.Channels.ServiceChannelProxy').
The only way to get around the problem is to have each plugin reference a different version of System.Model. I also tried to make System.ServiceModel has PrivateAssemblies.
it is necessary to do something different to better isolate each plugin?

Sorry, sometimes it all makes sense just in my head.
I have an application that at a given point in the user registration process sends the user data to other systems/application. Each user data synchronization is done by a separate plugin.
My application provides an interface with a method that each plugin must implement.
After the user registers, the application loads all the plugin's that implement this interface and executes the method for each one.
After successful loaded the plugin, the plugin is not unloaded. They are kept in memory.
If more than one of the plugins makes a calls to soap services using these libraries (System.ServiceModel and his dependencies). Only the first plugin to run does it successfully. Any of the following gives the error 'generatedProxy_2' to type 'System.ServiceModel.Channels.ServiceChannelProxy'.
If I have each plugin using a different version of the libraries. The error no longer occurs.
Small code sample:
var basicHttpBinding = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
var factory = new ChannelFactory<UserServices>(basicHttpBinding, new EndpointAddress("https://services/user.svc"));
var serviceClient = factory.CreateChannel();
The error occurs in the last line of code.

Thanks for more detail. I'm still not sure how to go about finding a solution here. Based on what you said, I have a starting point, but no definite answers.
Hint 1: you said the error says something about a generated proxy. Is WCF using System.Reflection.Emit to generate new types? Or using Microsoft.CodeAnalysis to do runtime complications?
Hint 2: error doesn't occur if using different WCF versions. Maybe WCF had a bug? Try upgrading?

My first thought was precisely that. I validate with other web services, but I always got the same error.
I believe WCF is using System.Reflection.Emit. The plugin's are generating their code through visual studio 2019. Visual studio is using Microsoft.Tools.ServiceModel.Svcutil v2.0.2.
I ended up definitely solving the problem by passing the creation of the wcf client to the host. The plug-ins will use a class made available by the host through DI to create the wcf client. The code that i show above will be executed in this class.

Ok. Closing because I think your solution to move WCF into the host is a good move. .NET assembly load context and system.ref.emit apparently don't play nice. There's only so much this library can do to coerce certain plugin behaviors out of .NET's runtime.

@natemcmaster I was running into the same issue and found a solution thanks to this post.
Maybe add this to the FAQ, as it seems to be a general thing with WCF services.

Hi.
The idea will be to pass the creation of the channel to a service.
At the host I have a service (IPluginServiceFactory) with a method (
CreateChannel). I have a class that implements this service (
WcfServiceFactory). The method is responsible for creating the channel.
In the plugin I just have to add the service (IPluginServiceFactory ) in
the constructor. And call the method whenever necessary.
Host code:
IPluginServiceFactory.cs
TChannel CreateChannel(ChannelFactory factory);
WcfServiceFactory.cs
public TChannel CreateChannel(ChannelFactory factory)
{
return factory.CreateChannel();
}
Plugin code:
var channelFactory = new ChannelFactory(basicHttpBinding, new
EndpointAddress(new Uri("Http://somehost/webservices/userservice.svc")));
var serviceClient = pluginServiceFactory.CreateChannel(channelFactory);
it is also possible to have the (IPluginServiceFactory) create the
ChannelFactory.
in this case the method would only receive the information to create the
EndpointAddress.
After this initial problem I ended up having another situation.
There were two plugins sharing the same business. Each of the plugins
invoked the exact same wcf service and the exact same methods.
To solve this, in the build of each plugin, I define a different assembly
version.


GraphQL: do not return property value 'null' if property is not in weaviate instance

do not return null as value, but do not return the property value at all

Can't reproduce this. Or I don't understand the bug. @laura-ham, can you explain it? Just for the record: it is not possible to return something else than 'null' if the user requests for a field that is not filled in for a certain object (thing/action).

@johnciocoiu Exactly as you explain. Since it is not possible to return anything else than 'null' if the user requests for a field that is empty, this issue is no longer an issue.


How to avoid SwiftSyntax annoyance?

Hello,
I'm a happy user of Swift OpenAPI generator, and this afternoon I met my first SPM problem due to a conflicting dependency on http://github.com/apple/swift-syntax from another package.
SPM error

Failed to resolve dependencies Dependencies could not be resolved because 'XXX' depends on 'swift-openapi-generator' 0.3.0..<0.4.0 and 'XXX' depends on 'swift-snapshot-testing' 1.14.1..<2.0.0.
'swift-snapshot-testing' is incompatible with 'swift-openapi-generator' because 'swift-openapi-generator' 0.3.0 depends on 'swift-syntax' 508.0.1..<509.0.0 and no versions of 'swift-openapi-generator' match the requirement 0.3.1..<0.4.0.
'swift-snapshot-testing' >= 1.14.1 practically depends on 'swift-syntax' 509.0.0..<510.0.0 because 'swift-snapshot-testing' 1.14.1 depends on 'swift-syntax' 509.0.0..<510.0.0 and no versions of 'swift-snapshot-testing' match the requirement 1.14.2..<2.0.0.

SwiftSyntax is well-known for not following semver, and just create churn in the package ecosystem. See the forum thread Macro Adoption Concerns around SwiftSyntax for an interesting exploration of the problem.
Yes, the landscape may improve over time. For example, maybe SPM will learn to better deal with packages that only depend on swift-syntax for their own tests.
Meanwhile, the dependency of swift-openapi-generator on swift-syntax is just a ticking bomb waiting to annoy your users when they least expect it.
I'm opening a symmetric issue in the other repository: https://github.com/pointfreeco/swift-snapshot-testing/discussions/794.

Hi @groue, what do you suggest here?

While I'd also like to see improvements in this area and I appreciate the issues it's causing, how can we help in the short term? For example, we are planning moving to 5.9 as the minimum Swift version, which would include bumping the minimum swift-syntax and swift-format version to 5.9: #75 - would you be interested in contributing that change?

I won't tell you the ugly SPM workarounds I have to do right now because of this problem

I was wrong: there is no workaround 🤦

we are planning moving to 5.9 as the minimum Swift version [...] would you be interested in contributing that change

Why not, but honestly this won't be because of this issue.
My only choice here is to drop swift-openapi-generator, or drop swift-snapshot-testing. Relying on both libraries to synchronize their dependency on SwiftSyntax on the long run is not a reasonable bet. Add a third library in the equation, and I'm basically stuck, unable to upgrade anything until all three libs agree.
The problem is the immaturity of the (SwiftSyntax, SPM) pair. I guess it will be fixed eventually. But SwiftSyntax moves fast and break things, while SPM development is slow and conservative. I'm not holding my breath. And I won't shoot in my foot.

Understood. I appreciate you also pushing in the thread on this topic.

I noted in the thread that this package currently conflicts with any package that includes a macro with the same dependencies generated by the Xcode template for macro packages.
As @mbrandonw notes, we can update swift-snapshot-testing to more widely target swift-syntax starting from 508.0 with a liberal dash of #if, that would technically prevent consumers of both packages from actually using any of the macro features of our library, since swift-openapi-generator would still force the earlier version.
I think @ahoppen may be able to suggest a solution here.

And @czechboy0, don't hesitate hinting me at how I can help for #75 :)

@groue Ha, well I'd say let's bump everything to 5.9 (since we're still pre-1.0), so essentially grep -r '5.8' and grep -r '508' in both this, runtime, URLSession transport, and AHC transport repos, and move it all up to 5.9. Then you'll spot if anything needs to be updated, but it's possible this might be it.

@czechboy0 I may be missing something, but it doesn't seem like SwiftSyntax is actually used anywhere in the library? I seem to be able to build everything even after I remove the dependency. So, maybe it's just not needed?

@czechboy0 I may be missing something, but it doesn't seem like SwiftSyntax is actually used anywhere in the library? I seem to be able to build everything even after I remove the dependency. So, maybe it's just not needed?

It's will still be coming in as a dependency of swift-format, which presumably you did not remove from the package dependencies in your experiment?

Hi @simonjbeaumont, that is true, making the situation all the more complex.
It really does seem that Apple's own open source projects should be leading the way in terms of supporting older versions of SwiftSyntax and being a good citizen in the ecosystem. I think OpenAPIGenerator should relax their dependency on SwiftFormat to be "508.0.1"..<"510.0.0". That would allow people to start using macros while still depending on OpenAPIGenerator, and it doesn't take much to accomplish.
By having such huge, linchpin projects in the ecosystem commit to just a single version of SwiftSyntax we are slowly creeping into really messy territory. And I think it's really going to hit the fan once Swift 5.10 comes out.

@mbrandonw I agree we need to have a solution here and thanks for taking the time to look at what it would take for this project.
It’s always been on our radar to have a good story for this before 1.0. And now is as good a time as any.
FWIW, I’m not against that proposed patch. We’ll get back to this early next week.

Same, the patch looks good, just should probably also relax the swift-syntax dependency in addition to the swift-format one. @mbrandonw, if you turn that into a PR that'd be a much welcome contribution.

Thank you all for such a good description of the topic, sharing so much experience, and soothing my concerns. Whenever I have to open a similar issue in another repository, I'll write a much better original post.

Hi @simonjbeaumont & @czechboy0, sure thing. Done here https://github.com/apple/swift-openapi-generator/pull/331 🙂

With #331, we should have this issue addressed for the 5.9 release shortly, and I'd encourage anyone who has ideas to chime in on the Forums post to help the community improve the story around using swift-syntax. Thanks @groue for driving this!


[BUG] Search doesn't work on search result page

Describe the bug
The search doesn't work when you are on the search result page.
Reproduce:
Search for some products using the search bar and hit enter (e.g. "linen")
On search result page go to the search bar and search for something else (e.g. "awesome").
It does re-render the listing, however with the old set of results.
=> https://shopware-pwa.storefrontcloud.io/search?query=linen

fixed with #978 will be released today as hotfix 0.2.1


spec/backup: rename cleanupBackupsOnClusterDelete to autoDelete

In backup policy, the field cleanupBackupsOnClusterDelete is too long and verbose.
Now I have a better name -- autoDelete.

Here's the plan:

We will add AutoDelete field first. If either AutoDelete or CleanupBackupsOnClusterDelete is set to true, we will have AutoDelete=true.
We will drop CleanupBackupsOnClusterDelete in 0.4.0 release

@hongchaodeng can we still keep the json tag? so we do not need to go through the internal depreciation path. we only need to drop the json tag when we decide to drop the external field.

The value of this change is about the json tag.
Currently it is too long for reading and writing.

another idea: rename backupIntervalInSecond to intervalInSec.
backup:
  intervalInSec: 1800

fixed in #1228


Where can I access the deployed tech radar?

Is this hosted somewhere? I was looking for the URL but could not find it.
The README includes a URL but this seems to be for the original tech radar, not for xgeeks:
https://github.com/xgeekshq/tech-radar/blob/ff1657337a21c5a3078a212fb743613e7ea4e0be/readme.md?plain=1#L3

Closed by #4


Base url not honored for CSS paths in 0.16

--baseURL=http://localhost:1313/blog
used to render css includes (0.15) with the "/blog" in the url but now the path element seems to be missing.

Is "blog" also a section on your Hugo site?

Not really. The hugo site is just a part of the whole site and served apache on the path "/blog". The thing is that all the other links follow the baseURL except css links.
I have reverted to 0.15 and then it works as at least I expect it to work.

Is it really supposed to not set the css path as well or is this a bug? If it is not a bug how would I go about  to work with this? I got 0.16 through homebrew locally the other day. On our CI machine we still run 0.15 for this very reason.

Is it really supposed to not set the css path as well or is this a bug? If it is not a bug how would I go about to work with this?

Someone will look into it when spare time pops up. Your current workaround may be to use Hugo 0.15.

If you can point me in the right direction I can have a look. Go is no problem but Hugo has grown quite large.

How are you importing your CSS resources?  Can you diff the HTML HEAD sections between 0.15 and 0.16 to see what's different?

If you can point me in the right direction I can have a look.

@dahankzter You have a breaking test. Look at the template where the CSS URL is constructed, then follow the code path to look where it went wrong. The BaseURL is located on the SiteInfo object.
Thanks for looking into this, no I can scratch it off of my TODO list.

I've just run into this as well trying to work with github pages publish. CSS doesn't honor baseurl and canonify = true.

I am sorry I haven't had any time to look into this.
One thing that struck me was to have a look at my template. Perhaps it is
possible to ignore the whole thing by specifying the css location without
explicit host.
On Tue, Jul 5, 2016, 03:37 James Burns<EMAIL_ADDRESS>wrote:

I've just run into this as well trying to work with github pages publish.
CSS doesn't honor baseurl and canonify = true.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/spf13/hugo/issues/2194#issuecomment-230371097, or mute
the thread
https://github.com/notifications/unsubscribe/AAKcU0kJ3MpOTPPjP3V0vvbLcRLBdciOks5qSbV2gaJpZM4IysKq
.

I also find this issue and switch back to 0.15.

If it can help.
I have the same problem on ubuntu but it works fine on windows.
And, it's not only for css link, the variable {{ .Site.BaseURL }} seem to be empty for any link (image src, hyperlink href, etc...)

I found that on the documentation :
{{ "mystyle.css" | absURL }} → “http://mysite.com/hugo/mystyle.css"
With this structure it works as expected.

The reason why a site built with 0.15 produced the right path to the css file but newer version don't is that in 0.15, we could have:
<link rel="stylesheet" href="{{ "/css/main.css" | absURL }}">
but now we need
<link rel="stylesheet" href="{{ "css/main.css" | absURL }}">
note the last line doesn't have /css
in my case the baseURL is baseurl = "https://www.examplesite.com/docs" and  the css real path needs to be
https://www.examplesite.com/docs/css/main.css

@bep I have the exact same problème and I have no choice to use {{ "css/main.css" | absURL }} to make this work.
I have an about page and all the {{ .Site.BaseURL }} do not seem to work in that specific page.
You can test it out here : https://github.com/stephenbe/hugo-error
I would reopen this issue if you can confirm this bug with my repo


Support split BroadcastNestedLoopJoin condition for AST and non-AST [databricks]

This is to fix https://github.com/NVIDIA/spark-rapids/issues/8832 and https://github.com/NVIDIA/spark-rapids/issues/9681. This PR is based on https://github.com/NVIDIA/spark-rapids/pull/9635 while fixing issues in databrick runtime.

build

@jlowe could you also take a look at the fix for databricks?

build

It seems to fail due to irrelevant cases.
For HYPOT function, is it acceptable to have some diff against CPU? It's different at 0.000 000 000 000 001e-123 against CPU @NVnavkumar

Error log
[2023-11-16T08:36:34.333Z] ----------------------------- Captured stdout call -----------------------------
[2023-11-16T08:36:34.333Z] ### CPU RUN ###
[2023-11-16T08:36:34.333Z] ### GPU RUN ###
[2023-11-16T08:36:34.333Z] ### COLLECT: GPU TOOK 0.15743589401245117 CPU TOOK 0.15597891807556152 ###
[2023-11-16T08:36:34.333Z] --- CPU OUTPUT
[2023-11-16T08:36:34.333Z] +++ GPU OUTPUT
[2023-11-16T08:36:34.333Z] @@ -162,7 +162,7 @@
[2023-11-16T08:36:34.333Z]  Row(HYPOT(a, b)=4.7649288220271566e+38)
[2023-11-16T08:36:34.333Z]  Row(HYPOT(a, b)=5.716482950764417e+60)
[2023-11-16T08:36:34.333Z]  Row(HYPOT(a, b)=9.16493876188188e+119)
[2023-11-16T08:36:34.333Z] -Row(HYPOT(a, b)=1.012833120432452e-227)
[2023-11-16T08:36:34.333Z] +Row(HYPOT(a, b)=1.0128331204324521e-227)
[2023-11-16T08:36:34.333Z]  Row(HYPOT(a, b)=1.0125195708346668e-07)
[2023-11-16T08:36:34.333Z]  Row(HYPOT(a, b)=0.011335000267386385)
[2023-11-16T08:36:34.333Z]  Row(HYPOT(a, b)=inf)
[2023-11-16T08:36:34.333Z] @@ -458,7 +458,7 @@
[2023-11-16T08:36:34.333Z]  Row(HYPOT(a, b)=inf)
[2023-11-16T08:36:34.333Z]  Row(HYPOT(a, b)=4.189982105230443e+197)
[2023-11-16T08:36:34.333Z]  Row(HYPOT(a, b)=None)
[2023-11-16T08:36:34.333Z] -Row(HYPOT(a, b)=3.422031462089623e-123)
[2023-11-16T08:36:34.333Z] +Row(HYPOT(a, b)=3.422031462089622e-123)
[2023-11-16T08:36:34.333Z]  Row(HYPOT(a, b)=3.4211840517918124e+282)
[2023-11-16T08:36:34.333Z]  Row(HYPOT(a, b)=1.253731930287053e+29)
[2023-11-16T08:36:34.333Z]  Row(HYPOT(a, b)=6.442446824252015e+255)
[2023-11-16T08:36:34.333Z] @@ -513,7 +513,7 @@
(more to show)
[2023-11-16T08:36:34.335Z] =========================== short test summary info ============================
[2023-11-16T08:36:34.335Z] FAILED ../../src/main/python/arithmetic_ops_test.py::test_hypot[Double][DATAGEN_SEED=1700118086, INJECT_OOM, APPROXIMATE_FLOAT] - AssertionError: GPU and CPU float values are different [1968, 'HYPOT(a, b)']
[2023-11-16T08:36:34.335Z] = 1 failed, 19231 passed, 2174 skipped, 620 xfailed, 278 xpassed, 78 warnings in 5706.96s (1:35:06) =

For HYPOT function, is it acceptable to have some diff against CPU? It's different at 0.000 000 000 000 001e-123 against CPU @NVnavkumar

I think this is okay, but we should file an issue for it. It is likely caused by DATAGEN_SEED=1700118086, but we need to understand why we are off by more than APPROX_FLOAT can handle.
I'll file the issue.

I filed https://github.com/NVIDIA/spark-rapids/issues/9744 for this and I'll put up a PR to mark it as xfail shortly.


Ensure Service Bus session idle timeout fall back to retry-options::try-timeout

Fixes https://github.com/Azure/azure-sdk-for-java/issues/39993

API change check
API changes are not detected in this pull request.


Fixed problem when dropdown item contains double quote

Fixed the problem with data-value attribute when the dropdown item contains double quote
#2423

Looks good to me with replacement, but let's just instead of modifying current item's item.value do the new var like const itemValue = ... and use it further in code?

Updated with new variable. BTW, may I know what's the advantage of assigning to a new variable?

Thanks! Not really advantage, but modifying passed arguments considered harmful to avoid side effects. For example in situations like this:
var item = {
  value: 'fo"o',
};

function renderItem(item) {
  item.value.replace = item.value.replace(/"/g, '"');
  ...
}
function doSomethingWithItem(item) {
  // this will be false after render item
  if (item.value.indexOf('"') >= 0) {
    ...
  }
}

renderItem(item);
// this may not work as expected because we modified item value
doSomethingWithItem(item);


AWS::Serverless::SimpleTable Auto-Scaling

DynamoDB Auto-Scaling via CFN is verbose to say the least.  I propose that we add configuration properties to AWS::Serverless::SimpleTable which will implicitly generate all the necessary resources via the SAM translator.
SAM Template:
MyTable:
  Type: AWS::Serverless::SimpleTable
  Properties:
    ...
    AutoScaling: (optional)
      ReadScaling: (optional, disabled if omitted)
        MinCapacity: Integer (default: 5, same as console)
        MaxCapacity: Integer (default: 4000, same as console)
        TargetUtilization: Integer (default: 70, same as console)
      WriteScaling: (optional, disabled if omitted)
        MinCapacity: Integer (default: 5, same as console)
        MaxCapacity: Integer (default: 4000, same as console)
        TargetUtilization: Integer (default: 70, same as console)

Translated CFN Template:
MyTable:
  Type: AWS::DynamoDB::Table
  Properties:
    ...

MyTableScalingRole:
  Type: AWS::IAM::Role
  Properties:
    AssumeRolePolicyDocument:
      Version: "2012-10-17"
      Statement:
      - Effect: Allow
        Principal:
          Service:
          - application-autoscaling.amazonaws.com
        Action:
        - sts:AssumeRole
    Path: "/"
    Policies:
    - PolicyName: root
      PolicyDocument:
        Version: "2012-10-17"
        Statement:
        - Effect: "Allow"
          Action:
          - dynamodb:DescribeTable
          - dynamodb:UpdateTable
          - cloudwatch:PutMetricAlarm
          - cloudwatch:DescribeAlarms
          - cloudwatch:GetMetricStatistics
          - cloudwatch:SetAlarmState
          - cloudwatch:DeleteAlarms
          Resource: !GetAtt MyTable.Arn

MyTableWriteCapacityScalableTarget:
  Type: AWS::ApplicationAutoScaling::ScalableTarget
  Properties:
    MaxCapacity: Integer (provided by SAM template)
    MinCapacity: Integer (provided by SAM template)
    ResourceId: !Sub table/${MyTableScalingRole.Arn}
    ScalableDimension: dynamodb:table:WriteCapacityUnits
    ServiceNamespace: dynamodb

MyTableWriteScalingPolicy:
  Type: AWS::ApplicationAutoScaling::ScalingPolicy
  Properties:
    PolicyName: MyTableWriteAutoScalingPolicy
    PolicyType: TargetTrackingScaling
    ScalingTargetId: !Ref MyTableWriteCapacityScalableTarget
    TargetTrackingScalingPolicyConfiguration:
      TargetValue: Integer  (provided by SAM template)
      ScaleInCooldown: 60
      ScaleOutCooldown: 60
      PredefinedMetricSpecification:
        PredefinedMetricType: DynamoDBWriteCapacityUtilization

MyTableReadCapacityScalableTarget:
  Type: AWS::ApplicationAutoScaling::ScalableTarget
  Properties:
    MaxCapacity: Integer (provided by SAM template)
    MinCapacity: Integer (provided by SAM template)
    ResourceId: !Sub table/${MyTableScalingRole.Arn}
    ScalableDimension: dynamodb:table:ReadCapacityUnits
    ServiceNamespace: dynamodb

MyTableReadScalingPolicy:
  Type: AWS::ApplicationAutoScaling::ScalingPolicy
  Properties:
    PolicyName: MyTableReadAutoScalingPolicy
    PolicyType: TargetTrackingScaling
    ScalingTargetId: !Ref MyTableReadCapacityScalableTarget
    TargetTrackingScalingPolicyConfiguration:
      TargetValue: Integer (provided by SAM template)
      ScaleInCooldown: 60
      ScaleOutCooldown: 60
      PredefinedMetricSpecification:
        PredefinedMetricType: DynamoDBReadCapacityUtilization

I welcome any discussion on this proposal.  This proposed implementation would generate a scaling role per table, which would be wasteful.  The console creates and reuses a single role for this purpose, but this may be awkward to implement in SAM.
I would be willing to work on this once I become more familiar with the internals of the SAM translator, but it may best be left to someone with more intimate knowledge.

This is beautiful! Thanks for the detailed proposal showing SAM template and associated CFN template.
A few things I would encourage you to think:

Can we somehow allow customers to provide their own IAM Roles, may be thru a Role property?
Do we need to provide overrides for ScalingInCooldown and ScalingUpCooldown in SAM?
How do we make this future proof? This is open ended but I would usually think, if DDB adds new functionality such as Scaling based on Throttles or some new scaling configuration, where we might add them in future? Does the syntax you are proposing allow such extensions?

Can we somehow allow customers to provide their own IAM Roles, may be thru a Role property?

Are you thinking of an optional role to override the generated one?  If so, then that may be an option.

Do we need to provide overrides for ScalingInCooldown and ScalingUpCooldown in SAM?

Do we need to?  No, the console doesn't even let you choose this.  Could we?  Sure, do you want to?

How do we make this future proof?

¯_(ツ)_/¯
I guess it's entirely possible for dynamo to add more metrics that you might want to scale based off of, but I think that allowing the user to specify their own TargetTrackingScalingPolicyConfiguration, would defeat the purpose of this implicit configuration.  Maybe we should just add more metrics as they become available?
e.g.
ReadScaling: (optional, disabled if omitted)
  MinCapacity: Integer (default: 5, same as console)
  MaxCapacity: Integer (default: 4000, same as console)
  TargetUtilization: Integer (default: 70, same as console, must be undefined if OtherScalingMetric is defined)
  OtherScalingMetric: Integer (optional, must be undefined if TargetUtilization is defined)

I've seen this sort of conditional configuration in other areas of SAM, like the RestApi DefinitionBody and DefinitionUri.

+1

I was playing with translator implementing the same feature. I'm currently stuck with an error that I can't figure out, let me know if I can help.

+1

I would suggest that this issue be reopened as the on-demand capacity mode is expensive and not a one size fits all solution of the aforementioned problem.


Add support for tagging AutoScaling Groups

The main difference from the other resources is ASG tags can be propagated to instances.
For that I added a boolean flag automatically appended to the tag value, |Propagate=true|false
This is currently expected also when creating the values from a brand new CSV file, but I'm considering to make it a default to "true". What's your take on that?

Looks good, thank you for contribution

https://github.com/mpostument/awstaghelper/releases/tag/0.18.0

Awesome, thanks @mpostument!
I'll add tagging for EBS volumes over the next few days, stay tuned.
For a little context, I plan to use awstaghelper for easy onboarding of my leanercloud.com cost optimization tools which heavily rely on resource tagging for ASGs and EBS.
Thanks for this wonderful little tool!


Replace PackageReference to Microsoft.AspNetCore.App with FrameworkReference

Problem
Most NuGet packages provide both compilation and runtime assets. Microsoft.NETCore.App and Microsoft.AspNetCore.App effectively only provide the first - compilation references. Users must install other runtime assets to make .NET Core apps work but this is not obvious or intuitive, and not always possible: for example, Azure Web Apps, AWS, Google Cloud, etc. This violates a reasonable expectation of using a NuGet package, and has been a continual source of confusion for users.
See https://github.com/aspnet/AspNetCore/issues/3307 for more context.
Proposed solution
Change the item type used to reference the shared framework in a .csproj file.
<ItemGroup>
   <FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>

Unlike PackageReference, a FrameworkReference item:

May not actually be a NuGet package. (It might be -- but that's an implementation detail hidden from users.)
There is no Version attribute
The version of the FrameworkReference is controlled by TargetFramework.

Open questions:

How does a user specify the runtime patch version? TFMs only include major.minor
How is FrameworkReference preserved when putting a class library in a NuGet package?
Are FrameworkReference items transitive across ProjectReference?

Requirements

Make Microsoft.AspNetCore.App a ref only package (tracked with #3608)
Update ASP.NET Core project templates to use FrameworkReference items
Work with the SDK and tooling team to support this new item type (initial work already done in https://github.com/dotnet/sdk/pull/2486)

cc @dsplaisted @nguerrera

If FrameworkReference has no version, how do you know what version I want to run?

@tomkerkhove It uses whatever shared framework is installed. If you have a .NET Core runtime, then that runtime will contain a matching shared framework for ASP.NET Core, so that’s the version that is being used. If you update your runtime later and get a new shared framework, then that is going to be the framework that is being used. Just like now, the shared framework version is implicitly defined by the runtime and will roll forward for runtime updates.

Hm but does that mean it no longer uses what is shipped with the app but rather what is installed on the machine and we're moving away from running multiple versions in parallel?

The forward rolling behavior already exists with 2.1 and only applies to patch level updates. Nothing will change in that regard. It’s just that the way this actually works will be polished. So instead of a version-less PackageReference to the shared framework, you now have a FrameworkReference. Same idea but better implemented.

does that mean it no longer uses what is shipped with the app but rather what is installed on the machine and we're moving away from running multiple versions in parallel?

No, this is not changing. You can still use multiple .NET core versions side by side.

If FrameworkReference has no version, how do you know what version I want to run?

The version of AspNetCore will be determined from the value of the TargetFramework property. netcoreapp3.0, netcoreapp3.1, netcoreapp4.0, etc.
The rollforward behavior is unaffected by this. This proposal is primarily about how the SDK works, not how the app behaves. See
https://docs.microsoft.com/en-us/dotnet/core/versions/selection#framework-dependent-apps-roll-forward for a detailed explanation of rollforward.

@natemcmaster

The version of AspNetCore will be determined from the value of the TargetFramework property. netcoreapp3.0, netcoreapp3.1, netcoreapp4.0, etc.

I can imagine a case where someone would run AspNetCore 2.0 on .NET Core 2.1. That wouldn't be possible anymore, right?

@natemcmaster
Then why not move ASP.NET Core into .NET Core through System.* namespaces?
.NET for WEB can have Server APIs, Hosting APIs (Fundamental Building Blocks for WEB platform) without the ASP.NET specifics.

Then you can have something like...
Microsoft.NET.Core   (platform and shared APIs common to all)
Microsoft.NET.Web   (Sever-Client APIs, P2P, Hosting, RPC..)
Microsoft.NET.IoT     (GPIO APIs, std. IoT sensor APIs, device communication protocols, etc..)
Microsoft.NET.ML      (the current ML.NET and the like)
Microsoft.NET.UI       (Universal UI elements, XAML, and various shared UI support)
Microsoft.NET.UI.Mobile  (Xamarin, UWP, Mobile specific controls and platform support)
Microsoft.NET.UI.Desktop  (WPF, WinForms, UWP, Desktop specific controls and platform support)

… and so on...!

Ain't that would be a wonderful world of .NET!

Then why not move ASP.NET Core into .NET Core through System.* namespaces?
.NET for WEB can have Server APIs, Hosting APIs (Fundamental Building Blocks for WEB platform) without the ASP.NET specifics.

@Nirmal4G that would be a massive breaking change for little benefit.

@davidfowl That's the whole reason for .NET Core, right? So that you wouldn't have to stop innovating... in this case convergence...!

Core framework should provide fundamentals for each type of platform that the framework is supporting... this should increase platform & support discovery, and among other things... Many people still not yet aware of .NET being used in ML and IoT space...
We need more like these...
System.Learning (ML.NET)
System.Net.Http.HttpServer (other base communique protocols support)
System.Graphics
System.Devices

Not really, we haven't made that many significant breaking changes in ASP.NET Core. The biggest one was the authentication system between 1.0 and 2.0. We wouldn't change the namespace like this, it's just badness. It breaks all libraries and there's extremely little to gain from it.

Anyway I started this discussion on .NET home repo. We'll continue from there... We're going off-topic on this thread.

Great change


feat: add insurance options for eu shipments

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


document object is not recognized in FCC in-browser editor

If you try to access any of the properties of  document object in FCC in-browser editor you will get a 'document not defined' error message. As a result you can't access any of the child functions listed here: https://developer.mozilla.org/en-US/docs/Web/API/Document
In my case I was trying to run 'document.createElement("div");' code when I ran into the issue

While this is a very clever solution, it is not the solution we're looking for. You will need to manually replace the HTML entities with a replace command or similar.
I don't actually know why document is not available in our test environment, except to say that it is not used/required by any of our challenges.
Thanks and happy coding!

@SaintPeter don't you think aside from whether or not this is the wanted solution for this task document object should be accessible? If so the point of this bug report is simply to bring attention to that rather than reporting a bug with the coding task per se. I have checked whether 'document' is accessible in other in-browser environments like jsfiddle, Codepen or jsbin and you can pretty much access it in all of them. Nevertheless if you think this shouldn't be implemented I understand. Thanks for commenting

@sabahang document is only available when there's a DOM. These challenges that don't have the iphone on the side don't have a DOM available to them, they are just javascript code. This is a common experience now that javascript can run in a lot more places than the browser. All of the services you mentioned don't run JS alone, they have a DOM component that the JS is running in and can modify.

@ltegman makes sense! thanks for clarifying!


Added default value for priority

Closes #157

Missing: Validation for EVPL_SB_PRIORITY > EPL_SB_PRIORITY missing
Missing: Tests.

Commit d36528cd6173387d0a5be05488c13270d5e5a161
Reverted changes from first commit.
EVC._prepare_flow_mod() now applies priority to every flow either from sb_priority, if available, or :

For NNI:

Always gets EVPL priority (1000)
For UNI:

Between switches:

Ingress flow gets EVPL or EPL priority depending on UNI
Egress always gets EVPL priority

Inside a switch:

flow_mod_az or flow_mod_za get EVPL or EPL priority depending on UNI

@Alopalao there's one linter error that showed up, if you could also fix it, that'd be great.


divide MP:0009936 abnormal dendritic spine morphology

The term abnormal dendritic spine morphology (MP:0009936) has over 100 annotations so we should consider creating child terms for this term:

abnormal dendritic spine density
increased
decreased
abnormal dendritic spine length
increased
decreased
abnormal dendritic mushroom spine morphology
abnormal dendritic stubby spine morphology
abnormal dendritic thin spine morphology

Spine shape references:
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3410382/
https://en.wikipedia.org/wiki/Dendritic_spine
https://synapseweb.clm.utexas.edu/morphology-spines-synapses
Added terms MP:0020506-MP:0020514


[UI ENHANCEMENT] Add Animated Heart Emoji to Credit Section in Footer

Description:
I am proposing a style change for the footer section of the web page. Specifically, I would like to add a subtle animation to the heart emoji ("❤") in the footer, creating an effect that simulates a beating heart.
Reason for Change:
The addition of an animated heart emoji will bring a dynamic and engaging element to the footer, enhancing the overall user experience. This change aligns with the project's goal of creating visually appealing and interactive content.
Current Styling:
Currently, the heart emoji ("❤") in the footer is static and does not exhibit any animation or movement.
Proposed Styling:
I propose adding a CSS animation to the heart emoji ("❤") that mimics the rhythmic motion of a beating heart. This animation will make the footer visually captivating and provide a touch of interactivity.
Video Demonstration:
https://github.com/akshitagupta15june/Moksh/assets/120248240/46712e25-f5be-46ee-b928-72dd9f8e017b
Additional Information (optional):

The animation can be achieved using CSS keyframes and transitions, creating a smooth and natural-looking pulsating effect.
I am willing to contribute to the implementation of this change and collaborate with the project maintainers to ensure a seamless integration.

Priority Level (optional):

[ ] Low
[x] Medium
[ ] High

Timeline (optional):
I would appreciate if this style change could be considered for implementation in the upcoming release, but I understand if it requires more time for evaluation and testing.
Possible Implementation Approach (optional):
One possible approach for implementation is to create a CSS class that applies the pulsating animation to the heart emoji. This class can be added to the existing footer element, triggering the animation when the page loads.

@akshitagupta15june please assign me this issue under GSSoC'23.

Hi!! I am Anshdeep singh, contributor in GSSoC'24. I would like to address this issue and make the respective changes.


Simple youdao translate v1

Description
A new extension for simple youdao translation which has more quicker interaction of usage.
Screencast
See in README.md
Checklist

[ √] I read the extension guidelines
[ √] I read the documentation about publishing
[ √] I ran npm run build and tested this distribution build in Raycast

Do not understand the error in CLI:
🕐 wait  - run ESLint
💥 error - run ESLint
sh: 1: eslint: not found
Error: sh: 1: eslint: not found
Error: Process completed with exit code 1.
Did not make any change in eslint check or cli tool.

Could anyone provide some help why I always get 'eslint not found' error?
I tried to check eslint in local, compared the eslint files content with other repo, all of them are fine, but still get in build:
🕐 wait  - validate extension icons
✅ ready - validate extension icons
🕐 wait  - run ESLint
💥 error - run ESLint
sh: 1: eslint: not found
Error: sh: 1: eslint: not found
Error: Process completed with exit code 1.

Hi @xeric 👋
Seems like it could be an idea to team up with @tiancheng92, he is the original author of #112
It could be cool to only have one extension doing the same, since it would confuse the users a lot why there are two of the same.
Could we look into a solution where we can take the best of the both and keeping only one?
(We do also have support for “contributors” in package.json, which is shown all the way around (also in the contributors store page, so everyone is mentioned for the work)

@pernielsentikaer yes, totally agree if we can provide one solution supports multiple requirements based on configuration maybe, but not sure how to setup collaboration with that author.

@pernielsentikaer after tried to connect with author of another youdao translator extension and got no response, @PitNikola suggested to continue submit this extension as a standalone one.
https://github.com/raycast/extensions/pull/112#issuecomment-1072692449
Thanks.

Hi @xeric 👋
Let's proceed, do you have a key/secret I can borrow for a short amount of time while testing? You can find me in Slack or e-mail me (see my GitHub profile)
Looking forward to testing it out! 🔥

Hi @xeric 👋
I'm closing this due to inactivity. Feel free to open it again when you're ready to continue working on it 😄

Hi @pernielsentikaer
I've added a new function to speak both original search text and translated content and changed to use official speech synthesis service to provide better pronunciation.

Sure @xeric 🔥


Provided String, expected DateTime BUG

Bug description
Hi, I have problem with DateTime attribute.
Schema:
model Project {
  id          String     @id @default(cuid())
  name        String     @unique
  description String
  manager     Profile   @relation(fields: [managerId], references: [user])
  managerId   String
  startDate   DateTime
  endDate     DateTime?
  activities  Activity[]
}

JSON:
{
        id: '1',
        name: 'projectA',
        description: 'Lorem Ipsum dolor sit amet',
        manager: {
            connect: {user: '2'}
        },
        startDate: "2020-03-19T14:21:00+0200",
        endDate: "2021-03-19T14:21:00+0200",
}

When I want to create project, it says
Argument startDate: Got invalid value '2020-03-19T14:21:00+0200' on prisma.createOneProject. Provided String, expected DateTime.
What am I doing wrong?
Environment & setup

OS: MacOS Catalina
Database: PostgreSQL
Prisma version:  2.0.0-beta.2
Node.js version: v10.15.3

Related: https://github.com/prisma/prisma-client-js/issues/212

Thanks

For people using dayjs, .toDate() was helpful for me for fixing the above problem: https://day.js.org/docs/en/display/as-javascript-date


Validate address

Can I use SDK library to validate an unused address?
I try to use "getAccountInfo" but I can not found it if this address wasn't used.

There is a RawAddress.isValidEncodedAddress() method - it verifies that the checksum encoded in the address string is valid.
For this kind of questions please use telegram groups like https://t.me/proximax_devs or https://t.me/proximaxhelpdesk.


Linked list

[x]  Update README
[x]  Implement code in new console app
[x]  Add code to DataStructures folder


altcoins.bitcoin-abc: 0.16.2 -> 0.17.0

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools.
This update was made based on information from https://repology.org/metapackage/bitcoin-abc/versions.
These checks were done:

built on NixOS
ran ‘/nix/store/vwqhg8q3z2dd624hwhfgi5w0n26674xm-bitcoin-abc-0.17.0/bin/bitcoind -h’ got 0 exit code
ran ‘/nix/store/vwqhg8q3z2dd624hwhfgi5w0n26674xm-bitcoin-abc-0.17.0/bin/bitcoind --help’ got 0 exit code
ran ‘/nix/store/vwqhg8q3z2dd624hwhfgi5w0n26674xm-bitcoin-abc-0.17.0/bin/bitcoin-cli -h’ got 0 exit code
ran ‘/nix/store/vwqhg8q3z2dd624hwhfgi5w0n26674xm-bitcoin-abc-0.17.0/bin/bitcoin-cli --help’ got 0 exit code
ran ‘/nix/store/vwqhg8q3z2dd624hwhfgi5w0n26674xm-bitcoin-abc-0.17.0/bin/bitcoin-tx -h’ got 0 exit code
ran ‘/nix/store/vwqhg8q3z2dd624hwhfgi5w0n26674xm-bitcoin-abc-0.17.0/bin/bitcoin-tx --help’ got 0 exit code
ran ‘/nix/store/vwqhg8q3z2dd624hwhfgi5w0n26674xm-bitcoin-abc-0.17.0/bin/test_bitcoin --help’ got 0 exit code
found 0.17.0 with grep in /nix/store/vwqhg8q3z2dd624hwhfgi5w0n26674xm-bitcoin-abc-0.17.0
directory tree listing: https://gist.github.com/986ce04c77ecd347fc83c78829ee2005

cc @Lassulus for review

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: altcoins.bitcoin-abc
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowBroken = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowBroken = true; }
to ~/.config/nixpkgs/config.nix.

Success on x86_64-linux (full log)
Attempted: altcoins.bitcoin-abc
Partial log (click to expand)
shrinking /nix/store/vwqhg8q3z2dd624hwhfgi5w0n26674xm-bitcoin-abc-0.17.0/bin/bitcoin-qt
shrinking /nix/store/vwqhg8q3z2dd624hwhfgi5w0n26674xm-bitcoin-abc-0.17.0/bin/test_bitcoin
shrinking /nix/store/vwqhg8q3z2dd624hwhfgi5w0n26674xm-bitcoin-abc-0.17.0/lib/libbitcoinconsensus.so.0.0.0
gzipping man pages under /nix/store/vwqhg8q3z2dd624hwhfgi5w0n26674xm-bitcoin-abc-0.17.0/share/man/
strip is /nix/store/fzcs0fn6bb04m82frhlb78nc03ny3w55-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/vwqhg8q3z2dd624hwhfgi5w0n26674xm-bitcoin-abc-0.17.0/lib  /nix/store/vwqhg8q3z2dd624hwhfgi5w0n26674xm-bitcoin-abc-0.17.0/bin
patching script interpreter paths in /nix/store/vwqhg8q3z2dd624hwhfgi5w0n26674xm-bitcoin-abc-0.17.0
checking for references to /tmp/nix-build-bitcoin-abc-0.17.0.drv-0 in /nix/store/vwqhg8q3z2dd624hwhfgi5w0n26674xm-bitcoin-abc-0.17.0...
postPatchMkspecs
/nix/store/vwqhg8q3z2dd624hwhfgi5w0n26674xm-bitcoin-abc-0.17.0

Failure on aarch64-linux (full log)
Attempted: altcoins.bitcoin-abc
Partial log (click to expand)
  CXX      test/test_bitcoin-cuckoocache_tests.o
  CXX      test/test_bitcoin-DoS_tests.o
  CXX      test/test_bitcoin-dstencode_tests.o
  CXX      test/test_bitcoin-excessiveblock_tests.o
  CXX      test/test_bitcoin-getarg_tests.o
  CXX      test/test_bitcoin-hash_tests.o
  CXX      test/test_bitcoin-inv_tests.o
  CXX      test/test_bitcoin-key_tests.o
building of '/nix/store/793kyqajbiilsw4zqkqg1198gij94cy3-bitcoin-abc-0.17.0.drv' timed out after 3600 seconds
error: build of '/nix/store/793kyqajbiilsw4zqkqg1198gij94cy3-bitcoin-abc-0.17.0.drv' failed


Find Window Viewscreen more accurately

When a user has scrolled down and then opens a select, it uses the previous position of the page to position the open select

Fixed


Request detail document on deploy command flags

What is <PATTERNS> for exclude and include guy?
❯ deployctl deploy --help
deployctl deploy
Deploy a script with static files to Deno Deploy.

To deploy a local script:
  deployctl deploy --project=helloworld main.ts

To deploy a remote script:
  deployctl deploy --project=helloworld https://deno.com/examples/hello.js

To deploy a remote script without static files:
  deployctl deploy --project=helloworld --no-static https://deno.com/examples/hello.js

To ignore the node_modules directory while deploying:
  deployctl deploy --project=helloworld --exclude=node_modules main.tsx

USAGE:
    deployctl deploy [OPTIONS] <ENTRYPOINT>

OPTIONS:
        --exclude=<PATTERNS>  Exclude files that match this pattern
        --include=<PATTERNS>  Only upload files that match this pattern
        --import-map=<FILE>   Use import map file
    -h, --help                Prints help information
        --no-static           Don't include the files in the CWD as static files
        --prod                Create a production deployment (default is preview deployment)
    -p, --project=NAME        The project to deploy to
        --token=TOKEN         The API token to use (defaults to DENO_DEPLOY_TOKEN env var)
        --dry-run             Dry run the deployment process.

I tried with deployctl deploy --include=*.ts mods.ts and it didn't work.

I also had this question - looked at the source and they are globs: https://github.com/denoland/deployctl/blob/main/action/deps.js#L3530

Also one thing that isn't clear, and I think is your issue, is that if you do explicitly include something, then you overwrite whatever their default are

Also one thing that isn't clear, and I think is your issue, is that if you do explicitly include something, then you overwrite whatever their default are

That doesn't seem a good design imho. What if I want to include a folder or a pattern of files and 1 file that isn't match the pattern or not in the folder? But I really appreciate your comment for pointing it out.  :)


Support for filtering children

I might just not know how to do this, but I'm interested in being able to query for top level properties without seeing their children, is this possible?
I'm attempting to query a large json file that has an unknown structure to me.

Hi @keyneom !
That's an interesting use case and the answer to your question is no, at the moment nothing has been implemented yet to support that.
Do you have an example of what you're trying to achieve?

Yeah, what I'm trying to do is explore a very large json file. When I query the root, by the time anything gets output is already blown past the number of lines in my terminal history and it's difficult to determine how nested each property is.
An example of what I'd like to be able to do is take an input like this:
{
    "property1": {
        "subproperty1": "hello"
    }
}

And the desired output would be:
{
    "property1": {}
}

In particular it would be nice to be able to do without having to know beforehand what the names of the properties are, such as is done with the root selection.

Ok, got it!
We'll need something new indeed. I can extend the grammar of the query parser to avoid walking down the JSON structure at a given level (can be the root level like in your example or at any desired level) and then return some truncated JSON selection.
I see a few challenging points here:

Keep the feature simple (aim of this project / a counter example is something like jq which is super powerful but also bloated & buggy IMHO)
Find the right grammar without breaking anything else (JSON syntax is more confusing then what folks expect, see https://tools.ietf.org/html/rfc8259#section-13)
Decide what should be returned on any kind of selection (see next paragraph)

Regarding the last point, I see two options:
Use null as truncated value
Based on your example:
{
    "property1": null
}

The idea would be that, no matter what's the value of the selection - could be a string, an array, an object -, use null for truncate.
Use the type as truncated value
Based on your example:
{
    "property1": {}
}

Another example (let's keep it at the top level for now):
{
    "a": 3
}

Or:
{
    "a": "foo"
}

Or even:
{
    "a": null
}

Would stay unchanged, since the values a simple primitives.
But something like:
{
  "a": [{ "foo": 1 }, { "bar": 2 }]
}

Would become:
{
  "a": []
}

The main benefit I see with this approach is that it's clear that what you're exploring is an array or an object (and then you can somehow continue to explore the JSON structure).
I'll think about it and keep you updated.

Hi @keyneom !
I've just released a new version of the tool and you can now use the truncate selector, as described here https://github.com/yamafaktory/jql/#truncate.
It should fix your issue :rocket:, thanks for making jql better :bow: !

Wow! You're awesome! I've been busy at work so I apologize about the slow response! I'll give it a try soon!


Fatal error: Uncaught exception 'Predis\Connection\ConnectionException' with message 'Connection refused [tcp://<IP_ADDRESS>:6379]'

I'm trying to catch all Predis exceptions, but even if I use catch ( \Exception $exception ) I still get a fatal error. How can I catch all exceptions? This is my code:
<?php

function cache_init() {
    new SomeClass();
}

class SomeClass {

    public function __construct() {

        try {

            require_once 'predis.php';
            Predis\Autoloader::register();
            $this->redis = new Predis\Client();

        } catch ( Exception $exception ) {
            ...
        }

    }

}

Hi @nrk,
as you stated in the doc about connecting to redis (https://github.com/nrk/predis#connecting-to-redis) when you create a redis client with $client = new Predis\Client(); it will automatically connect using default params.

When creating a client instance without passing any connection parameter, Predis assumes <IP_ADDRESS> and 6379 as default host and port. The default timeout for the connect() operation is 5 seconds

So how can I catch a connection exception?
The above solution you provided unfortunately doesn't work for me. Am I missing something?
Thanks!
P.S.
How can I change the default timeout for the connect() operation?
I don't need to heavily rely on redis to connect, so what I need to do is try to use it if everything is ok, but if something doesn't work or the connection is slow I need to move on.

@ivtod not sure if you are missing something, but I'm definitely missing any detail on how exactly it's not working for you: it doesn't throw any exception? it throws a different exception? it fails later in the script? Also, which version of PHP and Predis are you using? I can't help you if you don't disclose a bit more details...
As for specifying a timeout for the connect() operation, simply provide an explicit URI to the client constructor with a timeout connection parameter expressed in seconds, e.g. tcp://<IP_ADDRESS>:6379?timeout=0.050.

I'm sorry @nrk, I was able to make it work.
The try{}catch(){} on the connect() method call was ok, I've found out that the fatal error was caused by a successive call to the hget() method throwing Connection refused [tcp://<IP_ADDRESS>:6379], and I thought it was an error due to the connect() method.
Thank you very much for your help

I'm sorry @nrk, I was able to make it work.
The try{}catch(){} on the connect() method call was ok, I've found out that the fatal error was caused by a successive call to the hget() method throwing Connection refused [tcp://<IP_ADDRESS>:6379], and I thought it was an error due to the connect() method that seems to have the same error message.
Thank you very much for your help

@ivtod
Could you give me the details of how you solved this? It's happening to me now, please help :)

Hi @cendekia,
Would you provide more details about your code?
As mentioned in the previous comments, connection is lazy, so the fatal error is not thrown on the connect() method invocation, but, as in my case, by a successive call to the hget() method throwing Connection refused.
I've solved this by creating an "absorber" class initialized in the catch(){} that simply tells me what method is invoked and then I can decide how to handle it.
I'm sure that @nrk can tell us a better and more elegant way to handle it :)

Hi @ivtod,
I did make it work too.
In my case, I'm using laravel and I was tried to make a test case when the redis is not active it will switched to use memchaced instead, then I realized that laravel by default is using cache on their default installation, so I did fix it by putting try{} catch(){} on the service provider before it touch my route controller. I think it's pretty similar to your solution.
Btw, thank you :)


need to find and/or warn about unregistered custom elements

 Issue by sethladd
Originally opened as dart-lang/sdk#14054

Polymer Linter can save us time if it can warn us that we forgot @CustomTag.
I'm not saying I've ever forgotten the tag. Nor am I not not saying it, either.
Thanks!

 Comment by jmesserly

Technically skipping CustomTag isn't an error. Manual registration is supported too.
Maybe what we want is a way to find unregistered custom elements

Added this to the Later milestone.
Removed Library-PolymerLinter label.
Changed the title to: "need to find and/or warn about unregistered custom elements".

 Comment by sethladd

Not an error, but the linter doesn't report errors. :) It reports hints and warnings.
There's a lot of little things we need to get right: name of element in <polymer-element>, name of tag in HTML, name in @CustomTag, the presence of @CustomTag. Mess up any of those and your element doesn't show up.
The more the linter can warn us, the less time we spend tracking down the chain of names.
I'm afraid of the Milestone-Later. Maybe not M8 but it's the toolability that makes Dart a clear win. The more we can make Polymer + Dart more toolable, the more users we get.

This comment was originally written by<EMAIL_ADDRESS>
I just wasted an hour because I forgot a @CustomTag. Please extend the linter to nag me :)

 Comment by jmesserly

Not an error, but the linter doesn't report errors. :) It reports hints and warnings.

Sorry, I meant "isn't an error" in the conventional sense: "it isn't an incorrect thing to do". According to Dart's philosophy, we shouldn't "warn" if you're doing things correctly (especially in this case: there isn't a way to suppress the warning).

There's a lot of little things we need to get right: name of element in <polymer-element>, name of tag in HTML, name in @CustomTag, the presence of @CustomTag. Mess up any of those and your element doesn't show up.

Sure. You can't fix all of those via static analysis though. We have to hope that examples, documentation, and debugging tools will be enough.

I'm afraid of the Milestone-Later. Maybe not M8 but it's the toolability that makes Dart a clear win.

Later just means "Later release beyond M8", according to the description.

 Comment by clayberg

Removed this from the M9 milestone.
Added this to the 1.1 milestone.

 Comment by jmesserly

So, we could say we need better debugging tools for that situation.

yup :)

 Comment by jmesserly

Issue dart-lang/sdk#14252 has been merged into this issue.

 Comment by sethladd

Ah, so maybe we can be more specific: If we omit the @CustomTag, the page does not render the custom tag and there's no warning or error in the console. So, we could say we need better debugging tools for that situation.

 Comment by sigmundch

Removed this from the Later milestone.
Added this to the M9 milestone.

 Comment by jmesserly

Issue dart-lang/sdk#14253 has been merged into this issue.

 Comment by sigmundch

Removed Priority-Unassigned label.
Added Priority-Low label.

 Comment by sigmundch

Added Library-PolymerLinter label.

 Comment by jmesserly

-Linter for now ... as I'm not convinced we can tackle this with static tools. we definitely can with runtime tools ... one of the Polymer JS guys, I think Eric Bidelman made a simple JS thingy (bookmarklet?) to highlight custom elements. Presumably the same kind of thing could find unregistered ones specifically.
sadly we haven't had bandwidth to work on tooling stuff, as much as I would like to :(. I really sympathize, it's really frustrating when "things didn't render and I don't know why"...

Removed this from the 1.2 milestone.
Added this to the Later milestone.
Removed Library-PolymerLinter label.

 Comment by sigmundch

Added Polymer-P-2 label.

 Comment by sigmundch

Removed this from the 1.1 milestone.
Added this to the 1.2 milestone.

 Comment by jmesserly

Removed Area-Polymer label.
Added Pkg-Polymer, Area-Pkg labels.

 Comment by sigmundch

Removed Polymer-Milestone-Later label.
Added PolymerMilestone-Later label.

 Comment by sigmundch

Removed this from the Later milestone.

 Comment by sigmundch

Removed Polymer-P-2 label.
Added Polymer-Milestone-Later label.

Unfortunately this is harder now since <dom-module> can be used for more than just custom elements, marking as not planned for now at least.


1.14.2 spell schematics

Hello, the spells tent / cage / tag doesn't works .
The spell tent / cage all schematics spells no longer work.
the tag spell tells me impossible to put a sign.

Hi ! I checked the logs from my game (same problem, but with every schematics spell), and the problem comes from the NMSUtils.getPosition() function in which the Double type cast is not allowed. A possible modification could be a cast into Integer, then in double as Double(((Integer)[value]).doubleValue()) to solve it.
Due to a encoding error (I tried to fix it on Windows, but the code has been written on Linux or at least a unix base), I couldn't try if it works.
Here's a log where I tried to cast the Wolfhouse spell
latest.log

This should be fixed in the latest dev build- thanks!


Superpoint excessive memory usage

Hello,
As the title indicates, all memory seems to be occupied when loading the superpoint model.
The image below is the gpu state when only the superpoint model is loaded.

superpoint_extract.py
Line 40 : tf1.saved_model.loader.load(self._sess, [tf1.saved_model.tag_constants.SERVING
It doesn't load as much as the size of the model on this line and seems to be using all of the GPUs.

Hi,
When testing, I only loaded the original og model, and my all memory was full without loading other models. This seems to be a problem when loading the og model.
This situation also occurs in graphics cards with different display memory.
In my scenario, both 3090 (24G) and L20 (48G) basically filled up the memory.

Hi, my error case user up all of my GPUs When loading superpoint models.
A temporary fix is that I can use set_memory_growth() before loading Omniglue to make it flexible without using up all of my GPUs.
omniglue_extract.py
Add the line below 36 lines
    physical_devices = tf.config.list_physical_devices('GPU')

    for gpu in physical_devices:
        try:
            tf.config.experimental.set_memory_growth(gpu, True)
            print(f"Memory growth set for {gpu}")
        except RuntimeError as e:
            print(e)

I'm not sure if this is the correct solution, but I'm looking for a more complete solution.


Fix json encoding of wait method timeout

Timeout was set as an int so during encoding of a specified 0 value it
would be omitted from the RPC call.
Signed-off-by: Tim Rozet<EMAIL_ADDRESS>

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.03%) to 73.365%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

server/transact.go
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.03%

Covered Lines:
4363

Relevant Lines:
5947

💛  - Coveralls

/lgtm


Two text views in one cell.

Can we have two kinds of day in two different types of calendar format into  one cell ??
it may look like this:
http://www.ashesh.com.np/images/Nepali-Calendar.png

I think we can but need some modification. I need time (maybe this weekend) to improve it so....if you need it now I may not provide it instantly.

Ok sure bro take your time :) i hope i will get it soon or may be i can contribute too ?

Of course yes. Any pull request is welcome! And I’ll add you to the credit list if your code is merged into mine.
Thanks in advance!

在 2016年6月9日，下午1:08，Laxman Bhattarai<EMAIL_ADDRESS>写道：
Ok sure bro take your time :) i hope i will get it soon or may be i can contribute too ?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/SpongeBobSun/mCalendarView/issues/20#issuecomment-224801151, or mute the thread https://github.com/notifications/unsubscribe/ALABrkOpHjhHQx7EvMOCmEMTeKLlwselks5qJ5_YgaJpZM4Iwxvk.


prefix_except_default doesn't work for yarn generate

Environment

Operating System: Darwin
Node Version:     v16.19.1
Nuxt Version:     3.6.5
Nitro Version:    2.5.2
Package Manager<EMAIL_ADDRESS>Builder:          vite
User Config:      srcDir, devtools, ssr, modules, i18n, piniaPersistedstate, googleFonts, colorMode, postcss, build, vite
Runtime Modules<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Build Modules:    -

Reproduction
https://github.com/mrleblanc101/neobigben
Describe the bug
I recentry upgraded from 8.0.0-beta.9 to 8.0.0-rc.2.
Since then, the language prefix doesn't appear in the URL in production build using Static Generation (yarn generate && yarn preview).
Here is yarn dev:

Here is yarn generate && yarn preview:

Additional context
No response
Logs
No response

Hi!
Thank you for your reporting!
Your issue was already fixed by nuxt i18n edge channel version
        "@nuxtjs/i18n": "npm<EMAIL_ADDRESS>
Please check it!
Thanks!

@kazupon oh nice, thanks.
I guess I should try the edge version before raising an issue next time.


Add method to create a "this" expression from GObject types

cc @SeaDve
Can be useful for some expressions, makes it so the expressions example could also be simplified as:
let metadata_expression = gtk::ListItem::this_expression("item")
             .chain_property::<Note>("metadata");
// ...
 metadata_expression
            .bind(&last_modified_label, "label", Some(list_item));

Not sure if it's worth creating an extra example for this?

Not sure if it's worth creating an extra example for this?

If it is possible, maybe add it on the expressions one

I changed one of the expressions in the example to use a this binding.

I think the chain on the title_binding could be just one chain, so maybe remove the metadata_expression variable and chain it directly

This can wait until #714, there are some conflicts because both edit the same part of the example.


[BUG] Recommenders nrms inference issue

Description
When a recommender.recommenders.models.newsrec.models.nrms model is created, the API fails to load a new dataset for inference by the model (instead, inferencing on the same dataset for the first load). The code is written to suggest that new files can be used for inference. Shown in recommenders 1.1.0 (also 1.1.1), Python 3.8.10 with tensorflow version 2.8.0. The two lower level init_news and init_behaviors in the mind_iterator.MINDIterator also don't seem to reset the iteration to the new files.
In which platform does it happen?
Jupyter Lab running in Ubuntu 20.04.4 LTS (Focal Fossa). Using Python version 3.8.10 with tensorflow version 2.8.0.
How do we replicate the issue?
How to recreate: run a "run_eval" on two files (see here). Then, try to use different input files in the method (such as the validation and test sets). Example:
model.run_eval(valid_news_file, valid_behaviors_file)
model.run_eval(test_news_file, test_behaviors_file)

The model inference results will be the same for both sets of files, which is unexpected behavior (the second input files should have different outputs).
Expected behavior (i.e. solution)
The expected behavior is for run_eval to produce different output for two different inputs.
Proposed way to fix: exposing a new iterator setup method for the base_model or NRMS_model classes should fix the issue (ala something based off the iterator_creator call in the init, see here, should probably fix the problem).
Other Comments
Thanks for maintaining this project!

Suggested fix:
iterator_test = MINDIterator(hparams)
iterator_test.init_news(test_news_file)
iterator_test.init_behaviors(test_behaviors_file)
iterator_test.load_data_from_file(test_news_file, test_behaviors_file)
model.test_iterator = iterator_test

model.run_eval(test_news_file, test_behaviors_file)

Or to run on validation split:
iterator_valid = MINDIterator(hparams)
iterator_valid.init_news(valid_news_file)
iterator_valid.init_behaviors(valid_behaviors_file)
iterator_valid.load_data_from_file(valid_news_file, valid_behaviors_file)
model.test_iterator = iterator_valid

model.run_eval(val_news_file, val_behaviors_file)


implement Literal::from_str

this apparently fixes RTIC 0.6's
#[rtic::app]
mod app {}

Can you do the same thing for the 1.55 ABI?

Can you do the same thing for the 1.55 ABI?

done!

bors r+


Please re-run composer dump-autoload

The version from wp-org crashed on my comp until I re-generated the autoload files (Composer 1.4.2).

@alimuzzaman this done?

@andypotanin https://github.com/wpCloud/wp-stateless/tree/v1.0-issue-94

@alimuzzaman if its done juts close out the issue. @kavaribes and @fqjony are working on this this week so we are trying to close out any old issues and merge any unmerged branches.


Bug after fragment restoration

I have another problem. I use the view in a fragment and show the loading circle from code sometimes. This works fine until I rotate the device. Then the circle is not showing if i manually enable the refreshing (although the isRefreshing function returns true). But if I shortly pull down the wave view, then the loading circle is working again and I can enable refreshing from code again without issues.
So basically, after recreating the fragment I can't use the manual refreshing from code until I at least once pulled down the wave view...

Thanks @MFlisar !
Please wait a minute.
I will check it!!!!!
(ﾉω・)

(*ﾉω・*)ﾃﾍ

@MFlisar
Sorry, I have not been able to grasp the situation.
Is it the fact that you use the WaveSwipeRefreshLayout in Fragment?
In order to understand quickly, please source code or sample project! ლ(´ڡ`ლ)


Field order for postgres composite types should not matter

Assume I have the following SQL (note that in the type person, the name field comes before the age field):
CREATE TYPE person AS (name text, age integer);

CREATE TABLE company (
    name text PRIMARY KEY,
    ceo person NOT NULL
);

INSERT INTO company (name, ceo.name, ceo.age)
VALUES ('company_name', 'person_name', 30);

And the following rust (note that in the struct Person, the age field comes before the name field):
#[derive(sqlx::Type, Debug)]
struct Person {
    age: i32,
    name: String,
}

#[derive(Debug)]
struct Company {
    name: i32,
    ceo: Person,
}

#[tokio::main]
async fn main() {
    let pool = sqlx::PgPool::connect("postgres://localhost/test")
        .await
        .unwrap();

    let company = sqlx::query_as!(
        Company,
        r#"SELECT name, (ceo) as "ceo!: Person" FROM company"#
    )
    .fetch_one(&pool)
    .await
    .unwrap();
}

This code throws this runtime error: ColumnDecode { index: "1", source: "mismatched types; Rust type i32 (as SQL type INT4) is not compatible with SQL type TEXT" }. Basically, the order of the columns is wrong in the Person struct.
To fix this, I have to change my query to r#"SELECT name, ((ceo).age, (ceo).name) as "ceo!: Person" FROM company"#, which isn't the worst thing in the world, but depending on the order of field names (rather than the fields themselves) makes the code less robust.
This is a bit of a contrived example, but I have a genuine use case for this type of operation (even though it's a bit ORM-ish. Maybe I'm thinking about SQLx wrong).
Desired Solution
The ability to read a composite-type field in a table into a rust struct without depending on the order of fields.
I imagine this is something you guys have tried to tackle before, but just curious if I'm using SQLx wrong or if there's a plan to implement this. Nothing in the documentation seemed to address it, but I might have missed something.
Thanks!

Easier said than done. The binary encoding doesn't include field names. We'd have to reconstruct the composite type structure from the catalog using a gnarly query like this: https://dba.stackexchange.com/a/35510

Thanks for the prompt reply. Makes sense!


Implementation of shear formulas EN1992-1-1 and prEN1992-1-1

This will be done by my colleague Gijs Eumelen.

This will be done by my colleague Gijs Eumelen.

Very good! Please feel free to submit a draft PR 😃

Progress is tracked in #49.


The game does not see the changes made to the flat values

Bug
Operating system: Windows 10
Game version: 2.2
CET version: 1.34.1
GPU: 4070 Ti
Description
After making changes to flat values using TweakDB Editor and then loading the last save, the game does not react to the changes made, the commands TweakXL.Reload() and TweakXL.ExecuteAll() do not help. Can you check on your side if this issue is reproduced and that it is related to CET and not to the latest patch?
Expected behaviour
After making changes to the flat values using TweakDB Editor, the game responds to the changes made.
Reproduction

Load save file, open Photo Mode, switch to Preset 9, the FOV value should be 85, clode Photo Mode
Open TweakDB Editor. Open Flats tab and put into the search value "std_preset_9".
Change the flat photo_mode.std_preset_9.fov value to 55 for example.
Reload save file
Repeat the first step. If everything is working correctly, the FOV value should change from 85 to 55.

Many TweakDB edits need to be made during specific time. Game loads them once and never again.
This is known and not much we can do about it unfortunately.
There is onTweak event you can register inside your mod that is called before game even gets to the menu, that can be used to set up Tweaks programatically reliably.
I would encourage you to join our Discord server which you can find in the readme when you need modding help like this.

The TweakDB Editor is more like TweakDB Browser honestly. It can help you identify interesting bits, but as mentioned, many are just uneditable during the runtime unfortunately. Some can be edited but majority can't.

Also would quickly mention there is also TweakXL having much more options than CET offers when it comes to TweakDB editing many mods utilize. It also provides some extra functions you can callback into from CET.
WolvenKit can also be used for TweakDB manipulation but that one is purely offline. It can produce files usable with TweakXL.