User can still see Push notification enrollment method on the web, after deleting enrollment with SDK

Describe the bug?
User can still see Push notification enrollment method on the web, after deleting enrollment with SDK 1.0.0.
What is expected to happen?
User no longer sees "Get push notification" as one of the verify options, when logging in via website,  after deleting enrollment.
What is the actual behavior?
User can see "Get push notification" as one of the verify options, after deleting enrollment.

Reproduction Steps?

Log in with Okta to retrieve accessToken.
Enroll for Okta Push SDK with com.okta.devices.push.api.PushAuthenticator.enroll(accessToken,config,params)
User can see "Get push notification" as one of the verify options.
Delete enrollement using com.okta.devices.push.api.PushAuthenticator.delete(accessToken,config,params) - with the same access token.

Additional Information?
No response
SDK Version and Artifact(s) used.
OKTA Devices 1.0.0.
Build Information
Not related to building.

Hi @pkrawczykObj This is working in the sample application. Can you reproduce the issue with the sample by toggling off Sign in with push notification?

I was not able to test it in the sample app, because of this issue: https://github.com/okta/okta-devices-kotlin/issues/57.
Is there any way to check on the backend side if my user is enrolled for Push SDK?
I suspect that during development I enrolled to the SDK numerous times and then after couple of days I started to delete my enrollements. So the question is if the single deleteEnrollment will delete all enrollments for given user or it might be the case that I enrolled a lot of times?
In our app I use almost the same code as in Sample App in the AutheticatorClient:
    suspend fun delete(userId: String, authToken: String): Result<Boolean> = runCatching {         getEnrollment(userId).getOrNull()?.run {             pushAuthenticator.delete(AuthToken.Bearer(authToken), this)         } ?: Result.success(true)     }.getOrElse { Result.failure(it) }
And it so invoked with following method, with the same accessToken, used previously for Enrollement:
private fun sendDeleteEnrollmentRequest(accessToken: String) {         externalScope.ioScope.launch {             runCatching {                 val result = oktaAuthenticatorClient.delete(stateManager.getEnrollmentId(), accessToken)                 if (result.isSuccess) {                     DebugLog.d(TAG, "Enrollment deleted: ${stateManager.getEnrollmentId()}")                     stateManager.deleteEnrollment()                 } else {                     DebugLog.e(TAG, "Okta enrollment deletion failed")                 }             }.getOrElse { DebugLog.e(TAG, "Enrollment deletion failed, cannot get result") }         }     }
And it returns `result.isSuccess`

Ah it sounds like you have multiple enrollments. During development this can happen since we forget to delete the enrollment.
We don't have admin access to your companies' okta admin panel. You will have to ask your administrator to sign in to okta admin panel to and reset the enrollment.

Hi @FeiChen-okta
OK we can try it, but to be honest I think that SDK should be bulletproof in this case and automatically remove all old enrollments when the new one is registered. My arguments:

User can change to the new device and as he enrolls on the new device, the old one should stop to get notifications, without any user actions.
There might be a bug in the client app and it can try to enroll multiple times, since this is async operation and the app needs to wait for a response for couple of seconds.
User can delete apps data / cache in system settings and the app will forgot enrollment and try it again.

Hi @pkrawczykObj

This will present issues for users that have multiple devices
The SDK will use the same app generated device identifier and enrollment will be replaced. If you see issues with this, then it is a bug.

3 & 4 are similar since clear app data is similar to uninstalling.
If your sign on policy requires MFA, the user can't enroll again because the user does not have a valid access/refresh token. When they try to sign in to get a token, they will be challenged with a push MFA that they can't meet since the enrollment was lost. The user will need to perform account recovery to reset the lost enrollment.

So after removing all enrollments by the Admin it worked fine for a while, but after some more tests, some enrollment was not deleted and I still have this issue.
The issue that I am reporting is exactly what you mention in point 2:
"The SDK will use the same app generated device identifier and enrollment will be replaced. If you see issues with this, then it is a bug." - the SDK generates the same device identifier, but the enrollment is not replaced, but duplicated. See screenshot from admin console (all are from my user, and there were 4-5x times more):

Hi @pkrawczykObj this is a bug with the backend. I've filed a bug for them to look at.
Device ID is generated by the app so it does not persist when users clear data or uninstall.
If it is the same device Id then fixing the bug will resolve the issue since they cant have multiple enrollments on the same device id.

Hi @FeiChen-okta , I am sorry for slow response, but I was on vacations. Do you have any feedback from the backend team?

@pkrawczykObj team is looking into it. Will update once they have a finding.

@pkrawczykObj I can check in with team that is looking into preventing duplicate enrollments from the same device.

@pkrawczykObj The implementation to prevent duplicate enrollments is in progress on the backend. When the same device identifier is used, the enrollment will be replaced on the backend. the client handling shouldn't change as the SDK will replace the existing enrollment.

Hi @FeiChen-okta any updates?

@pkrawczykObj Waiting on server release. I don't have a definite timetable on server releases but once new server changes are deployed, a new version of SDK 1.1.0 will be released. The release will add an extra parameter "applicationInstallationId" in AppConfig. This new parameter will be used to identify enrollments from same application installed. Developers is responsible for maintaining the applicationInstallationId.

@pkrawczykObj Version 1.1.0 is released.
This release introduced applicationInstallationId which will prevent multiple enrollment if enroll is called multiple times.
Note that this ID is maintained by the application.

Hi @FeiChen-okta , I checked with the new release version 1.1.0 by passing applicationInstallationId. Unfortunately the issue persists. Steps that I followed;

Clean install
Enrolled to okta push once
And then Deleted enrollment successfully
Checked okta admin panel, enrollment is still there & Get push notification is still one of verify option.

Hi @nurullahtopaloglu
Tested on my environment and the steps you've provided is working with the sample application.
One thing you can do is look at app inspection and the Network Inspector. It should the network calls and a DELETE call.
If this call is successful then the enrollment is deleted.
Like the following:

Hİ @FeiChen-okta , delete method returns error, could you please look at it?

@ntopaloglu Is the user an admin?

@FeiChen-okta why the user should be an admin user? This is a regular test user, same as all our future app push users (not admins) - they will need to un-enroll from push when they log out from the app, or decide to turn the app push notifications off.

Hi @orlandina, the user does not need to be an admin. if the user is an admin then some restrictions on delete are in place. If you can send me your preview domain and network logs I can take a look at where the failure. You can send them through your okta customer rep

Hi @orlandina @ntopaloglu , Can you check the url you are using to sign in? For example in the sample app it is set int he local.properties https://github.com/okta/okta-devices-kotlin/tree/master/push-sample-app#configuration
That url should be your company and not contain okta in it.

@orlandina @ntopaloglu Check your client_id for the OIDC app oidc.client.id="{yourOrgClientId}"
It maybe that you are using the wrong client_id

Hi @FeiChen-okta we don't have any issue with sign in and we didn't change anything on sign in processes during okta push implementation. It is in production for a long time. The issue is; we can enroll the device for okta push notifications and it is working. But deleting enrollment is returning error[delete method returns 501 as above]. So enrollment stays in okta admin panel and user still can see push notification as an option.


Use request instead of node-rest-client for REST requests

The request package supports proxy configuration using environment variables like https_proxy. This allows the auditjs tool to be used behind a corporate proxy.

This is great! I think it is a great idea and am definitely keen.
In order to directly use your contribution Sonatype requests that you sign a CLA (Contributor License Agreement) which more or less grants Sonatype permission to use the code. The agreement is reasonably short.
If you are uncomfortable with the agreement I completely understand still think the idea is a splendid one, and can re-implement the feature. What do you think?

Thanks!
Can you tell me how to sign the CLA?

Whoops, I completely forgot to send the link.
http://www.sonatype.org/SonatypeCLA.pdf
Instructions are in the CLA, but the pertinent part is this:

Contributor must send an executed copy of this Agreement to Sonatype via email to<EMAIL_ADDRESS>or via mail or courier...

You will also see this:

Contributor may send any Contributions to Sonatype via mail or email at the addresses set forth above, or via any other form deemed acceptable by Sonatype in its sole discretion.

Of course the pull request is perfect, there is no need for madness like mailing it :D
Please let me know when you have sent the agreement, as I will probably not be informed directly.

It took a while to get access to a printer. I sent the signed CLA to the email address above. If you consider appropriate, you can also rewrite the patch.


suitesparse: rename fixDarwinDylibNames override

Motivation for this change
This seems to prevent shadowing the regular fixDarwinDylibNames function, which is a nativeBuildInput.  Without this change some dylibs still had relative paths embedded.  It's possible something deeper is happening, but this change fixed the issue for me.  See #96981 for details.
Fixes #96981
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[X] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

According the comment, we might be able to remove the whole postInstall and fixDarwinDylibNames.

According the comment, we might be able to remove the whole postInstall and fixDarwinDylibNames.

That would be better. I don't have a Darwin machine to check, maybe @graham33 could? Still, these changes look reasonable to me, and I'm fine with merging them if they fix the problem.

Yes I think this works, just rebuilding to test. Thanks.

I successfully built and ran octave against the updated commit.

Thanks for testing. Is it also okay to remove fixDarwinDylibNames from dependencies?

I think we still need fixDarwinDylibNames in general, if I remove it entirely we get libraries with relative references, e.g.:
otool -L /nix/store/sx5p4mwhkxxhd2zwm8y7yz1di1abfl1a-suitesparse-5.7.2/lib/libcholmod.dylib
/nix/store/sx5p4mwhkxxhd2zwm8y7yz1di1abfl1a-suitesparse-5.7.2/lib/libcholmod.dylib:
...
	libamd.2.dylib (compatibility version 2.0.0, current version 2.4.6)
...

vs this with fixDarwinDylibNames still in nativeBuildInputs:
otool -L /nix/store/amyna7fbzk3ag3yp7ghj441fbaq36kpi-suitesparse-5.7.2/lib/libcholmod.dylib
/nix/store/amyna7fbzk3ag3yp7ghj441fbaq36kpi-suitesparse-5.7.2/lib/libcholmod.dylib:
...
	/nix/store/amyna7fbzk3ag3yp7ghj441fbaq36kpi-suitesparse-5.7.2/lib/libamd.2.dylib (compatibility version 2.0.0, current version 2.4.6)
...

I don't know much about Darwin dylibs, but I think absolute store paths are what we want (and these were the source of the problems I had with Octave).


Unknown Property Exception after adding column?

