PivotGrid crashes when expanding on Row-wise - TypeError: a.substr is not a function

I am trying to load a PivotGrid and when I try to expand on Row-wise the pivot-grid crashes and stops working. Please find attached the code, sample json data to replicate the scenario. also find the snapshot attached which explains the scenario. I am getting the exception "TypeError: a.substr is not a function"
Any ideas why I am getting this exception?
a.substr Issue.zip

StackTrace for this issue:
"TypeError: a.substr is not a function
at Class.aj (http://localhost:49928/js/IgniteUI/infragistics.lob.js:587:2109)
at Class.al (http://localhost:49928/js/IgniteUI/infragistics.lob.js:587:1316)
at Class.al (http://localhost:49928/js/IgniteUI/infragistics.lob.js:587:2023)
at Class.t (http://localhost:49928/js/IgniteUI/infragistics.lob.js:586:23395)
at Class.discoverMembersAsync (http://localhost:49928/js/IgniteUI/infragistics.lob.js:586:21925)
at Class.getMembersOfLevel (http://localhost:49928/js/IgniteUI/infragistics.lob.js:585:27626)
at Class.am (http://localhost:49928/js/IgniteUI/infragistics.lob.js:557:14429)
at Class.update (http://localhost:49928/js/IgniteUI/infragistics.lob.js:557:4234)
at Class.update (http://localhost:49928/js/IgniteUI/infragistics.lob.js:557:21882)
at e.(anonymous function).(anonymous function)._updateGrid (http://localhost:49928/js/IgniteUI/infragistics.lob.js:661:26638)"

Can you send the whole app for further investigations?
I tried, but wasn't able to reproduce it. It could be something from your pivot grid configuration and more specifically the aggregators.
I had to change  this (IIF(LYUnitsSold2Week != 0,((UnitsSold2Week - LYUnitsSold2Week) / LYUnitsSold2Week),0)) to (LYUnitsSold2Week != 0 ? ((UnitsSold2Week - LYUnitsSold2Week) / LYUnitsSold2Week) : 0) so I could be able run it. I also used smaller amount of data. But at the end had no problem with expansions of the rows.

I am attaching all the relevant code related to this issue. I tried with relatively lesser amount of data and the issue is still reproducible. It didn't have this logic in it, still the issue exists.
(IIF(LYUnitsSold2Week != 0,((UnitsSold2Week - LYUnitsSold2Week) / LYUnitsSold2Week),0)) to (LYUnitsSold2Week != 0 ? ((UnitsSold2Week - LYUnitsSold2Week) / LYUnitsSold2Week) : 0)
Please revert back if you need more info
Please find the stack trace
Error occurred. TypeError: a.substr is not a function
:49928/app/Common/CustomErrorHandler.js:20 Stack Trace : TypeError: a.substr is not a function
at Class.aj (http://localhost:49928/js/IgniteUI/infragistics.lob.js:587:2109)
at Class.al (http://localhost:49928/js/IgniteUI/infragistics.lob.js:587:1316)
at Class.al (http://localhost:49928/js/IgniteUI/infragistics.lob.js:587:2023)
at Class.t (http://localhost:49928/js/IgniteUI/infragistics.lob.js:586:23395)
at Class.discoverMembersAsync (http://localhost:49928/js/IgniteUI/infragistics.lob.js:586:21925)
at Class.getMembersOfLevel (http://localhost:49928/js/IgniteUI/infragistics.lob.js:585:27626)
at Class.am (http://localhost:49928/js/IgniteUI/infragistics.lob.js:557:14429)
at Class.update (http://localhost:49928/js/IgniteUI/infragistics.lob.js:557:4234)
at Class.update (http://localhost:49928/js/IgniteUI/infragistics.lob.js:557:21882)
at e.(anonymous function).(anonymous function)._updateGrid (http://localhost:49928/js/IgniteUI/infragistics.lob.js:661:26638)
cacheurl-Json Data-cacheDataService.GetData.txt
configService.GetWidgetConfig - Json data.txt

PivotGrid.ts.txt
SlideOut.ts.txt
PivotGrid.html.txt
SlideOut.html.txt

I've tested it with the most recent files and expansion of the rows is working as expected.
Please review, update and send back the runnable sample, I'm attaching, so I could reproduce this on my side.
To run it:
npm install
npm start

sample.zip

We tried with the sample which has hard coded data of JSON values and it works fine sent by you. But we are still facing issues with this. Can you please try by reading the JSON values directly from this link and let us know if it works for you? I am providing with different set of JSON values and want to know how it works for you?
this.result = [] should be populated with JSON values directly read from the link http://www.mindtreedevmind.com/FireboltRedisApi/api/Query/Corporate/12721
var widgetConfigData = '{"columns":"","measures":"[Measures].[Sold_Dollars],[Measures].[Sold_Units]","rows":"[Item_Id].[Item_Id]","metadata":{"cube":{"dimensions":[{"hierarchies":[{"levels":[{"memberProvider":"function (item) { return "Total Rtlr Name"; }","caption":"Total Rtlr Name","name":"TotalRtlr_Name"},{"memberProvider":"function (item) { return item.Rtlr_Name; }","caption":"Rtlr Name","name":"Rtlr_Name"}],"caption":"Rtlr Name","name":"Rtlr_Name"}],"caption":"Rtlr Name","name":"Rtlr_Name"},{"hierarchies":[{"levels":[{"memberProvider":"function (item) { return "Total Item Id"; }","caption":"Total Item Id","name":"TotalItem_Id"},{"memberProvider":"function (item) { return item.Item_Id; }","caption":"Item Id","name":"Item_Id"}],"caption":"Item Id","name":"Item_Id"}],"caption":"Item Id","name":"Item_Id"},{"hierarchies":[{"levels":[{"memberProvider":"function (item) { return "Total Item Desc"; }","caption":"Total Item Desc","name":"TotalItem_Desc"},{"memberProvider":"function (item) { return item.Item_Desc; }","caption":"Item Desc","name":"Item_Desc"}],"caption":"Item Desc","name":"Item_Desc"}],"caption":"Item Desc","name":"Item_Desc"}],"measuresDimension":{"measures":[{"aggregator":"function(items, cellMetadata) { var sum = 0; $.each(items, function(index, item) { sum += item.Sold_Dollars; } );   $.ig.regional.defaults.currencyMaxDecimals = 0;   $.ig.regional.defaults.currencyMinDecimals = 0;   return $.ig.formatter(parseFloat(sum), "number", "#########0"); }","caption":"Sold Dollars","name":"Sold_Dollars"},{"aggregator":"function(items, cellMetadata) { var sum = 0; $.each(items, function(index, item) { sum += item.Sold_Units; } );   $.ig.regional.defaults.currencyMaxDecimals = 0;   $.ig.regional.defaults.currencyMinDecimals = 0;   return $.ig.formatter(parseFloat(sum), "number", "#########0"); }","caption":"Sold Units","name":"Sold_Units"},{"aggregator":"function(items, cellMetadata) { var sum = 0; $.each(items, function(index, item) { sum += item.Rtlr_Price; } );   $.ig.regional.defaults.currencyMaxDecimals = 0;   $.ig.regional.defaults.currencyMinDecimals = 0;   return $.ig.formatter(parseFloat(sum), "number", "#########0"); }","caption":"Rtlr Price","name":"Rtlr_Price"},{"aggregator":"function(items, cellMetadata) { var sum = 0; $.each(items, function(index, item) { sum += item.Rtlr_Cost; } );   $.ig.regional.defaults.currencyMaxDecimals = 0;   $.ig.regional.defaults.currencyMinDecimals = 0;   return $.ig.formatter(parseFloat(sum), "number", "#########0"); }","caption":"Rtlr Cost","name":"Rtlr_Cost"}],"name":"Measures"},"caption":"Report substr Sample Recreated Diff World","name":"Report substr Sample Recreated Diff World"}}}'
Please let us know with this data if it works for you and your analysis?
Thanks

Any updates on this?

I used 48" and 8" into the values and the new pivot grid configuration and data and still cannot reproduce what you're facing.
I'm attaching the new sample, please modify it and send it back for investigations.
sample2.zip

As per our analysis, we found that if we have the dimensions columns (Row Headers) as number datatype, then this issue occurs. Please refer the snapshot attached. the column Item_Id comes as string which is read from JSON through a API service. In our application we have written some custom code to convert all the numeric columns to number datatype so that we do some manipulations dynamically (in the client browser) on those columns like exception highlighting based on numeric values, KPI indicators, IIF condition operators etc. Similarly the column Item_Id is also a numeric and hence it is converted to a number datatype. since it is a number datatype, we are not able to expand on that dimensions and getting this error earlier. But if we avoid changing this dimensions to a number datatype then it works fine.
Issues we are facing now and help required from your team is as below:-

we need to convert the dimensions to number datatype if it belongs to numeric, because sorting doesn't happen if the dimensions is in string datatype. Please refer snapshot attached

Can you please help us how to resolve this issue?
Please find the attached code along with sample json data

First add levelSortDirections to optsGrid
levelSortDirections: [
    { levelUniqueName: "[Item_Id].[Item_Id].[Item_Id]", sortDirection: "descending" }
],

and it is resolving the a.substr issue.
Second in order to sort the Sold Dollars as numbers you have to pass them as numbers to the dataSource.
So change this $.ig.formatter(parseFloat(sum), \\"number\\", \\"#########0\\"); to parseFloat(sum) and sorting gets fixed, but now we don't have the formatting you used to have.
Actually the igPivotGrid is based on igGrid, so you can bind to rendering event and apply formatting to the columns of the igGrid:
gridOptions: {
    rendering: function(e, ui) {
       for (var i = 0; i < ui.owner.options.columns.length; i++) {
           ui.owner.options.columns[i].formatter = function (val, rec) {
               return jQuery.ig.formatter(val, "number", "#########0");
           }
       };
    }
}

And here's the modified sample for a reference.
Sample.zip

This solution works for me, thanks


[SPARK-12814][Document]Add deploy instructions for Python in flume integration doc

This PR added instructions to get flume assembly jar for Python users in the flume integration page like Kafka doc.

CC @tdas

Test build #49350 has started for PR 10746 at commit 6761947.

Test build #49350 has finished for PR 10746 at commit 6761947.

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

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/49350/
Test PASSed.

This PR mostly copied the content from Kafka integration page and changed kafka to flume.

LGTM. Just couple of nits. Thanks @zsxwing

Test build #49617 has started for PR 10746 at commit 895eb4f.

Test build #49617 has finished for PR 10746 at commit 895eb4f.

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

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/49617/
Test PASSed.

LGTM. Merging.


iproute: don't fixate CONFDIR

This is needed in order add rules and route multiple uplinks. Without this we are, for instance, unable to create additional tables.

Fixed via fa0b84c446a75b3cc9e95323bd9fc7b0cd324794

Thanks! Missing prefix in etc though, fixed in e6bdca625a972999a20c8270c9beabe8ec07bde7


TRT-1727: fix mapping verify

ci-test-mapping now supports multiple database tables, this makes the mapping-verify command reference the correct file locations.

/lgtm


Unable to use encrypted storage after restoring from iCloud

Describe the bug
Either getting or setting in storage with encryption is failing.
For context, this is the wrapper around the library:
import { MMKVLoader } from 'react-native-mmkv-storage';

const SecureStorage = new MMKVLoader()
  .withEncryption()
  .withInstanceID('mySecureStorage')
  .initialize();

export const setItem = (key: string, value: string): void => {
  SecureStorage.setString(key, value);
};

export const getItem = (key: string): string | null | undefined =>
  SecureStorage.getString(key);

and this being the set of actions taken:
SecureStorage.setItem(SOME_KEY, someValue); // this happens and does not throw an error
// ...and even about 1 second later...
SecureStorage.getItem(SOME_KEY); // this does not yield a value

To Reproduce
I have no consistent reproduction steps 😅 it's happening to a lot of people, but only rarely. On devices where this happens, it happens consistently. It's almost like react-native-mmkv-storage is "broken" for that device.
Expected behavior
Setting a value synchronously should allow you to get it right after.
Platform Information:

OS: iOS
React Native Version 0.68.2
Library Version 0.7.6

Additional context
On the current device we have that has this issue, a recent restore from iCloud was performed, but it hasn't been proven that this is the cause.
It's worth noting that we're on version 0.7.6 of this library, which gives us the following dependencies in Podfile.lock:
  ...
  - MMKV (1.2.10):
    - MMKVCore (~> 1.2.10)
  - MMKVCore (1.2.13)
  ...

What's interesting about that is that backup & restore was introduced in MMKV 1.2.11, so our version of MMKVCore would have that functionality, but MMKV does not. Is that an issue?

I just managed to reproduce this, here would be the reproduction instructions:

Use this library in a production app on the App Store
Log into the app and set values in an encrypted MMKV store
Get a new iPhone
Restore backup from iCloud and wait for the app to re-install
Observe that things can no longer be set and/or read in an encrypted store

@abejfehr Ofcourse the key is device specific since it is auto-generated internally and stored in the Keychain.
So on a new device the only way to decrypt the same storage would be to somehow be able to have access to the same Keychain on the primary device. I am not sure if it is possible to share the Keychain or sync it?
Other than that, the only other way is to use a custom key which you will manage and not the library. If the library has to manage the key then you will have to somehow move the key to the other device when a person logs in etc.

In one of the reproductions the keychain was synced via iCloud and this issue was still present unfortunately 🙁 so based on that it seems like using this library for encrypted storage without a custom key is just expected not to be stable between devices?

@abejfehr It seems that setting the kSecAttrSynchronizable is required to make the values syncable. I don't think we are setting such an attribute currently. Setting that should solve the issue I think.
https://stackoverflow.com/questions/42903633/store-item-in-ios-keychain-without-icloud-sync

But that would only resolve the issue for folks who choose to sync their keychain, right?
On my iCloud for example, I have "iCloud Backup" set to "on" and "Keychain" set to "off", so my keychain and my app backups would be out of sync and my app wouldn't survive a backup and restore.
Even besides getting backup & restore working, I'd like to have the following:

exceptions thrown when something can't be set in the store
if an exception does happen because the key we have isn't valid for the file on disk, entirely remove the storage and re-create it (or provide an API for consumers to do that themselves)

On that second point, the most we can do right now is clearStore, and it doesn't do enough to resolve the issue

What about verifying on app load that the key works with the store, and entirely deleting the store if it does not? That way there's not an unusable MMKV store

Or maybe excluding encrypted MMKV stores from backup

I agree. There should be a way to work around this. I will look into it. The simplest way would be to exclude mmkv files from cloud backup and throw some error upon which store can be deleted and recreated possibly.

Des anyone know how to solve this issue ?

@ammarahm-ed , @abejfehr , any solution yet?

Still no idea @ammarahm-ed ? Checking myself, but currently also no solution.

I have no solution yet 😢
I actually attempt to write/read to the encrypted store 3 times and if it fails I ask clients to uninstall and reinstall the app to get around this, it's pretty brutal UX

It's my understanding that setting kSecAttrSynchronizable = true would solve this issue only when a) user hasn't opted out of iCloud backup and b) the restore is to the same device.

keychain items are included in the backup but they are wrapped with a device-specific key. Thus, they can only be restored to the device that originally backed them up, which means that they get lost when you restore the backup to a different device
https://developer.apple.com/forums/thread/93373?answerId=282724022#282724022

@abejfehr @jarnove Did either of you try making code changes to remove MMKV files from backup with isExcludedFromBackup?

@Mookiies , not yet, do you have an idea on how to implement it?

I took a stab at implementing it by excluding the entire mmkv directory,/Library/mmkv, in this commit: https://github.com/Mookiies/react-native-mmkv-storage/commit/165cd18ad235dd27c9356a2dc8a27dcba5559ba0
It's a naive implementation, but I think it would be enough to verify that it would work. I've yet to verify as I don't have a working iCloud backup yet.

If it does the trick I imagine at the minimum in order to get a mergable PR ready it would need to be made configurable, as excluding shouldn't be the default especially for unencrypted.
To follow Apple's recommendations 100% these improvements could also be made

Set isExcludedFromBackup more frequently? (Apple docs recommend setting it each time a file is changed)
Prefix the /mmkv directory with the app's bundle identifier

It's also worth noting that isExcludedFromBackup does not provide a guarantee that a given file or directory won't get backed up.

The isExcludedFromBackup resource value exists only to provide guidance to the system about which files and directories it can exclude; it’s not a mechanism to guarantee those items never appear in a backup or on a restored device.^1

Given that, it seems an ideal solution would also include a way to somehow recover if some of the encrypted files still managed to get backed up.

Hey. I have a few users with a similar issue, but I'm not sure it's the same.
Is a new device/restore really needed or do you have a simpler way to test this?
https://github.com/ammarahm-ed/react-native-mmkv-storage/issues/269#issuecomment-1185939759

Hey. I have a few users with a similar issue, but I'm not sure it's the same. Is a new device/restore really needed or do you have a simpler way to test this? #269 (comment)

No, unfortunately I was only able to reproduce this issue with 2 iPhones

The error today happens because when creating the storage, the library uses this property: kSecAttrAccessibleAfterFirstUnlock
And reading apple docs of this property you have this information:
After the first unlock, the data remains accessible until the next restart. This is recommended for items that need to be accessed by background applications. Items with this attribute migrate to a new device when using encrypted backups.
What happens is:

When using withEncryption, the app adds the data to the keychain, with a property saying that the data will be backed up to icloud.
However, when recovering data from icloud because the keys are encrypted, the library cannot recover the data, and also cannot change them, in this case the user accesses the app, but does not recover the old data, much less manages to update the new ones, since the lib doesn't have a treatment for this scenario, it simply doesn't save the data and that's it.

There are two solutions:

When initializing the storage pass the property saying not to save the data in icloud, like kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly

setAccessibleIOS(IOSAccessibleStates.AFTER_FIRST_UNLOCK_THIS_DEVICE_ONLY)
or
setAccessibleIOS('AccessibleAfterFirstUnlockThisDeviceOnly')

Use a custom key when creating the storage, so the storage will be encrypted with your custom key, so it will be possible to recover the keys correctly after a backup.

encryptWithCustomKey('your-custom-key')

Unfortunately the documentation is not clear enough, and this error is "ignored" by the library, so if you use encryption you must follow one of these two steps.

@GleidsonDaniel Have you been able to verify that solution 1, setting AccessibleAfterFirstUnlockThisDeviceOnly, solves this problem for a different device iCloud restore?
It's my understanding that this wouldn't solve the issue because regardless of your keychain settings, the encrypted MMKV data in /Library/mmkv is going to get backed up. Therefore, causing the issue as the library cannot decrypt the backup-restored MMKV data as it no longer has the keys.

Why would you do the backup if you are saying not to do the backup? The backup only happens because, as I said, the keys are saved using the property that says to save the backup.
Here's where the library returns the property:
https://github.com/ammarahm-ed/react-native-mmkv-storage/blob/2aeabecd6a9c9092ea81e19a99cf853539dfe6f2/ios/SecureStorage.m#L253C31-L253C31
This is where the library gets the value telling how the property should be saved in the keychain:
https://github.com/ammarahm-ed/react-native-mmkv-storage/blob/2aeabecd6a9c9092ea81e19a99cf853539dfe6f2/ios/SecureStorage.m#L159

The contents of the Library directory (with the exception of the Caches subdirectory) are backed up by iTunes and iCloud

https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html

When iCloud Backup is in an enabled state, it periodically creates a backup of the user’s device, including your app’s data.

https://developer.apple.com/documentation/foundation/optimizing_your_app_s_data_for_icloud_backup?language=objc
And this library stores encrypted data in /Library/MMKV.

This issue might not be limited to just iOS/iCloud. We received the same reports from some Android users having a new phone and restored their backups.
My understanding is the key is new but the store coming from the backup is encrypted with the old key. For our use case it would be fine to simply remove and recreate the store if that happens. Is that possible?

Has anyone got an update or figured this out already? As @mjooms mentioned removing the encrypted store would work fine for my casen as well but that doesn't seem like an ideal fix. (And I don't think we can do that anyway 😞). Seems to me that the only viable solution would be to generate our own encryptionKeys like @GleidsonDaniel mentioned before.

@Mookiies would you mind if I implement the 2 remaining bullet points for your commit? As this might be the only right way to fix this issue. The only thing we would need is a proper way to validate if this fix works.

The best thing is to change the library since its owner has no interest in maintaining it any longer, just seeing that a critical bug like this is completely ignored.
It's in our plans to change the lib and everyone reading this thread should do the same.
We were between using our own keys and completely disabling the backup, but we decided to disable it, given that we will soon be changing libraries.
https://github.com/RocketChat/Rocket.Chat.ReactNative/pull/5165

I'm thinking about moving along too.
@GleidsonDaniel which alternative are you considering to use instead?

Thanks for letting me know, I will propose it to my team as well and we'll see what we will do.

@brentlecomte @mjooms what library did you guys end up moving to?


Cannot see function completion for private method

Environment data

Language Server version: Pylance language server v2021.3.2-pre.1
OS and version: Windows_NT x64 10.0.19043
Python version: Python 3.8.6

Expected behaviour
As shown in the figure below, we can see the function complement prompt of  method __printinfo

Actual behaviour
We can’t see the function complement prompt of private method __printInfo

Code Snippet
class Dog:
    def __init__(self, age):
        self.age = age
        self.__pr

    def __printInfo(self):
        print(self.age)

Thanks for the bug report. I'm able to repro the problem with pylance, but it works correctly with pyright. That should give us a good clue about the source of the bug.

Thanks for the bug report. I'm able to repro the problem with pylance, but it works correctly with pyright. That should give us a good clue about the source of the bug.

Thank you for your reply. I just downloaded the new pylance model, and now the problem has been solved


⚠ Bofrost.fr has degraded performance

In 52b07b3, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1397 ms

Resolved: Bofrost.fr performance has improved in 1358853 after 6 minutes.


[Bug]: Not compatible with Colab

FAQ check

[X] Yes, I checked the FAQ and my question has not been addressed.

Instrument
Other (any stage)
What happened?
Colab now uses python 3.10
import eureka with raise the following error:
ContextualVersionConflict: (certifi 2023.5.7 (/usr/local/lib/python3.10/dist-packages), Requirement.parse('certifi==2<IP_ADDRESS>'), {'jwst'})
Error traceback output
No response
What operating system are you using?
Colab
What version of Python are you running?
Python 3.10
What Python packages do you have installed?
No response
Code of Conduct

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

Strange, it worked just fine on Monday with python 3.10 on Colab. Let me check

Running:
# Change numpy version (required for theano)
!pip install numpy==1.21.6
# Install Eureka! (for now a dev branch, but in the future a stable branch)
!pip install eureka[jwst]@git+https://github.com/kevin218/Eureka.git@dev/tjb

and then clicking Runtime->Restart runtime
and then running:
import eureka

works just fine for me on Google Colab. Can you confirm that you followed those exact steps?


How to uninstall frog?

How to uninstall frog?
i'm on ubuntu
OS: Ubuntu 22.04.4 LTS x86_64

You installed it using snap?

I installed it from ubuntu store.
Trying to remove with apt remove frog says that is already uninstalled : (

But if i search on gnome launcher it keep showing

What does this shows
which frog

[ SOLVED ]
~ …
➜ sudo snap remove frog
frog removed


Handling auto-reconnect behavior across hosts

Background:
Teams thread
Proposed workflow:

driver exposes policy that it wants disconnects on idle
runtime implements that policy by observing page visibility and disconnecting
"disconnect" messages contain reason for disconnects, we propagate "manual disconnect" reason to whoever listens to them (and makes decision to show yellow banner)
runtime reconnects automatically on visibility change
we trigger new event for "leaving idle" such that listeners can put yellow banner if "connect" message does not show up in 5 seconds.

Naive approach of using page visibility will break at some point. We might need to provide some extensible mechanism here such that various environments would need to control it.

Some other day...


Add CodeTriage badge to increase awareness

There are already 10 people on CodeTriage who have subscribed to receive
notices on assisting triage open issues and pull requests.
Minor updates to Markdown heading, move badges to individual lines to
prevent run-on, while preserving a "clean" look.
Before:

After:

:heart: Thanks!

Also big thank you and ❤ ❤ ❤  to everyone helping triaging issues. I'm really liking of the number of issues and PR is slowly decreasing.


Very easy to accidentally delete global properties in project settings

It would be nice to have a have pop-up warning to confirm before you delete a global property. I have deleted global properties on accident several times by mis-clicking and hitting the 'Del' button when going to exit out of the Project Settings window. As it is right now, they are instantly deleted with no warning, and nothing in the console telling you what happened or what was deleted.

but it would be hard to delete multiple variables if each generates popup

Also not sure if it's the best idea to allow delete buildin properties

@curly-brace Maybe it could be possible to select multiple properties by doing Ctrl+click?
@kubecz3k Not sure whose comment you're referring to, but my problem was that is possible to delete predefined properties.

@Miziziziz So maybe main problem is in the fact that it's possible to delete predefined properties? If so then title is little misleading (it's possible to define your own properties so it's good this ability exists generally - just not sure if there is scenario in which someone might want to delete predefined global property).

@kubecz3k yes you're right, that's the main problem; I'll change the title. But, it would also be nice if the console did make a note of what you deleted in case it was an accident; perhaps I should open a separate issue on that?

@Miziziziz I think it's a good idea, I will change the title of current issue little more so it will be more self explanatory

Is this still the case on master/3.1? Project settings were refactored a bit, from what I remember.

Fixed since 3.1


Question about (?=pattern), (?!pattern), (?<=pattern), and (?<!pattern).

Hello;
I was trying to do this (yes)((?:(?[^no]).)*?>)
and then I found that's a to do. How can I make it work?
Thanks for reading me.

@speciale You'll have to contribute a patch for it.

I'm afraid I'm not able to do that. Thanks for your answer.


Add Unity Editor

This Formula is a replacement of existing one unity. And this Formula will install Unity without Unity Download Assistant.app.
I just want to add some comments for future update guides, where should they go?

This Formula is a replacement of existing one unity. And this Formula will install Unity without Unity Download Assistant.app.

Those are good news. Then please delete the current unity.rb cask as well, and rename this one to unity.rb (with header cask 'unity' do). As per the token reference that is the correct name, anyway.
Are you sure it’s a replacement, though? Because it looks like it can do fewer things. Either way, the current one should be removed or at least renamed to unity-download-assistant.

I just want to add some comments for future update guides, where should they go?

They shouldn’t go anywhere. This app isn’t doing anything others aren’t doing, there’s no need for comments.

After Unity v5.3, unity is a collection of components. Each component can be installed standalone. This formula installs the core component called Unity Editor

Got it.
Comments still need to be removed and sha256 updated, but everything else is fine, then.

After Unity v5.3, unity is a collection of components. Each component can be installed standalone. This formula installs the core component called Unity Editor

Read the token reference I’ve now linked to multiple times. What the developer calls it in a particular page does not matter. What matters is the name of the bundle, so we have someway to make sense of everything and not have duplicates. name is where the correct name matters, not the header.
This should still be renamed to unity. Comments also still need to be removed and sha256 updated, but everything else is fine.

Thank you for the contribution. It was merged directly as d7248c8e5640db8322d1f04fa7fb55612a8483e4 to keep commit history cleaner. Your contribution is still credited to you.


Auto Re sizing Not working in Mobile Device

I have implemented the website every thing fine in desktop but in mobile version it's not resisting automatically?
To test this please run the preview in your android Chrome.(Make sure it's not in Desktop mode.) You might think it's giving perfect result http://responsivetest.net/ But you are wrong you should try in real device then only you can fill.
Is there any way to enable it?

Hello,
What is the part that's not resizing correctly?
The template is tested on Chrome on Android and iOS before every release. I'd appreciate some more description on the issue.
Thanks.

I just resolved the issue Problem was with meta tag I have added -

Result is here
Before -

After -

You may want to test the actual package through https://almsaeedstudio.com/themes/AdminLTE/index2.html instead of using the iFrame preview. You could also just remove the iframe via the "x" button at the top. Thanks for sharing this!


Regarding notification issues after ecflow task execution fails.

At present, we are using the ECFLOW PYTHON API integration mode service. During the implementation process, we found that in a series of solutions currently provided by the government, we want to directly monitor the status of task nodes in real time through coding. Only by polling the PYTHON api can we get the task status. Is there any other solution (similar to configuring HTTP to push the failure information to the HTTP service later, or a long link method). Thanks...

Hello @19950813,
ecFlowUI, the GUI for ecFlow, uses polling as its mechanism. The strategy is to periodically check whether there are any updates (news_local()) and only then ask for the changes from the server. We do not have a push mechanism for this, so you will need to poll.
Best regards,
Iain

@iainrussell ok, thanks!


Login Button

Description
I would like to fix the Login Button in Club Login page
It gets large and changes colors a bit in Hover

I want to make all these go away
Stay normal when hovered !
Screenshots
Normal

Hover

Additional information
Location -> /clubs/login

Hey @IAmTamal > I tried to fix this issue. Here's a screenshot of the updated 'LOGIN' button.

I didn't remove the bug-CSS classes but commented it out for future reference. Please have a check.

Hey @IAmTamal > I tried to fix this issue. Here's a screenshot of the updated 'LOGIN' button.

I didn't remove the bug-CSS classes but commented it out for future reference. I made a PR, please have a check.


x86 building with Rust Nightly Compiling ed25519 v1.3.0 cannot find trait Signature in crate signature

Compiling ed25519 v1.3.0 (https://github.com/RustCrypto/signatures.git?tag=ed25519/v1.3.0#8282fcaf)
error[E0405]: cannot find trait Signature in crate signature
--> /home/user/.cargo/git/checkouts/signatures-a6df6df1cc32e789/8282fca/ed25519/src/lib.rs:349:17
|
349 | impl signature::Signature for Signature {
|                 ^^^^^^^^^ not found in signature
For more information about this error, try rustc --explain E0405.
Compiling regex-automata v0.4.3
error: could not compile ed25519 (lib) due to previous error
warning: build failed, waiting for other jobs to finish...
cargo 1.75.0-nightly (6fa6fdc76 2023-10-10) - do not impact - many trials on diferent days after cargo update

user@localhost:~/dev/signatures$ git checkout ed25519/v1.3.0
HEAD 8282fca ed25519 v1.3.0 (#404)
user@localhost:~/dev/signatures$ cargo build
Updating git repository https://github.com/RustCrypto/traits.git
Downloaded der v0.5.1
Downloaded base64ct v1.2.0
Downloaded pem-rfc7468 v0.2.3
Downloaded sec1 v0.2.0
Downloaded crypto-bigint v0.3.2
Downloaded spki v0.5.2
Downloaded version_check v0.9.3
Downloaded ff v0.11.0
Downloaded pem-rfc7468 v0.3.1
Downloaded zeroize v1.4.3
Downloaded unicode-xid v0.2.2
Downloaded zeroize_derive v1.2.2
Downloaded group v0.11.0
Downloaded quote v1.0.10
Downloaded pkcs8 v0.8.0
Downloaded typenum v1.14.0
Downloaded proc-macro2 v1.0.32
Downloaded generic-array v0.14.4
Downloaded syn v1.0.81
Downloaded const-oid v0.7.0
Downloaded signature v1.3.2
Downloaded 21 crates (689.5 KB) in 0.82s
Compiling version_check v0.9.3
Compiling typenum v1.14.0
Compiling rand_core v0.6.3
Compiling const-oid v0.7.0
Compiling zeroize v1.4.3
Compiling subtle v2.4.1
Compiling der v0.5.1
Compiling generic-array v0.14.4
Compiling digest v0.9.0
Compiling sec1 v0.2.0
Compiling crypto-bigint v0.3.2
Compiling signature v1.3.2
Compiling ed25519 v1.3.0 (/home/mierzwia/dev/signatures/ed25519)
Compiling elliptic-curve v0.11.0-pre (https://github.com/RustCrypto/traits.git#7d813023)
Compiling ecdsa v0.13.0-pre (/home/mierzwia/dev/signatures/ecdsa)
Finished dev [unoptimized + debuginfo] target(s) in 3.48s


random_search optimiser added in the pints framework

Description
Add a simplistic random search optimiser, with the following API:
optim = pybop.RandomSearch(     cost,     max_iterations=1000,     max_unchanged_iterations=100,     population_size=50)
Issue reference
Fixes #440
Review
Before you mark your PR as ready for review, please ensure that you've considered the following:

Updated the CHANGELOG.md in reverse chronological order (newest at the top) with a concise description of the changes, including the PR number.
Noted any breaking changes, including details on how it might impact existing functionality.

Type of change

[x ] New Feature: A non-breaking change that adds new functionality.
[ ] Optimization: A code change that improves performance.
[ ] Examples: A change to existing or additional examples.
[ ] Bug Fix: A non-breaking change that addresses an issue.
[ ] Documentation: Updates to documentation or new documentation for new features.
[ ] Refactoring: Non-functional changes that improve the codebase.
[ ] Style: Non-functional changes related to code style (formatting, naming, etc).
[ ] Testing: Additional tests to improve coverage or confirm functionality.
[ ] Other: (Insert description of change)

Key checklist:

[ ] No style issues: $ pre-commit run (or $ nox -s pre-commit) (see CONTRIBUTING.md for how to set this up to run automatically when committing locally, in just two lines of code)
[ ] All unit tests pass: $ nox -s tests
[ ] The documentation builds: $ nox -s doctest

You can run integration tests, unit tests, and doctests together at once, using $ nox -s quick.
Further checks:

[ ] Code is well-commented, especially in complex or unclear areas.
[ ] Added tests that prove my fix is effective or that my feature works.
[ ] Checked that coverage remains or improves, and added tests if necessary to maintain or increase coverage.

Can you also add a changelog entry :)

@all-contributors, add @Dibyendu-IITKGP for code, test

@all-contributors
please add @Dibyendu-IITKGP for code
please add @Dibyendu-IITKGP for test

@all-contributors please add @Dibyendu-IITKGP for code.


Compute 2017-03-30

@yugangw-msft

Codecov Report

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

@@           Coverage Diff           @@
##           master    #1266   +/-   ##
=======================================
  Coverage   56.35%   56.35%
=======================================
  Files        2565     2565
  Lines       68324    68324
=======================================
  Hits        38507    38507
  Misses      29817    29817

Continue to review full report at Codecov.

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


Error in Step-10

I got a strange error in step-10.
Here is my line of code to run MetaCerberus:
source ray-slurm-metacerberus.sh
metacerberus.py --prodigal data/processed/final_MAGs/all_final_MAGs/fixed_names --hmm "KOFam_all, COG, VOG, PHROG, CAZy" --dir_out /projects/luo_lab/Rogers_SidersViralAnalysis_XXXX_20XX/data/processed/Metabolic_predictions/metacerberus_out/test

Here is the error:

We believe there is something with the header that is causing hmmer to fail.
Please send a mag that is failing for testing.

Dr. Rodgers can you send us a couple 100 lines of the mag in question? Also, what program you used to make the mag? We think its a header issue.


UI Elements -- Notifications, Loading

There should be a few globally available pieces of wand that are accessible by different parts of the engine, etc. Right now I can think of two that I would like:
Notifications

Whenever we throw an error, the error should be exposed out to the user in some form.

Loading

Whenever we are doing an XHR request, the user should see some indication that we are processing that.

For sanity checking, the assumption is that we should not rely on notification libraries? Toastr seems to be the most popular but relies on jQuery. A notification library that does not rely on jQuery includes humane-js.
Unless you're thinking a different type of notification?

I think we can make some pretty quick notifications without a library, but I'll probably say that for every single feature because I'm a vanilla jerk :wink: Here's what we have going in dropchop for notifications that disappear after any number of seconds.

Agree with Sam, that's exactly what I was thinking. We want to avoid
dependencies wherever possible.
On Sun, Aug 2, 2015 at 8:12 PM, Sam Matthews<EMAIL_ADDRESS>wrote:

I think we can make some pretty quick notifications without a library, but
I'll probably say that for every single feature because I'm a vanilla jerk [image:
:wink:] Here's what we have going in dropchop
https://github.com/cugos/dropchop/blob/master/src/js/notifications/Notifications.js
for notifications that disappear after any number of seconds.
—
Reply to this email directly or view it on GitHub
https://github.com/codeforamerica/wand/issues/33#issuecomment-127109804.

Nice notifications library @mapsam! Okay, I guess that makes this pretty straightforward, then.

Notifications are mostly closed in the notifications branch.


how to download selected cells?

Hi, I want to download selected cells, not in the red circle? is there a way to do it in cellxgene VIP?

@FADHLyemen, if the "download selected cells" mean the cell (name/ID), you can select the cells first, and many plot provide "Data" download, such as heatmap, it will contains cell IDs/Names.
If this is not the answer you are looking for, please reopen and explain.
Thanks!


feat: Add static analysis tool to prevent bugs and improve DX

Closes #1610
Changelog

Add the VS Code extension SonarLint for static analysis of Python, Java and TypeScript among many other languages.
Move the VS Code settings and extensions to customizations/vscode/extensions and customizations/vscode/settings (recent change in the devcontainer standard)

Notes

SonarLint usually provides a clear description of what the issue and solution are. I'm hoping that adding SonarLint to the monorepo will help all developers learn about basic and advanced potential bugs and how to avoid them in an intuitive way (improved Developer Experience or DX).
Sometimes it is valid to tell SonarLint to ignore an issue. There are two limitations to using SonarLint "without backend" (more on that below):

SonarLint will forget about choices made when the devcontainer is rebuilt.
Choice made with SonarLint are not shared across developers, thus leading to duplicated and different choices made by individual developers.

The solution to the above limitations is to connect SonarLint to a backend: either SonarCloud (as a service) or SonarQube.

Preview
Static analysis for Python
Click on the 💡 to see the options proposed by SonarLint.

SonarLint describes what the issue is and how to solve it.

Static analysis for TypeScript
What the issue is:

How to fix it:

Static analysis for Java
🙈

cc: @brucehoff @thomasyu888

@tschaffter I'm used to using pylint, how is this different/better?

@tschaffter another question does the monorepo use black and or mypy?

This is really interesting - I'll take a look.  I use this: https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance in vscode which uses pyright.  Then I use black, ruff, and mypy in pre-commit and CI/CD to enhance the codebase.

@andrewelamb @thomasyu888 Most projects in the monorepo have a linter and/or a formatter. For example:

Black is used to lint Python projects
ESLint is used to lint TypeScript projects
Spotless is used to lint Java projects

I'm hoping that we can evaluate the benefit of SonarLint over the next few months. One benefit that it already offer is a unique UI for linting projects that use different languages. Another benefit when connected to a backend (SonarCloud or SonarQube) would be to share issue resolution choices across all the developers.

I'm used to using pylint, how is this different/better?

@andrewelamb See above. I've never used pylint. Could you please let me know how SonarLint and pylint compare once you had the chance to use both?

another question does the monorepo use black and or mypy?

This can be configured for each project, though it would be nice to use the same linter for projects that use the same language. Existing Python projects in the monorepo use Black (e.g. see apps/schematic/api). I picked it because I heard that several developers at Sage where using it about a year ago. I'm haven't been actively developing in Python for the past year or so, so I would like more experienced Python developers discuss what linter Python projects in the monorepo should use.

@tschaffter From what I've seen in the Python space, this is the industry standard now:

mypy or pyright (static type checks)
black + ruff (code formatters, not linters)
pylint - this is the most comprehensive linter and beats flake8, etc.

@tschaffter Schematic DB uses pylint black and mypy. I like pylint over other linters because there's an add-on that allows for checking docstrings.
I guess you could call black a linter, there some overlap with pylint, but it checks other things that pylint doesn't like spacing.
mypy does static checking using the type hints, and cna be used to enforce type hints which kind of turns python form using dynamic typing to static typing. Mypy is my new favorite thing in python and I think all packages should use and enforce it.

@andrewelamb Projects are linted with the command nx lint <project> or nx run <project>:lint. For example, applying a different linter(s) for Schematic REST API is achieved by modifying this line.
Projects are automatically linted in a pre-commit hook and by the CI workflow.

Thanks all for the feedback! My plan is to add SonarLint to the devcontainer now and collect feedback from developers who used it a few months from now.


Ability to target all items from a specific mod

I was wondering if would be possible to implement the ability to target all items from a specific mod using something like [botania:*]. So for example to remove all furnace recipes for all Botania items you could use something like [furnace.remove(botania:*);] This would be extremely helpful in certain cases.
Thanks!

Closed by;
https://github.com/jaredlll08/CraftTweaker/commit/e8a3308277b3fa1d9f9c02a798acc92d028c3eb8
you will still need to loop over all the items and do stuff with them from there, like so:
for item in loadedMods["botania"].items {
print(item.name);
}


Cannot read property code of undefined

Description:

Sending a transaction passes but renders an error on the modal:
Sending tokens failed: Cannot read property 'code' of undefined

The return message changed and doesn't contain {checktx, delivertx} anymore.


Make a github book or similar for the documentation

docusaurus.io

Or vitepress

I think it is not useful for this kind of project


adding new Branch  git command

add git command to create new branch

Will take a look tonight

Thanks~


TextureRect Stretching Breaks With SubViewport

Godot version
v4.1.1.stable.official [bd6af8e0e]
System information
Godot v4.1.1.stable - Gentoo 2.14 - Vulkan (Compatibility) - AMD Radeon Vega 8 Graphics (raven, LLVM 16.0.6, DRM 3.49, 6.1.53-gentoo-r1-x86_64) () - AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx (8 Threads)
Issue description
When I create a TextureRect background that repeats a smaller texture, then place a SubViewportContainer and Subviewport, the TextureRect glitches.

Steps to reproduce

Add a TextureRect with stretch_tile and expand_keep_size.
Add a SubViewportContainer and SubViewport.

However, this may be an issue with compatibility mode or my specific settings, so please run the attached project. Uncomment the lines at the bottom of game.gd for my work-around.
Minimal reproduction project
bug.zip

I've tried all the different texture_repeat settings. They had no effect. However, if I preload the texture instead of loading, it works fine.

Looks correctly for me.

Try in 4.2 dev. Might be broken in older version.

Looks like it's fixed. Thanks.


Release v0.9.0

Outcome of running scripts/bump_version.sh -m.

I could use some help with the CHANGELOG.md, actually... :thinking:

For the change log maybe
This release introduces the integration of the [PET protocol](https://www.xain.io/assets/XAIN-Whitepaper.pdf) into the platform.

**Note:**
The integration of the PET protocol required a complete rewrite of the codebase and is therefore not compatible with the previous release.

?

For the change log maybe
This release introduces the integration of the [PET protocol](https://www.xain.io/assets/XAIN-Whitepaper.pdf) into the platform.

**Note:**
The integration of the PET protocol required a complete rewrite of the codebase and is therefore not compatible with the previous release.

?

LGTM. Would you like to suggest the change and Co-author this PR or should I apply that myself?

Feel free to add this yourself

PR updated with changes to the CHANGELOG.


0.2.0 dev

Clean test to see stability of the version 0.2.0-dev
For your information 6 passing, 3 failing

@helitik Good work!!! It is aligned to the line of the project!


BUG: Improper handling of __init__.pyi

I'm using tree-sitter and wanted to add docstrings to its type stubs (which are in the __init__.pyi file), but I got WARNING: could not import __init__, module not found:
$ python -m venv .venv
$ activate .venv/bin/activate
$ pip install docify tree-sitter
$ mkdir typings
$ docify .venv/lib/python3.9/site-packages/tree_sitter -o typings/
WARNING: could not import __init__, module not found
100%|███████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 5133.79it/s]

I think the issue is here:
https://github.com/AThePeanut4/docify/blob/c428e426af89408744cb86137d9e1e4fdd2185a7/docify.py#L562-L570
Since the relative path of .venv/lib/python3.9/site-packages/tree_sitter/__init__.pyi to .venv/lib/python3.9/site-packages/tree_sitter/ is __ini__.pyi and thus the import path is __init__ which doesn't match with .__init__. And even if it matched, the module name would end up being the empty string, so and extra check would be needed for that.
The script does work if instead of .venv/lib/python3.9/site-packages/tree_sitter I use .venv/lib/python3.9/site-packages/, but that has the consequence of adding docstring to all the installed modules, which is not ideal:
$ docify .venv/lib/python3.9/site-packages/ -o typings/
INFO: processing tree_sitter_python/__init__.pyi
INFO: processing tree_sitter/__init__.pyi   # This is the only one that I care about
INFO: processing setuptools/_vendor/jaraco/functools/__init__.pyi
INFO: processing setuptools/_vendor/more_itertools/recipes.pyi
INFO: processing setuptools/_vendor/more_itertools/more.pyi
INFO: processing setuptools/_vendor/more_itertools/__init__.pyi
INFO: processing pkg_resources/_vendor/jaraco/functools/__init__.pyi
INFO: processing pkg_resources/_vendor/more_itertools/recipes.pyi
INFO: processing pkg_resources/_vendor/more_itertools/more.pyi
INFO: processing pkg_resources/_vendor/more_itertools/__init__.pyi
100%|███████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:06<00:00,  1.51it/s]

Also, just as a recommendation, you might be interested in using the pathlib module instead of the os.path.* functions for manipulating paths, as it gives you better tools to avoid problems like this.

This is technically intentional behaviour, because the INPUT_DIR argument is meant to be the import "root" that the dynamic imports are created relative to. So with a filesystem that contains foo/bar/module.py, docify foo/bar will import just module, docify foo will import bar.module, and docify . will import foo.bar.module. The reason it is like this is because the script was originally only meant to add docstrings to typeshed's stdlib stubs.
I think what I'll do is add a special case where if an __init__.pyi (or __init__.py) file exists directly in the input dir then it will include it in the import path, i.e. the parent folder will then be the import root.
Also yes I am aware of the pathlib module, never really used it before but it does seem like it would be useful. I'll do some investigation and probably switch over if the code ends up being sufficiently simpler.


Difference with iMAP/Nice-SLAM depth Loss

Hello,
I found that iMAP SLAM and Nice-SLAM authors also propose depth losses to increase the speed of the training. Could you kindly explain if your depth loss can be combined with the losses proposed by them?
Is there a significant difference between your depth-loss formulation and their or it's just a different notation for the same formula with the same result?

Hi, thanks for your interest.
We haven't tested our method on their SLAM dataset so we don't have a sense which one would be better.
I think the idea of using depth as extra signal is similar, but using which formula of depth loss depends on different tasks.


Salesforce Key Store as a Service for Packages

Is your feature request related to a problem? Please describe.
Nope.
What are you trying to do
Currently every devops engineer working with Salesforce packages has to build its own solution to create, store, fetch, manage and secure keys when creating and installing packages. Lots of resources are being wasted to solve the same problem. So I was thinking that maybe Salesforce Artifact Registry could provide this as a service, and of course charge for it. What do you think? But this must not be enforced. Customers must still be able to use their own solution.
Describe the solution you'd like
Create a service to automatically handle the creation and rotation of the keys used when creating/installing package versions.
In the sfdx-project.json, or in this proposed sfdx-package.json #1915, there could exist a new attribute to control when this service should be used by sfdx.
OR
There could exist a new flag in sfdx that would automatically do it.
sfdx force:package:version:create ... --protected
sfdx force:package:install ... --protected
The --key flag must not be removed.
Describe alternatives you've considered
I have to create my own key store. And also make sure that it is secure.
Additional context
NA

This could actually be an auth service where we could configure which orgs are allowed to install a package.


chore(deps): upgrade dev dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-dev-dependencies-k8s-29-main" workflow

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

Questions ?
Please refer to the Backport tool documentation


The documentation for the latest version of this package is missing on Hackage

The documentation for the latest version of this package is missing on Hackage. They've been pending on Hackage for some time, this usually indicated that Hackage wasn't able to build the package.
Is it possible for you to manually upload the package using cabal upload --doc, please?
Thanks!

Done.

Thanks.


Add proxy support to IP exclusion

We have implemented the following IP exclusion on one of our Openwayback 2.1.0 access points:
    <property name="requestAuth" value="false" />
    <property name="authentication">
      <bean class="org.archive.wayback.authenticationcontrol.IPMatchesBooleanOperator">
        <property name="allowedRanges">
          <list>
            <value>(IP RANGE)</value>
          </list>
        </property>
      </bean>
    </property>

When we access the Openwayback instance directly (via subdomain.loc.gov), the IP exclusion works.  However, we would like to route traffic to the Openwayback instance from a public webserver running on a different VM.  We are achieving this via the following apache rules in the appropriate VirtualHost block in the public (remote) webserver's httpd.conf:
RewriteRule ^/somepath/(.*)$ http://subdomain.loc.gov/$1 [P,L]
ProxyPassReverse /somepath/ http://subdomain.loc.gov/

The traffic is routed as we expect, but this breaks the IP exclusion.  Assuming our web server's IP is <IP_ADDRESS> and we are making a request to the public webserver through a machine with IP <IP_ADDRESS>, Catalina.out shows:
SEVERE: Unable to parse remote IP address(<IP_ADDRESS>, <IP_ADDRESS>)
May 26, 2015 2:21:20 PM org.archive.wayback.webapp.AccessPoint logError

I think that, if we make the same request directly, instead of requesting via the proxy webserver, the REQUEST_REMOTE_ADDRESS variable on the WaybackRequest object would be "<IP_ADDRESS>".  However, when we proxy the request, the error above suggests that the REQUEST_REMOTE_ADDRESS variable is set to "<IP_ADDRESS>, <IP_ADDRESS>".
If this is indeed the case, I would think that a simple check could be added to the getRemoteIPAddress() method of the WaybackRequest object class to check if REQUEST_REMOTE_ADDRESS is a single IP (direct connection) or if it is a comma separated list of IPs (indicating proxy access).   I am not all that familiar with java, but maybe the following could be updated to check for proxy requests before processing the IP:
         public static byte[] matchIP(String ip) {
                 /** Check if Proxy request*/
                 ip_addresses = ip.split(", ");
                 if (ip_addresses.size() == 2) {
                         ip = ip_addresses[1];
                 }

                 Matcher m = IP_PATTERN.matcher(ip);
                 if(m != null) {
                         if(m.matches()) {
                                 try {
                                         byte[] res = new byte[4];
                                         for(int i=0; i < 4; i++) {
                                                 int testInt = Integer.parseInt(m.group(i+1));
                                                 if(testInt < 0) {
                                                         return null;
                                                 }
                                                 if(testInt > 255) {
                                                         return null;
                                                 }
                                                 res[i] = (byte) testInt;
                                         }
                                         return res;
                                 } catch(NumberFormatException e) {
                                         e.printStackTrace();
                                         return null;
                                 }
                         }
                 }
                 return null;
         }

Or, maybe it would make more sense to actually validate the WaybackRequest.REQUEST_REMOTE_ADDRESS variable before setting it, and leave the IPRange.matchIP() method noted above untouched.  That way, the proper IP is established from the beginning, and just flows downhill into the other functionality of the application.  If this seems like the wiser approach, maybe the following check could be added to the WaybackRequest.extractHttpRequestInfo() method:
         public void extractHttpRequestInfo(HttpServletRequest httpRequest) {

                 putUnlessNull(REQUEST_REFERER_URL, httpRequest.getHeader("REFERER"));

                 String remoteAddr = httpRequest.getHeader("X-Forwarded-For");
                 if (remoteAddr == null) {
                         remoteAddr = httpRequest.getRemoteAddr();
                 }
                 if (remoteAddr != null) {
                     /** Check if Proxy request*/
                     ip_addresses = remoteAddr.split(", ");
                     if (ip_addresses.size() == 2) {
                             put(REQUEST_REMOTE_ADDRESS,ip_addresses[1]);
                             put(REQUEST_REMOTE_PROXY, ip_addresses[0]);
                     } else {
                             put(REQUEST_REMOTE_ADDRESS, remoteAddr)
                     }
                 }

If the proxy IP should be stored for some reason, a REQUEST_REMOTE_PROXY string could be added to the class and defined as shown above.  Or, if that info wouldn't be useful in any way, the put(REQUEST_REMOTE_PROXY, ip_addresses[0]); line above could be removed.
On the other hand, if you think this could be resolved on our end via some Apache setting, please let me know.  I am looking into it, but not coming up with much so far.

Just want to note that the standard format for the X-Forwarded-For header is:
X-Forwarded-For: client, proxy1, proxy2

So clearly OpenWayback isn't handling this correctly in extractHttpRequestInfo()

Thanks for the info Chris

Because there are tools that are designed to allow users to inject spoofed X-Forwarded-For headers into requests (Firefox X-Forwarded-For Header Addon), just checking the the leftmost value, the putative client value, in the X-Forwarded-For header, won't really enforce an IP whitelist.

"Since it is easy to forge an X-Forwarded-For field the given information should be used with care. The last IP address is always the IP address that connects to the last proxy, which means it is the most reliable source of information. X-Forwarded-For data can be used in a forward or reverse proxy scenario." Wikipedia: X-Forwarded-For

The process has to start at the rightmost value in the X-Forwarded-For header, iterate leftward through the values, checking that each proxy value is a known proxy, and then check the first value it finds that is not a known proxy against the whitelist.

When multiple, comma delimited useragent IP addresses are listed in the header value, they are processed in Right-to-Left order. Processing halts when a given useragent IP address is not trusted to present the preceding IP address. The header field is updated to this remaining list of unconfirmed IP addresses, or if all IP addresses were trusted, this header is removed from the request altogether. Apache Module mod_remoteip, cited by Yoav Aner, "Rails IP Spoofing Vulnerabilities and Protection", GingerLime

So to do this, I'd suggest adding a configuration option for a PROXY_IP_LIST, then a method or just a block that extracts the real client IP.
Time permitting, I'm going to take a look at the codebase and see if I can get up to speed with it.

@ptrourke Have you had the time to look into this? The solution you suggest sounds good to me. Can I assign this issue to you?

Yes, I'll take it.

@ptrourke You'd said you had a fix almost ready on the call in November. Is it ready? If not, we may have to defer this to a later release as we'd really like to mint a 2.3.0 release.

Yes, sorry, I haven't been able to close the deal on this, due to local
difficulties. My apologies.
On Thu, Jan 7, 2016 at 9:23 AM, Kristinn Sigurðsson <
<EMAIL_ADDRESS>wrote:

@ptrourke https://github.com/ptrourke You'd said you had a fix almost
ready on the call in November. Is it ready? If not, we may have to defer
this to a later release as we'd really like to mint a 2.3.0 release.
—
Reply to this email directly or view it on GitHub
https://github.com/iipc/openwayback/issues/260#issuecomment-169677867.

--
Patrick Rourke
ptrourke [(at)] methymna.com

Hello, all, my name is Chase Dooley, and I'm the newest member of the Web Archiving team at LoC. I'm just getting up to speed, and as such, I started reviewing this ticket. I don't know how far along @ptrourke is with his fix, so this may not be worth noting, but I stumbled across this Tomcat valve:
https://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/RemoteIpValve.html
that seems to do what @ptrourke suggested.
This valve proceeds as follows:

If the incoming request.getRemoteAddr() matches the valve's list of internal proxies :

- Loop on the comma delimited list of IPs and hostnames passed by the preceding
  load balancer or proxy in the given request's Http header named $remoteIpHeader
  (default value x-forwarded-for). Values are processed in right-to-left order.

- For each ip/host of the list:
        - if it matches the internal proxies list, the ip/host is swallowed
        - if it matches the trusted proxies list, the ip/host is added
           to the created proxies header
        - otherwise, the ip/host is declared to be the remote ip and looping is stopped.

- If the request http header named $protocolHeader (e.g. x-forwarded-for)
equals to the value of protocolHeaderHttpsValue configuration parameter (default https)
then request.isSecure = true, request.scheme = https and request.serverPort = 443.
Note that 443 can be overwritten with the $httpsServerPort configuration parameter.

I don't know much about Apache, but this may be a fix. It would put the onus on the server and not the application, however, which seems to be the opposite of the direction this issue was being taken.
Additionally, I don't know if this would solve the issue .arderyp and @kris-sigur brought up regarding the reversal of the x-forwarded-for in openwayback.

Just for reference, I believe why this worked for LoC in wayback 1.6 and doesn't in Openwayback because of the extractHttpRequestInfo method in WaybackRequest.
In 1.6, Wayback just added the remote address from getRemoteAddr():

putUnlessNull(REQUEST_REMOTE_ADDRESS, httpRequest.getRemoteAddr());

Starting with Openwayback, it checked for the X-Forwarded-For first:

String remoteAddr = httpRequest.getHeader("X-Forwarded-For");
		if (remoteAddr == null) {
			remoteAddr = httpRequest.getRemoteAddr();
		}
putUnlessNull(REQUEST_REMOTE_ADDRESS, remoteAddr);

https://github.com/iipc/openwayback/blob/master/wayback-core/src/main/java/org/archive/wayback/core/WaybackRequest.java#L1110
So in 1.6 < the remoteAddr was always just one IP and starting with Openwayback it had the possibility to become an "array", which is not what IPMatchesBooleanOperator is expecting--this is where I think it gets hung up every time.
https://github.com/iipc/openwayback/blob/829693b6d43f40b1b045f08611a4fa5e27395e29/wayback-core/src/main/java/org/archive/wayback/authenticationcontrol/IPMatchesBooleanOperator.java#L70

So @ptrourke and I have a fix for this. To which branch should I submit the PR, @ldko ?

Hi @chasehd, good to hear from you! Please submit to master. Also, if not too much trouble, please update the 2.4.0 release notes section in your PR.

fixed via #349


Use testng on the tests project and remove dependencies on junit.

Enable the test configuration on the tests project.
Remove dependency on junit as it has a conflicting license and kafka monitor does not use it anyway.

As there are not any unit tests anyway this should not have an negative impact and will allow others to write unit tests.

Thanks for the patch @smccauliff


chore: bring GH up to speed with GHE

Context
This PR brings GitHub up to speed with GitHub Enterprise
Change list

Brings GH up to speed with GHE

Checklist
Ensure your PR meets the following requirements:

[ ] This PR is associated to one (or more) issues that are open
[x] I have signed off my commits (using git commit -s)
[x] I agree with the ST4SD Code of Conduct

Closed by d1023fc83b614cc7ebec3aa41829965b804a4ad3


"Thin" or "Thick" should be able to configured

Is this a BUG REPORT or FEATURE REQUEST?:

/kind bug

What happened:
Now we can not choose the volume type "Thin" or "Thick", all is "Thin".
What you expected to happen:
We can choose the volume type, "Thin" or "Thick"
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Environment:

Hotpot(release/branch) version:
OS (e.g. from /etc/os-release):
Kernel (e.g. uname -a):
Install tools:
Others:

Fixed in PR #1185


FIX react-native-test in CI

(copy and fix from 3.3)
Issue:
What I did
How to test
Is this testable with jest or storyshots?
Does this need a new example in the kitchen sink apps?
Does this need an update to the documentation?
If your answer is yes to any of these, please make sure to include it in your PR.

Should be ok now @Hypnosphi, thanks for taking notice 👍

Please add some context to issue description, tell what this change is about


Conditional resources are assumed to be created.

The current implementation compares resources from the original template with resources in the drift results. However not all resources in the template may be provisioned as they could be conditional.
In the below example template, when 'pBucketAccessControl' is 'private' the 'AWS::S3::BucketPolicy' will not exist, however the code will assume it exists since it loops through resources in the template ignoring conditions.
Example template:
AWSTemplateFormatVersion: 2010-09-09
Description: >-
  Creates an S3 bucket configured for Private or Public an assigns permissions.
  Distribution pointing to the S3 bucket
Parameters:
  pBucketName:
    Type: String
    Description: S3 bucket name
    Default: ''
  pBucketAccessControl:
    Type: String
    ConstraintDescription: 'Must be in either AuthenticatedRead | AwsExecRead | BucketOwnerRead | BucketOwnerFullControl | LogDeliveryWrite | Private | PublicRead'
    Description: A canned access control list (ACL) that grants predefined permissions to the bucket.
    AllowedValues:
      - AuthenticatedRead
      - AwsExecRead
      - BucketOwnerRead
      - BucketOwnerFullControl
      - LogDeliveryWrite
      - Private
      - PublicRead
      - __pBucketAccessControl__
    Default: 'Private'
  pEnableS3Notifications:
    Type: String
    Description: S3 bucket Notification
    Default: 'false'
  pS3SqsQueueArn:
    Type: String
    Description: sqs queue arn
Conditions:
  cEnableBucketPolicy: !Equals ['PublicRead', !Ref pBucketAccessControl]
  cEnableS3Notifications: !Equals ['true', !Ref pEnableS3Notifications]
  cEnablePrivateBuckets: !Equals ['Private', !Ref pBucketAccessControl]
Resources:
  rMyS3Bucket:
    Type: 'AWS::S3::Bucket'
    Properties:
      AccessControl: !If [cEnablePrivateBuckets, 'Private', !Ref pBucketAccessControl ]
      BucketName: !Ref pBucketName
      PublicAccessBlockConfiguration:
        !If
          - cEnablePrivateBuckets
          -
            BlockPublicAcls: true
            BlockPublicPolicy: true
            IgnorePublicAcls: true
            RestrictPublicBuckets: true
          - !Ref "AWS::NoValue"
      NotificationConfiguration:
        Fn::If:
          - cEnableS3Notifications
          - QueueConfigurations:
              - Event: s3:ObjectRemoved:Delete
                Queue: !Ref pS3SqsQueueArn
              - Event: s3:ObjectCreated:*
                Queue: !Ref pS3SqsQueueArn
          - Ref: "AWS::NoValue"
      CorsConfiguration:
        CorsRules:
          - AllowedHeaders:
              - '*'
            AllowedMethods:
              - PUT
              - POST
            AllowedOrigins:
              - '*'
            MaxAge: '3000'
  rS3BucketPolicy:
    Condition: cEnableBucketPolicy
    Type: 'AWS::S3::BucketPolicy'
    Properties:
      Bucket: !Ref rMyS3Bucket
      PolicyDocument:
        Statement:
          - Sid: PublicReadForGetBucketObjects
            Effect: Allow
            Principal: '*'
            Action: 's3:GetObject'
            Resource: !Join
              - ''
              - - 'arn:aws:s3:::'
                - !Ref rMyS3Bucket
                - /*
Outputs:
  BucketName:
    Value: !Ref rMyS3Bucket
    Description: Name of S3 bucket

Suggestion:
Get resources from cf stack instead of template for a more accurate representation of resources managed by stack.
#Current
original_template = cfnclient.get_template(
    StackName=original_stack_id,
    TemplateStage='Processed'
)['TemplateBody']

#Suggested variable rename and different method call
original_resources = cfnclient.describe_stack_resources(
    StackName=original_stack_id,
    TemplateStage='Processed'
)['StackResources']

Thanks @v4de for raising and the explanation.
I've pushed a potential fix but didn't comprehensively test it out. Did you want to give it a try?

Hi @iann0036, I finally got around to testing this again, sorry for the extremely long wait.
I got this output from a test with renaming a stack using the same template from above.
Found stack, detecting drift...
Setting resource retention...
Removing original stack (whilst retaining resources!)...
Recreating stack with imported resources...
Traceback (most recent call last):
  File "D:\scripts\repo\cfn-stack-rename\index.py", line 1501, in <module>
    new_stack_id = cfnclient.create_change_set(
  File "C:\Python39\lib\site-packages\botocore\client.py", line 357, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "C:\Python39\lib\site-packages\botocore\client.py", line 676, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (ValidationError) when calling the CreateChangeSet operation: As part of the import operation, you cannot modify or add [Outputs]

I believe the outputs section is most likely causing the issue here, is there a way to omit that from the template used when creating the change set?

Did you want to just try this yourself? Can't replicate your specific stack, but just add:
template.pop('Outputs', None)

just before the create_change_set operation, so line 1500.

Ok, here's an update on testing: I recreated the test by importing the bucket into a new stack manually. I then updated the stack to add the outputs and bucket policy back to the bucket and stack. For some reason the python was not forcing the drift detection again.
Found stack, detecting drift...
Found resource type without drift info: AWS::S3::Bucket, aborting

I went to the console and detected the drift manually then it showed up in the drift results. Then I ran the python again:
Found stack, detecting drift...
Setting resource retention...
Removing original stack (whilst retaining resources!)...
Recreating stack with imported resources...
Traceback (most recent call last):
  File "D:\scripts\repo\cfn-stack-rename\index.py", line 1516, in <module>
    waiter.wait(
  File "C:\Python39\lib\site-packages\botocore\waiter.py", line 53, in wait
    Waiter.wait(self, **kwargs)
  File "C:\Python39\lib\site-packages\botocore\waiter.py", line 320, in wait
    raise WaiterError(
botocore.exceptions.WaiterError: Waiter ChangeSetCreateComplete failed: Waiter encountered a terminal failure state

Looks like it failed waiting, however i do see my new stack is there. It has been stuck in REVIEW_IN_PROGRESS | User Initiated state for 15min. Might cancel the stack and try again and send another update.

@iann0036 IT WORKS! It was an issue with permissions where I was using the wrong credentials to run the python which put cloudformation in a wait for the entire day since the change set failed to access the s3 bucket.
Added this on line 1500 like you mentioned.
template.pop('Outputs', None)

I will continue testing, I believe there will be some more edge cases with other resources.


Experiment of Adam with warm up?

Thanks for your job, can AdamP work with warm up and can warm up make AdamP works better? thks.

Hi, thank you for your interest in our work.
We tested AdamP with RAdam which makes warm-up effect on Adam optimizer.
The result was similar to original AdamP.
So, I think AdamP can work with warm-up. But, I'm not sure whether it makes improvement.
Perhaps it depends on the learning parameters or early learning instability.

Hi, thank you for your interest in our work.
We tested AdamP with RAdam which makes warm-up effect on Adam optimizer.
The result was similar to original AdamP.
So, I think AdamP can work with warm-up. But, I'm not sure whether it makes improvement.
Perhaps it depends on the learning parameters or early learning instability.

Thanks for your reply. It's just what I want to know.


Guides for running meet ups

Recently I decided to extend the team for the London Rust Users Group, which meant I need to do some knowledge transfer.
This seem like a great opportunity to also share this knowledge with the events team, and to new meetup organisers alike.

here's the draft under review #28


⚠ Quirk Club Argentina (SSR) has degraded performance

In 8e5dbe8, Quirk Club Argentina (SSR) (https://quirkclub-dev.web.app/ssr-check) experienced degraded performance:

HTTP code: 200
Response time: 9289 ms

Resolved: Quirk Club Argentina (SSR) performance has improved in b37f631 after 15 minutes.


feat/refactor!: router-level middleware, support for lifespans on mounted apps

Closes #32
This is a middle road of where we are now and #32: App is not longer based on Starlette, but Router still inherits from Starlette's Router and adds middleware on top of it

Codecov Report

Merging #35 (3b8a438) into main (5264059) will decrease coverage by 0.05%.
The diff coverage is 97.48%.

@@            Coverage Diff             @@
##             main      #35      +/-   ##
==========================================
- Coverage   98.11%   98.05%   -0.06%
==========================================
  Files         172      175       +3
  Lines        5412     5557     +145
  Branches      624      645      +21
==========================================
+ Hits         5310     5449     +139
- Misses         56       62       +6
  Partials       46       46

Impacted Files
Coverage Δ

...sts/test_docs/tutorial/routing/test_tutorial002.py
100.00% <ø> (ø)

xpresso/openapi/_builder.py
79.37% <78.94%> (-1.45%)
:arrow_down:

xpresso/_utils/routing.py
95.65% <94.44%> (-0.90%)
:arrow_down:

tests/test_lifespans.py
97.22% <97.22%> (ø)

tests/test_dependency_injection.py
100.00% <100.00%> (ø)

tests/test_exception_handlers.py
100.00% <100.00%> (ø)

tests/test_routing/test_mounts.py
100.00% <100.00%> (ø)

tests/test_routing/test_router.py
100.00% <100.00%> (ø)

xpresso/applications.py
97.54% <100.00%> (+2.00%)
:arrow_up:

xpresso/exception_handlers.py
100.00% <100.00%> (ø)

... and 8 more

@sm-Fifteen I think you may be interested in this based on your comments in encode/starlette#649(comment) and tiangolo/fastapi#617
I'm not really advertising it / putting it in the docs just yet, but this change does enable lifespans for submounted apps:
https://github.com/adriangb/xpresso/blob/3b8a438e4530cce61c2a012a6bbff9b74f0abf04/tests/test_lifespans.py#L11-L30
(incidentally, that example also uses dependency injection in the lifespan event, which I know is also something you were pushing for in the FastAPI issue)

Ah, that's very interesting! I recall you mentionning moving your efforts of improving the FastAPI DI system to your own di library a few months ago, and then not really hearing much about it afterwards.
Now that I can see the vision realized as a competitor to FastAPI, and all the various improvements you made on it, namely:

the way you're using graphlib (or rather your own Rust version of it) to handle dependency resolution, with support for concurrent execution of dependencies, solving tiangolo/fastapi#639;
Using the Starlette 0.13 declarative routing (which might not sit well with everyone and has the same potential issues I pointed out in https://github.com/tiangolo/fastapi/issues/687#issuecomment-550350703, but I still very much like having all the routing in one place!)
using Python 3.9 Annotated types to avoid conflicts between FastAPI types and other libraries;
support for more obscure OpenAPI options like array parameter serialization styles, solving tiangolo/fastapi#283;
lifespan-scoped dependency support, obviously, including on mounted apps, which has been one of the things I'd been wishing for since I started using FastAPI;

...I can really say that such big changes would have been hard to pull off well on top of the existing FastAPI codebase. I'm definitely going to be following this closely!
Also, looks like you forgot to update this part:
https://github.com/adriangb/xpresso/blob/b2b3ac7a122f966d0f2559e6e37f24a1945bd9c9/docs/tutorial/lifespan.md?plain=1#L4

Also, looks like you forgot to update this part

Do you mean that we should call out support for lifespans on mounted apps? To be clear, we do not support ASGI lifespans on arbitrary mounted apps. We only support context manager lifespans on Xpresso apps. So you can't mount a Blacksheep (or other ASGI framework) app and have it run it's lifespans.

Ah, right, my bad, I was skimming through the documentation and didn't realize the distinction you were trying to make. That should probably be pointed out somewhere in the "Dependency scopes" or "Lifespan" parts of the tutorial, then, since it seems like an important point to raise.

Yup I just added that feature (in this PR) though, so I was thinking of letting it marinate a bit to see if I find any flaws in the design before really advertising it


Add virtual templates

One issue I’ve discovered; includes and layouts directory are relative to the input directory. If you use a relative path (i.e. ../layouts), Eleventy will look in that folder and ignore the virtual templates (and/or their template paths).
TO DO

[x] Update docs
[ ] Test on Design History template – is it easier to override layouts provided by the plugin, and by how much

Possibly in a separate PR

[ ] Move all plugin in code into /lib
[ ] Rename /lib to /src

With a virtual template provided by the official Eleventy RSS plugin, do we want to bundle that with this plugin, or just let users opt into generating RSS feeds via that plugin (perhaps only providing a pointer to the instructions for doing so?). Otherwise we might just be adding in a layer of needless complexity, and possibly even more configuration options that’d we’d need to document and maintain. @frankieroberto


eosio.token::open should check if owner is a legitimate account

The eosio.token::open action should assert that is_account( owner ) is true to prevent creating a table row for a non-existent account as a safeguard for the ram_payer.

Resolved by #270 and #271.


OCPBUGS-43434: [release-4.17] sriov-network-metrics-exporter FIPS compliance

Make the binary FIPS compliant.

depends on:

https://github.com/openshift/release/pull/57879

to fix the ci/prow/unit job

/retest

@bn222 @wizhaoredhat please take a look

/lgtm

/jira refresh

/cherry-pick release-4.16


fix(sdk-trace): make activeSpanProcessor private

Which problem is this PR solving?
This addresses the issue of making activeSpanProcessor private.
Fixes #4792
Short description of the changes
Makes activeSpanProcessor private in BasicTracerProvider.
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
A few tests that were accessing the property have been fixed.
Checklist:

[x] Followed the style guidelines of this project
[x] Unit tests have been added
[x] Documentation has been updated

Hi, thanks for working on this, would you mind chaging the target to the next branch and rebasing the changes onto next :slightly_smiling_face:
All breaking changes from the SDK 2.0 Milestone usually go onto the next branch :slightly_smiling_face:

@legalimpurity would you mind just rebasing your two commits onto the current next branch? then we can proceed with the review :slightly_smiling_face:


rui-card vertical center doesn't work on safari

RWARRR! Thanks for posting, @jdl031. Ich Bin RedoxBot-- nice to meet you!
It has been 60 days since there have been any updates or new comments on this page.       If this issue has not been resolved and needs to be re-opened, please take a minute to re-open it. Report problems with the bot to @nwhatt


build: correct the DT_SONAME

When ninja is invoked from a subdirectory it will convert the path to a
relative path, and that resulted in incorrect test results.  This
ensures that we get the correct soname.

@swift-ci please test Linux

I've tested that this patch fixes the issue.

The failure appears unrelated.

@swift-ci please test Linux

If we have another unrelated error, I'll ask @shahmishal to force-merge.


Support ruby 2.7

Fix deprecation warning:
lib/time_will_tell/helpers/date_range_helper.rb:43: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call

@mbillard Please let me know if you have any questions or comments regarding the changes.

Hi @pulkit110, thanks for submitting this patch. I don't have much time to review so I'm not sure when I'll be able to get to it.

Just adding a note here that I'd love to see this PR merged as it currently prevents us from upgrading to Ruby 3 (without creating our own fork of this repo)

@mbillard would you be willing to transfer this project to another organization for maintenance?


data-turbo-method='delete' on following 302 redirect uses same HTTP verb

When moving some of our delete links using data-turbo-method='delete' attribute,  I noticed that turbo is following the 302 redirect using the same HTTP verb.  data-turbo-method='post' seems to work fine.

turbo 7.0.0-beta.8
chrome 91

Setup

Simple rails action:
 def destroy_image
    ActiveStorage::Attachment.find(params[:id]).purge_later
    redirect_to settings_recruitment_career_sites_url
  end

Response after clicking destroy,

Expected
Turbo should issue GET request to follow the redirect not keeping the same HTTP verb as the link.

This has to do with the HTTP spec around fetch requests. This is a duplicate of a previous issue with some discussion around it.
Solution:
send back a status: 303 header to tell all follow up fetches to be a GET request.
https://github.com/hotwired/turbo/issues/84

For anyone looking to tackle this and as a reminder to myself if no one beats me to it, work would happen here:
https://github.com/hotwired/turbo/blob/eae977ceb86ee8e61766ffb40ac3894bdfacc7ef/src/core/session.ts#L144
basically if the linkMethod is POST or GET, leave it alone.
if the linkMethod is anything else, make it a POST and then add a "_method" hidden form value. This is how UJS handles it and why a data-method from UJS works with Turbo.
https://github.com/rails/rails/blob/6442aac195a227455c53c5b5b00c6818268379e5/actionview/app/assets/javascripts/rails-ujs/features/method.coffee#L16


Swift 6 and Hummingbird Postgres

I know Swift 6 isn't stable yet.
I noticed the following behavior with the latest version of Hummingbird Postgres
The following  will produce warning and causes what looks like a memory leak:
WARNING message
Sending 'self'-isolated value of type '[PostgresMigrationGroup]' with later accesses to actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
    app.beforeServerStarts {
        try await postgresMigrations.apply(client: postgresClient, logger: logger, dryRun: false)
    }

Memory will grow until the server is restarted.
Disabling the Postgres migration, the application stays steady at 6mb until traffic starts following.
Swift version
swift-driver version: 1.112.3 Apple Swift version 6.0 (swiftlang-<IP_ADDRESS>.8 clang-16<IP_ADDRESS>) Target: arm64-apple-macosx15.0

The warning message isn't about memory leaks. It's about accessing memory from multiple tasks. In theory it shouldn't be an issue and I understood the compiler diagnostic should get resolved before Swift 6 was released but I may have to re-visit this.
There was a possible memory leak reported in PostgresNIO just the other day. https://discord.com/channels/431917998102675485/448584561845338139/1267793957153407068

It's indeed a PostgresNIO memory leak issue. I pinned PostgresNIO to version 1.21.6 and the service memory stayed constant. Thanks @adam-fowler it looks an issue was created for the memory leak issue in Postgres here already.

The warning message isn't about memory leaks. It's about accessing memory from multiple tasks. In theory it shouldn't be an issue and I understood the compiler diagnostic should get resolved before Swift 6 was released but I may have to re-visit this.
There was a possible memory leak reported in PostgresNIO just the other day. https://discord.com/channels/431917998102675485/448584561845338139/1267793957153407068

Should I leave this issue open for the warning in swift 6?


Radio button occupies too much space

The code:
        <View
          style={{
            flex: 1,
            flexDirection: "row",
            justifyContent: "center",
            alignItems: "stretch"
          }}
        >
          <RadioButton
            theme='this'
            label="Unchecked"
            checked={this.state.checked}
            value="Value"
            onSelect={() => {}}
            onCheck={checked => this.setState({ checked })}
          />
          <RadioButton
            label="Unchecked"
            checked={this.state.checked}
            value="Value"
            onSelect={() => {}}
            onCheck={checked => this.setState({ checked })}
          />
        </View>

And here's how it looks like:

How to change the amount of space the radio buttons occupy?

possibly related to #443


Add phpdoc for "MigrationManager" parameter

It is easier to add a phpdoc to tell the $manager parameter's class name

Why not typehint it directly in PHP? :)

Why not typehint it directly in PHP? :)

That would be nice too :)
I will use Propel\Generator\Manager\MigrationManager for typehint

Great thanks :)


[AutoRelease] t2-cognitiveservices-2022-12-29-35302(can only be merged by SDK owner)

https://github.com/Azure/sdk-release-request/issues/3614
Live test success
https://dev.azure.com/azure-sdk/internal/_build?definitionId=976
BuildTargetingString
azure-mgmt-cognitiveservices
Skip.CreateApiReview
true

issue link:https://github.com/Azure/sdk-release-request/issues/3614


Nvkelso/cliff arete ridge valley

add earth layer selections for cliff, arete, ridge, and valley
allow earth layer to contain line features
add earth.yaml since we have multiple kinds now
add sort_key values for cliff, arete, and rename base to earth
add new Postgres index for select natural features
[tests] add tests for cliff, arete, ridge, valley
[docs] update docs for earth layer for kind change & listing, additons of new kinds, and label_placement details.

Preview images:
cliff:

arete and valley:

ridge:

Connects with: https://github.com/mapzen/vector-datasource/issues/601.

Feels like we should have a length property here, or some other way to indicate relative importance.

Did you intend to include the earth.yaml file in the pr? It's not set up for the earth layer yet, and will probably just be confusing if included now. I think that we should convert to yaml in a subsequent pr.

Feels like we should have a length property here, or some other way to indicate relative importance.

Do we want to selectively filter certain features out based on the zoom level, ie only show features at lower zoom levels that have a certain minimum length? Or do we want to just include a new property in the results so we can rank the features or style them differently?

Did you intend to include the earth.yaml file in the pr? It's not set up for the earth layer yet, and will probably just be confusing if included now. I think that we should convert to yaml in a subsequent pr.

Removed. Is yaml/earth.yaml setup correctly but just won't be exercised yet without another config change somewhere else?

Do we want to selectively filter certain features out based on the zoom level, ie only show features at lower zoom levels that have a certain minimum length? Or do we want to just include a new property in the results so we can rank the features or style them differently?

In the tests Lyell Canyon is a huge (long) feature, but in the ridge example image some of those are relatively small. At zoom 13 we're more or less showing "all" features, so it's less of a concern than if we were starting at say zoom 11.
But if we wanted to set priority for label collisions in Tangram based on importance where to features are nearby we'd need something like length to calculate this on, and we do area right now for landuse polygons. (We wound't want to start including area on the earth features since it's somewhat meaningless after the import process.)
Let's get what we have on dev now, experiment with it on the map, and then made revisions in a separate issue if needed.

Removed. Is yaml/earth.yaml setup correctly but just won't be exercised yet without another config change somewhere else?

It should be grouped under a "filters" key, but the details of the rules look good to me. What'll need to happen to hook it up is to add a new column to the corresponding tables to persist the min zoom, and update the sql generation to emit the appropriate functions.

But if we wanted to set priority for label collisions in Tangram based on importance where to features are nearby we'd need something like length to calculate this on, and we do area right now for landuse polygons.

Cool, makes sense. Thanks for clarifying.

:+1:


SOAP policy

This policy adds support for a very small subset of SOAP.
This policy basically expects a SOAPAction URI in the SOAPAction header or the content-type header.
The SOAPAction header is used in v1.1: https://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383528, whereas the Content-Type header is used in v1.2: https://www.w3.org/TR/soap12-part2/#ActionFeature
The SOAPAction URI is matched against the mapping rules defined in the configuration of the policy and the usage resulting from that is authorized and reported against 3scale's backend.

This is ready @mikz . There have been a few changes. Mainly because the code is now using the modules extracted in #571 , #573 , and #580 .
I also addressed your comments.


Typo in getting_started_with_openCV example

Hi,
in your example librealsense/doc/stepbystep/getting_started_with_openCV.md
is an EN-Dash in front of "lopencv_core". G++ is therefore not able to correctly find the lib.
g++ -std=c++11 BGR_sample.cpp -lrealsense –lopencv_core -lopencv_highgui -o BGR && ./BGR

Thank you!


Set endpoint programmatically

So my challenge is to be able to make the endpoint configurable for my app. Right now you can do it in the config during build time. If I need to change this endpoint without bringing down the app I need to be able to set it via an environment variable or programmatically on say nuxtServerInit.
How do I go about doing this?
(edit, see: https://github.com/nuxt-community/prismic-module/issues/94#issuecomment-670192228 for Axios default like)

Hey James, thanks for contributing!
I'm not 100% sure of what you're trying to achieve so let me know. If you're looking to set the endpoint according to an environment variable you can do so in you're nuxt.config.js file:
export default: {
  prismic: {
    endpoint: process.env.PRISMIC_ENDPOINT
  }
}

Although doing it this way the endpoint will end up being set at build time. If you want to change your endpoint at runtime I'm afraid you'll need to get away of this.$prismic.api and init your API through prismic-javascript directly, see here.

@lihbr Yeah so I have an ecommerce app that I've written and have multiple customers that use it all wanting their own branding and tweaks. So I would have a prismic repo for each one of them and that's where being able to tweak a setting somewhere would be nice and not having to build it in. I've done the environment variable for now, but hopefully this will be functionality available in the future; Kind of like axios

Oh ok I understand better, well to me the environment variable way sounds like the de facto way of doing it, can you enlighten me about the way Axios is doing it though? Glad you found a way around that anyway 🙂

I was just referring to Axios, because with their API, they have a method to set the default endpoint for requests. Then every time you do a get or post, you just have to supply the endpoint.
For Instance:
$axios.defaults.baseURL = 'www.google.com'
$axios.get('/someendpoint', {
     params: {...}
})

this would automatically hit www.google.com/someendpoint with the query parameters
Also in the nuxt config, they have the same deal
// nuxt.config.js
module.exports = {
    axios: {
        baseURL: process.env.API_URL || 'www.google.com'
    }
}

So you can just set it in the config, or if you have a need to dynamically change it for what ever reason, you can do so via the defaults object

Oh I see, thanks for sharing we'll see if we can implement that at some point! 🙂

Hello,
You can also add the ability to configure the endpoint at runtime as in axios module (see https://axios.nuxtjs.org/options#runtime-config)
Use case possible: build only a docker image and inject the endpoint as an environment variable at runtime time so when using the nuxt start and not when using nuxt build
Thanks

Hey, thanks for your input @jevillard, definitely a legit usage! We should start working on some enhancements for the module soon! ☺

Update 05/04/2021:

I attempted to support runtime config in #137. Unfortunately, this would introduce breaking changes for some people. Support for runtime config will be added in v2~

Just to add potentially a small modicum of weight for this feature - we currently are migrating a Vue project to a Nuxt project.
The issue for us is that we want to set the endpoint not at runtime - but dynamically. We currently see that this.$prismic.apiEndpoint isn't able to be set with out the getter / setter warning. So, potentially the fix could be something as trivial as the following:
apiEndpoint: {
  get(){
    return this.apiEndpoint
  },
  set(apiEndpoint){
    return apiEndpoint
  }
}

Thanks for your input @michael-observerly!
I get the idea although I'm afraid just changing the value of the endpoint won't have any effect on the client instance created previously 🤔
I think for your use case it'll be simpler to just use @prismicio/client alongside the Nuxt module 🤔

@prismicio/client has been completely reworked in 2021, changing a client instance endpoint is (still) not possible with it, and I'm not sure this is something we want to introduce. Creating a new instance should remain the preferred way.
With that in mind, I'm closing this issue. However, something I want to explore/support with the Nuxt 3 module is the ability to work with multiple repositories.
I'm really sorry for the false hope here. We're happy to reconsider such features should we get more concrete use cases/demand for it.