Separate blocking and async APIs

Hello again :)
Since my first contributions to this crate and now, I have learnt a lot more about how async Rust works, and I've realised we've made some mistakes I would like to fix...
Async functions should not be performing blocking operations. For example if you were building a GUI application, you would expect that when calling an async function it should not be blocking the CPU & event loop whilst waiting for monitors to update.
See: https://ryhl.io/blog/async-what-is-blocking/
So we currently have problems in both:

Linux: We are correctly calling the zbus async functions, but incorrecly doing blocking filesystem operations with std::fs
Windows: The whole thing is blocking, since the Win32 C monitor API only provides blocking functions.

I propose we fix this by having a separate blocking and async API, in the same way that many other crates do such as reqwest or zbus.
Having a blocking API is also much more convenient / ergonomic for users who are not intending to run within an async context.
I recommend running cargo doc locally to get a quick overview of the changes!
(Note: I've tested the Windows side, but not the Linux side as I don't have a suitable device setup at the moment)

Hello again and thank you for your PR.
The Linux implementation only accesses files in /sys which is a pseudo file system exposing kernel data structures. As such, it is not a priori any more blocking than other system calls. On my system, reading the current brightness "file" takes ~4 µs using std::fs. Doing the same with tokio::fs takes ~8 µs. It is common knowledge that tokio::fs can be rather slow compared to std::fs (probably partly due to the communication between the worker thread and thread dedicated to blocking operations) and using std::fs in a separate thread can yield better performance for tasks heavily using the filesystem. In comparison, allocating a socket fd takes ~3 µs. Based on this, I think the current Linux implementation is correct.
On Windows, in my limited testing, the Win API calls made by this crate seem an order of magnitude slower (hundreds of microseconds). I agree that it is likely warranted to make these calls outside of an async context. However, I would rather not force tokio on users of this crate and would prefer the blocking crate.
Other comments:

It would be helpful to have an initial commit that just moves the Windows implementation so that this large file does not show as brand new and does not require a complete review (not much should have changed).
I'd rather not introduce features in this small crate. It already depends on the rather large windows crate and zbus which has quite a few dependencies, so I don't think it's worth it to introduce a feature to segregate async-related dependencies, especially when zbus already pulls some of them. Features add their own complexity in terms of development and testing.

Hi @stephaneyfx thanks for looking at this.
The timing is interesting to know, I'm wondering have you tried with the ddcci-backlight driver for external monitors on Linux? I don't have a machine setup to test this myself, the code isn't immediately obvious to me whether this will also return immediately or if it will block until the DDC/CI commands are sent to the monitor?

I'm wondering have you tried with the ddcci-backlight driver for external monitors on Linux?

I haven't got it to work. I did enable DDC/CI in my monitor settings but no luck. There are a couple of issues in the driver repository related to the driver not working with specific hardware/settings. I haven't troubleshot my system enough to assess if I am also affected by these issues.

@stephaneyfx Ok I will install Linux on a laptop again, and get back to you once I've tested this out.
And yes my experience of using that DDC/CI driver is unfortutely not pleasant:

Package is only available for Ubuntu, on RHEL family you have to build it yourself. Having to sign the driver yourself is also a nightmare.
Hotswapping is not supported (without manually reloading module) - very irritating on a laptop or KVM switch!
Often doesn't work for certain monitors, you will need to open an issue and get the maintainers to fix it - this is because the code is very strict, but most manufacturers are not! The Windows implementation is a lot more accomodating.

It is one of the main reasons I don't run Linux on my laptop at the moment!
I have considered doing something along the lines of shelling out to ddccontrol which runs in userspace and doesn't have any of these issues - but that would be a whole load of extra work.

Thank you for looking into this. Please don't spend too much time on this though. Given the caveats and bugs in this driver, and given that it is not upstreamed yet or sometimes even packaged, it may not be a good long term solution and I think that it should not drive the implementation of this crate. Shelling out does not seem great either. I had a brief look at ddcutil which provides a C API (and there's a Rust wrapper, albeit quite old), but it is not something I will pursue in the near future unless there is interest.

Ok so I have got Ubuntu setup, it was a lot easier since I could just sudo apt install ddcci-dkms and then load the module.
I wrote a quick little test, and can confirm that the setting brightness operation via filesystem is definitely blocking, taking around 80ms for my DDC/CI monitors.
use brightness::blocking::Brightness;
use std::time::Instant;

fn main() {

    let devices = brightness::blocking::brightness_devices().unwrap();

    for device in &devices {
    	let name = device.device_name().unwrap();
    	let range = 0..101;
    	let total = range.end - range.start;
    	let now = Instant::now();
    	for i in range {
    	    std::fs::write(format!("/sys/class/backlight/{name}/brightness"), &i.to_string()).unwrap();
    	}
    	let elapsed = now.elapsed();
    	let average = elapsed / total;
        println!("Setting {name} {total} times took {:.2?} (average {:.2?})", elapsed, average);
    }
}

Results:
Setting intel_backlight 101 times took 285.25ms (average 2.82ms)
Setting ddcci7 101 times took 8.16s (average 80.83ms)
Setting ddcci8 101 times took 8.12s (average 80.35ms)

This was more or less what I was expecting from past experience, and hence why I was suggesting moving to tokio::fs in this case.
What you are definitely right about / and I didn't think about much is that the other two filesystem calls, listing the directory, and getting the current brightness are just querying the kernel, and so using std::fs is appropriate.
I will make some changes to this PR...

Being able to disable async features means substantially less dependencies, which is good for compile times:
On windows:
jacob@JACOB-PC MINGW64 ~/IdeaProjects/brightness
$ cargo tree | grep -v \* | wc -l
55

jacob@JACOB-PC MINGW64 ~/IdeaProjects/brightness
$ cargo tree --no-default-features | grep -v \* | wc -l
13

It would be helpful to have an initial commit that just moves the Windows implementation so that this large file does not show as brand new and does not require a complete review (not much should have changed).

Updated to have a separate commit. Please review the updated changes when you have time @stephaneyfx

Updated to have a separate commit. Please review the updated changes when you have time @stephaneyfx

Thank you for taking care of this. I will review and get back to you.


As a user I want to plug my dApp into ICON so that I can run it on ICON-based networks

Closing as replaced by #7 #18 #19 #21


Customize the address bar

Is there any way to make the address bar longer?

Look for following in userChrome.css
/* Move tabs 35% to right */
#TabsToolbar {
    margin-left: 32vw !important;
    width: 68vw !important;
}

/* Move navigation 65% to left and negative margin to move to top line */
#nav-bar {
    max-height: 28px !important;
    margin-right: 68vw !important;
    margin-top: -28px !important;
    width: 32vw !important;
    background: transparent !important;
    z-index: 1;
}

Here margin-left under TabsToolbar & margin-right under nav-bar is what you need to edit. If you increase one then make sure to decrease the other so that they both sum up to 100.
x vw means x% of viewport's(screen) width. So increase margin-left to increase address bar size


Form not reset when calling reset action

The Problem
When I fire a form.reset action, it is followed by several change actions which refill the values
Steps to Reproduce
I could not reproduce it on codepen but I setup a repo with the problem.
https://github.com/ramiel/reduxform-nextjs-test
To reproduce it

npm i && npm run dev (then on localhost:8000)
Clik on user list
Client on edit
Click on 'create new user'
If you look at the actions a reset one is followed by several change which put back any value of th form.
I'm sorry if I could not reproduce it with less code

Expected Behavior
The form is cleared
Actual Behavior
The form is left the same
Reproducible Code Example
(please fork from this CodePen template)

Two more hint:

if I do reset('model.leaf.property') it works and no change are fired.
change('user', {}) is a workaround.

Btw, I think I'm misunderstanding something...


Dotnet 7.0 Not Showing up after Install

dotnet new webapi -o MyMicroservice --no-https -f net7.0
After running the above command I get an error indicating:
Error: Invalid option(s):
-f net7.0
'net7.0' is not a valid value for -f. The possible values are:
net5.0          - Target net5.0
net6.0          - Target net6.0
netcoreapp2.1   - Target netcoreapp2.1
netcoreapp3.0   - Target netcoreapp3.0
netcoreapp3.1   - Target netcoreapp3.1
Like the SDK did not take.