Hi
1- i have added New Column to the database table
2- added field to rules in model
[['country', 'city', 'number'], 'required'],
[['company_name', 'country', 'city'], 'string', 'max' => 50],
[['number'], 'string', 'max' => 25],
3- added to attribute labels
'id' => 'ID',
'company_name' => 'Company Name',
'country' => 'Office Country',
'city' => 'Office City',
'number' => 'Office Phone',
4- added to form (field type doesnt matter)
field($model, 'company_name')->textarea(['rows' => 9]) ?

but nothing works with the following error
Getting unknown property: app\modules\hrm\models\Offices::company_name

Any Idea?
Thank You

If you have a caching component set try clearing it's cache.

I have a good idea. How if you ask in yii official forum.

Thanks Alex it was caching Problem.Just Commented out my configuration for cache in web.php and after that it was fine.
Although it was strange though.

Yii will cache the table schema so if you change the table you need to clear the cache.


Update link to const evaluator documentation

Thanks for the detailed blog posts, I'm really enjoying them. I noticed that this link has moved so I thought I'd update this post to point to the new location. Cheers!

Thanks a lot!


Refactor with python3 modules + Add comments

Moved functions outside of classes
Replace os with pathlib.Path
Added some typing and comments to code

@Sahil-Ajmera all looks good except functions outside of class. Please try to put all thing class based.

@Sahil-Ajmera all looks good except functions outside of class. Please try to put all thing class based.

@Sahil-Ajmera all looks good except functions outside of class. Please try to put all thing class based.

Done

@Sahil-Ajmera all looks good except functions outside of class. Please try to put all thing class based.

Done

Hi @Deepakchawla , could you take a look at this PR again.? Thank you.

Hi @Deepakchawla , could you take a look at this PR again.? Thank you.

@Sahil-Ajmera I looked at your it seems that you don't put self keyword at variable declaration of the class. So please correct your code.

@Sahil-Ajmera I looked at your it seems that you don't put self keyword at variable declaration of the class. So please correct your code.

@Deepakchawla thanks. Updated.

@Deepakchawla thanks. Updated.

@Sahil-Ajmera still have so many issues in the code. do you run this code locally before commit?

@Sahil-Ajmera still have so many issues in the code. do you run this code locally before commit?

@Deepakchawla are you facing issues running code? Can you share the log? The last change I made does not seem destructive to me. I can double check.
Anyway, this PR was to better the code with python 3 things. If this is not working out well I can close and move on.  I did not think this would take that long.

@Deepakchawla are you facing issues running code? Can you share the log? The last change I made does not seem destructive to me. I can double check.
Anyway, this PR was to better the code with python 3 things. If this is not working out well I can close and move on.  I did not think this would take that long.

The move from class -> non-class and back to class missed one update. I have corrected that.

The move from class -> non-class and back to class missed one update. I have corrected that.

can you send the csv database  please for 2021

can you send the csv database please for 2021

GSMArenaDataset.zip
Attached. Not complete, but you can still save a lot of time with it as scraping is pretty slow.

can you send the csv database please for 2021

GSMArenaDataset.zip
Attached. Not complete, but you can still save a lot of time with it as scraping is pretty slow.

thank you so much
samsung is not included

thank you so much
Samsung brand isn't included
can you send for Samsung brand please
On Mon, Feb 1, 2021, 5:23 PM krm1337<EMAIL_ADDRESS>wrote:

can you send the csv database please for 2021
GSMArenaDataset.zip
https://github.com/Deepakchawla/Mobile-Phone-Dataset-GSMArena/files/5904383/GSMArenaDataset.zip
Attached. Not complete, but you can still save a lot of time with it as
scraping is pretty slow.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Deepakchawla/Mobile-Phone-Dataset-GSMArena/pull/10#issuecomment-770888222,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKSTPESCD3ZUOOU7542SBITS42ZRBANCNFSM4VSLPE4A
.

thank you so much Samsung brand isn't included can you send for Samsung brand please
…
On Mon, Feb 1, 2021, 5:23 PM krm1337 @.***> wrote: can you send the csv database please for 2021 GSMArenaDataset.zip https://github.com/Deepakchawla/Mobile-Phone-Dataset-GSMArena/files/5904383/GSMArenaDataset.zip Attached. Not complete, but you can still save a lot of time with it as scraping is pretty slow. — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#10 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKSTPESCD3ZUOOU7542SBITS42ZRBANCNFSM4VSLPE4A .

Like is said it's not complete. Unfortunately scraping is still in progress (very slow). You can start the script yourself and finish scraping database. With the given .zip unpacked to the right folder, it will take much less time.

can you send the csv database please for 2021

GSMArenaDataset.zip
Attached. Not complete, but you can still save a lot of time with it as scraping is pretty slow.
Hi
can you send me for samaung database please
thx

@Deepakchawla could you please take a look at this PR when you get a chance? Thank you.


Caddy server will hang if no internet connection is available

Hello, I've noticed, that if this plugin tries to refresh the list of trusted IPs (i.e. at startup), when no internet connection is available, the entire caddy server will hang until it is manually restarted.

Can you try it with the latest patch, i.e. rebuild caddy?


fix(@angular/cli): Fixing duplicate aliases issue

Fixes: https://github.com/angular/angular-cli/issues/4979

I'm not too sure this is the right approach, it just seems to treat the symptom.
The core issue is that we get different output between ng help new and ng new --help:
kamik@T460p MINGW64 /d/sandbox/master-project (master)
$ ng help new
ng new <options...>
  Creates a new directory and a new Angular app.
  --dry-run (Boolean) (Default: false) Run through without making any changes.
    aliases: -d, --dryRun
  --verbose (Boolean) (Default: false) Adds more details to output logging.
    aliases: -v, --verbose
// ...

kamik@T460p MINGW64 /d/sandbox/master-project (master)
$ ng new --help
ng new <options...>
  Creates a new directory and a new Angular app.
  --dry-run (Boolean) (Default: false) Run through without making any changes.
    aliases: -d, --dryRun, --dryRun
  --verbose (Boolean) (Default: false) Adds more details to output logging.
    aliases: -v, --verbose, --verbose
// ...

Why is that happening? Aren't those two essentially the same?


How to solve this problem?

Dear PHD:
I try to train a vocoder, and I have installed parallelwavegan,and I run the command: run.sh,however it came out with the traceback:
Traceback (most recent call last):
File "/home/liyp/anaconda3/envs/xll/bin/parallel-wavegan-preprocess", line 11, in
load_entry_point('parallel-wavegan', 'console_scripts', 'parallel-wavegan-preprocess')()
File "/data2/hcy/VQMIVC-main/vocoder/ParallelWaveGAN/parallel_wavegan/bin/preprocess.py", line 186, in main
), f"{utt_id} seems to have a different sampling rate."
I find that the sampling rate is 24000hz,however the sampling rate of the VQMIVC is 16000,could you tell me how to modify the sampling rate?

Hi, you can use sox or ffmpeg to change the sampling rate of wavs, e.g.,
sox {original_24kHz.wav} -r 16000 {converted.wav}

Thank you and I have successfully run the parallelwavegan,however,in config.yml,my distributed is false and the distributed in yours is true,can you tell me how to modify the distributed?

Do it mean if I do not install apex so that I will not be able to use distributed training, and the distributed in the config.yml will be false?


Singularity Installation Issues

Hello,
I tried following along with the readme and ran into several issues when trying to install via singularity.
First trying: singularity pull library://reagank/varpipe_wgs/pipeline_with_refs
I get the following error message: Unable to get library client configuration: remote has no library client
Next I tried cloning the repository and running: ./build_singularity.sh with_references
And got this error message: Unable to create build: failed to create build parent dir: stat /Users/hottel/.tmp: no such file or directory
Looking at what the build_singularity.sh script was trying to do, I was able to run singularity build pipeline_with_references.sif docker://ghcr.io/cdcgov/varpipe_wgs_with_refs:latest, which installed the image to my working directory
Alternatively, I also ran singularity pull docker://ghcr.io/cdcgov/varpipe_wgs_with_refs:latest, and the image was downloaded to my working directory.
In either case I was unable to run ./runVarpipeline.sh, looking into this with singularity shell I noticed that /varpipe_wgs/data did not contain runVarpipeline.sh. However, /varpipe_wgs/tools did seem to contain all the expected files.
-Wes

Hi Wes,
This issue with the build script is the missing ~/.tmp directory. You can either remove the SINGULARITY_TMPDIR= from the beginning of that command or run mkdir ~/.tmp
As for the missing script, I think this may be an issue with how the data files are being mounted. We'll work on an update, but for the moment please try this:

Clone the repository and place your fastq files in the data directory
Run the shell command and make sure that you've bound the data directory to /varpipe_wgs/data
cd to /varpipe_wgs/data and run the script.

Thanks, I was able to run the script correctly using the method you described.
-Wes


[wallet-standard] Introduce wallet-standard package for wallet developers

This introduces a Wallet Adapter and utility libraries based on the Wallet Standard. This provides a uniform way for wallets to register within the browser, and automatically get picked up through the wallet adapters. In general, this should avoid the need for custom wallet adapters for extension wallets.
Currently, we only support signAndExecuteTransaction, although I think that we'll continually build out support for additional functions like signTransaction, and signMessage.
I updated the Sui Wallet to take advantage of this, and register itself as a standard wallet. For now, I left the suiWallet interface for now, although I imagine we'll be deprecating that in favor of the standard wallet interface at some point in the future. One of the key changes here is that we're not exposing a permissions interface. We need to discuss this more internally but I think it makes sense to move away from the current permissions interface and instead just grant permission to connect itself.
Packages Overview
@mysten/wallet-adapter-sui-wallet
I marked updated the name of this wallet to include (legacy), since this is no longer the preferred way to connect to wallets.
@mysten/wallet-adapter-wallet-standard
This is the new wallet adapter for the Wallet Standard. This follows a new pattern introduced here called WalletAdapterProvider. This is an interface that can dynamically provide a list of wallet adapters, as opposed to just a singular wallet adapter. The providers can be used anywhere an adapter can be used in the codebase (namely, in the React package). Other UI packages will need to make sure that they're considering providers when building out support.
@mysten/wallet-standard
This is a new package that aims to pull together all of the utilities for implementing a wallet the adheres to the Wallet Standard for Sui. It contains type definitions that third parties can easily use when building their wallets.

And there are a few questions:

If users switch account on the ext, how should ext notify dapp via wallet-standard kit? (I know Sui wallet only supports one account currently, what if other wallets that support hd wallets(multiple wallet account))
How about switch chains method, cause testnet is on the ride


Lower opacity or use gray text instead of weird color filter

Some colors just look really gross and hard to see.

this could be made better by replacing the filter by opacity


Unexpected token o in JSON at position 1

Hi, when I tried to create a new member and using it to sign in, however the browser throws this error:

And the Node console gives:
app running on port: 8000
memberData using param -  accountNumber: 111111 cardId: test
Wallet path: /home/lee/customer-loyalty-program-hyperledger-fabric-VSCode/web-app/wallet

Get member state
2019-07-25T16:39:14.079Z - info: [TransactionEventHandler]: _strategySuccess: strategy success for transaction "bbf5b13f637a82ca8ad61cf6dc45bebe426a1a7e5e3792ec4ce7e5b345a345fb"
SyntaxError: Unexpected token o in JSON at position 1
    at JSON.parse (<anonymous>)
    at Object.memberData (/home/lee/customer-loyalty-program-hyperledger-fabric-VSCode/web-app/network/network.js:371:21)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
Wallet path: /home/lee/customer-loyalty-program-hyperledger-fabric-VSCode/web-app/wallet

Get use points transactions state for member 111111
SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at Object.usePointsTransactionsInfo (/home/lee/customer-loyalty-program-hyperledger-fabric-VSCode/web-app/network/network.js:539:36)
    at <anonymous>
(node:32527) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: Can't set headers after they are sent.
(node:32527) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

I'm using nodejs version 8.9.4 if that helps.

Using JSON.stringify(data);:
Full Source Code At Here

this is in quite a few places:

getState.js (1 occurence)
network.js (7 occurences)

There was a change in the chaincode return such that double parsing of the response is not needed (which is a good thing). This does now mean that this sample is broken until this issue is resolved.

@ash7594 @raheelzubairy ... this issue prevents the sample from working

I have fixed this issue by doing this:
Replace all occurrence of JSON.parse(JSON.parse by JSON.parse in  the file web-app/network/network.js.

Remove Dual JSON.parse, and it work fine for me as well.


Add manifest and metrics in config files.

This PR adds metrics and fixes manifest config files in the new format.
This is just so the we have access to a minimal set of configs.
Release note:

NONE

This change is

/lgtm


Improved italian translations

Improved a few translations in italian, for common errors/automatic translations

thank you!

These improvements are now publicly available. Thanks again for the contribution 🙂


Could not find a declaration file

On hovering
import CachedImage from 'expo-cached-image';

Code editor gives this warning:
Could not find a declaration file for module 'expo-cached-image'. 'c:/Projects/thanksapp/node_modules/expo-cached-image/lib/index.js' implicitly has an 'any' type.
  Try `npm i --save-dev @types/expo-cached-image` if it exists or add a new declaration (.d.ts) file containing `declare module 'expo-cached-image';`

The component isn't working either.

The component isn't working either means? You get an error message?

It works fine. I believe this is just a warning. If you know how to fix it, send me a pull request or let me know, and I will make an update.

It´s happening with me too. Probably because I am using typescript.
Could not find a declaration file for module 'expo-cached-image'. '.../node_modules/expo-cached-image/lib/index.js' implicitly has an 'any' type.   Try npm i --save-dev @types/expo-cached-imageif it exists or add a new declaration (.d.ts) file containingdeclare module 'expo-cached-image';ts(7016)

@gustavos00 can you confirm if this is a warning only? I'm using JS only in my projects, however, if someone can suggest what should be done to address the issue for TypeScript -- I can release update.

@dmitryame Yes, it's just a warning. However, I create a .d.ts file to fix the warning.
.d.ts file content
`declare module 'expo-cached-image' {
interface CachedImagesProps {
source?: Object<string | undefined>;
style: any;
}
class CachedImages extends React.Component {}
export default CachedImages;

}`
tsconfig.json file content
   "compilerOptions": {        "typeRoots": [            "path-for-d.ts file (ex: src/types)",         ],

I would rather go for
`declare module 'expo-cached-image' {
import { ImageSourcePropType, ImageStyle, StyleProp } from 'react-native';
interface CachedImagesProps {
    source?: ImageSourcePropType;
    style: StyleProp<ImageStyle>;
    cacheKey: string;
    resizeMode: string;
}

class CachedImages extends React.Component<CachedImagesProps> {}
export default CachedImages;

}
`

I would rather go for:
declare module 'expo-cached-image' {
    import { ImageSourcePropType, ImageStyle, StyleProp } from 'react-native';

    interface CachedImagesProps {
        source?: ImageSourcePropType;
        style: StyleProp<ImageStyle>;
        cacheKey: string;
        resizeMode: string;
    }

    class CachedImages extends React.Component<CachedImagesProps> {}
    export default CachedImages;
}

Just made an update, let me know if that works for you. Unfortunately I do
not have a way to test/validate it, as I'm not using TS myself, so going to
build our relationships on trust. Mario please let me know if this works. I
published 44.1.7 version couple of minutes ago.
On March 18, 2022 at 03:37:09, Mario Murrent @.***)
wrote:
I would rather go for
`declare module 'expo-cached-image' {
import { ImageSourcePropType, ImageStyle, StyleProp } from 'react-native';
interface CachedImagesProps {
source?: ImageSourcePropType;
style: StyleProp;
cacheKey: string;
resizeMode: string;
}
class CachedImages extends React.Component {}
export default CachedImages;
}
`
—
Reply to this email directly, view it on GitHub
https://github.com/echowaves/expo-cached-image/issues/2#issuecomment-1072103755,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAADOIJ7CZZQAMGIE576MF3VAQXCJANCNFSM5GMNFH4Q
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

@dmitryame Works like a charm :) thx. I actually tested it before I posted it in here-
Thank you for the update

Cheers! Thank you for contributing.
On March 18, 2022 at 11:09:56, Mario Murrent @.***)
wrote:
@dmitryame https://github.com/dmitryame Works like a charm :) thx. I
actually tested it before I posted it in here-
Thank you for the update
—
Reply to this email directly, view it on GitHub
https://github.com/echowaves/expo-cached-image/issues/2#issuecomment-1072503295,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAADOIL67FJZCJSJDGLNFYTVASMEHANCNFSM5GMNFH4Q
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

You're welcome


Include the entire git history in the work-flows (issue 16366)

Without this change we're not able to correctly determine the version number, please refer to https://github.com/actions/checkout#fetch-all-history-for-all-tags-and-branches

Yikes, I missed that in the original patch. Thank you for fixing this!


Test output is polluted by TEST

The test output is polluted by word TEST that should not be there:
py37: commands[0]> python tests/test_pyperclip.py
sssssssssssssssssssssssssss..sssssssssssssssssssssssssssssssssssssssssssss.........TEST.........sssssssss
----------------------------------------------------------------------
Ran 101 tests in 2.029s

I'm guessing you're using Python 3.7, but what OS are you on? Can you tell me what function the copy() / paste() functions are set to? For example, when I run this code in the interactive shell I can see I'm using the init_windows_clipboard class:
>>> import pyperclip
>>> pyperclip.copy('hello')
>>> pyperclip.copy
<function init_windows_clipboard.<locals>.copy_windows at 0x000001C51641FE50>

The OS is OpenIndiana.  The problem (extra TEST word) happens with both Python 3.7.16 and Python 3.9.16.
$ python3.7
Python 3.7.16 (default, Feb 19 2023, 23:28:22)
[GCC 10.4.0] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyperclip
>>> pyperclip.copy('hello')
>>> pyperclip.copy
<function init_xsel_clipboard.<locals>.copy_xsel at 0x7fffa3e10a70>
>>>
$

$ python3.9
Python 3.9.16 (main, Feb 19 2023, 15:42:40)
[GCC 10.4.0] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyperclip
>>> pyperclip.copy('hello')
>>> pyperclip.copy
<function init_xsel_clipboard.<locals>.copy_xsel at 0x7fffad73aca0>
>>>
$


Streamline tryNormalize with underlyingMatchType

Based on #20168, #20257
This PR has multiple small but significant changes to tryNormalize, I would recommend reviewing the commits individually.
The overall goal was to have a more uniform treatment of tryNormalize rather than the three overrides, making the logic easier to follow.
It also now reuses underlyingMatchType for it, which not only has a caching benefit but also ensures consistent results between them. In particular, making tryNormalize.exists imply underlyingMatchType.exists, which one might assume as true but did not hold in general previously. And yet, we use isMatchAlias := underlyingMatchType.exists in a bunch of places with the assumption that there is nothing to normalise if it returns false.
The next step will be to rework the MatchTypeTrace, which still overlooks some cases. But doing so should be simpler from the proposed setup.

Test performance please

@sjrd this still depends on https://github.com/scala/scala3/pull/20268/commits/eef62f7fcb4af67d51a4df37123f919120a365a0

In particular, making tryNormalize.exists imply underlyingMatchType.exists, which one might assume as true but did not hold in general previously.

I don't understand this premise, seeing as there's more than match types involved in normalizing: constant folds.

I don't understand this premise, seeing as there's more than match types involved in normalizing: constant folds.

Yes indeed, that's my point. Even though it is not inherently wrong, it is another discrepancy which makes them harder to work with than necessary. It's also certainly not obvious for someone unfamiliar with match types adding an isMatchAlias guard.

test performance please

Yes indeed, that's my point. Even though it is not inherently wrong, it is another discrepancy which makes them harder to work with than necessary. It's also certainly not obvious for someone unfamiliar with match types who's adding an isMatchAlias guard.

I don't event think it makes sense to call it a discrepancy, one is related to a subset of the other.
But I'm not against improving things or just straight changing them under some vision on how we should do things, but it's useful to understand the motivating reasons (and verify those reasons).
Also, on the overriding methods things, one reason is to cache things on private vars of the subclass, but I also think there might be some minutiae performance reasons, where using virtual method dispatch is faster and/or works better with the JIT, compared to a pattern match approach.  Unlikely to be crucial here, but other times might be the reason for the setup.

test performance please
(Just trying again to debug the bot, you can safely ignore this, sorry for the noise!)

I disabled i974 from the best-effort-pickling tests, at least to test if it is the only failing case.
I'm not sure how the --Ybest-effort affects things here, but I saw there are already a few blacklisted tests. @jchyb any idea what might be happening ?
The error appears starting from 94a776537834f5dddde6032053629a2fe1e64dce, I suspect it has to do with the stripping of a LazyRef which did not happen before.