Hello,
As a first step, can you try to install .NET 7 (even if you've already done that), after that can you post your dotnet --info output here?

Maybe it could be a PATH issue as well. Can you check all versions are all installed under the same folder?
https://learn.microsoft.com/en-us/dotnet/core/install/how-to-detect-installed-versions
And what where.exe dotnet returns?


Use with Xamarin Media Manger to Stream Song

Hello, is it possible that once I obtain the HREF to a Track to use https://github.com/Baseflow/XamarinMediaManager to Stream the track? Would I have to pass access token some how?
Trying to just use Client Credentials (my apps client id and secret)

Hi @aherrick
Sorry for the late response.
It's not possible to receive a raw audio stream with the Web API. There is a streaming SDK for the browser or mobile platforms, but they also don't allow to receive the "raw" stream, only a DRM protected one.


DDLS-216 - Expand the Lay Deputy User cleanup job to include incomplete user records

Purpose
There is an existing Lay Deputy User cleanup Command job in the system 'digideps:delete-zero-activity-users' which deletes lay user(s) that have never had any activity after 30 days of registration. This job can be expanded to include user(s) that have not attempted or completed the registration after a certain period since they were sent a user activation link either through self-registration, admin invite or co-deputy invite.
The cut off dates for users that have NOT set a password and users that have set a password will be different, so both these scenarios would need to be dealt with separate logic.
These users should not have a registration date but they will have a token_date and a last_logged_in date if they have set the password and then left the process. The criteria to consider the user(s) would be based on either the token_date or last_logged_in date or both.
There may be cases where active users might not have a registration date (to be confirmed), and so we will need to accommodate for these users to ensure they are not deleted. One check we can do is to make sure they are not associated with a client and do checks on the report (submitted dates etc.)
Fixes DDLS-216
Approach
Explain how your code addresses the purpose of the change
Learning
Any tips and tricks, blog posts or tools which helped you. Plus anything notable you've discovered about DigiDeps
Checklist

[ ] I have performed a self-review of my own code
[ ] I have updated documentation (Confluence/ADR/tech debt doc) where relevant
[ ] I have added tests to prove my work
[ ] The product team have approved these changes
[ ] I have checked my work for potential security issues and refered to the OWASP top 10

Frontend

[ ] I have run an in-browser accessibility test (e.g. WAVE, Lighthouse)
[ ] There are no deprecated CSS classes noted in the profiler
[ ] Translations are used and the profiler doesn't identify any missing
[ ] Any links or buttons added are screen reader friendly and contextually complete
[ ] If adding GA events, I have updated or checked the existing category or label values

Left a few comments.
Is it possible to add a test that checks that only the expected inactive users are returned? I think the best way to do this would be to test the findInactive() method in the UserRepository.php.

No, due to the states that accounts need to be in. It would require much more work to allow the fixtures to create the required states. You can manually test this if you wish


Windows terminal issue caused by conpty

VSCode Version: 1.33.1
OS Version: win10 18362

Steps to Reproduce:

Open VS Code terminal
VS Code crashes with error "This window has crashed" error

Mitigation:
Added below to settings, fixes the issue
{
"terminal.integrated.windowsEnableConpty": false
}
Does this issue occur when all extensions are disabled?: Yes
Crash log:
Code__PID__30124__Date__04_29_2019__Time_01_27_53PM__101__Log.txt

Upgrade to the 64-bit VS Code client
/duplicate https://github.com/Microsoft/vscode/issues/72190


Update EntitySheetConfig to Foundry VTT 0.7.9

Which class should be updated?
EntitySheetConfig
For which version should the class be updated?
Foundry VTT 0.7.9

Taking this.


Utility to determine the Names In Scope for Method Bodies

Draft WIP

@JLLeitschuh just added a visitor to find names in scope.


Changed indentation from spaces to tabs

Changed indentation from 2 spaces to tabs in two snippets. Since Sublime converts tabs to whatever setting is currently active, this provides more options for anyone using the snippets.

Thanks for your contribution!


How to integrate with Angular?

Hello.
I'm currently trying to put together monaco-languageclient along with vscode-ws-jsonrpc on an Angular 6.x project using ngx-monaco-editor component but without much luck.
Here's how my code looks like:
import { Component, Input } from '@angular/core';
import {
  BaseLanguageClient,
  CloseAction,
  ErrorAction,
  MonacoServices,
  MonacoLanguageClient,
  createConnection,
} from 'monaco-languageclient';
import { listen } from 'vscode-ws-jsonrpc';
import { finalize } from 'rxjs/operators';
const ReconnectingWebSocket = require('reconnecting-websocket');

@Component({
  selector: 'script-csharp',
  templateUrl: './script-csharp.component.html',
  styleUrls: ['./script-csharp.component.css'],
})
export class ScriptCsharpComponent {
  file: NgxEditorModel = {
    uri: 'File.cs',
    language: 'csharp',
    value: '',
  };

  config: any = {
    theme: 'vs-dark',
    language: 'csharp',
    lineNumbers: 'on',
    glyphMargin: true,
    lightbulb: {
      enabled: true,
    },
  };

  onMonacoInit(editor: any) {
    const url = `ws://example.com`;
    const webSocket = this.createWebSocket(url);

    MonacoServices.install(editor);

    listen({
      webSocket,
      onConnection: connection => {
        const languageClient = this.createLanguageClient(connection);
        const disposable = languageClient.start();
        connection.onClose(() => disposable.dispose());
      },
    });
  }

  private createWebSocket(url: string) {
    return new ReconnectingWebSocket(url, undefined, {
      maxReconnectionDelay: 10000,
      minReconnectionDelay: 1000,
      reconnectionDelayGrowFactor: 1.3,
      connectionTimeout: 10000,
      maxRetries: Infinity,
      debug: false,
    });
  }

  private createLanguageClient(connection: any): BaseLanguageClient {
    return new MonacoLanguageClient({
      name: 'C# Client',
      clientOptions: {
        documentSelector: ['csharp'],
        errorHandler: {
          error: () => ErrorAction.Continue,
          closed: () => CloseAction.DoNotRestart,
        },
      },
      connectionProvider: {
        get: (errorHandler, closeHander) => {
          return Promise.resolve(
            createConnection(connection, errorHandler, closeHander)
          );
        },
      },
    });
  }
}

And here's a list of the major erros I'm getting:
ERROR in node_modules/monaco-languageclient/lib/monaco-converter.d.ts(1,23): error TS2688: Cannot find type definition file for 'monaco-editor-core/monaco'.

node_modules/monaco-languageclient/lib/monaco-converter.d.ts(98,63): error TS2694: Namespace 'monaco.languages' has no exported member 'DocumentSymbol'.

node_modules/vscode-base-languageclient/lib/client.d.ts(1,884): error TS2307: Cannot find module 'vscode'.

node_modules/vscode-ws-jsonrpc/lib/index.d.ts(2,1): error TS2308: Module 'vscode-jsonrpc' has already exported a member named 'ErrorCodes'. Consider explicitly re-exporting to resolve the ambiguity.

I'm stuck with this for a week now and would apreciate any kind of help.

Hello
I have just faced with the same problem. Have you tried exclude ngx-monaco-editor and add monaco-editor-core to avoid conflicts?

@alexander-makarevich , in your tsconfig.json add "skipLibCheck": true.

Just trying monaco-languageclient with Angular 8. "skipLibCheck": true is no longer effective anymore.

I've updated my example to show how to integrate monaco-languaeclient with Angular

can you please update your repo? I'm stuck with error: Module not found: Error: Can't resolve 'vscode'

@Androsid , can provide more details? Are you using Angular 9? Maybe you should raise another issue to track it.

@Androsid , can provide more details? Are you using Angular 9? Maybe you should raise another issue to track it.

yes. i'm using angular 9

@lcnandre Could you please share some details about csharp LSP implementation.

Has anyone successfully integrated this in React?

Successfully integrated this with Angular 10.
Steps:

Used this to load Monaco Editor Core 0.30.1 - https://github.com/microsoft/monaco-editor/blob/main/docs/integrate-amd.md. Added node_modules/monaco-editor-core to assets in angular.json for building this as an asset on server.
Added monaco-languageclient 0.17.3 and other dependencies highlighted in example package.json
Used https://www.npmjs.com/package/@angular-builders/custom-webpack 10.0.0 to provide an extra webpack config for adding resolve alias by referring to example in monaco-languageclient library. Use required version of angular-builder by referring to your project's Angular version.

Rest used the client.ts example in the example folder.

@kalraDikshit I'm trying to integrate it with Angular 11. Can you share your repository?

@kalraDikshit sorry, just to clarify, did you use the browser example or the regular example? I'm a bit confused to what the difference is between the 2.

I have this part of code in my Angular app:
public onEditorInit(editor: any): void {
    // install Monaco language client services
    MonacoServices.install(editor);

    // create the web socket
    const url = this.createUrl('localhost', 3000, '/');
    const webSocket = new WebSocket(url);

    webSocket.onopen = () => {
      const socket = toSocket(webSocket);
      const reader = new WebSocketMessageReader(socket);
      const writer = new WebSocketMessageWriter(socket);
      const languageClient = this.createLanguageClient({
        reader,
        writer
      });
      languageClient.start();
      reader.onClose(() => languageClient.stop());
    };
  }

  private createUrl (hostname: string, port: number, path: string): string {
    const protocol = location.protocol === 'https:' ? 'wss' : 'ws';
    return `${protocol}://${hostname}:${port}${path}`;
}

  private createLanguageClient (transports: MessageTransports): MonacoLanguageClient {
    return new MonacoLanguageClient({
      name: 'Sample Language Client',
      clientOptions: {
        // use a language id as a document selector
        documentSelector: ['typescript'],
        // disable the default error handler
        errorHandler: {
          error: () => ({ action: ErrorAction.Continue }),
          closed: () => ({ action: CloseAction.DoNotRestart })
        }
      },
      // create a language client connection from the JSON RPC connection on demand
      connectionProvider: {
        get: () => {
          return Promise.resolve(transports);
        }
      }
    });
  }

When I run application I get this list of errors:

ERROR in node_modules/vscode/dist/services.d.ts:11790:5 - error TS1131: Property or signature expected.
11790     get hasSaveParticipants(): boolean;
~~~
node_modules/vscode/dist/services.d.ts:11790:9 - error TS1005: ';' expected.
11790     get hasSaveParticipants(): boolean;
~~~~~~~~~~~~~~~~~~~
node_modules/vscode/dist/services.d.ts:11790:30 - error TS1005: ';' expected.
11790     get hasSaveParticipants(): boolean;
~
node_modules/vscode/dist/services.d.ts:11794:35 - error TS1005: ',' expected.
11794     addSaveParticipant(participant: IStoredFileWorkingCopySaveParticipant): IDisposable;
~
node_modules/vscode/dist/services.d.ts:11794:75 - error TS1005: ';' expected.
11794     addSaveParticipant(participant: IStoredFileWorkingCopySaveParticipant): IDisposable;
~
node_modules/vscode/dist/services.d.ts:11798:36 - error TS1005: ',' expected.
11798     runSaveParticipants(workingCopy: IStoredFileWorkingCopy, context: {
~
node_modules/vscode/dist/services.d.ts:11798:89 - error TS1109: Expression expected.
11798     runSaveParticipants(workingCopy: IStoredFileWorkingCopy, context: {
~
node_modules/vscode/dist/services.d.ts:11798:98 - error TS1005: ',' expected.
11798     runSaveParticipants(workingCopy: IStoredFileWorkingCopy, context: {
~
node_modules/vscode/dist/services.d.ts:11799:27 - error TS1005: ',' expected.
11799         reason: SaveReason;
~
node_modules/vscode/dist/services.d.ts:11800:13 - error TS1005: ',' expected.
11800     }, token: CancellationToken): Promise;
~
node_modules/vscode/dist/services.d.ts:11800:33 - error TS1005: ';' expected.
11800     }, token: CancellationToken): Promise;
~
node_modules/vscode/dist/services.d.ts:11800:48 - error TS1005: '(' expected.
11800     }, token: CancellationToken): Promise;
~
node_modules/vscode/dist/services.d.ts:11807:22 - error TS1005: ',' expected.
11807     create(operations: ICreateFileOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
~
node_modules/vscode/dist/services.d.ts:11807:45 - error TS1011: An element access expression should take an argument.
11807     create(operations: ICreateFileOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
node_modules/vscode/dist/services.d.ts:11807:53 - error TS1005: ',' expected.
11807     create(operations: ICreateFileOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
~
node_modules/vscode/dist/services.d.ts:11807:83 - error TS1109: Expression expected.
11807     create(operations: ICreateFileOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
~
node_modules/vscode/dist/services.d.ts:11807:112 - error TS1005: ';' expected.
11807     create(operations: ICreateFileOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
~
node_modules/vscode/dist/services.d.ts:11807:155 - error TS1005: '(' expected.
11807     create(operations: ICreateFileOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
~
node_modules/vscode/dist/services.d.ts:11817:28 - error TS1005: ',' expected.
11817     createFolder(operations: ICreateOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
~
node_modules/vscode/dist/services.d.ts:11817:47 - error TS1011: An element access expression should take an argument.
11817     createFolder(operations: ICreateOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
node_modules/vscode/dist/services.d.ts:11817:55 - error TS1005: ',' expected.
11817     createFolder(operations: ICreateOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
~
node_modules/vscode/dist/services.d.ts:11817:85 - error TS1109: Expression expected.
11817     createFolder(operations: ICreateOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
~
node_modules/vscode/dist/services.d.ts:11817:114 - error TS1005: ';' expected.
11817     createFolder(operations: ICreateOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
~
node_modules/vscode/dist/services.d.ts:11817:157 - error TS1005: '(' expected.
11817     createFolder(operations: ICreateOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
~
node_modules/vscode/dist/services.d.ts:11825:20 - error TS1005: ',' expected.
11825     move(operations: IMoveOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
~
node_modules/vscode/dist/services.d.ts:11825:37 - error TS1011: An element access expression should take an argument.
11825     move(operations: IMoveOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
node_modules/vscode/dist/services.d.ts:11825:45 - error TS1005: ',' expected.
11825     move(operations: IMoveOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
~
node_modules/vscode/dist/services.d.ts:11825:75 - error TS1109: Expression expected.
11825     move(operations: IMoveOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
~
node_modules/vscode/dist/services.d.ts:11825:104 - error TS1005: ';' expected.
11825     move(operations: IMoveOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
~
node_modules/vscode/dist/services.d.ts:11825:147 - error TS1005: '(' expected.
11825     move(operations: IMoveOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
~
node_modules/vscode/dist/services.d.ts:11833:20 - error TS1005: ',' expected.
11833     copy(operations: ICopyOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
~
node_modules/vscode/dist/services.d.ts:11833:37 - error TS1011: An element access expression should take an argument.
11833     copy(operations: ICopyOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
node_modules/vscode/dist/services.d.ts:11833:45 - error TS1005: ',' expected.
11833     copy(operations: ICopyOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
~
node_modules/vscode/dist/services.d.ts:11833:75 - error TS1109: Expression expected.
11833     copy(operations: ICopyOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
~
node_modules/vscode/dist/services.d.ts:11833:104 - error TS1005: ';' expected.
11833     copy(operations: ICopyOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
~
node_modules/vscode/dist/services.d.ts:11833:147 - error TS1005: '(' expected.
11833     copy(operations: ICopyOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<readonly IFileStatWithMetadata[]>;
~
node_modules/vscode/dist/services.d.ts:11841:22 - error TS1005: ')' expected.
11841     delete(operations: IDeleteOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise;
~
node_modules/vscode/dist/services.d.ts:11841:41 - error TS1011: An element access expression should take an argument.
11841     delete(operations: IDeleteOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise;
node_modules/vscode/dist/services.d.ts:11841:49 - error TS1005: ';' expected.
11841     delete(operations: IDeleteOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise;
~
node_modules/vscode/dist/services.d.ts:11841:79 - error TS1109: Expression expected.
11841     delete(operations: IDeleteOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise;
~
node_modules/vscode/dist/services.d.ts:11841:107 - error TS1005: ';' expected.
11841     delete(operations: IDeleteOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise;
~
node_modules/vscode/dist/services.d.ts:11841:108 - error TS1128: Declaration or statement expected.
11841     delete(operations: IDeleteOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise;
~
node_modules/vscode/dist/services.d.ts:11841:123 - error TS1005: '(' expected.
11841     delete(operations: IDeleteOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise;
~
node_modules/vscode/dist/services.d.ts:11847:41 - error TS1005: ',' expected.
11847     registerWorkingCopyProvider(provider: WorkingCopyProvider): IDisposable;
~
node_modules/vscode/dist/services.d.ts:11847:63 - error TS1005: ';' expected.
11847     registerWorkingCopyProvider(provider: WorkingCopyProvider): IDisposable;
~
node_modules/vscode/dist/services.d.ts:11853:22 - error TS1005: ',' expected.
11853     getDirty(resource: URI): readonly IWorkingCopy[];
~
node_modules/vscode/dist/services.d.ts:11853:28 - error TS1005: ';' expected.
11853     getDirty(resource: URI): readonly IWorkingCopy[];
~
node_modules/vscode/dist/services.d.ts:11853:30 - error TS1128: Declaration or statement expected.
11853     getDirty(resource: URI): readonly IWorkingCopy[];
~~~~~~~~
node_modules/vscode/dist/services.d.ts:11853:52 - error TS1011: An element access expression should take an argument.
11853     getDirty(resource: URI): readonly IWorkingCopy[];
node_modules/vscode/dist/services.d.ts:11854:1 - error TS1128: Declaration or statement expected.
11854 }
~
src/app/client/src/monaco-language-client.ts:80:24 - error TS1005: ';' expected.
80     protected override registerBuiltinFeatures () {
~~~~~~~~~~~~~~~~~~~~~~~

Can someone help with this errors? I do not know what is wrong, am I doing something wrong or there is problem with installed modules?

You seem to use a VERY old version of the library

Which is newest one? I installed latest dependencies for monaco-languageclient and vscode-ws-jsonrpc. The code example I took from examples of this repository.
"monaco-languageclient": "^3.0.1",
"vscode-ws-jsonrpc": "^1.0.2",

Then you are using the last version but you use it as it's an old version, where does that code come from? refer to the provided examples

I found the code here https://github.com/TypeFox/monaco-languageclient/blob/main/packages/examples/client/src/client.ts

MonacoServices.install doesn't take the editor as parameter, so no, the code doesn't come from there
Btw, you have very weird typescript error in d.ts files, are you using a old typescript?

I added that parameter, it gives the same result if I remove it. I use TS 3.9 and Angular 10.

typescript 3.9 is more than 2 years old

We plan to add an Angular example here and therefore opened this issue: https://github.com/TypeFox/monaco-languageclient/issues/414


[WIP] Implementation of .NET workshop using AWS CDK (TypeScript)

Implementation of DotNet workshop using AWS CDK (TypeScript)
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Recreating - too much noise


Adobe Photoshop Plug-in for DDS

A plug-in for Adobe Photoshop to support .DDS files based on DirectXTex to provide full support for all formats.
NVIDIA has a DDS plugin in for Adobe Photoshop, but it does not support the "DX10" header extension, BC6H, or BC7.  https://developer.nvidia.com/nvidia-texture-tools-adobe-photoshop

Intel has a newer photoshop plugin available. See this blog post and GibHub


Feat bib preview (closes #1162)

This PR enables to have abbr and preview for a single publication (closing #1162).
The following example shows all three possibilities: 1) Preview + Abbr 2) Preview only 3) Abbr only.

The image displayed on small screen such as phone isn't correct.

result

Thanks. Good catch. This seems again to be fixable by using standard-compliant bootstrap features (instead of manual CSS magic).
Before

After

...

  Vision
To solve the layout problem, try removing the "abbr" class from the  in the above code and replace it with .
To make the image 100%, try modifying the following in css:
.col-sm-2 img {
width: 100%;
height: auto;
}


use AOT optimizations for Micronaut Example

can you update your readme instructions about how to create the app required?

@sdelamo I tried this PR again, and now it doesn't start successfully.
$ build/native/nativeOptimizedCompile/app
 __  __ _                                  _
|  \/  (_) ___ _ __ ___  _ __   __ _ _   _| |_
| |\/| | |/ __| '__/ _ \| '_ \ / _` | | | | __|
| |  | | | (__| | | (_) | | | | (_| | |_| | |_
|_|  |_|_|\___|_|  \___/|_| |_|\__,_|\__,_|\__|
  Micronaut (v3.9.3)

Exception in thread "main" java.lang.NoSuchMethodError: java.lang.invoke.MethodHandle.get()
	at com.example.rest.BeanDefinitionReferenceFactory.findAll(BeanDefinitionReferenceFactory.java:968)
	at io.micronaut.core.io.service.SoftServiceLoader$StaticServiceLoader.load(SoftServiceLoader.java:380)
	at io.micronaut.core.io.service.SoftServiceLoader$StaticServiceLoader.load(SoftServiceLoader.java:376)
	at io.micronaut.core.io.service.SoftServiceLoader.collectStaticServices(SoftServiceLoader.java:202)
	at io.micronaut.core.io.service.SoftServiceLoader.collectAll(SoftServiceLoader.java:172)
	at io.micronaut.context.DefaultBeanContext.resolveBeanDefinitionReferences(DefaultBeanContext.java:1753)
	at io.micronaut.context.DefaultApplicationContext.isBootstrapPropertySourceLocatorPresent(DefaultApplicationContext.java:157)

yup, investigating. Sorry for the nonie. I will make sure it passes and ping you again.

@mraible it should work now. It seems with have an issue with some optimisations, Java 17 and graalvm . We are investigating.
By the way, with this changes: I am seeing 18ms startup time in MacBook Air M1 16GB.
./gradlew nativeOptimizedCompile
./build/native/nativeOptimizedCompile/app

@sdelamo I tested your latest code and found the following startup times:
(20 + 25 + 18 + 29 + 27) / 5 = 23.8
If I test the non-optimized code, I see:
(24 + 34 + 31 + 21 + 33) / 5 = 28.6

do you test only startup time? You don't test time to first request? Would you be interested on contributing a script to test time to first request?

That's correct, I only tested startup time. I used the value (in milliseconds) printed by each framework.
I saw a talk from @alina-yur at Devoxx UK where she had some nice scripts for timing things. I asked her if they were available in a public repo. Her response:

They aren't but I don't think they should be a secret. Let me talk to them, maybe we can publish them in a blog post.

If you have similar scripts, I'd love to use them!

We have this one, it is not scientific but I think it gives you an idea of the time to first response
https://github.com/micronaut-projects/scripts/blob/main/ttfr.sh

@sdelamo I upgraded the Micronaut example to 4.0.3 in https://github.com/oktadev/auth0-java-rest-api-examples/pull/4. Are these changes still necessary for Micronaut 4?

FWIW, I updated the performance numbers using Micronaut 4 today.

Startup - starts faster than Quarkus now!
Memory - consumes more initial memory, but less after requests


Kick feature now working

Fixes #1375
The function named 'removeClient()' was being called twice when the admin kicked the user. This was because when admin kicked the user a method was called named as 'forceDisconnect' which called the 'removeClient' method, which leaded to the user being in a list named 'disconnectedClients'. Now when the user gets kicked successfully, the evil method here is called named 'channelDisconnect'. It again used to call 'removeClient' but there was no client and hence nullPointerException. So I modified the code accordingly.

Can one of the admins please verify this patch?

ok to test
Thanks for the PR! :-)

Refer to this link for build results (access rights to CI server needed):
http://jenkins.terasology.org/job/TerasologyPRs/450/
Hooray Jenkins reported success with all tests good!

Works! Can confirm bug is fixed with this :-)
However, could you check your whitespace config and run Checkstyle on your changes? A lot of the changes are actually just indentation changing away from our style convention. So where before we had:
            switch (mode) {
                case LISTEN_SERVER:
                case DEDICATED_SERVER:
                    if (metadata.isReplicated()) {
                        for (NetClient client : netClientList) {
                            client.setComponentDirty(netComp.getNetworkId(), component);
                        }
                    }
                    break;
                case CLIENT:
                    if (server != null && metadata.isReplicatedFromOwner() && getOwnerEntity(entity).equals(server.getClientEntity())) {
                        server.setComponentDirty(netComp.getNetworkId(), component);
                    }
                    break;
                default:
                    break;
            }

After with your changes we got:
            switch (mode) {
                case LISTEN_SERVER:
                case DEDICATED_SERVER:
                if (metadata.isReplicated()) {
                    for (NetClient client : netClientList) {
                        client.setComponentDirty(netComp.getNetworkId(), component);
                    }
                }
                break;
                case CLIENT:
                if (server != null && metadata.isReplicatedFromOwner() && getOwnerEntity(entity).equals(server.getClientEntity())) {
                    server.setComponentDirty(netComp.getNetworkId(), component);
                }
                break;
                default:
                break;
            }

Probably your indentation changes differ from our project / IntelliJ default for some reason. There are also a few double-indentations missing where a line continuation would normally get 2 x standard indent.
Finally there's a single spot where an if statement isn't surrounded with curly braces which again is what our style guide calls for :-)
You should be able to make the changes in a second commit, push to your fork, and this PR will update automatically. Then we can merge!

Oh yeah, actually I was using sublime text, and have a habit of pressing cmd+shift+P and indent it from there, sorry about that :P.

Refer to this link for build results (access rights to CI server needed):
http://jenkins.terasology.org/job/TerasologyPRs/452/
Hooray Jenkins reported success with all tests good!

No problem :-)
Do you have IntelliJ or Eclipse handy? I don't know if Checkstyle works in Sublime. There are still a few warnings highlighted:

Refer to this link for build results (access rights to CI server needed):
http://jenkins.terasology.org/job/TerasologyPRs/453/
Hooray Jenkins reported success with all tests good!

Refer to this link for build results (access rights to CI server needed):
http://jenkins.terasology.org/job/TerasologyPRs/456/
Hooray Jenkins reported success with all tests good!

I tried to fix it on sublime only.... I have netbeans but for some reason checkStyle isn't working, I really hope there are no errors now.

You got it! :+1: No more warnings

Merged and added to credits! Thank you so much :-)


Replace md5 with sha512

MD5 is not FIPS compliant thus I am proposing replacement with SHA512.

This is not a cryptographic use of md5, we are not handling unsafe input here, so I do not see the point: a slower algorithm with no added security benefit.

@Gallaecio we should allow some sort of switch
md5 is not FIPS compliant, and will crash on FIPS enabled machines. unless the usedforsecurity=false which is only avaialable on python >3.9

Sounds like setting usedforsecurity=False on Python 3.9+ is the way forward, then.


Do not call inexistent locales

In dynamic module calls do not call langs that we don't have.

@igas will raising an exception will be the right way to proceed here?

I don't think so, we should fallback to defaults.
For example if I call Faker.Name.name for locale set to :id. And we don't have an Faker.Name.Id it should call Faker.Name.En.
I see it something like this:

check if :faker app started.
If it is grab locale and check that we have module for this locale.
If any of this false fall back to En

It'll be a little bit more difficult when we will introduce sublocales like EnUk, EnUs, EnAu and so on, in that case I think we will check for EnUk for example if this MFA doesn't exist check for just En.
It'll make usage much simpler from my point of view.
Any suggestions?
/cc @vforvova

@igas fallback to defaults is good idea, but what if we have partial implementation of Faker for some language?
For example, we have Faker.Name.En, Faker.Company.En as default and Faker.Name.Ru for Russian language. If we send name to Faker.Name with Russian as current language, we will get any Russian name. But if we send Faker.Company with Russian language, we will get English company name. It feels confusing a bit... but I have no ideas how to resolve this issue.

After a while I had some time to take another look to this issue.
I'm proposing a solution similar to the the one described above by @igas, which looks as follows:
Instead of repetitively defining each localized function over and over in each file, we could abstract that piece of code into a reusable construct, like a macro. That way, this:
def name, do: Module.concat(__MODULE__, Faker.mlocale)

can be replaced by this:
defmodule Faker.Color do
  use Faker.Locale

  localize :name
end

Faker.Locale would simple collect all function names that need to be localized, and resolve the right module to call.
@vforvova  your point is valid but I strongly feel that, that specific issue is really hard to solve; I see the following approaches here:

The simple way would be to delegate the responsibility to the consumer, we just fallback if there's no localization for a specific module.
The best way will be to have an extension mechanism, that way your example above will be solved by the consumer extending Faker.Company to Russian. If we decide to go this way, it might be better to open a dedicated issue for this IMHO.

I have a WIP branch here: https://github.com/saulecabrera/faker/blob/dynamic-calls/lib/faker/locale.ex
I would appreciate your thoughts on this.

Hi @saulecabrera,
Great code out there, I got some inspiration from it and created #173. What do you think?

@igas Sorry for the delay! I feel that your solution is a nice iteration to mine, specially because the amount of metaprogramming is less. I'm all in with this!


TextField onSubmitted not being called properly when pressing Enter on external keyboard on iOS.

Hi, I have an issue on iOS devices when using an external keyboard, the TextField's onSubmitted only gets called by pressing enter twice. This issue is not found in Flutter versions below version 2.2.3.
Steps to Reproduce

Connect an external keyboard on the iOS device and run the sample code below. (It can also be reproduced on the iOS emulator.)
Select the first TextField.
Press Enter to move to the second focus.
Press Enter to move to the first focus.

If you're using a soft keyboard or hitting enter very quickly, there's no problem, but if you press enter slowly using an external keyboard, you'll see that onSubmitted is not being called properly.

Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

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

  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final FocusNode firstNode = FocusNode();
  final FocusNode secondNode = FocusNode();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Padding(
              padding: const EdgeInsets.all(16),
              child: Column(
                children: [
                  TextField(
                    focusNode: firstNode,
                    decoration: const InputDecoration(
                      labelText: "first text field",
                    ),
                    onSubmitted: (_) {
                      print("first text field onSubmitted");
                      FocusScope.of(context).requestFocus(secondNode);
                    },
                  ),
                  TextField(
                    focusNode: secondNode,
                    decoration: const InputDecoration(
                      labelText: "second text field",
                    ),
                    onSubmitted: (_) {
                      print("second text field onSubmitted");
                      FocusScope.of(context).requestFocus(firstNode);
                    },
                  ),
                ],
              ),
            ),
          ],
        ),
      ),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel unknown, 2.10.0, on macOS 12.0.1 21A559 darwin-x64, locale ko-KR)
    • Flutter version 2.10.0 at /Users/nero/Project/FlutterContribution/flutter
    • Upstream repository unknown
    • Framework revision 5f105a6ca7 (8 days ago), 2022-02-01 14:15:42 -0800
    • Engine revision 776efd2034
    • Dart version 2.16.0
    • DevTools version 2.9.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/nero/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Volumes/Lecture HD/Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    • All Android licenses accepted.

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

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

[✓] Android Studio (version 3.6)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 44.0.2
    • Dart plugin version 192.7761
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)

[✓] Android Studio (version 2020.3)
    • Android Studio at /Volumes/Lecture HD/Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

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

[✓] VS Code (version 1.63.2)
    • VS Code at /Volumes/Lecture HD/Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.34.0

[✓] Connected device (3 available)
    • SM G950N (mobile)  • ce0317136a2c08f10c                   • android-arm64  • Android 9 (API 28)
    • iPhone 13 (mobile) • 2A06E0D7-FBAB-4FBD-AFA9-34FB720E1B61 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-15-2
      (simulator)
    • Chrome (web)       • chrome                               • web-javascript • Google Chrome 98.0.4758.80

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

• No issues found!

HI @nero-angela, Thanks for filing the issue. I am able to reproduce the issue on stable channel but not on the master channel.  You may verify this by switching to master by running
flutter channel master
flutter upgrade

Issue reproduces at 27th second in the video

stable 2.10.1 ❌
master 2.11 ✅

✅ : No Issue ❌: Issue reproduced
looks related to https://github.com/flutter/flutter/issues/96726 (closed)

flutter doctor -v
[✓] Flutter (Channel stable, 2.10.1, on macOS 12.1 21C52 darwin-arm, locale en-GB)
    • Flutter version 2.10.1 at /Users/mahesh/Documents/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision db747aa133 (15 hours ago), 2022-02-09 13:57:35 -0600
    • Engine revision ab46186b24
    • Dart version 2.16.1
    • DevTools version 2.9.2

⣽^[^[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

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

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

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

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

[✓] Connected device (4 available)
    • Redmi K20 Pro (mobile) • <IP_ADDRESS>:5555                     • android-arm64  • Android 11 (API 30)
    • iPhone 12 Pro (mobile) • 14F40EC6-3B73-469A-A1C0-8CF0B152290F • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   • macOS 12.1 21C52 darwin-arm
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 98.0.4758.80

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

• No issues found!

@maheshmnj thank you :)
I'll close the issue as it works fine on the master channel.


Multiple links under “Project resources” are throwing 404 error

https://pypi.org/project/opensearch-dsl/1.0.0/

Hi @VachaShah, I'm not sure if the link checker was the aim of the issue.
From what I understand, the links on the page https://pypi.org/project/opensearch-dsl/ doesn't redirect. @VijayanB, could you please shed more light on this? Please feel free to correct me if I'm wrong.
Having absolute URLs instead of relative URLs in the README.md would fix this issue from the next package release.

This was somewhat fixed in opensearch-py, https://raw.githubusercontent.com/opensearch-project/opensearch-py/main/README.md
PR #34 was aimed to align the README.md with the above https://raw.githubusercontent.com/opensearch-project/opensearch-dsl-py/main/README.md.

Ah my bad I misunderstood! Reopening the issue.

The PR #34 is merged, the new package when released on PyPI wouldn't have this issue. I think this can be closed.

Thank you @vchrombie!


unhide-gui: init at 20220611

Releases: https://github.com/YJesus/Unhide/releases/tag/v20220611

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[x] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@superherointj

Regarding package name, please read:
https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#package-naming

The pname and the version attribute must not contain uppercase letters — e.g., "mplayer" instead of "MPlayer".

Please, squash commits.

Please, (always) squash commits.

^

squashed


Homotopies with one input and output are rendered as identites

Homotopies with one input and one output should be rendered as a vertex. These should be easy to detect since we just need to distinguish them from identities. Calin I remember we discussed this recently, could you take a look at it?

Yes I've been meaning to do this. I have figured out the correct way to do this once and for all:

Check if the front layer is a homotopy by checking the codimension of the maximum-dimensional generator.
If it's not a homotopy, it's an algebraic point so we always render the vertex.
If it is a homotopy, we render the vertex unless it's an identity.

I have already done 1 and 2, I only need to implement 3.
This should work in every case:

braidings will be not rendered as if you restrict to the front layer, they are the same as an identities.
any non-identity homotopies will be rendered, including units, counits, cups, caps, spiders, etc.

In the labelled brach, we might want to add a special case for orientation 0 generators such as cups and caps.

Also related to #599

Restricting to the front layer also ensures that braidings with a bead on top are rendered correctly:

Hi Calin, I'm confused, why won't this put a vertex on a braiding?

Because if you restrict to the front layer, it has one strand going in and one strand going out and both are locally identities. So it will be treated as if it's an identity, i.e. no vertex.

I guess I don't understand how you can determine that the incoming strands are both "locally identities".

You look at the cone at the given depth and check if it's trivial.

But it won't be trivial, surely? Because it has source width 2. Maybe I'm misunderstanding, anyway if it's clear to you how to proceed that's the main thing, you can tell me what I'm getting wrong next time we meet.

Fixed by 9e1c4e1e21cec9875e3255f5da7bf00c8101f19c


Add topics to Github repo

fixes #591
Which issue does this PR close?

Closes #591.
Rationale for this change

To add Github topics the the repo.
See also
https://cwiki.apache.org/confluence/display/INFRA/Git+-+.asf.yaml+features#Git.asf.yamlfeatures-Repositorymetadata
What changes are included in this PR?

Are there any user-facing changes?

I have a question: why labels are not shown now such as datafusion, ballista, bug and etc.

@xudong963 I think because the yaml is not correctly written. Missing - for each item so that it's parsed as a list.
Just my guess.

@xudong963 I think because the yaml is not correctly written. Missing - for each item so that it's not parsed as a list. Just my guess.

I took a quick look at Spark, I think you are right!

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# https://cwiki.apache.org/confluence/display/INFRA/git+-+.asf.yaml+features
---
github:
  description: "Apache Spark - A unified analytics engine for large-scale data processing"
  homepage: https://spark.apache.org/
  labels:
    - python
    - scala
    - r
    - java
    - big-data
    - jdbc
    - sql
    - spark
  enabled_merge_buttons:
    merge: false
    squash: true
    rebase: true

Thanks for the review! Updated the topics and sorted them in alphabetical order.

Looks good.


fix race condition between list and delete volume

fixes #21403
- What I did
Fixed the race
- How I did it
by checking if the volume still exists after getting the named lock and before caching it.
- How to verify it
Read the code. I don't have an easy way to reproduce the issue. It would be great if someone can come up with a test for this.
- A picture of a cute animal (not mandatory but encouraged)

@vikstrous seems like unit-test is failing

The test is wrong:
func (FakeVolume) DriverName() string { return "fake" }

I'll look into fixing it.

Is this an intermittent error? https://jenkins.dockerproject.org/job/Docker-PRs-WoW-TP4/3510/console
It doesn't seem related.

This also seems unrelated: https://jenkins.dockerproject.org/job/Docker-PRs-gccgo/3663/console
22:48:34 FAIL: docker_cli_push_test.go:649: TestPushToCentralRegistryUnauthorized.pN52_github_com_docker_docker_integration_cli.DockerSuite
22:48:34
22:48:34 docker_cli_push_test.go:656:
22:48:34     c.Assert(out, checker.Contains, "unauthorized: access to the requested resource is not authorized")
22:48:34 ... obtained string = "" +
22:48:34 ...     "The push refers to a repository [docker.io/test/busybox]\n" +
22:48:34 ...     "5f70bf18a086: Preparing\n" +
22:48:34 ...     "9508eff2c687: Preparing\n" +
22:48:34 ...     "unauthorized: authentication required\n"
22:48:34 ... substring string = "unauthorized: access to the requested resource is not authorized"


[Android] Anonymisation of the Shared Data Seems to Be Random

Describe the bug
Anonymisation of the shared data seems to be random: certain personal data is sent  anonymised although no option for anonymisation is set.  Whether the data gets sent anonymised or not is currently depending on the certificate's type and the debug level which has been set.  Yet, here as well, there is no uniform approach.
Technical details
Android Verifier 1.2.0-RC-1

When debug mode ON in settings default level of anonymization selected - Level 1 - normal capture
You can switch to level 2/3.
But when generate zip file from one certificate two times it should generate same result.

Preconditions:
select:

Debug mode ON in settings
Level 1 - normal capture
select country: de, ua.
Validate with: Ukraine

STR for vaccination Level 1.:
Scan this QR code with date in future.

Share zip file:
JSON structure of payload.json should be:
{
   "dateOfBirth":"1990-99-99",
   "person":{
      "familyName":"Xxxxxx",
      "givenName":"Xxxxxxxx",
      "standardisedFamilyName":"XXXXXX",
      "standardisedGivenName":"XXXXXXXX"
   },
   "recoveryStatements":null,
   "tests":null,
   "vaccinations":[
      {
         "certificateIdentifier":"URN:UVCI:V1:DE:XXXXXXXXXXXXXXXXXXXXXXXXXX",
         "certificateIssuer":"UK",
         "countryOfVaccination":"UA",
         "dateOfVaccination":"2021-10-27",
         "disease":"COVID_19",
         "doseNumber":1,
         "manufacturer":"ORG-100031184",
         "medicinalProduct":"EU/1/20/1507",
         "totalSeriesOfDoses":2,
         "vaccine":"J07BX03"
      }
   ],
   "fullName":"Xxxxxxxx Xxxxxx"
}

For level 2 - traceable capture:
{
   "dateOfBirth":"1990-99-99",
   "person":{
      "familyName":"Xxxxxx",
      "givenName":"Xxxxxxxx",
      "standardisedFamilyName":"XXXXXX",
      "standardisedGivenName":"XXXXXXXX"
   },
   "recoveryStatements":null,
   "tests":null,
   "vaccinations":[
      {
         "certificateIdentifier":"URN:UVCI:V1:DE:D0B1Q4VXDPGUVIWHA99FGY34OC",
         "certificateIssuer":"UK",
         "countryOfVaccination":"UA",
         "dateOfVaccination":"2021-10-27",
         "disease":"COVID_19",
         "doseNumber":1,
         "manufacturer":"ORG-100031184",
         "medicinalProduct":"EU/1/20/1507",
         "totalSeriesOfDoses":2,
         "vaccine":"J07BX03"
      }
   ],
   "fullName":"Xxxxxxxx Xxxxxx"
}

Level 3 - full take:
{
   "dateOfBirth":"1990-01-01",
   "person":{
      "familyName":"Nester",
      "givenName":"Mykhailo",
      "standardisedFamilyName":"NESTER",
      "standardisedGivenName":"MYKHAILO"
   },
   "recoveryStatements":null,
   "tests":null,
   "vaccinations":[
      {
         "certificateIdentifier":"URN:UVCI:V1:DE:D0B1Q4VXDPGUVIWHA99FGY34OC",
         "certificateIssuer":"UK",
         "countryOfVaccination":"UA",
         "dateOfVaccination":"2021-10-27",
         "disease":"COVID_19",
         "doseNumber":1,
         "manufacturer":"ORG-100031184",
         "medicinalProduct":"EU/1/20/1507",
         "totalSeriesOfDoses":2,
         "vaccine":"J07BX03"
      }
   ],
   "fullName":"Mykhailo Nester"
}

After discussion with Steffen S. (Author of the SPEC-document) and Hendrik (development) following resolution:

Anonymization option is coupled to the debug mode option. (means there is no extra option for anoynmization).
Anonymization is only used for personal data in the shared files only for debug level 1 and level 2.
-So in case that the software is implemented correctly as described above, it is then correct and the ticket can be closed.

Successfully retested,
Verifier App 1.2.4-acc (28)
Galaxy XCover 4, Android 9


Show changes on Graph Explorer by calling DevX API Changes endpoint

DevX API now has the changes endpoint that has all the changes that happened recently in Graph API. This task is to surface these changes in Graph Explorer by calling DevX API.
AB#8315

Changelog feature planned for Q2. New spec and new epic will be provided.


Library Issue

There is a issue regarding library conflict. So please can You rerun the sctiger and let me know the exact cause of error, after inflating the data step.

Ok i will do it today
On Mon, Apr 29, 2024 at 8:16 AM chenyongrowan @.***>
wrote:

Hi! Can you please send the list of packages installed for your scTIGER
environment? If you installed scTIGER using the installation instructions
in our README.md
https://github.com/chenyongrowan/scTIGER/blob/main/README.md file, you
can get this by typing conda list -n scTIGER.
Some of the packages may have been updated. We provide the version for
each package on our installation in the prerequisites section of our
README.md https://github.com/chenyongrowan/scTIGER/blob/main/README.md
file. If you specify each package to match the version we are using, it
should run without error.
—
Reply to this email directly, view it on GitHub
https://github.com/chenyongrowan/scTIGER/issues/1#issuecomment-2083014065,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMQX3RUJPT6UBFDC5KXFYQLY7ZP5JAVCNFSM6AAAAABGYFZ2WGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOBTGAYTIMBWGU
.
You are receiving this because you authored the thread.Message ID:
@.***>

I used same packages as in Readme but there was conflict between numpy and
bambi
On Mon, Apr 29, 2024 at 10:27 AM Utkarsh Tiwari <
@.***> wrote:

Ok i will do it today
On Mon, Apr 29, 2024 at 8:16 AM chenyongrowan @.***>
wrote:

Hi! Can you please send the list of packages installed for your scTIGER
environment? If you installed scTIGER using the installation instructions
in our README.md
https://github.com/chenyongrowan/scTIGER/blob/main/README.md file, you
can get this by typing conda list -n scTIGER.
Some of the packages may have been updated. We provide the version for
each package on our installation in the prerequisites section of our
README.md https://github.com/chenyongrowan/scTIGER/blob/main/README.md
file. If you specify each package to match the version we are using, it
should run without error.
—
Reply to this email directly, view it on GitHub
https://github.com/chenyongrowan/scTIGER/issues/1#issuecomment-2083014065,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMQX3RUJPT6UBFDC5KXFYQLY7ZP5JAVCNFSM6AAAAABGYFZ2WGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOBTGAYTIMBWGU
.
You are receiving this because you authored the thread.Message ID:
@.***>

I see what happened. Pytorch released new versions and it is forcing certain packages to update which becomes incompatible with Bambi. I was just able to install scTIGER on my CPU processing machine with the following commands:
conda create -n scTIGER python=3.9.2
conda activate scTIGER
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 cpuonly==2.0 conda-forge::fsspec -c pytorch
pip install pandas==1.4.3 matplotlib==3.8.2 networkx==3.1 argparse==1.4.0 scipy==1.11.4 scanpy==1.9.6 leidenalg==0.10.1 bambi==0.9.0 arviz==0.16.1 pyarrow numba==0.56.4
export MKL_THREADING_LAYER=GNU
conda install numpy==1.22.0
The below file has the commands as shown above and the packages that resulted from that installation.
scTIGER_PackageVersionsALL.txt
Please let me know if the dependency issue still appears on your end.

Hi,
I tried but this error is coming(attaching) , i followed every step .
On Mon, Apr 29, 2024 at 12:39 PM chenyongrowan @.***>
wrote:

I see what happened. Pytorch released new versions and it is forcing
certain packages to update which becomes incompatible with Bambi. I was
just able to install scTIGER on my CPU processing machine with the
following commands:
conda create -n scTIGER python=3.9.2
conda activate scTIGER
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2
cpuonly==2.0 conda-forge::fsspec -c pytorch
pip install pandas==1.4.3 matplotlib==3.8.2 networkx==3.1 argparse==1.4.0
scipy==1.11.4 scanpy==1.9.6 leidenalg==0.10.1 bambi==0.9.0 arviz==0.16.1
pyarrow numba==0.56.4
export MKL_THREADING_LAYER=GNU
conda install numpy==1.22.0
The below file has the commands as shown above and the packages that
resulted from that installation.
scTIGER_PackageVersionsALL.txt
https://github.com/chenyongrowan/scTIGER/files/15154025/scTIGER_PackageVersionsALL.txt
Please let me know if the dependency issue still appears on your end.
—
Reply to this email directly, view it on GitHub
https://github.com/chenyongrowan/scTIGER/issues/1#issuecomment-2083521536,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMQX3RTN62VMLMADJASQWATY72OWNAVCNFSM6AAAAABGYFZ2WGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOBTGUZDCNJTGY
.
You are receiving this because you authored the thread.Message ID:
@.***>

Can you please provide the error message you are seeing? I don't see anything attached to the last comment. It would be most helpful to have the commands and output you are getting from the command line. You can type "script" in the command line before running the above commands and it will provide a text file with this information that I can review.

I have attached the screenshot in the last email.
Also I will send You the script by today.
On Tue, Apr 30, 2024 at 5:34 AM chenyongrowan @.***>
wrote:

Can you please provide the error message you are seeing? I don't see
anything attached to the last comment. It would be most helpful to have the
commands and output you are getting from the command line. You can type
"script" in the command line before running the above commands and it will
provide a text file with this information that I can review.
—
Reply to this email directly, view it on GitHub
https://github.com/chenyongrowan/scTIGER/issues/1#issuecomment-2085212457,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMQX3RUHQY6DCOWG3KNFFA3Y76FWNAVCNFSM6AAAAABGYFZ2WGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOBVGIYTENBVG4
.
You are receiving this because you authored the thread.Message ID:
@.***>

I cannot see the screenshot in your reply on the thread. It may be that email attachments do not appear with the responses when replying via email. Can you please attach the screenshot and script to a response directly in the thread for documentation of the issue for others who may be experiencing a similar issue? Thank you!

the error is this after following all steps-
(scTIGER) @.*** SCTIGER % cd SCTIGER
(scTIGER) @.*** SCTIGER % chmod +x run_scTIGER.py
(scTIGER) @.*** SCTIGER % unzip
Data/ProstateCancer/Patient4_Benign_endothelial.zip -d
./Data/ProstateCancer/
Archive:  Data/ProstateCancer/Patient4_Benign_endothelial.zip
inflating: ./Data/ProstateCancer/Patient4_Benign_endothelial.csv
(scTIGER) @.*** SCTIGER % ./run_scTIGER.py -goi
AR+PTEN+ERG -ctrl ./Data/ProstateCancer/Patient4_Benign_endothelial.csv
-exp ./Data/ProstateCancer/Patient4_Tumor_endothelial.csv -p 50 -top 100
-zero 0.15 -o SampleResult_ProstateCancer
Traceback (most recent call last):
File "/Users/utkarsh/scTIGER/scTIGER/./run_scTIGER.py", line 14, in

import scTIGER as sd

File "/Users/utkarsh/scTIGER/scTIGER/scTIGER.py", line 12, in
import bambi as bmb

File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/bambi/init.py",
line 3, in
from pymc import math

File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/pymc/init.py",
line 52, in
from pymc import gp, ode, sampling

File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/pymc/gp/init.py",
line 15, in
from pymc.gp import cov, mean, util

File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/pymc/gp/util.py",
line 37, in
from pymc.distributions.distribution import NoDistribution

File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/pymc/distributions/init.py",
line 21, in
from pymc.distributions.bound import Bound

File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/pymc/distributions/bound.py",
line 23, in
from pymc.distributions.continuous import BoundedContinuous,

bounded_cont_transform
File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/pymc/distributions/continuous.py",
line 88, in
from pymc.distributions.distribution import DIST_PARAMETER_TYPES,

Continuous
File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/pymc/distributions/distribution.py",
line 50, in
from pymc.printing import str_for_dist, str_for_symbolic_dist

File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/pymc/printing.py",
line 25, in
from pymc.model import Model

File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/pymc/model.py",
line 64, in
from pymc.initial_point import make_initial_point_fn

File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/pymc/initial_point.py",
line 28, in
from pymc.util import get_transformed_name, get_untransformed_name,

is_transformed_name
File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/pymc/util.py",
line 19, in
import arviz

File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/arviz/init.py",
line 33, in
from .data import *

File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/arviz/data/init.py",
line 2, in
from .base import CoordSpec, DimSpec, dict_to_dataset,

numpy_to_data_array
File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/arviz/data/base.py",
line 11, in
import xarray as xr

File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/xarray/init.py",
line 3, in
from xarray import testing, tutorial

File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/xarray/testing.py",
line 11, in
from xarray.core.coordinates import Coordinates

File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/xarray/core/coordinates.py",
line 16, in
from xarray.core.alignment import Aligner

File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/xarray/core/alignment.py",
line 24, in
from xarray.core.variable import Variable, as_compatible_data,

calculate_dimensions
File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/xarray/core/variable.py",
line 48, in
from xarray.namedarray.core import NamedArray

File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/xarray/namedarray/core.py",
line 24, in
from xarray.namedarray._typing import (

File
"/Users/Shared/anaconda3/envs/scTIGER/lib/python3.9/site-packages/xarray/namedarray/_typing.py",
line 28, in
_DType = TypeVar("_DType", bound=np.dtype[Any])

TypeError: 'numpy._DTypeMeta' object is not subscriptable
On Tue, Apr 30, 2024 at 10:38 AM chenyongrowan @.***>
wrote:

I cannot see the screenshot in your reply on the thread. It may be that
email attachments do not appear with the responses when replying via email.
Can you please attach the screenshot and script to a response directly in
the thread for documentation of the issue for others who may be
experiencing a similar issue? Thank you!
—
Reply to this email directly, view it on GitHub
https://github.com/chenyongrowan/scTIGER/issues/1#issuecomment-2086186652,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMQX3RQ63KBEZFTLAVVXQELY77JJXAVCNFSM6AAAAABGYFZ2WGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOBWGE4DMNRVGI
.
You are receiving this because you authored the thread.Message ID:
@.***>

Hi! Yes, that is a numpy issue. Can you try conda update numpy  in your scTIGER environment?
I am currently working on setting up scTIGER as an Anaconda package, but may need a week or two to get everything set up correctly. Once that is complete, it should be much easier to download the package. Thanks for your patience as I work through this!

When i am updating numpy it is showing compatibility issue with bambi.
Let me know when you have resolved the error.
Thank you
On Sun, May 5, 2024 at 3:32 PM chenyongrowan @.***>
wrote:

Hi! Yes, that is a numpy issue. Can you try conda update numpy in your
scTIGER environment?
I am currently working on setting up scTIGER as an Anaconda package, but
may need a week or two to get everything set up correctly. Once that is
complete, it should be much easier to download the package. Thanks for your
patience as I work through this!
—
Reply to this email directly, view it on GitHub
https://github.com/chenyongrowan/scTIGER/issues/1#issuecomment-2094975426,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMQX3RVBP75DA5PRZZJUWNLZA2XOLAVCNFSM6AAAAABGYFZ2WGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOJUHE3TKNBSGY
.
You are receiving this because you authored the thread.Message ID:
@.***>

I am not sure why it is giving a compatibility issue, I can't recreate the error on my end.
I have uploaded a very basic conda package to help set the package dependencies correctly. I updated our installation instructions to reflect this. I have not had a chance to test it on a CUDA capable machine yet, but it does work on CPU processing systems. I will test it on a CUDA capable machine later this week.
Can you try the following and let me know if you are able to successfully install?
conda create -n scTIGER
conda activate scTIGER
conda install pytorch==2.1.2 torchvision torchaudio cpuonly==2.0 -c pytorch
conda install madison.dautle::sctiger

Hi! Due to the new package installation instructions and list of package dependencies from our operational installation of the package, we are going to resolve this issue. We hope you were able to install scTIGER!


Feature Request:  Add a RecordMode.ALWAYS option

The new RecordMode is great!  I especially like the ability to specify it per-request.
An additional use case for the new RecordMode would be an ALWAYS mode.  In other words, a new tape is created with a request and response, whether or not a matching tape exists.
An example where this could be useful is this:

Service A calls Service B with GET /serviceB/info, no headers, no body

Initial response is 404/Not Found, because Service B is not yet running

Service A calls Service B again, and Service B is now up and running, and should return some good 'info'
Service A calls Service B again, and 'info' has changed to something I really don't want to make a tape out of

If I use RecordMode.New, the 404 will be returned forever, because the initial tape was made from the bad response, and then re-used
If I use RecordMode.Overwrite, I lose the middle tape, which had the good 'info'
If I use RecordMode.Disabled, I don't get a tape at all
With RecordMode.Always, I'll get all three tapes - then I can keep the tape I like, change over to RecordMode.Disabled, and re-run
Thoughts/opinions?  I'd be happy to do a PR on this if you're interested and don't have time

I'm using talkback to test a frontend SPA in isolation from API backend with selenium tests and I'm facing the same situation. SPA sends the same http request twice during a test and the actual response from API is different in both cases. Having something like RecordMode.Always could theoretically help.
I've started looking into talkback code to figure out how much changes are needed to support RecordMode.Always.
I guess if multiple tapes are matching the request, I need to return them in chronological order (based on meta.createdAt). Do you see any potential issue with this approach?

The problem I see with this approach is:
Requests 1 and 2 come, so talkback returns those 2 tapes in the original order. Now comes a 3rd request, because let's say, you're running another test that goes through the same flow.
How does talkback know that the cycle started again?
What if one test makes 2 requests and another one makes 3?
What if one tests is broken and it skips a request? How do you make sure that only that test breaks without affecting the rest of the suite?
These are all problems related to the fact that talkback isn't aware of a "test context" and that all tests share the same collection of tapes, and that you're trying to mock something stateful with something stateless.
The solution that other libraries take for this, is to make each test have its own set of tapes, and make the mocking server stateful.
This comes at the cost of having to repeat tapes and difficulties with parallelism, so I'm not sure it's a tradeoff worth taking.

Either way "ALWAYS" doesn't clearly communicate what makes it different from NEW vs OVERWRITE (-both much less ambiguous).
Perhaps what we mean is a "multiple" or "loop"-variation to each of NEW/OVERWRITE, which could use a logic similar to this:

NEW: unless tape "${name}" or "${name}_0" exists, record new request as "${name}_0"
OVERWRITE: if tape "${name}" or "${name}_*" exists, delete them and record new request as "${name}_0"
NEW_LOOP: like NEW but in addition to tape_0, also record consecutive request using _1, _2, _{n} suffix.
OVERWRITE_LOOP: like OVERWRITE but also record consecutive request using _1, _2, _{n} suffix.
DISABLE: if ${name} exist, plat it back. if ${name_*} exist, play it/them back in order, when finished, start at _0 again.


Target for "electron-renderer" shouldn't have browser in resolve.mainFields

Bug report

What is the current behavior?
Issue #6811 assumption is wrong. Electron renderer is not only a browser, it utilities the node power.

Each web page in Electron runs in its own process, which is called the renderer process.
In normal browsers, web pages usually run in a sandboxed environment and are not allowed access to native resources. Electron users, however, have the power to use Node.js APIs in web pages allowing lower level operating system interactions.
https://electronjs.org/docs/tutorial/application-architecture

When target browser, you'll lose all the node power.
If the current behavior is a bug, please provide the steps to reproduce.

What is the expected behavior?
The pr to the issue #6811 should be reverted.

Other relevant information:
webpack version:  4.16.5

cc @sindresorhus

@cxa Can you provide a real-world example of when this is problematic?

Yes, you can use Node.js in the renderer too, but if I import a module that works in both Node.js and the browser, I would personally prefer the browser version which uses browser APIs.

We need some node power for some cases, the browser part is not power enough. So maybe add some configure-able options is the solution.

Another real-world example where this is a problem:

engine.io-client library uses browser field to load the browser version of XMLHttpRequest - https://github.com/socketio/engine.io-client/blob/master/package.json#L73
the node version is much more appropriate in Electron apps, as it has some extra functionality not allowed in browsers

But even conceptually, it doesn't make much sense to me to treat Electron as just a browser. If that were true, why does webpack itself has a special target for electron-renderer?

Another problematic example is with axios, an HTTP client that supports both browser (XHR) and node (http). It problems two backends and it is quite common to use both in an Electron renderer (XHR for regular GETs and node API for streaming support). Yet, it has a browser field in its package.json and when packed with webpack, the node backend is discarded...
We have to manually vendorize its node backend to workaround.

Webtorrent is affected too: webtorrent/webtorrent#1597

I think this issue needs special attention and test out how it works with nodejs to browser polyfill.

This also breaks the ws WebSocket package.

any update on a fix for this?

Our application in renderer process uses a lot of node.js features.
With new version of the webpack we cannot do this.

I found temporary solution for electron-renderer target :

CC: @cxa @DrSensor @mx2323

https://github.com/webpack/webpack/issues/6796 . :(
Instead of using electron-renderer, use target: 'node' and include electron in externals.

I am still experiencing this issue using https://github.com/electron-react-boilerplate/electron-react-boilerplate
Adding mainFields doesn't work as it isn't being respected. From what I see this boilerplate doesn't use electron-renderer

Another real-world example：
I use  nedb to store the user data into a local file.
nedb apply a browser version which store data into browser indexedDB instead of a local file.
So, the target 'electron-renderer' import the browser entry will cause the user data lost when user uninstall the app.

All this time wasted on troubleshooting, thousands of developers suffering because of one guy's preference. I've seen literally more than 20 issues being tracked and ignored because of this. Devs are using forks of popular libraries because there's no way to overcome this on mature projects. Whole point of Electron is having Node's powerful capabilities on a browser renderer, with or without nodeIntegration. Been in the open-source world for almost 2 decades and I thought community driven software was built on majority's opinion. Oh well. 🤷🏻♂

If only give this statement a million thumbs up.

@pettyron Thank you for agreeing with my frustrated rant.
For anybody who's dealing with this hell of an issue, use the following webpack configuration. Not actually a solid workaround in my opinion but feel free to fiddle around and get the best out of it for your use case.
{
    resolve: {
        aliasFields: []
    }
}


Benchmark execution and proving performances in CI

Problem
We do not currently have comprehensive and objective insights into what Noir's execution and (when paired with Barretenberg) proving performances are across PRs and versions.
Happy Case
Extend the gates_report.yml action to also run and report zk_bench's Noir portion of execution and proving benchmarks.
Project Impact
None
Impact Context
No response
Workaround
None
Workaround Description
No response
Additional Context
No response
Would you like to submit a PR for this Issue?
None
Support Needs
No response

Extend the gates_report.yml action to also run and report zk_bench's Noir portion of execution and proving benchmarks.

Small modification to this: We'll be wanting to move the source of truth on Noir benchmarks into this repository along with the suite of programs we're benchmarking.

Superceded by https://github.com/AztecProtocol/aztec-packages/issues/6060


National Geographic bridge is broken

Describe the bug
The NatGeo bridge worked by pulling the JSON payload used to dynamically populate the front page here: latest-stories/_jcr_content/content/hubfeed.promo-hub-feed-all-stories.json
Unfortunately, it appears they've rebuilt their site as it no longer functions this way and that URL is long gone.
To Reproduce
Steps to reproduce the behavior:

Try to use the Latest Stories mode
See error

Or, for the magazine:

Try to use the Magazine mode
See a blank result

Expected behavior
Stories returned based on the settings specified.
Additional context
I strongly suspect the existing bridge would have to be completely rewritten.

At the moment there is no maintainer for this bridge. Previous one is inactive.
So pull requests welcome.


 React-IS: Multi-purpose Search Bar

New/modified Widget => Single search bar for handling:

direct searching for facet values

common textual search on rest of searchable attributes

Hacky example
https://jsfiddle.net/c9wbjzLy/1/
Explanation/Use Case:
Looking to implement a "guided search experience", where a single search bar will be responsible for both facet search and normal search. If a user types "exte", facet results for "External Battery Packs" should appear first; the normal search results should return as expected.
*The key difference is that default facets returned from a common textual search will be related, but not necessarily match exactly on the query. Widgets (perhaps current refinements) should give the option to display facet matches on both query match and on related facets.
Note: At the moment, the desired experience is easily achievable with the Algolia helper (make independent calls to search on facets and general search; append/combine results accordingly). This seems much more difficult using the provided props on existing widgets.
Proposal to add external prop to toggle ability to run searchForItems on the global search query and provide the results in the provided props. From there, a user can discriminate/combine results as he/she wishes.

Hi @thekar22,
Our current connector is not designed to do that right now. We need to think about a proper api to do so.
Do you mind if I rename your issue as "add ability to search in facets and hits with the same query"?

React InstantSearch has been moved here: https://github.com/algolia/react-instantsearch
This issue has either been rewritten or placed inside our backlog.


Guacamole Keyboard support + choose layout

Use Guacamole as keyboard module and change keyboard layout.
Changes made:

KeySyms are now directly sent to server in uint64.
Official guacamole keyboard is used to convert JavaScript's KeyboardEvent to X11's KeySym.
KeySyms that don't exist as KeyCodes are mapped. https://github.com/nurdism/neko/commit/8a56f238add4dc4e241704905d743efb52597406#diff-91b69ff1cad0a2b44df2125d28965633R104-R113
New GUI Select in Settings, to choose kbd Layout.
New WS message control/keyboard, that changes keyboard.
Keyboard is changed only if user is hosting session, and when:

User changes language manually in select.
SetHost is changed - User requests control, or gets control. Meaning, that Layout is independend for each user since it always changes immediately after users has control.

For basic keys it should work independently of chosen keyboard, but to get full support, keyboard needs to be changed.
Could be improved:

Loading languages is from static file at frontend. Though, all available layouts can be found here: /usr/share/X11/xkb/rules/base.xml. It would be neat, to make XML parser and feed those data dynamically.
Layout is not changed using Pure X11 API. I could not find any usable solution, this looks simply enough. It is limited to only 2 characters. https://github.com/nurdism/neko/commit/4a7800c93fdab183a3bacd7c21a7001c02a36dec#diff-91b69ff1cad0a2b44df2125d28965633R170-R173

Fixes #72.

looks good @m1k1o thank you for the contribution!