In -Ybest-effort we try to pickle and unpickle the erroring trees after typer, so it makes sense that a slightly different tree returned after typer could cause issues (usually with correct programs we know what we are going to pickle, with incorrect not really, especially that we are skipping PostTyper). With that said here in a weird way it makes more sense for it to fail, since there are those other issues with cyclic references that fail.
As a rule of thumb I would not want to stop any progress in the compiler (which is more important than best-effort), which is part of why the blacklist is there. Please use it whenever you need to and do not worry about it! The important part for me is not to change the code gated by stuff like ctx.isBestEffort

As a rule of thumb I would not want to stop any progress in the compiler (which is more important than best-effort), which is part of why the blacklist is there. Please use it whenever you need to and do not worry about it! The important part for me is not to change the code gated by stuff like ctx.isBestEffort

Sounds good, thanks for the detailed explanations Jan.

@dwijnand I know the related changes/comments have been on varying places, sorry about that. Everything should be up to date and rebased on this PR. Do you think it would worth going back to an overloading setup here regarding performance, or have other concerns with the changes ?


chore(deps): bump tracking from 0.26.0 to 1.0.1

Overview

PR Checklist

[x] Related to designs:
[x] Related to JIRA ticket: WEB-2175
[x] I have run this code to verify it works
[x] This PR includes unit tests for the code change
[x] This PR includes testing instructions tests for the code change
[ ] The alpha package of this PR is passing end-to-end tests in all relevant Codecademy repositories

Testing Instructions

Don't make me tap the sign.
Hard to test, but I'm confirming that it's working by:

Viewing that it's able to read the type correctly in the Score Summary component, the one component that is using tracking for types.
Testing it out in storybook locally

PR Links and Envs

Repository
PR Link
PR Env

Monolith
Monolith PR
Monolith Env

Portal
Portal Link
Portal Env

Another Repo
Another Link
Another Env

🚀 Styleguide deploy preview ready!https://6375c77bb8ee06333966619d--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.231-alpha.637d03.0@codecademy/gamut-labs@33.7.3-alpha.637d03.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://6377010720d43f63d103ab1b--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.234-alpha.20b791.0@codecademy/gamut-labs@33.8.3-alpha.20b791.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://637708d30c68416abf217247--gamut-preview.netlify.appDeploy Logs


fix: update @primaryKey get/list queries for lowercase models

This commit updates the get and list queries generated by @primaryKey to handle the case where the model name is all lowercase characters.
Fixes: https://github.com/aws-amplify/amplify-cli/issues/9402
Fixes: https://github.com/aws-amplify/amplify-cli/issues/9392

Codecov Report

Merging #9409 (7a8f046) into master (4c12eb1) will increase coverage by 0.10%.
The diff coverage is 53.04%.

@@            Coverage Diff             @@
##           master    #9409      +/-   ##
==========================================
+ Coverage   55.36%   55.47%   +0.10%
==========================================
  Files         887      888       +1
  Lines       50331    50383      +52
  Branches    10869    10894      +25
==========================================
+ Hits        27866    27949      +83
+ Misses      20393    20368      -25
+ Partials     2072     2066       -6

Impacted Files
Coverage Δ

...oudformation/cdk-stack-builder/s3-stack-builder.ts
3.72% <0.00%> (-0.14%)
:arrow_down:

...dformation/cdk-stack-builder/s3-stack-transform.ts
10.21% <0.00%> (ø)

...n/service-walkthrough-types/s3-user-input-types.ts
76.19% <ø> (ø)

...mation/service-walkthroughs/s3-user-input-state.ts
6.73% <0.00%> (-0.05%)
:arrow_down:

...li-core/src/overrides-manager/migration-message.ts
42.85% <ø> (ø)

packages/amplify-cli/src/execution-manager.ts
7.83% <ø> (+0.50%)
:arrow_up:

...fy-graphql-auth-transformer/src/resolvers/query.ts
67.00% <ø> (+7.00%)
:arrow_up:

...es/amplify-graphql-index-transformer/src/schema.ts
97.34% <ø> (ø)

...plify-graphql-relational-transformer/src/schema.ts
94.91% <ø> (ø)

...-transformer/src/graphql-searchable-transformer.ts
93.26% <ø> (ø)

... and 27 more

Continue to review full report at Codecov.

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


How to start a Task when Workflow fail?

@MaksimRT Can you please provide more information about your use-case?
Please elaborate with the steps you have taken so far.

@apanicker-nflx Yes, sure. Thanks for replay.
I would like to make a workflow.
The workflow consists of two tasks.
If a task in the workflow fails then I would like to notify client about it by calling another task.

There are 2 possible ways in which you can choose to achieve this:

Using a failure workflow.

Set the failureWorkflow field in your workflow definition to the name of the workflow that should be triggered when this workflow fails.
The task to notify client in case of failure could be a task in this failure workflow.

Using the Workflow Status Listener.

Set the workflowStatusListenerEnabled field in your workflow definition to true which enables notifications.
Add a custom implementation of the Workflow Status Listener. Refer this .
This notification can be implemented in such a way as to either send a notification to an external system or to send an event on the conductor queue to complete/fail another task in another workflow as described here.

Closing this issue for now, please reopen if this does not answer your question.

@apanicker-nflx
I tried the first approach "Using a failure workflow".
It really works as expected!
Thanks you very much!
Maybe later add information in documentation about how to handle errors in workflows?

Glad that helped. Thanks for the feedback, I will add this to the FAQ section.


Support loock.lock.t2pv1

extra:
  cloud_fw: 2.1.9_1040
  cloud_name: 门锁
  did: '1059779105'
  mac: 53:f0:fb:8f:55:9c
  rssi_54ef445ea159: -53
  type: ble
last_seen:
  54ef445ea159: 12m5s
listeners: 3
model: 9815
params: {}
ttl: 1h5m
uid: 53f0fb8f559c

You can write converter yourself


Reorder internal convolution and pooling operators for readability

Convolution and pooling functions were scattered around the NN.swift file along with their corresponding vjps. This PR gathers them in an organized way for good code hygiene. The only non-reordering change was a line break deletion.

Glad to help!

Note that the renaming changes I suggested will also require you to change the references to these VJP functions from other places.

😕 The bad news is that it appears that one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that here in the pull request.

CLA doesn't work automatically with directly-committed suggestions. For formality, @eaplatanios could you please confirm that you are okay with your commits being contributed to this PR?

Yes sure. I confirm that I am okay with my commits being contributed to this PR.


Miniforge Docker images

This moves the condaforge/miniforge3 and condaforge/mambaforge image over from https://github.com/conda-forge/docker-images and introduces image versioning.

@conda-forge/core This is ready for review. Secrets are yet missing from this repository but otherwise this works. Multi-platform builds with docker seems like fun.

Thanks Uwe! 😀
Does this squash images? Less familiar with the buildx subcommand

Thanks Uwe! 😀
Does this squash images? Less familiar with the buildx subcommand

No, you cannot squash with buildx, you cannot build multiplatform images with docker build, and so on. I had quite a rage at the fragmentation of the docker/moby build infrastructure while doing this PR. This PR is the compromise of what I could get out of that fragmentation ecosystem.
(I put buildah on my list of things to learn but didn't get to it)

Gotcha. Did you want to handle secrets here or in another PR?

Gotcha. Did you want to handle secrets here or in another PR?

No, added them all now.

Have we considered moving this to azure?

Have we considered moving this to azure?

No, I kept this on Github Actions as it was before. Happy to do that in a follow-up PR once this one is working.

Just curious, is there a reason we want to move to Azure? Have no preference personally

We have more workers there and these jobs are long.

@beckermr In preparation for the follow-up PR: Can you setup the credentials in Azure? I have no access there.

Yes!


Custom Functions - using columns with spaces in causes the column to be renamed

If a column name with a space in is referenced by using an underscore, this causes the column to be renamed to include the underscore.
def example(column_name):
  return 0

--> column name is now renamed to column_name

Unable to reproduce.


Support custom cache drivers in orm.cache.factory

The cache driver factory, orm.cache.factory, only supports the predefined cache drivers.
With this PR, the factory also supports custom cache drivers.

I think this should be fine. Not sure if changing the structure of an Exception message would constitute a BC break? What do you think?

People matching the human-readable exception message should not be surprised by wording changes.
On the other hand, the new message is not a big improvement over the old one (it might even be less helpful in the common usecase where someone just made a spelling mistake when specifying the driver), so I will revert the change.

@c960657 I actually like it; just not sure how safe it is. :) You could add in parens "(is it spelled correctly?)" or something?

Done :-)
I think this is a minor BC break that only affects some very unusual use-cases, so I think it is acceptable.

@c960657 thanks! appreciate it. :)

@simensen 👋 Do you think a new version could be released with this? E.g. 2.1.0.


(GH-26) Cache the API data

Description
This caches the API data inside the Script scope. It does not store
any data on disk.
Related Issue
#26
Motivation and Context
Do not hit the API that much!
How Has This Been Tested?
Pester tests
Screenshots (if appropriate):
Types of changes

[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[X] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[X] I have read the CONTRIBUTING document.
[X] I have added tests to cover my changes.
[X] All new and existing tests passed.

Codecov Report

Merging #36 into master will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master       #36   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           14        14
  Lines          173       174    +1
=========================================
+ Hits           173       174    +1

Impacted Files
Coverage Δ

chocolatey-diff/Public/Get-FullPackageInfo.ps1
100.00% <100.00%> (ø)

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 63ce723...80360af. Read the comment docs.

Codecov Report

Merging #36 into master will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master       #36   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           14        14
  Lines          173       177    +4
=========================================
+ Hits           173       177    +4

Impacted Files
Coverage Δ

chocolatey-diff/Public/Get-FullPackageInfo.ps1
100.00% <100.00%> (ø)

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 63ce723...ee75c24. Read the comment docs.


Design website

The designWebsite branch has the following features implemented:

Forum button removed from homepage and navigation bar
When user searches for a course, the sections are divided into lectures, tutorials, and labs, and when the user clicks on a section, it is darkened to indicate the user's choice.
The google export button on the schedule page was designed to aesthetically match the page's theme.
When the user is logged in with their gmail account, their sign in status is now showed with either a red/green dot indicating if they are logged out/logged in.
When the user has no courses added, and they click on the schedule page, an alert message is displayed.

Hmmm...Is there a reason why "SOEN341", "LEC" and "TUT" are buttons? Is there an action linked to them or could they be labels?

No, they can be labels.

test case result.pdf
Register with Email and Password Test Case FAILED. This makes sense since the automated test is registering with a email that already exists.
Therefore this pull request PASSED during regression testing.


Support new black cells in existing puzzle

At present, you have to be completely done with designing a grid (the black cells) before you can create a puzzle from it.  This makes it inconvenient if you have been working on a puzzle for a while and then realize that you need to change the grid structure.  You don't want to lose all the work you've done.
Proposed change

Add a menu option under Puzzle to extract and save this puzzle's grid
Add a menu option under Puzzle to use a different grid
Can only be done if the grids are the same size
The new grid is merged into the existing puzzle:

The puzzle's current black cells are set to blanks
The new grid's black cells are copied to the puzzle

Finished the first part: extract the underlying grid of a puzzle and save it.


HA: Improve Java client policy

The auto-reconnect feature of the Java driver is cool, but we need some behavior to be configurable:

A client could start with one or a list of servers and it could be stick on them
HA & DC: In case of DC configuration, could be nice a constraint where the client can connect only to another server on the same DC

New settings:

autoreconnect=[auto|list|disabled|samedc|dc:<dcname>]

Proposed example of syntax for connections:

remote:europe1:2424,europe2:2424/mydb?autoreconnect=list
remote:europe1/mydb?autoreconnect=samedc
remote:europe1/mydb?autoreconnect=dc:asia

WDYT?

Looks good @lvca.  Yes, this enhancement would greatly help in Production environments.

hi,
Finished the implementation for same-dc and auto in 2.2.x the property is called network.retry.strategy.
Regards

Hi,
The implementation is not yet ported to 3.x because it will be completely different.
Regards

Thanks.  So what are the possible values for network.retry.strategy?

hi @RAndrews137,
two possible strategies today:

"auto" -> select a server from the same DC (if any), then from any other DCs
"same-dc" -> will try to reconnect to another server in the same DC if none will fail.

Perfect @tglman :)

In the docs (https://github.com/orientechnologies/orientdb-docs/blob/2.2.x/Data-Centers.md#client-reconnection), soon online.

Hi @RAndrews137,
Thanks for your patience. One question: can we close this one now? The enhancement has been implemented in 2.2.25, and a public issue has been opened by us so that we can port the fixes into 3.0 (Issue #7618)
If you have any follow-up questions on this, you can open a private issue.
Many thanks,

We tested this last Friday and it worked well.  We can close the issue.  Thanks  :)

Great, closing then.
Thanks
Luigi


[WIP] Overhaul generators

It is quite early here and I've been hacking away at this continuously over the weekend, so my description is going to be sparse until I get some rest.
First of all, thank you for an such an amazing project. Taking an awesome framework like rodauth and making it easy to use on rails is to be applauded.
I have been working on a set of generators to quickly bootstrap apps and I arrived at rodauth-rails because I want to use rodauth (obviously why not?).
I found quite a number of issues with the generators. They were not quite right.
They worked for a basic setup, but for someone new to rodauth, it was quite difficult to get things kicked off.
There were some unused options, some hard coded values in some places which would break if users passed in an unexpected value.
Some confusion wrt how jwt, json and only_json interact.
Most especially, I needed this for a multi-user setup and unfortunately, that was not to be offered.
So rather than write the generators in my own project, I felt the best thing to do would be to improve upon the work you've already done and then reuse the updated generators in mine.
So basically, I overhauled it

Streamlined the options and arguments.
Split up the installer to accommodate standalone account generation.
Ensured that each plugin is configured appropriately e.g. roadauth.load_memory.
Split the plugin files up to allow for inheritance while keeping the base as a config source.
Renaming some of the files to match the language rodauth uses.
Support for skipping base model creation.
Automatically update database overrides after migration. No need for user action.
I added a fun kitchen-sink option that sets up everything.

There is still a lot more work to be done to make this superb.
For e.g. I am yet to work with views and figure out if they work as expected in a multi-user setup.
Tests and documentation are yet to be updated.
Split up mailers per account?
I also plan on adding options for some specific setups, e.g. email auth only
I am only submitting this PR this early so I can gather some feedback as I proceed with it.
Is this useful to you? Do you see it being merged upon completion?
If you'd like to take a look, my generators project is https://github.com/plutonium-rails/plutonium-generators

So mailers have been split up too.
Views worked so I slightly modified that and incorporated it into the account generation process.
I've added a centralized generator plugin config to make management better.
My auto formatter mangled some files, so I'll have to fix that.
I recommend you run rubocop in the entire project to prevent future occurrences.
I'll be moving on to tests and documentation now.

I've identified a couple of issues I am working on resolving wrt to the use of base as well as not passing the migration name from the account generator.

I appreciate the pull request. Could you describe on more details the specific problems you're aiming to solve? There seem to be a lot of different changes and refactoring here, so it's a bit overwhelming at first. I didn't understand many of the points such as "streamlined options and arguments" and "ensured each plugin is configured appropriately". What is "standalone account generation", what's the use case for skipping base model creation?
When you talked about multi-user setup, what exactly were you missing? The migration generator supports different table names (in case secondary Rodauth configurations use different tables), while the view generator accepts a Rodauth configuration name. The mailer is configured to automatically work with multiple configurations, though I agree in the long run you probably want to have different mailers.

Automatically update database overrides after migration. No need for user action.

How are you able to do that? How do you know which Rodauth configuration the migration applies to, and where it's located? The developer has the freedom to define Rodauth configuration however they want, even use inheritance to share behavior. What if you have RodauthMain < RodauthBase and RodauthAdmin < RodauthBase, and the migration overrides need to go in RodauthBase < Rodauth::Rails::Auth which isn't registered?
Whatever functionality generators provide, it always needs to work regardless of where the files are placed. That's the rule of thumb that was guiding me for the current generator implementation.

I also plan on adding options for some specific setups, e.g. email auth only

I'm not sure I would be OK with the complexity needed to offer such an option, because a lot would need to change, right? It seems better that these setups are covered by tutorials.

@janko I am happy to address your questions, but doing so via writing might be difficult.
Do you mind if I made a screencast instead?

@thedumbtechguy Not at all, I think that would be great 😉

I have added the a video here. Tried to make it short but it ended up about 19 minutes.
https://youtu.be/NFaz4-eC8G4

One of the features of this PR I would like to have is the ability to select Rodauth features in the rodauth:install generator. I could never fully visualize how that would be implemented, so I didn't attempt it yet. I'm also open to the --jwt option automatically adding the jwt gem to the Gemfile, as well as --argon2 adding the argon2 gem.
I don't like the idea of having a CLI option for each Rodauth feature. It bloats the option list, and the metaprogramming required seems to add a lot of complexity. What was the reason for deciding for this instead of a --features array option?
Note that Rodauth configurations are not "plugins". Rodauth already has plugins, which it calls "features". A Rodauth configuration is class with fully defined authentication logic, the only thing it "plugs into" is the Roda app, but technically it can be used standalone as well (typically through internal requests).
Having the migration generator automatically insert table/column overrides into the Rodauth configuration only when it's defined at the expected *_plugin.rb location is a no-go to me. This means the behavior will depend on where your configuration is defined, and it will suggest that you should follow certain naming conventions that I don't want to impose.
Regarding the --passwordless option, it's currently opinionated that it's referring to email authentication, but Rodauth also supports passwordless authentication via passkeys (WebAuthn). So, I don't think a --passwordless option would make sense for rodauth-rails, because it would have to impose an opinion what "passwordless" means exactly. I think that would open a slippery slope, where another person might suggest adding a --passkeys option or a --mfa option, which would be hard to define and later maintain. I want generator options to have exact meaning.

I'm open to incremental changes, as opposed to overhauling everything. As I mentioned, I would accept PRs where --jwt and --argon2 options add jwt and argon2 gems to the Gemfile, and an option for specifying a list of Rodauth features on installation.

I also wouldn't like for rodauth:install generator to automatically generate view templates, as that number of files generated can be overwhelming for a newcomer. I was even contemplating moving mailer configuration back into a separate generator, because I already think the current number of files are on the edge.
A person can easily generate views for their currently enabled features by running rails generate rodauth:views without any arguments. Since it's just one extra simple command, I don't see a benefit in running it automatically on rodauth:install.

Regarding the rodauth:account generator, I don't think we can really make assumptions how a new Rodauth configuration will look like. The developer might want to use dedicated tables, or just a type column (see wiki page). They might want to use the same session prefix, or have the session data separate to potentially allow both account types to be logged in at the same time. Also, they should have some configuration portion shared through a superclass, but we cannot determine which one.
Once rodauth:install sets up one configuration, I think it's much better that the developer sets up other one manually by copy-pasting or moving what they need. I don't see the value in a dedicated generator for this.
Since I don't want to accept the changes as they're currently proposed, I'll close this pull request. As I said, I'm open to some subset of these changes, added incrementally as individual PRs.

Thanks for your time.


Add files in "Estruturas de dados" via upload

I'm not sure if the open pull requests are causing the issue but the page is not building anymore..


Subscribed jedis timesout

Hello!
Although a jedisPool with configured timeout is used:
 jedisPool = new JedisPool(poolConfig, REDISHOST, REDISPORT, 0);
a jedis instance created by this pool and subscribed always times out after 2000 ms.
The funny part is that it doesn't time out if it is not subscribed.
Regards,
friendOfOurs

@friendOfOurs please provide more information to reproduce this scenario. JedisPool timeout is tested in Jedis code and it works for me.


chore[laravel.md]: typo in test/Pest.php

In Laravel Plugin, in the pest:install section we found an error where the Pest.php file is located

Thanks!


Translatable strings

The default SelectSubField placeholder Choose an option and hard coded Hide detail and Show detail string now are translatable via locale file.

@chbbc My apologies for such a slow reply and thanks for submitting this.  Have tested locally and it works fine.  Could I just ask that you run npm run production and push another commit with the compiled assets?  I'll then merge this in.


Negative Label Capability

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is.
I would love to write a leveling function that could produce a negative label. For instance
1 = label the dataset to belong to class 1
2 = label the dataset to belong to class 2
3 = label the dataset to belong to class 3
0 = abstain
-1 = label the dataset to NOT belong to class 1
-2 = label the dataset to NOT belong to class 2
-3 = label the dataset to NOT belong to class 3
As you can see, the label -1, -2, and -3 carry more information than a pure abstain label. Is there a way that I could achieve this in the current Snorkel framework?
Describe the solution you'd like
A clear and concise description of what you want to happen.
I would love to have Snorkel supporting the negative label as explained above.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
I tried to put everything to abstain now. However, I am seeing poor performance on Labelmodel fitting.
I am seeing something like this in my experiment. 4 numbers below show the output from labeling functions and the arrow shows a result from Lablemodel prediction.
1, 0, 0, 0	--> 2
Clearly, there's something off here. However, if we have the capability to output something like this
1, 0, -2, -2
The model would know that it shouldn't really output 2 in the final model.
I appreciate your time and attention to this matter.

Hi @ndenStanford! Unfortunately, we do not (currently) plan to support negative class labels from LF's. However, you may find this paper helpful. It explores the concept of "Partial Labelers", which I think is in line with what you are suggesting.
If you end up diving into the research and want to implement it as an enhancement here, we would love for you to submit a PR!


fix: handling embedded speechmarks in SYSPROCESSNAME.  Closes #254

:tada: This PR is included in version 4.30.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


PIL.Image has no attribute ANTIALIAS

Describe the bug
AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS'
Additional context
pygnssutils-1.0.17, but all versions will see the error.
The problem and the solution is described here:
https://stackoverflow.com/questions/76616042/attributeerror-module-pil-image-has-no-attribute-antialias
The following change in site-packages/pygpsclient/ solves the problem:
Out:           Image.open(IMG_WORLD).resize((w, h), Image.ANTIALIAS)
In:              Image.open(IMG_WORLD).resize((w, h), Image.LANCZOS)
Problem started with upgrade from Pillow-9.5.0 to pillow-10.2.0
ANTIALIAS was removed in Pillow 10.0.0 (after being deprecated through many previous versions).

PyGPSClient: 1.3.25
[japs@japspc ~]$ pygpsclient
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib64/python3.9/tkinter/init.py", line 1892, in call
return self.func(*args)
File "/usr/local/lib/python3.9/site-packages/pygpsclient/app.py", line 556, in on_gnss_read
self.process_data(raw_data, parsed_data)
File "/usr/local/lib/python3.9/site-packages/pygpsclient/app.py", line 669, in process_data
frm.update_frame()
File "/usr/local/lib/python3.9/site-packages/pygpsclient/map_frame.py", line 108, in update_frame
self._draw_static_map(lat, lon)
File "/usr/local/lib/python3.9/site-packages/pygpsclient/map_frame.py", line 128, in _draw_static_map
Image.open(IMG_WORLD).resize((w, h), Image.ANTIALIAS)
AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS'

You’re using a very old version - the issue you’re referring to was addressed back in 1.3.28. I strongly recommend upgrading to the latest version 1.4.8.
python3 -m pip install —upgrade pygpsclient

I just did a few minutes ago, but pygpsclient/map_frame.py still contains
Image.open(IMG_WORLD).resize((w, h))  # , Image.ANTIALIAS)
It may give rise to some confusion. Anyway problem solved.

Not sure why a comment would cause confusion, but happy to remove it in next release.
Assuming you’ve upgraded, are you happy to close the issue?


Load administration even if plugin js does not exist

1. Why is this change necessary?
If a plugin's administration javascript file can't be loaded the whole administration fails to initialize and only shows a white page.
Currently, if a plugin's javascript file fails to load, the administration will fail to initialize since the error is not handled adequately (https://github.com/shopware/platform/blob/master/src/Administration/Resources/app/administration/src/core/application.js#L378-L383). This pr allows the loading of the plugin to fail but ensures that the administration will load.
2. What does this change do, exactly?
This change allows the including of administration files of plugins to fail without taking down the whole administration.
Since the build process only uses core-js in version 2, I refactored the method to handle the error correctly. With core-js >= 3 we could have used allSettled here so a version upgrade would be great.
3. Describe each step to reproduce the issue or behaviour.

Install a plugin with an administration javascript file.
Rename the javascript file so that the administration can't load it.

4. Please link to the relevant issues (if any).
5. Checklist

[x] I have written tests and verified that they fail without my change
[x] I have squashed any insignificant commits
[x] I have created a changelog file with all necessary information about my changes
[ ] I have written or adjusted the documentation according to my changes
[ ] This change has comments for package types, values, functions, and non-obvious lines of code
[x] I have read the contribution requirements and fulfil them.

Hey @niklasbuechner, i just tried reproducing the error, it is atleast not happening for every plugin. Could you give me the name of a Plugin-name with which i can reproduce this?

@J-Rahe Did you rename the javascript file? No plugin in a correct configuration should be triggering the error. Only if the administration tries to load a non-existent file this error will occur. So if the server returns e.g. a 404 for a plugin's js resource this error will occur.
Here is how you can reproduce the issue:
3. Describe each step to reproduce the issue or behaviour.

Install a plugin with an administration javascript file.
Rename the javascript file so that the administration can't load it.

yep, the menue-point of the plugin dissapeared and that was it. If you can still reproduce it i will try it with some more plugins on Monday.

Hey @niklasbuechner,
we now tried reproducing the error you described with multiple plugins on multiple machines.
Since we couldn’t reproduce this and you didn’t provide any better explanation on how to reproduce, I will be closing this PR.
If you can still reproduce this behaviour please open the PR again and include an detailed guide on how to reproduce (step by step, video etc, ideally on trunk and including the names of the Plugins you used and possible configuration changes)


job: Sanitize instead of validate the job names

The job names may come from many different sources and it is too much of a foot-gun to reject the names by panicing.
Instead to keep the names within a nice constraint set of characters and length, sanitize the names silently.
Related PR that had to work around the panics:
https://github.com/cilium/cilium/pull/35031

LGTM
Do we plan to triage the mangled names somehow? If we are not logging anything how do you think we could find all the occurrences?

No. We'll fix them as necessary. Right now we're not really caring about the job names anywhere.


(maint) Update Docker Postgres healthcheck

pg_isready is insufficient for determining that the Postgres database
is "healthy", since it seems to return a 0 exit code, even for
invalid user names or invalid databases

Instead use a similar check to what spec helpers used to do (i.e.
establishing that the puppetdb database can be connected to from
the puppetdb user - this is equivalent to counting databases in the
postgres system table)
Adapted from https://stackoverflow.com/questions/14549270

Examples of what the script reports to docker when the database is
not reachable (from docker inspect)

"Health": {
    "Status": "healthy",
    "FailingStreak": 0,
    "Log": [
        {
            "Start": "2019-08-20T22:49:19.4322016Z",
            "End": "2019-08-20T22:49:19.7158295Z",
            "ExitCode": 2,
            "Output": "psql: could not connect to server: No such file or directory\n\tIs the server running locally and accepting\n\tconnections on Unix domain socket \"/var/run/postgresql/.s.PGSQL.5432\"?\n"
        },
        {
            "Start": "2019-08-20T22:49:29.6926096Z",
            "End": "2019-08-20T22:49:29.8910214Z",
            "ExitCode": 2,
            "Output": "psql: FATAL:  database \"puppetdb\" does not exist\n"
        },
        {
            "Start": "2019-08-20T22:49:39.9011976Z",
            "End": "2019-08-20T22:49:40.2243735Z",
            "ExitCode": 0,
            "Output": ""
        }
    ]
}

docker-compose testing in TravisCI passed... failures are unrelated.
Merging!


Is it possible to detect "neither disposed nor GCed forever"?

Why this is needed
Consider the common scenario: I have a ui.Image, a native audio player, or whatever heavy resource. Then, I want to ensure that, when the widget test is end (or even better, when the page is left in app), there are zero heavy resources there. This check can reveal bugs of the type "neither disposed nor GCed forever".
When will this happen in reality? Firstly, I have seen it in my app. Secondly, generally speaking, this can happen when users forget to call dispose + the object has a retaining path thus not GCed as well.
Will the proposed check cause false positives? I think it may be alleviated by using a whitelist.
Proposal
A naive implementation may look like this:
void testWidgetsWithLeakTracking(body) {
  body();
  expect(getAllObjectsThatCallsCreationButNotDisposal(), isEmpty);
}

In other words, if a object calls dispatchObjectCreated but never dispatchObjectDisposed , then warn it.
For a minimal implementation, the code can be seen in the last section.
Reproduction sample
If I understand correctly how to use this package, here are reproduction sample. (You need to copy-paste the https://github.com/flutter/flutter/blob/60a87d079843fa1a3498d7f3263b076a23074221/packages/flutter/test/foundation/leak_tracking.dart file before using the following code.)
Here, I simulated two scenarios, one using a widget, and another using direct allocation. (Indeed in the first scenario it may be GCed but I am not very sure.) I expect two tests to fail using the detector, but they both passed happily.

import 'package:common_flutter_dev/src/leak_tracking.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';

void main() {
  group('simple play with leak tracker', () {
    testWidgetsWithLeakTracking('StatefulWidget containing disposable objects', (tester) async {
      await tester.pumpWidget(const _SimpleWidget());
    });

    testWidgetsWithLeakTracking('objects that live forever', (tester) async {
      final controller = ScrollController()..addListener(_dummyListener);
      _notGcedStorage.add(controller);
      // _notGcedStorage.remove(controller); // comment it out to simulate leak
    });
  });
}

final _notGcedStorage = <Object>[];

class _SimpleWidget extends StatefulWidget {
  const _SimpleWidget();

  @override
  State<_SimpleWidget> createState() => _SimpleWidgetState();
}

class _SimpleWidgetState extends State<_SimpleWidget> {
  late final ScrollController controller;

  @override
  void initState() {
    super.initState();
    controller = ScrollController()..addListener(_dummyListener);
  }

  @override
  void dispose() {
    // controller.dispose(); // comment it out to simulate leak
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return const Placeholder();
  }
}

void _dummyListener() {}

Minimal implementation code
Here is a minimal implementation I used to detect non-disposed and non-gced ui.Image.

import 'dart:async';
import 'dart:ui' as ui;

import 'package:collection/collection.dart';
import 'package:flutter/foundation.dart';
import 'package:front_log/front_log.dart';

abstract class ObjectRetainChecker {
  static const _kTag = 'ObjectRetainChecker';

  @protected
  final activeObjects = Set<Object>.identity();

  ObjectRetainChecker() {
    if (kReleaseMode) throw Exception('Are you sure you want to use $_kTag in release mode?');
    MemoryAllocations.instance.addListener(_handleMemoryAllocations);
  }

  void _handleMemoryAllocations(ObjectEvent event) {
    if (!isInterestObject(event.object)) return;

    if (event is ObjectCreated) {
      activeObjects.add(event.object);
    } else if (event is ObjectDisposed) {
      activeObjects.remove(event.object);
    }
  }

  @protected
  bool isInterestObject(Object object);
}

class UiImageRetainChecker extends ObjectRetainChecker {
  static const _kTag = 'UiImageRetainChecker';

  UiImageRetainChecker() {
    Timer.periodic(const Duration(seconds: 10), (_) => dumpInfo());
  }

  void dumpInfo() {
    final images = activeObjects.cast<ui.Image>();
    final imageSizeBytes = images.map((image) => image.sizeBytes).toList();
    Log.i(
        _kTag,
        'Active `ui.Image`s: '
        'total bytes (may have duplicates) = ${_formatBytes(imageSizeBytes.sum)} '
        '#image = ${imageSizeBytes.length} '
        'detailed bytes = ${imageSizeBytes.map(_formatBytes).toList()}',
        self: this);
  }

  String _formatBytes(int bytes) => '${(bytes / 1000000).toStringAsFixed(3)}MB';

  @override
  bool isInterestObject(Object object) => object is ui.Image;
}

extension on ui.Image {
  // https://github.com/flutter/flutter/issues/128163
  int get sizeBytes => (width * height * 4 * (4 / 3)).toInt();
}

Thanks for proposal. Added to the project.


don't use debug timings unless debugTiming == true

This project uses semver, please check the scope of this pr:

[x] #patch# - backwards-compatible bug fix
[ ] #minor# - adding functionality in a backwards-compatible manner
[ ] #major# - incompatible API change

CHANGELOG
don't use debug timings unless debugTiming == true

Coverage remained the same at 98.784% when pulling 9a11ca3d53360dbb0dfed592b1953007952602e7 on nchen63:timing into 1acb0413a7e9645d8f9029a680b501278467dd27 on ciena-blueplanet:master.


Adding null check for the rendering handler thread

This will prevent the app from crashing if the rendering thread is null when the loading is complete

This won't fix the problem, it will just crash a couple lines down where it attempts to access the looper
renderingHandler = new RenderingHandler(renderingHandlerThread.getLooper(), this);

This PR https://github.com/barteksc/AndroidPdfViewer/pull/824 should fix the issue.

Good point about the issue just being pushed further down with my attempted fix... And Thanks to @jlo1 for pointing out a fix to the actual issue!


Help

How to run tailwind init, command not found

Wrong repo. Please refer to tailwindcss installation documentation

Thanks

This issue should be closed 👍🏽


Unable to cast COM object of type "System .__ ComObject" to interface type "NAudio.MediaFoundation.IMFSourceReader".

Hello
Help me please. I get an error while reading the stream.
Win 10. VS2019
Unable to cast COM object of type "System .__ ComObject" to interface type "NAudio.MediaFoundation.IMFSourceReader".
The operation failed because the call to the QueryInterface of the COM component for interface with
IID "{70AE66F2-C809-4E4F-8915-BDCB406B7993}" returned the following error:
Interface not supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).

at System.StubHelpers.StubHelpers.GetCOMIPFromRCW (Object objSrc, IntPtr pCPCMD, IntPtr & ppTarget, Boolean & pfNeedsRelease)
at NAudio.MediaFoundation.IMFSourceReader.ReadSample (Int32 dwStreamIndex, Int32 dwControlFlags, Int32 & pdwActualStreamIndex, MF_SOURCE_READER_FLAG & pdwStreamFlags, UInt64 & pllTime ppSample) IMFSample &
at NAudio.Wave.MediaFoundationReader.Read (Byte [] buffer, Int32 offset, Int32 count)`

this is often caused by trying to access a COM object from a different thread to the one it was created on


Client id

A friend of mine has a problem regarding rich presence. A mac user is having trouble regarding client id and I dont know how to copy the client id in the configuration page as in idk how to set up. Any help will be appreciated.

mpv-discord already comes with a deafult client id so you don't have to further modify the client id.


ci(build-and-test): run on self hosted

Description
Since this job is triggered once the PR is merged to main, we will run it on self hosted instances to not burden the github hosted runners.
This way, more urgent build-and-test-differential jobs can keep running on the github hosted instances.
Tests performed

Not applicable.
Effects on system behavior

Not applicable.
Interface changes

Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

/describe


1 pixel perfect line ?

is it possible to have  a  "Pixel perfect " (like in Aseprite) or "Clean 1 pixel line " (like in PyxelEdit) option for the pen tool ?
I really love Piskel, Thanks for Your work, Piskel is a great tool !

Thank you so much!
In theory that sounds feasible (not sure if that should be a dedicated tool, or just a modifier on the existing pen tool, but that's a minor detail).
I'll need to check the behavior in Aseprite/PyxelEdit first.


Tighten matches for roman numeral page numbers

Once I get eyecite running on the CAP corpus, I'd like to look at all of the extracted citations where the page number was supposedly a roman numeral, and figure out what the error rate is and if we can filter out common false matches or restrict roman numeral matches to some reporters and volumes.
Here are false positive matches I've collected so far:

49 Col. L. Rev. 875
65 Mich. L. Rev. 477
37 Taylor v. Bd. of Educ., 240 Fed. Appx. 717 (6th Cir. 2007)
11 U. S. C. § 701

(Moving this conversation over from #18 to focus specifically on roman numerals.)

OK, I now have the data for running eyecite on CAP. I think the upshot is we (CAP at least) don't want to look for roman numeral page numbers at all, unless they match a list of known volumes with cases indexed by roman numeral. Here's the details ...
CAP has roughly 100 million full or short cites, of which roughly 500,000 have roman numeral page numbers. About 95% of those seem to be false positives.
Here are the ten most common roman numeral cites:

total
501671

28 U. S. C
13879

42 U. S. C
9941

18 U. S. C
7975

42 Pa. C
7191

29 U. S. C
6345

28 U.S. C
5668

15 U. S. C
5333

6 R. C
4881

26 U. S. C
4009

All data: roman_numerals_counts.csv
Those are all false positives for "C", but looking down the list there's a lot of other common false positives as well -- "10 A. M", "7 H. L", "32 Hen. VIII" etc. (That last one is awesome! We're finding cites to the law of King Henry VIII.)
Here are counts for the top page numbers:

total
501656

C
279821

L
104392

l
35970

M
34795

D
9512

v
5608

I
3740

m
1180

VIII
1163

x
1077

vii
957

xi
911

All data: roman_numerals_pages.csv
I think these are basically all false positives down to x or vii or so. If we assume that all cites are false positives where page in ['C', 'L', 'M', 'D', 'v', 'l', 'm', 'did'] or reporter in ['Edw.', 'Hen.', 'Rich.', 'Will.', 'H.'] (the English kings), we end up with this:

total
25332

142 S. W. xii
469

149 S. W. x
435

142 S. W. xiii
270

175 Ala. xxi
226

198 Fed. xxvi
167

38 Okla. vi
157

137 Pac. ix
156

115 C. C. A. xxvi
152

117 Pac. xi
150

89 Fed. vii
134

All data:
roman_numerals_filtered.csv
These are actually looking reasonable! But we're now down to ~5% of the matches being likely real -- and many of those aren't going to be to cases at all, so even if I find the cite I can't show you anything for it.
To try to find exceptions to that rule I grouped "real" matches by volume, resulting in this:

total
25332

142 S. W.
1366

198 Fed.
918

115 C. C. A.
843

89 Fed.
687

32 C. C. A.
567

149 S. W.
438

175 Ala.
308

169 S. W.
287

38 Okla.
276

150 Fed.
270

All data:
roman_numerals_filtered_volumes.csv
So roughly a quarter of "real" cites point to those ten volumes, which might mean they really have cases in them. But you'd still need a few hundred exceptions to cover everything.
The other option I considered is to tighten the roman numerals regex to only accept numerals up to 200. Something simplified that amounts to this:
I|II|III|IV|V|VI|VII|VIII|IX|X|XI|XII|XIII|XIV|XV|XVI|XVII|XVIII|XIX|XX|XXI|XXII|XXIII|XXIV|XXV|XXVI|XXVII|XXVIII|XXIX|XXX|XXXI|XXXII|XXXIII|XXXIV|XXXV|XXXVI|XXXVII|XXXVIII|XXXIX|XL|XLI|XLII|XLIII|XLIV|XLV|XLVI|XLVII|XLVIII|XLIX|L|LI|LII|LIII|LIV|LV|LVI|LVII|LVIII|LIX|LX|LXI|LXII|LXIII|LXIV|LXV|LXVI|LXVII|LXVIII|LXIX|LXX|LXXI|LXXII|LXXIII|LXXIV|LXXV|LXXVI|LXXVII|LXXVIII|LXXIX|LXXX|LXXXI|LXXXII|LXXXIII|LXXXIV|LXXXV|LXXXVI|LXXXVII|LXXXVIII|LXXXIX|XC|XCI|XCII|XCIII|XCIV|XCV|XCVI|XCVII|XCVIII|XCIX|C|CI|CII|CIII|CIV|CV|CVI|CVII|CVIII|CIX|CX|CXI|CXII|CXIII|CXIV|CXV|CXVI|CXVII|CXVIII|CXIX|CXX|CXXI|CXXII|CXXIII|CXXIV|CXXV|CXXVI|CXXVII|CXXVIII|CXXIX|CXXX|CXXXI|CXXXII|CXXXIII|CXXXIV|CXXXV|CXXXVI|CXXXVII|CXXXVIII|CXXXIX|CXL|CXLI|CXLII|CXLIII|CXLIV|CXLV|CXLVI|CXLVII|CXLVIII|CXLIX|CL|CLI|CLII|CLIII|CLIV|CLV|CLVI|CLVII|CLVIII|CLIX|CLX|CLXI|CLXII|CLXIII|CLXIV|CLXV|CLXVI|CLXVII|CLXVIII|CLXIX|CLXX|CLXXI|CLXXII|CLXXIII|CLXXIV|CLXXV|CLXXVI|CLXXVII|CLXXVIII|CLXXIX|CLXXX|CLXXXI|CLXXXII|CLXXXIII|CLXXXIV|CLXXXV|CLXXXVI|CLXXXVII|CLXXXVIII|CLXXXIX|CXC|CXCI|CXCII|CXCIII|CXCIV|CXCV|CXCVI|CXCVII|CXCVIII|CXCIX|CC
Which would be a lot better, but C, L, l, I, v, and maybe x would still have to be excluded. So you end up with a weird sort of API where eyecite is like "we extract roman numeral cites up to 200, except for cites to page 1, 5, 10, 50, or 100 which we ignore."
So, for now CAP is just not looking for these at all, by setting eyecite.utils.PAGE_NUMBER_REGEX = r"\d+". I'm curious what looks like the best compromise to other folks though.

I foolishly put this in Slack, but it looks like the roman numerals are coming from freelawproject/courtlistener#510, which was to address some roman numerals we found in citations:
218 Neb. xxiii (1984)
250 Neb. xxiv (1996)
272 Neb. xxxiii (2007)
269 Neb. xxvi (2004)
14 Neb. App. liv (2006)
12 Neb. App. lxiv (2004)
13 Neb. App. liii (2005)
13 Neb. App. xvi (2005)
14 Neb. App. lxi (2006)
13 Neb. App. l (2005)
14 Neb. App. xxvii (2006)
267 Ga. XXVI (1996)
367 Ark. xx (2006)

Most of those, I note, are lowercase, which might help with this a bit. Back in 2016, I confirmed with a librarian in Nebraska that these were citations to the front matter of the volume. And indeed, we do have cases at those locations somehow:
0c5c0dadba8375ea.txt

Reading and re-reading your notes and CSVs, I kind of feel like limiting ourselves to roman numerals less than 100 that are lowercase might eliminate almost all the false positives. I think making a blocklist of non-reporters might push it into being actually useful.

Those do look like the best ones. Here's the counts for just those in numerical order (e.g, v appears 5608 times):
total | 58776 |
-- | -- | --
1 | 241 | i
2 | 23 | ii
3 | 73 | iii
4 | 130 | iv
5 | 5608 | v
6 | 701 | vi
7 | 957 | vii
8 | 807 | viii
9 | 788 | ix
roman_numerals_lower_200.csv
The one issue with this is v, l, and c are clearly mostly false positives, and i and x are a little suspiciously high as well. So about 2/3 are still false positive -- if you take out v, l, and c entirely you end up with 16,982 valid-ish matches.
I'm not sure if a blocklist ends up helping to revive the v and l cites -- something like "Mass. v" is viable as a cite or a case name, and "Mass. l." is viable as a cite or as "Mass. laws". Here's all the reporter-pages for ivxlc if you want to see those: roman_numerals_common_pages.csv
I think it ends up being a question of whether it's better to grab all the low-number lowercase except for vlc, or to opt-in specific reporters like Neb. and Neb. App. that have cases at roman numerals.

I think it ends up being a question of whether it's better to grab all the low-number lowercase except for vlc, or to opt-in specific reporters like Neb. and Neb. App. that have cases at roman numerals.

Yeah, I agree. I don't know all of the reporters that we'd want to opt in, and we'd never be done updating that list as new reporters came out. I think I lean towards "all roman minus vlc."
As a user, that feels like a mostly fine compromise. You wouldn't see too many false positives, and yeah, we'll miss a few opportunities to link things here and there.

Fixed by #61


Improving robustness/flexibility of regression testing

There are a couple of changes I would like to propose to the current approach for regression testing in OpenFast:

Currently regression tests in OpenFast check every entry in the binary out file. As a result we also check for very small values which may not be meaningful from an engineering standpoint. This approach requires anyone using OpenFast to have the exact hardware/software setup as the machine on which these results were generated. This hinders our attempt at truly being open-source. Consequently I propose not checking for post-processed variables which are irrelevant for a given regression test (e.g. RootFxr and RootFzr in bd_curved_beam).

There is a need for a more sophisticated and flexible test environment. Currently we test for every single entry in the binary out file. There are some tests that produce thousands of lines of output data and testing for every single one of them seems to be an overkill, and also a waste of time as the number of tests continue to increase. I foresee this being resolved via an additional file where the developer may specify various variables and the corresponding time steps at which they should be checked.

@ashesh2512 can we make this issue "Improving robustness/flexibility in testing" in general? I have some thoughts on improvements to the work flow for development and testing which lie outside regression tests.


Logs are not working in Meteor.startup()

Logs are not working in Meteor.startUp() function

Hi @sakshi-kataria ,
I guess is a typo, there is no Meteor.startUp(), but Meteor.startup(), right?

yes right..

We can close it now?

but why it is not working in this package.. in my project i want to do it
I write   Meteor.startup(function () {
but here typing mistake

Meteor.startup(function () {
var logPath = "E:/SmartBox_Admin/Smartbox";
// Initialize Logger
this.log = new Logger();
console.log('this.log', this.log );

// Initialize LoggerFile:
var LogFile = new LoggerFile(log, {
fileNameFormat: function(time) {
/* Create log-files hourly /
return (time.getDate()) + "-" + (time.getMonth() + 1) + "-" + (time.getFullYear()) + ".log";
},
format: function(time, level, message, data, userId) {
var date = new Date();
var ip='';
Meteor.call('getIP', function(error, result){
if(error){
console.log(error);
}
else {
ip=result;
}
});
var dtDate=date.getDate() +"/" +  date.getMonth()+"/"+date.getFullYear()+" " + (time.getHours()) + ":"  + (time.getMinutes()) + ":" + (time.getSeconds())+ "." +(time.getMilliseconds());
var user=Meteor.users.findOne(userId);
if (user!==undefined){
return "[" + level + "] " + dtDate + " HostName:"+ ip +", Message:" + message + ", User:" + user.emails[0].address + "\r\n";
}
else {
return "";
}
/ Omit Date and hours from messages /
},
path: logPath / Use absolute storage path */
});
// Enable LoggerFile with default settings
LogFile.enable();
console.log('LogFile', LogFile );
log.info('1');
}

to enable log i tried this as well
// Enable LoggerFile with default settings
LogFile.enable({enable: true,
filter: ['ERROR', 'FATAL', 'WARN', 'DEBUG', 'INFO', 'TRACE'], /* Filters: 'ERROR', 'FATAL', 'WARN', 'DEBUG', 'INFO', 'TRACE', '*' /
client: true, / This allows to call, and execute on Client */
server: true });
but still not working

Does it work from other places in code?
Try to use all default settings this.log = new Logger(); (new LoggerFile(log)).enable(); in this case is logs written?
Are you getting any issues?
Note: I've never has a chance to test it on Windows

yes it is working in another code .. only in client side
yes at log.info "method not found" error is coming
if i will Try default settings this.log = new Logger(); (new LoggerFile(log)).enable();
where logs will go i need to check it on my log file

Could you please try Server side?
Which method? Could you post full error stack?
Default path:

On dev: .meteor/local/build/programs/server/static/logs  (relative to meteor project directory)
On prod: assets/app/logs (relative to running directory)

Hi @sakshi-kataria
Is this issue still persists?

@sakshi-kataria  ?

It has been resolved


The command "Open editable diagram in browser" is still busy

When trying to create a diagram, Xcode displays the message: The command "Open editable diagram in browser" is still busy

same issue here

I encountered this issue initially only once. It looked to me that Xcode Source Code Extension initialization might be slow. Once I waited (and then I believed I restarted Xcode but I am not sure) and tried again it worked fine. Does this work for you? If not can you name your OS and Xcode versions and I'll try to see what can be done

hello @MarcoEidinger , the same situation happens to me. I'm using last OS and the last Xcode. Reload didn't helped

@DIma-Kush you might need to wait up to 45 seconds for the very first time. If this does not help please let know what is exact OS and Xcode version you are using.

well, i waited 3 hours.. and nothing heppened :-)
Big Sur 11.5.2
XCode 12.5.1

@DIma-Kush do you see a crash report for XPC service when opening the Console app on MacOS? Example:

If you see such crash report related to fatal error: Loading sourcekitd.framework/Versions/A/sourcekitd failed please check the installation path of Xcode. If it's installed under /Applications/Xcode.app, please run:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

If it's installed elsewhere, please replace the /Applications/Xcode.app path in the command above with the location where you've installed Xcode.


Fix error code in case of timeout

500 (InternalError) => 504 (GatewayTimeout)

Codecov Report

Merging #94 into 1.x will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              1.x      #94   +/-   ##
=======================================
  Coverage   97.78%   97.78%
=======================================
  Files          17       17
  Lines         678      678
=======================================
  Hits          663      663
  Misses         15       15

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 f225970...5de12aa. Read the comment docs.


Update storage-files-faq.md

This important fact should be clearly stated in the documentation:
" Azure File Sync does not overwrite any files in your sync group."

@khdownie
Can you review the proposed changes?
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off


Clarify TLS Setup from hyperglass to hyperglass-agent in the docs

Feature Description
Hi, I want to connect my hyperglass instance to multiple hyperglass agents. It's a common pattern to bind applications to localhost and terminate TLS with a local haproxy or nginx. This is also a requirement in my environment. I bound hyperglass-agent with http to localhost and nginx terminates TLS. Now I'm wondering if hyperglass can somehow connect to this?
From my understanding of the docs, hyperglass has currently no support for using a TLS client certificate, but that's not mandatory in my environment. I'm wondering what the cert option is at https://hyperglass.io/docs/adding-devices#ssl . I copied the TLS certificate from nginx to hyperglass and configured that as cert, but hyperglass fails to initiate a TLS connection. I'm wondering if this should actually be a public key and not a certificate. I will try to test this later
However, would it be possible to support a proper PKI and validate the certificate from the hyperglass-agent against a root CA and/or offer a TLS client certificate?
Is your feature request related to a problem? Please describe.
I think so. My problem is that I need to use a PKI with an inhouse CA and signed certificates.
Environment & Use Case

Additional Context

@checktheroads can you take a look here and provide some guidance please?

Hey @bastelfreak, sorry about the delay. I've been slammed with work projects and haven't had much time to put into hyperglass lately, unfortunately.
Reading through your question, I have a follow-up question. Would your environment allow for standard unencrypted HTTP calls with encrypted payloads? I.e, hyperglass would symmetrically encrypt the data payload to hyperglass-agent, hyperglass-agent would decrypt it, execute, encrypt the response in the same manner, and send it back. This is similar to what I'm thinking (but implemented over RPC instead of HTTP).
I'm considering this because I truly hate the current way hyperglass and hyperglass-agent interact with SSL. I really want the agent to be dead simple. In the above scenario, you would still define a key on both sides, and that key would be used to encrypt/decrypt the payload. But, I don't want to "scare away" security conscious users either, so I'm curious what you think.
Thanks,
Matt

Closing this out as hyperglass-agent will be deprecated (but replaced with something similar and more generic). See #143


Fix video editing error

Thanks to @kacole2 for reporting an error in the policy driven management video. The video is not properly edited, and includes portions of video that belong in other sections.

I have completed editing of this video, it should be good now.


Send email from this alias not working

On iOS with app version 2.9.1(49) the feature to "send email from this alias" stopped working.
When I enter the recipient, the address is copied as my alias instead of recipient.
Also with dark mode, it opens white with white text so you're unabble to read what you wrote in it.

Thanks for reporting this. It's already fixed here: https://github.com/KhalidWar/anonaddy/issues/79
Will publish a new update soon.