update_with_buffer hangs on macOS while you resize the window

gif

code
use minifb::{Window, WindowOptions};

fn main() {
	let mut window = Window::new(
		"rust-raytracer",
		10,
		10,
		WindowOptions {
			resize: true,
			..WindowOptions::default()
		}
	).expect("Couldn't create window");

	while window.is_open() {
		let (width, height) = window.get_size();
		let mut buffer: Vec<u32> = vec![0xFFFFFF; width * height];

		buffer[width + 1] = 0xFF0000;

		window.update_with_buffer(&buffer, width, height).unwrap();
	}
}

Observe how the red pixel gets large while I drag to resize the window bigger, but as soon as I release the left click, the buffer updates and the red pixel returns to normal size
Is it possible to fix this?

That is indeed odd. I will investigate this evening.

I assume you want it to stay small at all time or do you want the buffer itself to scale?

@emoon I am manually updating the buffer as fast as possible. Basically, while the window is resizing, it only displays the buffer that was there when the resize was started. But it should display the most up-to-date buffer even while the resize is still happening. That way, the pixel would stay the same size, rather than the buffer stretching like it is now

My code still updates the buffer while the window is being resized but the window still stretches the old buffer instead of displaying the new one. That is the bug. Ugh, I am really bad at explaining things

I get it

sorry, I just thought my own explanation was inadequate, not that you didn't understand it - hope it gets fixed soon

Ok. I remember what the problem is now. On macOS (for whatever reason) when the user starts to resize a window I don't get any callbacks out to my "main code" anymore (i.e where the user updates the the buffer size) so that is "frozen" until the user releases the button.
You can make it look slightly better by setting up your window this way
	let mut window = Window::new(
		"rust-raytracer",
		10,
		10,
		WindowOptions {
			resize: true,
			scaler_mode: ScaleMode::UpperLeft,
			..WindowOptions::default()
		}
	).expect("Couldn't create window");

But until I can figure out why I don't get any updates anymore when the user start to resize the window I'm not sure how to solve this issue.

Well, that only really works if your application's purpose is to display a red pixel in the top left :P
For now, it doesn't look like there are any workarounds for the root issue (buffer not updating while the window is resizing) so I'll just have to wait until the issue is actually solved.

By the way, what do you mean callbacks to your main code? Do you mean the update_with_buffer call actually doesn't do anything? Or does it still update the buffer, but the native window just doesn't notice until after the resize?

if you add a println!(..) in your update code (just before update_with_buffer(..)) you will notice it won't get called while you are resizing the window. Inside the update_with_buffer I'm calling a macOS API call to updated events and one is "stuck" inside that function until the resize is complete.

you will notice it won't get called while you are resizing the window.

Oh wow, I was assuming that wasn't the case (which is why I initially said that my code was updating the buffer during resize). That's a bit weird...

Yeah I don't know how to solve it as macOS is not leaving the function.

Is it that new events simply aren't being generated during the resize? Or are they just backing up in the queue while the function hangs?

but I'm scared that it might require the current API to break (which I don't want to do)

I think it would be possible to just change the way you poll for events / deal with the event queue, since according to you some part of that is what's hanging. That would require no changes to the public API. Buuut, I have no idea what I'm talking about at all so take everything with a grain of salt.

Yeah it might be possible. It's just something I can't fix right now, sorry.

It's a real shame because this is the most complete framebuffer library I could find. I hope it does get fixed one day.

Yeah the plan is to try to fix all resizing issues as there are some issues on other platforms as well. It's more of a PITA than I thought it would be :) TBH this lib has ended up being larger than my initial plan but I guess that is how things goes at times.

It may be worth checking if this allows the issue to be fixed, by updating the buffer without polling input. Of course, this isn't a real solution, since resizing shouldn't break input polling either, but it could produce a workaround for some applications, and may help with debugging this.

@john01dav I suppose that could work if another thread polls for input, so the blocking wouldn't affect the main thread... Rust makes this pretty nice :P

It might be possible but I also know there are a bunch of restrictions of macOS APIs where they have to be done on the main thread (esp for UI) so some more research will be needed for this.

@emoon Wait, really? If that became a built-in feature, that would be great. Of course more research is needed, including of course whether or not the multi-threaded approach can even be done, and then after that how the API would have to be changed, then what sort of concurrent approach to take (i.e. maybe the main thread should take snapshots of all the current inputs? but, maybe it would miss inputs that way, so maybe you'd have to take an event-based approach, etc etc...) and so on...

Yeah this is somewhat of a tricky topic. It's esp makes it a bit more tricky as minifb currently fits my needs (and goes beyond) so while it's great that people like to use it, I need figure out how much work I'm willing to put into fixing this. It's may sound a bit harsh, but I need to make a trade-off between other projects I'm working on as well.

@emoon It's still helpful to discuss so that someone (like me) can open a pull request one day.

Agreed. Problem with minifb also is that as it's cross-platform the same API needs to work on all platforms and needs to be changed for all of them. It makes the work even more complex, but I'm sure it's doable to figure something out.

I can cross-compile for all three major platforms (macOS, Linux and Windows). It wouldn't be too hard to test compilation on each platform; testing if it works is another matter (namely, I don't have a Linux system with a desktop environment, but I might soon once I add one to my Arch installation).

Yeah. The thing is that one usually needs to implement for all the platforms and verify it working as well.

@emoon You might want to check this out: https://github.com/kovidgoyal/kitty/commit/3f9d04b616bcce85ebfa319db482d888ca09b1fb

@emoon You might want to check this out: https://github.com/kovidgoyal/kitty/commit/3f9d04b616bcce85ebfa319db482d888ca09b1fb

I think I'm seeing this same behavior on windows.

I was expecting the loop to continue updating the buffer while resizing.
Code (sorry there's a bit of extra code, let me know if it would help to make this more minimal)

One of these years I'll get to finishing and releasing glfb2 which will integrate with winit and not have this problem. But of course wgpu has one-frame lag on macOS and (presumably) other platforms as well, which is just great.

I think in order to solve this quite a bit of the internals of minifb has to be changed on how it drives the update loop. I'm not sure if it's worth it or not.
I have considered using winit in the past, but the problem is that winit it isn't really that "mini" and has quite a bunch of dependencies and I want minifb to be fast to compile and easy to use (no need for setting up extra callbacks for event handling)

I think in order to solve this quite a bit of the internals of minifb has to be changed on how it drives the update loop. I'm not sure if it's worth it or not.

AFAICT, this issue cannot feasibly be solved without moving away from polling which is like 80% of minifb's API. Context switching / coroutines / whatever are not reliable or portable enough to use here either unfortunately.

I have considered using winit in the past, but the problem is that winit it isn't really that "mini" and has quite a bunch of dependencies and I want minifb to be fast to compile and easy to use (no need for setting up extra callbacks for event handling)

minifb is good at what it does. It gets a buffer on screen and lets you poll for some basic inputs. But yeah, this would require a huge shift in minifb's API and probably isn't worth it, since that isn't what this crate is for.

Agreed. So I think the only way would be to try to run the event loop on a separate thread and when the application checks for input etc it will get buffered input from that thread. Now having a thread has number of issues as I think that macOS for example only allows some APIs (regarding to windows and such) can only happen on the main-thread.
And of course adding threading (even hidden from the user) adds quite a bit of extra code for each backend and will make the code overall more complicated to deal with.. so hum 🤔

Now having a thread has number of issues as I think that macOS for example only allows some APIs (regarding to windows and such) can only happen on the main-thread.

It's possible to flip this around and have the main thread be controlled by minifb. Multi-window is already not really a supported use case.

Some people do use multi-windows tho so that would break it for them... :/ So I'm not really sure what the best way would be without breaking the whole API. Maybe it would be possible to just have a separate polling for window size or something like that which is the biggest problem here 🤔

Tho that doesn't help the macOS case that doesn't get any update during resize

Some people do use multi-windows tho so that would break it for them... :/

I didn't even know that was possible. Wouldn't multi window have multiple event loops or something that would break completely on OSes like macOS?

I just tested the example https://github.com/emoon/rust_minifb/blob/master/examples/multi.rs under macOS and it runs fine at least

That said it doesn't do very much :)

I just tested the example https://github.com/emoon/rust_minifb/blob/master/examples/multi.rs under macOS and it runs fine at least

Interesting, didn't even know that was an example. Anyway, if you ever do want to try implementing the "thread notification" approach, you would probably have to separate event loops and windows.
You'd create your event loop, create your windows on that event loop, specify a... callback function... for each window (D::::) and then run the event loop which will block the main thread forever.
At least, that's how I'd imagine it working.

Thanks! and agreed. I will perhaps experimint with it some day when I feel up to it and see if I can come up with something that would work.

It hasn't been mentioned here yet so here goes: mini_gl_fb is an alternative to minifb that uses winit for event handling. It does not freeze on resize, but it depends on OpenGL and glutin and stuff so it's definitely a lot heavier. I'm also not sure if it's good for heavily interactive projects because of the event-based approach - there is a game of life example though. feature matrix
It's an unpopular library with a quite small userbase, but it's definitely an option somewhere between minifb and wgpu.

Thanks! That is good to know. My initial vision for minifb was just an simple library to be used for experemints when wanting to plot some pixels (the initial api only had open window with fixed size check for esc and close window) over the years it grew into a more feature rich api that supporting resizing, menus, etc.
Oh well, I'm happy people still find it useful even if it has it's sets of issues :)

Hi! I am having the same issue on macOS but it happens any time a move the window or drag&drop on the window. Is there any workaraund for that?
I am trying to do a simple game with rust, minifb and raqote so drag and dropping is a must feature.

Hi,
No there is currently no workaround for it.


Merge rook master to koor fork

Description of your changes:
Which issue is resolved by this Pull Request:
Resolves #
Checklist:

[ ] Commit Message Formatting: Commit titles and messages follow guidelines in the developer guide.
[ ] Skip Tests for Docs: If this is only a documentation change, add the label skip-ci on the PR.
[ ] Reviewed the developer guide on Submitting a Pull Request
[ ] Pending release notes updated with breaking and/or notable changes for the next minor release.
[ ] Documentation has been updated, if necessary.
[ ] Unit tests have been added, if necessary.
[ ] Integration tests have been added, if necessary.

the failures are also present on rook upstream, debugging is going on upstream; I will be eager to have those patches as well, but we can still go ahead with current test results


[3.x] Fix undo history for function name autocompletion

Fixes #59805.

Complete get_node at get_no|("path"). It became get_no"path") after undo.
Complete raise at rai|(). It became rai after undo.

The removal of additional parenthesis were not added to undo history.
It's OK on master.

Thanks!

Cherry-picked for 3.4.5.


ERROR: cannot find the current segment/subsegment   when segment is open and uploading file to s3.

Currently using python version 3.9, botocore version 1.29.50, aws_xray_sdk version 2.11.0
When I run the code snippet below I get an error saying there's no open segment for the calls the use upload file. The subsequent calls using put_object have no issues and show up in the segment data. Logging the trace_id was also successful.
    patch_all()
    xray_recorder.configure(context_missing='LOG_ERROR', daemon_address='localhost:2000')
    segment = xray_recorder.begin_segment('test segment')

    s3_resource = boto3.resource("s3")

    # These give the error
    s3_resource.Bucket('resultfiles-test' ).upload_file('hello_world.txt', 'hello_world.txt')
    logger.info(f'trace_id: {xray_recorder.current_segment().trace_id}')
    s3_resource.Object('resultfiles-test', 'hello_world.txt').upload_file(Filename='hello_world.txt')
    logger.info(f'trace_id: {xray_recorder.current_segment().trace_id}')

    # These work
    s3_resource.Bucket('resultfiles-test' ).put_object(Key='hello_world.txt', Body=b'hello world')
    s3_resource.Object('resultfiles-test', 'hello_world.txt').put(Body=b'hello_world.txt')
    with open('hello_world.txt', 'r') as f:
        s3_resource.Object('resultfiles-test', 'hello_world.txt').put(Body=f.read())

    xray_recorder.end_segment()

Hello, I have a few questions that will hopefully help clarify where this issue is coming from:

Is there any currently active context that should be passed in when configuring the xray_recorder? Are you running in Lambda?
If you add another xray_recorder.current_segment().trace_id before the first call to upload_file, does that trace ID match that of "test segment"? Can you also try xray_recorder.get_trace_entity() to see what the currently active entity (segment or subsegment) is?
Is this code snippet all in one place/function? Is there any additional code that is being executed between the block that throws an error and the one that doesn't?

Hello, to answer your questions

There is no active context to pass to the xray_recorder. I discovered this issue when using xray on pyshell and then recreated it locally.
There is no additional code inbetween the lines. The code ran exactly as is.

Heres a snippet including more trace_id logs and the corresponding output
if __name__ == "__main__":
    patch_all()
    xray_recorder.configure(context_missing='LOG_ERROR', daemon_address='localhost:2000')
    segment = xray_recorder.begin_segment('test segment')
    logger.info(f'created segment trace_id:{segment.trace_id} ')
    s3_resource = boto3.resource("s3")
    logger.info(f'current trace entity trace_id: {xray_recorder.get_trace_entity().trace_id}')
    # These give the erro
    logger.info(f'trace_id before error: {xray_recorder.current_segment().trace_id}')
    s3_resource.Bucket('resultfiles-test' ).upload_file('hello_world.txt', 'hello_world.txt')
    logger.info(f'trace_id after error: {xray_recorder.current_segment().trace_id}')

    logger.info(f'trace_id before working: {xray_recorder.current_segment().trace_id}')
    s3_resource.Bucket('resultfiles-test' ).put_object(Key='hello_world.txt', Body=b'hello world')
    logger.info(f'trace_id after working: {xray_recorder.current_segment().trace_id}')
    xray_recorder.end_segment()

output
INFO:aws_xray_sdk.core.patcher:successfully patched module botocore
INFO:aws_xray_sdk.core.patcher:successfully patched module sqlite3
INFO:aws_xray_sdk.core.sampling.sampler:No effective centralized sampling rule match. Fallback to local rules.
INFO:root:created segment trace_id:1-63d85b07-0a470e1a68d647efad69bce2
INFO:botocore.credentials:Found credentials in shared credentials file: ~/.aws/credentials
INFO:root:current trace entity trace_id: 1-63d85b07-0a470e1a68d647efad69bce2
INFO:root:trace_id before error: 1-63d85b07-0a470e1a68d647efad69bce2
ERROR:aws_xray_sdk.core.context:cannot find the current segment/subsegment, please make sure you have a segment open
WARNING:aws_xray_sdk.core.recorder:No segment found, cannot begin subsegment s3.
ERROR:aws_xray_sdk.core.context:cannot find the current segment/subsegment, please make sure you have a segment open
INFO:root:trace_id after error: 1-63d85b07-0a470e1a68d647efad69bce2
INFO:root:trace_id before working: 1-63d85b07-0a470e1a68d647efad69bce2
INFO:root:trace_id after working: 1-63d85b07-0a470e1a68d647efad69bce2

Resulting segment sent
{
  "id": "a69a1a6eb4e12c86",
  "name": "test segment",
  "start_time":<PHONE_NUMBER>.393169,
  "in_progress": false,
  "aws": {
    "xray": {
      "sdk": "X-Ray for Python",
      "sdk_version": "2.11.0"
    }
  },
  "subsegments": [
    {
      "id": "1130954ac4c9383e",
      "name": "s3",
      "start_time":<PHONE_NUMBER>.1555898,
      "parent_id": "a69a1a6eb4e12c86",
      "in_progress": false,
      "http": {
        "response": {
          "status": 200
        }
      },
      "aws": {
        "operation": "PutObject",
        "region": "us-east-1",
        "request_id": "CTQFC52JXK7BED7F",
        "id_2": "4lazYkItN+LCNrSfBTnved/tEByY50Od+KArL3cX5uWrx8BPHDXNMCnxOi/hhT4Tv9wd+aGbGdw=",
        "key": "hello_world.txt",
        "bucket_name": "resultfiles-test"
      },
      "trace_id": "1-63d85bf2-67e791f683029bb451728c4a",
      "type": "subsegment",
      "namespace": "aws",
      "end_time":<PHONE_NUMBER>.3337479
    }
  ],
  "trace_id": "1-63d85bf2-67e791f683029bb451728c4a",
  "service": {
    "runtime": "CPython",
    "runtime_version": "3.9.8"
  },
  "end_time":<PHONE_NUMBER>.335922
}

I discovered the issue can be resolved if I disable multi-threading on upload_file.


larger text cannot decrypt

Hi, I've been trying plusaes for a few weeks now and I still can't decrypt the text.

this works well

but when I enlarge the text it no longer didn't decrypt :(
where is the problem? maybe it would be better to do example code for encrypt and decrypt and not in the script itself.
Thank you for your response :)

Hmm, It is difficult. I don't know your plain data and encryption parameters. I cannot reproduce it.
Is vertexCode read from the file correctly? Encrypted data is binary data, it is not a text string.
encrypted_size
You doesn't use get_padded_encrypted_size function. This function is for encryption.
void decrypt(const std::string & vertexCode) {
    ...
    std::vector<unsigned char> decrypted(vertexCode.size());
}

Hmm, It is difficult. I don't know your plain data and encryption parameters. I cannot reproduce it.
Is vertexCode read from the file correctly? Encrypted data is binary data, it is not a text string.
encrypted_size
You doesn't use get_padded_encrypted_size function. This function is for encryption.
void decrypt(const std::string & vertexCode) {
    ...
    std::vector<unsigned char> decrypted(vertexCode.size());
}

Yes vertexCode from file read correctly.
Why should i use get_padded_encrypted_size when decrypting?
This is how I did it...
int main()
{
	std::string encrypted_data;
	std::ifstream stream;

	stream.exceptions(std::ifstream::failbit | std::ifstream::badbit);
	try
	{
		stream.open("input.txt");
		std::stringstream vShaderStream;
		vShaderStream << stream.rdbuf();
		stream.close();
		encrypted_data = vShaderStream.str();
	}
	catch (std::ifstream::failure& e)
	{
		std::cout << "ERROR READ FILE" << std::endl;
	}

	const std::vector<unsigned char> key = plusaes::key_from_string(&"EncryptionKey128");
	const unsigned char iv[16] = {
		0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
		0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
	};

	std::vector<unsigned char> encrypted(112);
	encrypted.assign(encrypted_data.begin(), encrypted_data.end());

	// decrypt
	unsigned long padded_size = 0;
	std::vector<unsigned char> decrypted(100);

	plusaes::decrypt_cbc(&encrypted[0], encrypted.size(), &key[0], key.size(), &iv, &decrypted[0], decrypted.size(), &padded_size);

	std::cout << decrypted.data() << std::endl;
}

stream.open("input.txt");

You should read with binary mode. stream.open("input.txt", std::ios::binary);. But the encrypted data file correctness is more important. If the binary mode was not used when it was written, the file may not be correct.

data size

encrypt_cbc pad the data according to PKCS. The padding size is 1-16 bytes.
The encrypted data size is not the same as the raw data size. We can use get_padded_encrypted_size for padded encrypted data size calculation.
On the other hand, the buffer size of the decryption is the same as the encrypted data size. Usually, you can use the encrypted data size. If you call get_padded_encrypted_size with the encrypted data size, the size is 16-byte larger, because padding size is calculated.

stream.open("input.txt");

You should read with binary mode. stream.open("input.txt", std::ios::binary);. But the encrypted data file correctness is more important. If the binary mode was not used when it was written, the file may not be correct.

data size

encrypt_cbc pad the data according to PKCS. The padding size is 1-16 bytes.
The encrypted data size is not the same as the raw data size. We can use get_padded_encrypted_size for padded encrypted data size calculation.
On the other hand, the buffer size of the decryption is the same as the encrypted data size. Usually, you can use the encrypted data size. If you call get_padded_encrypted_size with the encrypted data size, the size is 16-byte larger, because padding size is calculated.

Oh std::ios::binary i put it there.

Yes i use get_padded_encrypted_size for padded encrypted data size calculation.

It still doesn't decrypt anything and padded_size remains at 0, why?
Here is the script I use for encryption.
int main() {

	std::string vertexCode;
	std::ifstream vShaderFile;

	vShaderFile.exceptions(std::ifstream::failbit | std::ifstream::badbit);
	try
	{
		vShaderFile.open("input.txt");
		std::stringstream vShaderStream;
		vShaderStream << vShaderFile.rdbuf();
		vShaderFile.close();
		vertexCode = vShaderStream.str();
	}
	catch (std::ifstream::failure& e)
	{
		std::cout << "ERROR FILE" << std::endl;
	}

	const std::vector<unsigned char> key = plusaes::key_from_string(&"EncryptionKey128");
	const unsigned char iv[16] = {
		0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
		0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
	};

	// encrypt
	const unsigned long encrypted_size = plusaes::get_padded_encrypted_size(vertexCode.size());
	std::vector<unsigned char> encrypted(encrypted_size);

	plusaes::encrypt_cbc((unsigned char*)vertexCode.data(), vertexCode.size(), &key[0], key.size(), &iv, &encrypted[0], encrypted.size(), true);

	std::ofstream encryptedCode;
	encryptedCode.open("output.txt");
	encryptedCode << encrypted.data();
	encryptedCode.close();
}

https://user-images.githubusercontent.com/82084934/129265681-6f3b597f-3849-4324-9206-754bff2b1b04.mp4
Here is the code
void encrypt()
{
    const std::string raw_data = "Hello, plusaesHello, plusaesHello, plusaesHello, plusaesHello, plusaesHello, plusaesHello, plusaesHello, plusaesHello, plusaesHello, plusaesHello, plusaesHello, plusaesHello, plusaes";
    const std::vector<unsigned char> key = plusaes::key_from_string(&"EncryptionKey128");
    const unsigned char iv[16] = {
        0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
        0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
    };
    const unsigned long encrypted_size = plusaes::get_padded_encrypted_size(raw_data.size());
    std::vector<unsigned char> encrypted(encrypted_size);

    plusaes::encrypt_cbc((unsigned char*)raw_data.data(), raw_data.size(), &key[0], key.size(), &iv, &encrypted[0], encrypted.size(), true);

    std::cout << encrypted_size << std::endl;
    std::cout << encrypted.data() << std::endl;

    std::ofstream final_data;
    final_data.open("output.txt");
    final_data << encrypted.data();
    final_data.close();

}
void decrypt()
{
	std::string encrypted_data;
	std::ifstream stream;

	stream.exceptions(std::ifstream::failbit | std::ifstream::badbit);
	try
	{
		stream.open("output.txt", std::ios::binary);
		std::stringstream vShaderStream;
		vShaderStream << stream.rdbuf();
		stream.close();
		encrypted_data = vShaderStream.str();
	}
	catch (std::ifstream::failure& e)
	{
		std::cout << "ERROR READ FILE" << std::endl;
	}

    const std::vector<unsigned char> key = plusaes::key_from_string(&"EncryptionKey128"); // 16-char = 128-bit
    const unsigned char iv[16] = {
        0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
        0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
    };

    std::vector<unsigned char> encrypted(192);
    encrypted.assign(encrypted_data.begin(), encrypted_data.end());

    unsigned long padded_size = 0;
    std::vector<unsigned char> decrypted(192);

    plusaes::decrypt_cbc(&encrypted[0], encrypted.size(), &key[0], key.size(), &iv, &decrypted[0], decrypted.size(), &padded_size);

    std::cout << decrypted.data() << std::endl;
    std::cout << padded_size << std::endl;
}

output.txt is not correct. It is not the same as the std::vector encrypted. final_data << encrypted.data(); is wrong. This code may be buffer over-read.
std::ofstream final_data;
final_data.open("output.txt", std::ios::binary);
final_data.write((char *)encrypted.data(), encrypted.size());
final_data.close();

output.txt is not correct. It is not the same as the std::vector encrypted. final_data << encrypted.data(); is wrong. This code may be buffer over-read.
std::ofstream final_data;
final_data.open("output.txt", std::ios::binary);
final_data.write((char *)encrypted.data(), encrypted.size());
final_data.close();

OMG it works! Thank you very much for your help.


Rewrite lookup index selection implementation

closes #1061

Really big change, could provide an overview explanation?

Really big change, could provide an overview explanation?

of course, here is some thoughts when implementing this PR. I'll refine this document later.


profile tight to device

Is it possible to have multiple profiles active at the same time, tight to different devices?
The idea is: I have an external keyboard, so I would like to have a profile for the external keyboard and another profile for the built-in keyboard of the mac.
My solution is manually switch the selected field in the karabiner.json file every time I switch keyboard, but that is quite annoying, so I was looking for another solution, either automatic based on device or something fast in the UI, the old karabiner had a easy way to switch profiles.

+1

+1

Now my solution is switch between 2 karabiner.json by typing keyword "kb" in alfred 3.

@xdidi3r , good idea !

Yes, this would be great. The old Karabiner seemed to already support it. But unfortunately some settings like the caps lock key (I think) needed to be changed manually in Seil.

@xdidi3r It seems like in the newer versions of Karabiner Elements, it doesn't detect changes to karabiner.json automagically. 😢 /cc @tekezo

They have moved the location of it, now in .config/karabiner/

@clindh

They have moved the location of it, now in .config/karabiner/

Yes, but even when changing this file, it still doesn't auto-pickup changes (as it used to do). I have to restart Karabiner Elements when making a change.

Ok. It works for me in 0.90.75 (have not tried 77 though)
I have an Automator script to toggle between two setups, coping two different files onto karabiner.jsonm and it changes instantly.

@perlun My solution still works for me in version 0.90.79

the version 0.90.84 introduces a tab for easy selection of a profile, I think we could close the issue for now even if the profiles don't changed based on the keyboard, but it makes it easier to change them either way

Great @lrusnac, thanks!


Should we allow "- if" (not just "= if")?

In Ruby Slim, you can do
- if foo
  p hello
- else
  p bye

In slim_fast, you must do
= if foo do
  p hello
- else
  p bye

Are there strong reasons to deviate?

I'm pretty sure I did this because it's what eex requires:
iex(1)> EEx.eval_string "Hello <% if true do %>world<% end %>"
"Hello "
iex(2)> EEx.eval_string "Hello <%= if true do %>world<% end %>"
"Hello world"

We could certainly support this though by handling it under-the-hood.

@henrik would you like to tackle this one?

I think we can pull this off by changing this:
defp parse_eex(input, inline \\ false) do
  input = String.lstrip(input)
  script = input
           |> String.split(~r/^(-|==|=)/)
           |> List.last
           |> String.lstrip
  inline = inline or String.starts_with?(input, "=")
  {:eex, content: script, inline: inline}
end

To something like this:
defp parse_eex(input, inline \\ false) do
  input = String.lstrip(input)
  script = input
           |> String.split(~r/^(-|==|=)/)
           |> List.last
           |> String.lstrip
  inline = inline or String.starts_with?(input, "=") or String.starts_with(script, "if")
  {:eex, content: script, inline: inline}
end

We're not going support this, see #51 for conversation.


fix: change order of scripts in composer.json

As noted in #784, running Rector after PHP CS Fixer can cause the code style check to fail. Switching these two around in the composer qa script ensures that Rector runs first (potentially changing code), and PHP CS Fixer comes in after to clean it up and format it.

Nice!


Use Adapter to generate data-driven mixin patches

We're building a tool to automatically generate Forge mixin patches for simple changes in the game's code. Progress is tracked in the Sinytra/Adapter repository.

This has been largely implemented now. Adapter is currently capable of generating patches for overloaded and replated methods, totalling 86. The next step it to detect changes in the LVT of methods which seems to be a common conflict as well.

I've learned that LVT is not something we can handle in Adapter - many methods have their LVTs completely changed after applying binpatches despite Forge never even touching them. It is also not possible to predict what variables are available at a certain point in the method for injectors. We'll have to figure out a way to analyze classes on the fly and apply this per-mixin based on its injection point.


Fix: uninitialized constant FactoryBot::Syntax on Heroku

Got the same error on Render

On this branch?

This probably shouldn't even be in an initializer, but should be done in test_helper.rb. If there's a good reason for this elsewhere it should be documented.

@olbrich Good point! Moved code to test_helper.rb and updated PR.


window size of activitynet

hi，thanks for you excellent work. I found that an issue mentioned that you had some experiments on activitynet. Due to the differences between duration of videos in activitynet. So could you tell me what window size you use in your experiment on activitynet? Thanks

Hi,
As mentioned in https://github.com/HYPJUDY/Decouple-SSAD/issues/2
"ActivityNet has larger scale in video length and action instance length (can be very short and very long).“
It's hard to set a proper window size which can cover most of the action instances for Anet, so I resize all videos to the same length (256 or 512) and use more (7 or 9) anchor layers. Maybe this manner of resizing videos will loss precision but BSN gets good performance with resized videos.
If you don't want to resize videos, then maybe you can try large window size like 1024?

Thanks for your advice!


[AMQP] Fix Filter Set Encoding For 2 Char Length Session id

Fix for the case when a session id was of length 2. There was a logic error in encode that would try to do try/except on the passed in data and improperly split the values leading to an error from the service
The link contains invalid filter type. System only support Jms or Apache selector filter type but we found type 'Microsoft.ServiceBus.Messaging.Amqp.Encoding.DescribedType' associated with key 'com.microsoft:session-filter'.

if session id is (6, 671, 6712, .....) , line 769 raises a ValueError which gets handled on line 774 and described_filter = 671 as excepted
if session id is of length 2 ( 67, ka ) line 769 unpacks making descriptor = 6, filter_value = 7 , making the value borked

The fix was to make sure strs or bytes would not be attempted to be unpacked.

/azp run python - servicebus - eventhub

/azp run python - servicebus - tests

/azp run python - eventhub - tests

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

/azp run python - eventhub - tests

/azp run python - eventhub - tests

/azp run python - servicebus - tests

/azp run python - eventhub - tests

/azp run python - servicebus - tests

/azp run python - servicebus - tests

/azp run python - eventhub - tests


Explain how to add the phase banner to every page

{% block content %}
  <main id="content" role="main">
  {% include "includes/phase_banner_alpha.html" %}
  {% block page_content %}
  {% endblock %}
  </main>
{% endblock %}

This should go in layout.html, in index.html (and all other pages) {% block content %} then needs to become {% block page_content %}

This would now be done by setting the beforeContent block:
{# layout.html #}
{% from "phase-banner/macro.njk" import govukPhaseBanner %}

{% block beforeContent %}
    {{ govukPhaseBanner({...}) }}
{% endblock %}

https://design-system.service.gov.uk/styles/page-template/

I'm going to close this as I think this is now an interaction between the kit and the design system, so if we see any issues on this we'll likely raise that over on the design system.


appimageTools.wrapAppImage: preserve pname and version

this also allows nix-update to work correctly.
Looks like (yet) another alternative PR to #262506 and #271071. Depends on #273719 or #283222, to remove all the mv $out/bin/${pname}-${version} $out/bin/${pname}.
Closes #262350.
Description of changes

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)

[ ] 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

[ ] 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
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 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

[ ] Fits CONTRIBUTING.md.

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

Does this PR overlap with #271071?

Does this PR overlap with #271071?

ah, indeed, did not saw that PR. Yes, it does the same thing, except my PR preserve API compatibility (does not induce any breakage, afaik).

closing as #271071 was merged


Fix for blocking issues with domainownership CRUD APIs on domains and…

This checklist is used to make sure that common issues in a pull request are addressed. This will expedite the process of getting your pull request merged and avoid extra work on your part to fix issues discovered during the review process.
PR information

[x] The title of the PR is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
[x] Except for special cases involving multiple contributors, the PR is started from a fork of the main repository, not a branch.
[x] If applicable, the PR references the bug/issue that it fixes.
[x] Swagger files are correctly named (e.g. the api-version in the path should match the api-version in the spec).

Quality of Swagger

[x] I have read the contribution guidelines.
[X] My spec meets the review criteria:

[x] The spec conforms to the Swagger 2.0 specification.
[x] Validation errors from the Linter extension for VS Code have all been fixed for this spec. (Note: for large, previously checked in specs, there will likely be many errors shown. Please contact our team so we can set a timeframe for fixing these errors if your PR is not going to address them).
[x] The spec follows the patterns described in the Swagger good patterns document unless the service API makes this impossible.
… web

apps
Exposed keyvault properties on certificate.

This change is

No modification for Python

No modification for NodeJS

No modification for Ruby


fleng: 19 -> 20

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/fleng/versions.
meta.description for fleng is: A low level concurrent logic programming language descended from Prolog
meta.homepage for fleng is: http://www.call-with-current-continuation.org/fleng/fleng.html
Updates performed

Version update

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 20 with grep in /nix/store/fxwryiv4hxmhkj0h3p2gm1hk5kv57l4h-fleng-20
found 20 in filename of file in /nix/store/fxwryiv4hxmhkj0h3p2gm1hk5kv57l4h-fleng-20

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
fleng

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/fxwryiv4hxmhkj0h3p2gm1hk5kv57l4h-fleng-20 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A fleng https://github.com/r-ryantm/nixpkgs/archive/74f896c5ecb62769cc69bade9cb7bf049e3213aa.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/74f896c5ecb62769cc69bade9cb7bf049e3213aa#fleng

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/fxwryiv4hxmhkj0h3p2gm1hk5kv57l4h-fleng-20
ls -la /nix/store/fxwryiv4hxmhkj0h3p2gm1hk5kv57l4h-fleng-20/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

1 package built:

fleng

Maintainer pings
cc @AndersonTorres for testing.

@NixOS/nixpkgs-merge-bot merge


Update SolidOS README.md

I'm not so happy with the access to Documentation in the different repos.
This came because I was looking for some and also the forum discussion https://forum.solidproject.org/t/is-rdf-hard/5056?u=bourgeoa introducing a Developer Relations question.
May be we could consider either :

a wiki page SolidOS documentation
or in github.com/dolid/solidos/Documentation

with links to all types of documentation :

SolidOS general presentation (talks, videos)
API (rdflib, solid-ui)
technical (style, developers recommendations)
data models and ontologies
demos

@theRealImy
<text>
momentary I am working on https://github.com/ewingson/solid-file-client/tree/use_dpop_auth.
I shall look into the SolidOS code and understand the processes.
perfect would be a very small task, like for example add a textfield or add a formular field/entry on e.g. the profile page.
I have a SolidOS fork but it's not up-to-date.
the solid-file-client-demo is a perfect start, cause I get used to

git status
git add
git status
git commit
git status
git push

we/you/me could assign myself a documentation task as e.g. gather some links as for example in https://serverproject.de/t7/index.php?id=9 but group them with meaningful headlines.
</text>

@ewingson gathering and grouping links what the work proposed by @theRealImy
a wiki page SolidOS documentation so we can all work on it.
with links to all types of documentation :

SolidOS general presentation (talks, videos)
API (rdflib, solid-ui)
technical (style, developers recommendations)
data models and ontologies
demos

https://github.com/solid/solidos/wiki already exists ... ?
shall we improve or start over new at another URL ?

I think that's great work, so let's just improve it.
maybe collecting links at a secondary resource (solidproject.solidcommunity.net for example) ...

I opened a page https://github.com/solid/solidos/wiki/SolidOS-documentation
You can work freely on this one.
Please do not edit the other pages for the time being.


Can you please modify this script so that it gives the output as the download link?

No. But you can do this instead
# For Linux / Mac OS
$ python3 -c "from zippyshare_downloader import extract_info; file = extract_info('insert zippyshare url here', download=False); print(file.download_url)"

# For Windows
$ py -3 -c "from zippyshare_downloader import extract_info; file = extract_info('insert zippyshare url here', download=False); print(file.download_url)"

Or use third party script

https://github.com/Sparoney/zippy-extract


Fix typos in README.md.

Automated message from Dropbox CLA bot
@brainwane, thanks for the pull request! It looks like you haven't yet signed the Dropbox CLA. Please sign it here.

Merged, thanks @brainwane!

Automated message from Dropbox CLA bot
@brainwane, thanks for signing the CLA!


Remove status badge of lint

Summary
This PR just removes the status badge of lint due to #273.

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 93.63%. Comparing base (6dcff68) to head (26c402e).
Report is 74 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #274   +/-   ##
=======================================
  Coverage   93.63%   93.63%
=======================================
  Files          47       47
  Lines        5669     5669
=======================================
  Hits         5308     5308
  Misses        361      361

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Enhanced docker ecosystem

This PR:

replaces the docker entrypoint by a better one:

we offer the possibility for users to choose their sqlpad arguments
for example if you want to set --passphrase or --base-url then you can simply run docker with this arguments

removes the Dockerfile.tpl for a real Dockerfile, it's more standard and it opens the door for futur usage of automated builds, more details at https://hub.docker.com/add/automated-build/sqlpad/ (it needs some work to be done today like having npm build sript in the repository, I don't know how you build it @rickbergfalk ?)
upgrades to nodejs 4.5.0
directly build docker from the official docker nodejs image
creates a better docker-compose.yml for developpers working in the project

Thanks @marcmillien this looks really nice! Automated builds would be great. I'll look into what needs to be done to set that up.
Some background for building sqlpad -
When you clone the github repository and run npm install npm will install both the regular dependencies and dev-dependencies listed in the package.json file.
When an end user installs sqlpad via npm via npm install sqlpad -g, npm will only download the regular dependencies.
For v2, the command npm run build will run the build.js file, which will build the front-end javascript. Most of these front-end dependencies are listed as dev-dependencies. The bundled file is published to npm, so end users do not need to download all the dev-dependencies in the package.json.

Thanks for the details :), I'm going to test it ^^.


Feature Request: Reversible migrations

It would be great if excellent_migrations could enforce that a migration is reversible as a check.

That's a nice idea.
I guess it could be implemented by checking if def down or def change is implemented.
def change may not be reversible (e.g. if execute is used) but sometimes that may not be easy to detect.

@axelson I like your idea. Would you like to issue a pull request with the change?

Thank you! I likely wouldn't get this anytime soon. So it's probably best if you or someone else tackles it.

I would love to have this feature as well, and I may have some time to implement this.
How should checks for the down and change callbacks work?
For example, given this migration:
defmodule MyMigration do
  use Ecto.Migration

  def change do
    create table(:mytable) do
      add(:some_field, :uuid, null: false)

      timestamps()
    end
  end
end

Ecto migrations will generate rollback code that will drop mytable. If I'd created this same migration but with up and down callbacks excellent migrations would complain about the drop table in the down migration. What is desired? Destructive rollbacks or only safe rollbacks?


Add Catalyst 8000v

This started of as a copy of the (now legacy) csr platform, but has since been improved to:

handle minor differences / new config defaults in the bootstrap script,
use vmxnet3 NIC type because that is the only where dot1q VLAN tagged frame processing works,
make the install phase more robust.

Naming things is hard. I initially used cat8000v when I started, but now I see the more established name is c8000v. Un-🐈⬛ before merge?

c8000v seems like the best fit because Cisco also uses it for the image filenames, like c8000v-universalk9_16G_serial.17.12.01a.qcow2. I will rename the references in this PR and also include the full product name Cisco Catalyst 8000V Edge Software.


Readme recommends deprecated #[] instead of #values_at

Just got:

Calling #[] with multiple arguments is deprecated. Use #values_at

and noticed https://github.com/cequel/cequel/blob/6731076b24825eda212912b9c37c56a6d7ea6976/lib/cequel/record/record_set.rb#L271
Any reason to hold off on updating the Readme here?  Happy to submit a PR.
Thanks!

You can pass multiple arguments to the [] operator, which will generate an IN query:
 Post['bigdata', 'nosql'] # scopes posts with blog_subdomain IN ("bigdata", "nosql")

No reason at all. Please do.


Find Properties: Download button needs an expand/collapse state

Describe the task
Using a screen reader, when the "Download" button is activated, it doesn't announce anything to tell users what has happened. Similar to Filter button, the Download button acts like a disclosure. It should have an expanded/collapsed state
Acceptance Criteria

use <aria-expanded> on Download button

I can work on this :)

@amyyeung17 here you go 😄


Sum up each tickers total capital gains at the bottom of each table

We should show the total capital gains owed at the bottom of the table for each ticker.

I think its better if we have it at the top, underneath the TICKER-YEAR
So if you're only interested in the gains for that ticker for that year, you can quickly correlate the 3 values without having to look for it at the bottom of the table.
Imagine if you had 10 different tickers and each one had 100 entries. You might scroll down and forget what ticker you were looking for. But if it was right next to the name and year, you would know right away.


sparql() result format does not match Query Results JSON Format

Hello,
I'm in the process of updating from the old repo (quastdore 6.0.0 + quadstore-sparql) and I'm wondering why the sparql() method does not return a JSON matching the Query Results JSON Format (https://www.w3.org/TR/sparql11-results-json/) ?
Also, in the doc I did not see any mention to a helper function that would build it up. Did I miss it ?

Hello @antoine-morvan !
With the advent of the RDF/JS spec and ecosystem of libraries we've opted to reduce quadstore's surface area and let developers complement it with other libraries, according to the specific needs of each project.
This was done mainly for two reasons:

address the ballooning size of browser-side bundles, which was making usage of quadstore impractical in client-side contexts;
clear positioning of quadstore within the RDF/JS ecosystem and a narrower focus, allowing us to allocate more effort on quadstore's distinguishing features (that of being a persistent store) while benefitting (and contributing to!) other projects for requirements such as serialization, etc...

That said, there's a number of ways in which you can add serialization support to your project. One of them is to fork quadstore's custom configuration of Comunica and include the required serializer actors. This would be relatively easy to do and would allow you to pull in any new change from the original repository.

Thanks for the quick answer.

No worries. I will close this for now but please feel free to follow up here on GitHub or get in touch with me directly (see package.json for my email).

Ah, I forgot - if you can and feel comfortable doing so, we'd appreciate having a brief description of your use case in this discussion thread. It would help us understand how others are using quadstore, which in turn allows us to better prioritize issues.


Remove y-value scaling

Most likely fixes #244.
I believe the cause of the issue is the y-value scaling. It makes sense that this would show up in 1.18 given the min and max height changes.
edit: I checked the server code, and there's no scaling of the y-value in Vanilla.

It looks like the y-value scaling was added in #100. From what I can tell, it wasn't added to help MV-NP match Vanilla behaviour, so I think it's fine to remove.


Improve error message for incorrectly set path

I created a very simple livemark project:

ls -l
total 8
-rw-rw-r-- 1 aivuk aivuk 16 Jun 13 10:33 index.md
-rw-rw-r-- 1 aivuk aivuk 55 Jun 13 10:33 livemark.yaml

➜  livemark-tutorial $ cat livemark.yaml
pages:
  items:
    - name: Test
      path: index.md

➜  livemark-tutorial $ cat livemark.yaml
pages:
  items:
    - name: Test
      path: index.md

but when I try to run livemark on the folder with livemark start if fails with:
'NoneType' object has no attribute 'get_plugin'
@roll

@aivuk
Nervermind - I read it wrongly
Let me try

@aivuk
The path should be abstract (withouh an extension md/html):
➜  livemark-tutorial $ cat livemark.yaml
pages:
  items:
    - name: Test
      path: index

Yes, now it works removing the .md extension, thanks!

Let's keep it to improve the error message

Ah sorry, I didn't noticed that you changed the title and thought you create a new issue.


NO-TICKET: refactor Github workflows

Objectives:

[x] fix auto-publish version
[x] add canary publish on every commit
[x] automatically build new doc on master

Closing because of migration to @devexperts/remote-data-ts


textfield move the position when active

I change the position of textfield like this:
RAMReel(frame: CGRect(origin: CGPoint(x: 0, y: 100), size: CGSize(width: self.view.bounds.width, height: 100.0)), dataSource: dataSource, placeholder: "Start by typing…")
but when typing... the position goes to bottom...

Have you solved this issue? Currently facing the same.

Same issue here... @mattvb91 did you get it fixed ?

@AndresCianio no I had to switch to another library

@mattvb91 may I ask which one? I really liked this one, but I don't have the time to implement it from scratch 😞

@AndresCianio  https://github.com/apasccon/SearchTextField still needed a bit of overriding the theme but at least it worked right out of the box!

Great, thanks @mattvb91 !

Hello @Juriv I notice the repo is still active... Any chance this can be fixed? I'm trying to get it working but to no avail. Thanks!

This happens because there's a keyboard listener which attempts to resize everything to keep it all centered when the iOS keyboard appears and occupies the bottom half of the screen.
I added an option to disable this resizing 88122336ab7412e14aaecd367d2e4e2d56bf8550, which hopefully will make it behave correctly when not used full screen.
Let me know if this is sufficient.

Thanks @RamotionRussell but I've integrated a different library... When I'm done with this I'll get back and try this out, as I loved the component. Cheers!


Clarification needed on configuration restrictions

Currently the assertions and the exception messages are contradicting each other.
For example, if I have a ping interval of 1 second, must timeout duration be less or more than 3 seconds?
https://github.com/nhnent/toast-haste.sdk.dotnet/blob/f2d0d5a15e2244eb00f0eb7bf288676486ea03d0/HasteClientLib/NetworkConnection.cs#L117-L121

@ghroot Thanks feedback~!! Yeah this is typo error :cry:


Fix: Improve filter layout for mobile

Motivation

On smaller screens (e.g. mobile) the leaderboard filters are sometimes outside of the viewing area.
Description

This PR gives the filter component more responsiveness for smaller screens.
Screenshots (if applicable)

Width <580px:

Width 580-1280px:

Checklist
General

[x] PR title is clear and descriptive
[x] PR description explains the purpose and changes
[x] Code follows project coding standards
[x] Self-review of the code has been done
[x] Changes have been tested locally
[x] Screenshots have been attached (if applicable)
[ ] Documentation has been updated (if applicable)

Client (if applicable)

[x] UI changes look good on all screen sizes and browsers
[x] No console errors or warnings
[x] User experience and accessibility have been tested
[ ] Added Storybook stories for new components
[ ] Components follow design system guidelines (if applicable)

Can you also make the container fit the subviews? There is a lot of whitespace to the side 🤔

What testing setup did you use to get this whitespace? I can't seem to reproduce it at all.

Ah okay, I was just checking Storybook 🤔 Then it's fine

But it also looks kind of like this in your PR screenshot

Ah okay, I was just checking Storybook 🤔 Then it's fine, but ideally it should behave similarly

So the reason why it's not limited in Storybook is because we use the Tailwind container to limit the max-width of our whole "page body".

But it also looks kind of like this in your PR screenshot

The image is exactly the "wrapping" break-point from flex-wrap. So if you add a few pixels of width, it will snap back into the same row. Looks like this then:


I'm trying to use vuetify-material-dashboard with backend golang

1. I downloaded vuetify-material-dashboard recently and having a problem building a project. I added a line in vue.config.js
const path = require('path') if (process.env.NODE_ENV === 'production') {     module.exports.publicPath = path.resolve(__dirname, './dist') }
and could see it has no errors when 'vue-cli-service build'. But I found out vue-router doesn't work properly. There are two things I want to figure it out.

I want to build a project which can see and add with golang.
It's annoying that whenever I build vue project, it comes to dist folder. How can I change the link but follows the rootPath successfully.

2. Let's suppose that I build a project successfully, I have no idea how to link with golang and vue project. I added a folder in vue project folder to control backend for go lang. I am trying to use gin or gorilla, but not http which golang provides. Would anyone show me a sample code which could link both sides frontend and backend?

Is it possible to open in different port such as 3000 for vuejs and 8000 for golang and connect together?? Am I doing it right? I'm not sure. I'm just trying my best I could...


[NP-5057] Clean up log out

address: https://nanopay.atlassian.net/browse/NP-5057
DRY

@Nauna just update the label?

Please dont merge this yet

Still have one issue to resolve. please don't merge yet. Thank you.


V0.8.0 working

Coverage increased (+0.04%) to 65.513% when pulling 3edfd95f2418809310caaace8280b4d32f1a92fb on v0.8.0-working into db672fd7415a30f921aa171400823feca214b0cc on master.

Coverage decreased (-0.05%) to 65.423% when pulling 3c142413ddd74d6bdd5b028393a364fde3f18df6 on v0.8.0-working into db672fd7415a30f921aa171400823feca214b0cc on master.

Coverage decreased (-0.05%) to 65.423% when pulling 3c142413ddd74d6bdd5b028393a364fde3f18df6 on v0.8.0-working into db672fd7415a30f921aa171400823feca214b0cc on master.

Coverage decreased (-0.05%) to 65.423% when pulling 3c142413ddd74d6bdd5b028393a364fde3f18df6 on v0.8.0-working into db672fd7415a30f921aa171400823feca214b0cc on master.

Coverage decreased (-7.7%) to 57.771% when pulling e00b03852ec34c1d0f6e2dd36f508a63813dc232 on v0.8.0-working into 39e70de24c5d6e2bb775ce1e31f02b065368bb6b on master.

Coverage decreased (-6.9%) to 58.833% when pulling c139ed5f9c811b07f6e71c8c5e2678f946e36535 on v0.8.0-working into 2d5e8a7ca29c0608b7af7c8fb391f49d8d6b114e on master.

Coverage decreased (-6.4%) to 59.521% when pulling 3bac103174aa263457473c150488e2c88ab80f4e on v0.8.0-working into 0ab9f4f68186b71c84b7dca3c3c0e789a26b7073 on master.

Coverage decreased (-6.4%) to 59.516% when pulling 041e5131047e7ed916a76785c60265db68a918ac on v0.8.0-working into 0ab9f4f68186b71c84b7dca3c3c0e789a26b7073 on master.

Coverage decreased (-6.4%) to 59.516% when pulling 041e5131047e7ed916a76785c60265db68a918ac on v0.8.0-working into 0ab9f4f68186b71c84b7dca3c3c0e789a26b7073 on master.

Coverage decreased (-6.4%) to 59.516% when pulling 041e5131047e7ed916a76785c60265db68a918ac on v0.8.0-working into 0ab9f4f68186b71c84b7dca3c3c0e789a26b7073 on master.

Coverage decreased (-6.4%) to 59.516% when pulling dba098f508c3dafbe066573555ce90b7ace020f9 on v0.8.0-working into 73fe8c2d5729abf7afb745f23a269728bb48595f on master.

Coverage decreased (-6.4%) to 59.507% when pulling 24e36db5ee8ab7c360c7b0a47aee2918691c6479 on v0.8.0-working into 73fe8c2d5729abf7afb745f23a269728bb48595f on master.

Coverage decreased (-6.4%) to 59.491% when pulling f1e7a03dfc3e616c511fe59b51fa9ee604601610 on v0.8.0-working into 73fe8c2d5729abf7afb745f23a269728bb48595f on master.

Coverage decreased (-6.001%) to 60.267% when pulling 0e4cf8738ecf7b195e51d2a2dd639449dda67492 on v0.8.0-working into 34339c23ed25a42dafa3d7097a80d5cf45680b1a on master.

Coverage decreased (-6.001%) to 60.267% when pulling 210d866ff31caf2c1df72f40e725234a7109253a on v0.8.0-working into 34339c23ed25a42dafa3d7097a80d5cf45680b1a on master.


Added a fix for the URL parsing in ogm/config.

Config mis-parsed URL strings, transforming URLs such as localhost:2424/db_name to:
ParseResult(scheme='localhost', netloc='', path='2424/db_name', params='', query='', fragment='')

This obviously results in a failure to connect to the DB.

The CI failure seems to be due to a transient OrientDB connection error -- none of the functionality I changed was called in the problematic test cases. Can I somehow cause CI to re-run without pushing again?

No, you can't because you haven't admin access to the repo. I run it again
for you.
Il 23 ott 2015 9:40 PM, "Predrag Gruevski"<EMAIL_ADDRESS>ha
scritto:

The CI failure seems to be due to a transient OrientDB connection error --
none of the functionality I changed was called in the problematic test
cases. Can I somehow cause CI to re-run without pushing again?
—
Reply to this email directly or view it on GitHub
https://github.com/mogui/pyorient/pull/134#issuecomment-150671962.

Thanks, much appreciated! Looks good now!


a11y audit: Footer a11y fixes

Title line template: Footer a11y fixes
Detailed description

[ ] A 'contentinfo' role is not permitted without the presence of a 'main' role

This is being caused by storybook and the Container not having a role="main". I'll add this to the storybook container so that we do not encounter these flags in the future


How to search using fields other than option array

Below is my user array.
[{name:'joe',id:1<EMAIL_ADDRESS>{name:'zoya',id:2<EMAIL_ADDRESS>{name:'kim',id:3<EMAIL_ADDRESS>{name:'mark',id:4<EMAIL_ADDRESS>I am using the name and id field as label and value respectively in my multi-select option array.
When I search the name it works fine, but I would also like to search using email as well. So is there any way I can achieve the same?
Thanks in advance.

kind of lost here... plz help...


Make an optional flowchart

Suggestion : I would recommend and suggest that the author do a flowchart or a diagram for all steps from chapter 1 to 6 for each Machine learning algorithm or all of them at once. like for example some machine learning algorithm don't need to preprocess data ( standardized for example Like tree algorithm  ) this will help new learners like me to memorize all required steps fast starting from preprocessing data till tuning and evaluating. This will help us to achieve and done a perfect machine learning model.

Hi, Sebastian
I would like to contribute to creating the flowcharts for the algorithms. Here is a simple diagram for the Perceptron learning rule which is provided in chapter 2.

Please let me know if you are interested so we can work together.

Hi @OmarAlmighty, thanks for creating this! I'd say this definitely captures the essence of the perceptron algorithm. However, at the same time, it's also similar to Adaline (and almost similar to logistic regression). Now, thinking about some more complicated learning algorithms, I wonder if it is feasible to create flowcharts for them this way ...
If you find it helpful to create these flowcharts, I am open to collect them in a "contributed" or "community" folder. Maybe "machine-learning-book/contributed/algorithm-flowcharts". I'd be happy to share it on social media and showcase the contributions. But now pressure creating those. Looks like it would be lots of work.

Hi @rasbt, thanks for your feedback. I will start working on them ASAP. But how should I submit them to you? What method best works for you; should I send them via email or post them in a comment?
Also, it would be great if I get feedback about the flowcharts when I submit them to ensure the validity of the diagram and that it captures the essence of the algorithm.


City of Munich

Pre-submission checklist:
Please check each of these after submitting your pull request:

[x] Have you picked the single best (existing) category for your project?
[ ] If submitting a tool, is your project closed source or, if it is open source, does your project have at least 100 GitHub stars?
[x] Does it follow the other guidelines from the new entries section?
[x] Have you included a URL for your SVG or added it to hosted_logos and referenced it there?
[x] Does your logo clearly state the name of the project/product and follow the other logo guidelines?
[x] Does your project/product name match the text on the logo?
[ ] Have you verified that the Crunchbase data for your organization is correct (including headquarters and LinkedIn)?
[ ] ~10 minutes after opening the pull request, the CNCF-Bot will post the URL for your staging server. Have you confirmed that it looks good to you and then added a comment to the PR saying "LGTM"?

As a public administration we have no Crunchbase entry.

Also, could you please move the new item to match the alphabetic order in the adopter section? The right place should be in between China Mobile item and CISCO Item 🙂
          - item:
            name: City of Munich (Adopter)
            homepage_url: https://opensource.muenchen.de/
            logo: itm-logo.svg
            crunchbase: https://www.crunchbase.com/organization/m%C3%BCnchen-de

@anajsana unfortunately https://www.crunchbase.com/organization/münchen-de is not the "City of Munich". This is "Portal München Betriebs GmbH & Co. KG" its a subsidiary company and not associated with it@M.

hey, @klml we just migrated to a new landscape view that does not require Crunchbase data and neither deploys from Netlify so Netlify check status can be ignored (I will soon make changes so the repo settings for the checks do not appear on new PRs). Merging this PR now and thank you for your submission!


Over-exposure on latest firmware (wifi+ssl) AiThinker

Going back to 2022-12-03 seems to give the same results, ie over-exposure when outside.  Tested on 2 boards and 5 cameras.  Conclusion ... I have "lost the recipe".

My problem.

Bought another 3 ESP32-CAM boards and 3 more cameras.  With both 2024 and 2022 firmware still get over-exposure when there is say >30-50% of daylight in the picture.  It feels like the automatic exposure is not working ... if there is one:
2022-12-03:
          # camera settings
            camera.pixformat(0)   # 0:JPEG, 1:Grayscale (2bytes/pixel), 2:RGB565
            camera.framesize(10)  # 1:96x96, 2:160x120, 3:176x144, 4:240x176, 5:240x240
                                  # 6:320x240, 7:400x296, 8:480x320, 9:640x480, 10:800x600
                                  # 11:1024x768, 12:1280x720, 13:1280x1024, 14:1600x1200
                                  # 15:1920x1080, 16:720x1280, 17:864x1536, 18:2048x1536
            camera.quality(5)  # [0,63] lower number means higher quality
#    camera.contrast(0)  # [-2,2] higher number higher contrast
#    camera.saturation(0)  # [-2,2] higher number higher saturation. -2 grayscale
#    camera.brightness(0)  # [-2,2] higher number higher brightness. 2 brightest
            camera.speffect(2)  # 0:,no effect 1:negative, 2:black and white, 3:reddish,
                                 # 4:greenish, 5:blue, 6:retro
#    camera.whitebalance(0)  # 0:default, 1:sunny, 2:cloudy, 3:office, 4:home
#    camera.aelevels(0)  # [-2,2] AE Level: Automatic exposure
#    camera.aecvalue(0)  # [0,1200] AEC Value: Automatic exposure control
#    camera.agcgain(0)   # [0,30] AGC Gain: Automatic Gain Control

These values worked great for the last year or so, then stopped working.
2024:
n = PIXFORMAT.get('JPEG')
s = FRAMESIZE.get('SXGA')

import camera
camera.conf(pix, n)    # set pixelformat
camera.conf(frame, s)  # set framesize

def main():
    ok = camera.init()

 # other settings after init
    camera.quality(12)
    camera.speffect(2)  # black and white

Any hints on what may have changed or what I am now doing incorrectly would be appreciated.
Thanks,
Dave

See above

According to:
https://github.com/raduprv/esp32-cam_ov2640-timelapse/issues/5
you are suppose to wait 3-5 seconds after init before trying to take a picture.
Will do some more testing when the sun gets up tomorrow.

The 3-5 second delay does not seem to make any difference to 2024.
Going back to 2022 with the 5 second delay I have regained the former behaviour.  I originally had a 5 second delay after camera-init() but it was to allow one to break-into the program with a CTRL-C.  I didn't realise that this "time delay" was doing a 2nd job.


BUG - Fail to start BrainWavelet toolbox

Describe the bug
Fail to start BrainWavelet toolbox.
The path to the BWT toolbox hasn't been altered in the CBU cluster for a few years.
So, instead, I suspect it might be related recent commits that introduce new toolbox classes (in this recent commit): cef8e471ae7d3704019d859807e545748d215741
e.g. in file: aa_modules/aamod_waveletdespike.m
I haven't quite followed how to start toolboxes with these classes. Maybe these methods are still a work-in-progress, or perhaps I'm missing a critical step for initialising the toolbox. At the moment, I am not specifying any toolbox path or command to set them up, other than the default path definition in this parameter set: https://github.com/automaticanalysis/automaticanalysis/blob/cef8e471ae7d3704019d859807e545748d215741/aa_parametersets/aap_parameters_defaults_CBSU.xml#L66
To Reproduce
The aa masterscript and tasklist.xml are here: https://github.com/ethanknights/tmp_CC280_rest
Error:
**** automatic analysis failed - see reason and line numbers below
Wavelet despiking toolbox not found
for help, see the aa wiki
Error using aas_log (line 67)
aa error:
see above (or set aap.options.verbose)

Environment (please complete the following information):

OS with version: CentOS 7
MATLAB version: 2019a
Relevant toolboxes with version: 1.1

** Additional Info **
The waveletdespike.m function uses aas_cache_get, which fails specifically here:
https://github.com/automaticanalysis/automaticanalysis/blob/cef8e471ae7d3704019d859807e545748d215741/aa_modules/aamod_waveletdespike.m#L12-L13
Maybe I should have done something earlier (e.g. in masterscript?) to load the toolbox. Something to the effect of:
>> bwtClass('/imaging/local/software/BrainWavelet')

ans =

  bwtClass with properties:

          name: ''
      toolPath: '/imaging/local/software/BrainWavelet'
      autoLoad: 0
    keepInPath: 0
       showGUI: 0
        status: 'defined'

This isn't a major issue for me, as I'll try fall back to an older version for now, but thought might be a useful flag about updates. Any advice appreciated though, thanks!

Hi @ethanknights,
We have recently introduced "toolboxes" for tighter integration of tools. We started converting previously integrated tools into toolboxes, and BrainWavelet is our next "victim".
From now on, setting BrainWaveletdir is obsolete and your parameterset should rather contain this section:
        <toolbox desc='Toolbox with implemented interface in extrafunctions/toolboxes' ui='custom'>
            <name desc='Name corresponding to the name of the interface without the "Class" suffix' ui='text'>bwt</name>
            <dir ui='dir'>/imaging/local/software/BrainWavelet</dir>
        </toolbox>

Please. keep in mind that all toolbox specifications MUST follow each other (i.e. after https://github.com/automaticanalysis/automaticanalysis/blob/cef8e471ae7d3704019d859807e545748d215741/aa_parametersets/aap_parameters_defaults_CBSU.xml#L26-L50), as they form a single list in the XLM.

Thankyou @tiborauer! Pull request https://github.com/automaticanalysis/automaticanalysis/pull/283 now suggests to make this change in the default CBSU parameter file.


Frontend Project "onlineclothshopping website" Homepage Button Alignment Correction

Describe the Feature you want to end
Homepage button that is currently right aligned while the other content of the homepage is left aligned.
Expected behavior
Correct alignment of the homepage button.
Screenshots (optional)
Current Design

Expected Updated Design

Additional context (optional )
N/A

@MohitGupta121 Kindly assign me this issue.


fixed issue [#611] - make rating work again

Fixed regression error with ratings and implemented new rating functionality as outlined in issue [#611]
@mauriel133 @ironfroggy could you give a quick review of the code?

@mjstealey @selimnairb I think this PR should be merged before manual migrations since otherwise we would not be able to test ratings social metadata migrations. It should have minimum impact for rebase if any due to code changes being isolated in two rating-only files.

@hyi This has been classified as fixing a regression.  Can you refer me to the commit just before the regression?  Thanks.

@selimnairb Here is the commit that caused the regression: https://github.com/hydroshare/hydroshare/commit/fe596cc36bd988aef2335c9055137f0566d1c397 - "Liked by 0" now reads "Be the first one to +1 this resource"

@hyi From my quick look this looks fine, however, I'm not very familiar with this part of the code.

If anybody wants to take a look at this code, please do so before noon today. Otherwise, I'd suggest to merge it into develop before migration dry-run this afternoon since this code change is needed to be able to verify rating data is migrated successfully or not. @mjstealey if we don't hear any objections by noon today, I'd suggest to merge it in. I have tested it pretty thoroughly during my migration test, I think it resolved the regression error and works as expected without breaking anything.


Add ChatGPT API

Adds ChatGPT API. Fixes #89.

I was thinking to send a PR. Within a minute saw this PR. :-)

@lnashier duh, I should've chill instead of coding :D
Your code review and any additions are really welcome. Tests, docs, etc.

Is there a way we could also make this streaming?

@VarunMohan done in #101, you can go get -u github.com/sashabaranov/go-gpt3 to use that.


Require paths to be absolute when adding a storage folder

When writing the API docs for the storage endpoints I realized it might be confusing to add a relative path using the API, as the path would be relative to siad. This is especially confusing if you then restart siad in a different directory.
Another option is to convert the path to an absolute path, so that it's full path is shown in the list of storage folders.

Typo fixed and rebased.


Spinner problem

From<EMAIL_ADDRESS>on November 17, 2010 02:53:51

What steps will reproduce the problem?
When we have the combination of Spinners and EditText fields test case is not working.

What is the expected output? What do you see instead?
It should run without any problems

What version of the product are you using? On what operating system?
robotium 0.9 and XP Please provide any additional information below. We have an activity where first we have 4 spinners and next some edit text fields when we ran the test case it is executing fine.
But we have one more activity where we have 8 edit text fields followed by 4 spinners but this is not working as expected.

Original issue: http://code.google.com/p/robotium/issues/detail?id=31

From<EMAIL_ADDRESS>on November 17, 2010 03:26:38
What exactly is not working correctly? Please give more details, what happens when it comes to the new activity?
Owner: renasreda

From<EMAIL_ADDRESS>on November 24, 2010 09:14:20
This has been asked and answered in the developer forum. You have to scroll down first so that the spinners are visible before trying to use them.
Status: Invalid


Sort types

For some reasons sometimes swagger files swap their types and types properties order
e.g.
export interface Country {
  /** @format int64 */
  id?: number;

  /** @format double */
  latitude?: number;

  /** @format double */
  longitude?: number;
}

becames
export interface Country {
  /** @format int64 */
  id?: number;

  /** @format double */
  longitude?: number;

  /** @format double */
  latitude?: number;
}

I added a sortTypes params to avoid that and reorder types / types params alphabetically. The main goal is to avoid fake changes on commiting API files.

it seems to answer the issue #151

Hello @RoCat ! Thank you for this cool feature request!

Hello. I caught one issue with the sort function.
ERRRORR TypeError: schema.rawTypeData.$parsed.content.sort is not a function
'$parsed': {...schema.rawTypeData['$parsed'], content: schema.rawTypeData['$parsed'].content.sort(sortByName)}
After some research I've found that in openapi we have this "TriggerAPISchema": "title":"TriggerAPISchema","type":"object","properties":{}},, which in the code above has content: 'object', where sort is undefined.
What can we do in this case?
I think it will be good to add validation Array.isArray(schema.rawTypeData['$parsed'].content)

Hello. I caught one issue with the sort function.
ERRRORR TypeError: schema.rawTypeData.$parsed.content.sort is not a function
'$parsed': {...schema.rawTypeData['$parsed'], content: schema.rawTypeData['$parsed'].content.sort(sortByName)}
After some research I've found that in openapi we have this "TriggerAPISchema": "title":"TriggerAPISchema","type":"object","properties":{}},, which in the code above has content: 'object', where sort is undefined.
What can we do in this case?
I think it will be good to add validation Array.isArray(schema.rawTypeData['$parsed'].content)

@all-contributors please add @RoCat for code ideas design


Problems with PermissionsEx

Description
[The plug-in is not working and I do not know how to fix it.]
Detailed Information
Is available here

Easy fix.  Download a version of PEX that goes with your server version.  (Read the release notes.)


Missing/incomplete docs

This isn't actually a bug, but there wasn't a "docs" issue template. Some of the documentation is incomplete or out of date.
Incomplete:

https://github.com/joshwilsonvu/eslint-plugin-solid/blob/main/docs/prefer-classlist.md -- missing description for classnames key
https://github.com/joshwilsonvu/eslint-plugin-solid/blob/main/docs/self-closing-comp.md -- bad code formatting in table
Most keys would benefit from a 'default value' column, especially boolean keys, even if the default value seems obvious

Missing:

https://github.com/joshwilsonvu/eslint-plugin-solid/blob/main/docs/prefer-show.md

Thanks for the feedback! I've added descriptions and defaults to all options and updated the options format in the docs.


Limited number of variables in GET request

The PUMS API limits GET requests to 50 variables. We need all 80 replicate weights for the variance calculation.
My approach will be to make separate GET requests and then merge the data together. We may find better way down the road but merging will do for now.

Ah ok it says here we can get past this limited with a developer key which I'm applying for now

Nevermind, developer key allows for more than 500 queries per day but doesn't change max number of variables. Trying group functionality outlined in user guide instead

Group functionality is to get pre-defined tables, not what we want either. Can't find unique identifier which we would need for merge. Could merge on set of demographic indicators but that seems like bad design.

There is no unique identifier for people, only for SERIALNO unique ID for households. However there is also a person number variable SPORDER which assigns each member of a household a unique identifier. So we can construct a person-level unique ID from these two variables and then use this to merge the replicate weights with the data

This implementation works. Working pushed to the PUMS branch in this commit. Next step is to refactor. Making more GET requests requires a bigger design change than I anticipated


Websocket Support

I saw your other comment in another issue about WebSocket not being relevant with HTTP2 however there's still plenty of situations where it makes sense to use it - can see explanations here: https://stackoverflow.com/questions/28582935/does-http-2-make-websockets-obsolete
I was wondering if you'd be open to adding WebSocket support?

Hi I'm certainly open to adding websocket support. Admittedly it's not something that I am working towards right now. I'm prioritising the tools needed for secure applications. However if you(or other) wanted to experiment I would certainly offer some pointers.

Sure that's something I'd like to work on.  Where do you suggest I start?

Hey that's awesome. Having not looked into it much I'm not sure exactly what I would entail. I would start by adding websocket support to Ace then returning something like %Ace.WebsocketUpgrade{} from the appropriate handle_request call. That struct would basically exit the Raxx world and would allow for quicker development just in Ace.
I did something similar when developing streaming and then as what was needed emerged I pushed it back into the raxx interface.
aside
An alternative option could be to look into creating a raxx cowboy adapter. and cowboy already has websockets. That might be less work than websockets in Ace

I am going to close this issue for now.
Websocket support should probably be added to a specific server first. before the process of trying to create a generalised interface in Raxx


Exporting duplicate meshes causes exporter to fail when DRACO is enabled

Describe the bug
I'm working on a very simple scene with 4 meshes, 1 of which is a duplicate of another one. Whenever I try to export that scene, I get an error in Blender 2.92 (see screenshots).
To make sure my scene is not the problem, I tried creating a brand new "General" scene in Blender, and simply duplicated the default cube. Sure enough, the same error shows up.
This happens only when the two items are exported together. Individually, they're fine. I haven't tried to play around with the settings too much apart from the Compression. I can confirm that without DRACO compression, the issue isn't happening.
To Reproduce
Steps to reproduce the behavior:

Create a default Blender project
Duplicate (SHIFT+D) default cube and move it anywhere
File > Export > glTF 2.0 (.glb/.gltf)
Options :

Include : Selected Objects / Custom Properties
Transform : +Y Up
Geometry : Apply Modifiers / UVs / Normals / Materials : Export / Images : Automatic / Compression (default settings)
Animation : nothing.

Expected behavior
An output gltf file, no error.
Screenshots

Version

OS: Mac OS 11.1 on a Mac Mini M1 (could this be an issue? I know everything is not perfect yet in this regard)
Blender 2.92

https://github.com/KhronosGroup/glTF-Blender-IO/issues/445#issuecomment-789283685

Fixed by #1352


[Bug]: Screenshot share to flutter app fails

Platform
iOS 16.1.1
Plugin
share_plus
Version
6.3.0
Flutter SDK
3.3.9
Steps to reproduce
share_plus is working fine in my flutter app for images shared from Photos, Google Photos etc. It works both when the app is running, and when it's not. However, on iOS sharing from the screenshot-editing flow fails like this.

Take a screenshot
Click the thumbnail that pops up to edit the screenshot.
Click the share icon in the upper right corner.
Select your share_plus enabled flutter app.

Expected: Screenshot is sent to my flutter app.
Actual: A small dialog appears for a split second and then disappears. (see attached screen shot) Then you're back in the screenshot editing flow. My flutter app does not receive the screenshot image.

Code Sample
No response
Logs
no log output as the app is never opened in this sharing scenario

Flutter Doctor
ronbarzel@POMac flutt_mpom_3 % flutter doctor -v
[✓] Flutter (Channel stable, 3.3.9, on macOS 13.0.1 22A400 darwin-arm (Rosetta), locale en-US)
    • Flutter version 3.3.9 on channel stable at /Users/ronbarzel/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b8f7f1f986 (2 days ago), 2022-11-23 06:43:51 +0900
    • Engine revision 8f2221fbef
    • Dart version 2.18.5
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/ronbarzel/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

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

[✓] Android Studio (version 2021.3)
    • 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.13+0-b1751.21-8125866)

[✓] Connected device (1 available)
    • Ron’s iPhone X (mobile) • 00008020-001449022ED8002E • ios • iOS 16.1.1 20B101
    ! Error: Ron’s iPhone X is busy: Fetching debug symbols for Ron’s iPhone X. Xcode will continue when Ron’s iPhone X is finished. (code -10)

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

Checklist before submitting a bug

[X] I Google'd a solution and I couldn't find it
[X] I searched on StackOverflow for a solution and I couldn't find it
[X] I read the README.md file of the plugin
[X] I'm using the latest version of the plugin
[X] All dependencies are up to date with flutter pub upgrade
[X] I did a flutter clean
[X] I tried running the example project

It seems you are confusing the purpose of Share plus plugin. It allows your app to share files, not other apps share files with your app. So this issue isn' about Shape plus plugin.

Whoops, you're right, meant to file this issue for receive_sharing_intent.


Unable to use exported models

Type of Issue
[ ] Bug Report
[ ] Feature Request
[x] Question
Description
How to create sub package for each kind of export? For example, I want import statement to look like this for each type of file exported:
Models (inluding interfaces and classes)
import {FooModel, BarModel} from 'my-lib/models';
Enums
import {FooTypes, BarTypes} from 'my-lib/enums';
Right now, as all the exports are from public_api.ts file, my import statements look like this:
Models (inluding interfaces and classes)
import {FooModel, BarModel} from 'my-lib';
Enums
import {FooTypes, BarTypes} from 'my-lib';
I tried creating export files but webpack fails to compile. Here's the link to full question, with code and error statement: StackOverflow

@alan-agius4
Model class: src/app/modules/my-custom-module/models/my-model.ts
export class MyModel {
  constructor() {
    // default values for props here
  }

  // ...props here
}

Index file: src/app/modules/my-custom-module/models/index.ts
export * from './my-model';
export * from './my-other-model';

Export file at root: models.ts
export * from './src/app/modules/my-custom-module/models/index';
ng-packagr file at root: public_api.ts
export * from './models';

export * from './src/app/modules/my-custom-module/my-custom-module.module';
export * from './src/app/modules/my-custom-module/components/index';

Main project code:
import {MyCustomModule} from 'my-custom-library'; // works
import {MyModel} from 'my-custom-library'; // works
import {MyModel} from 'my-custom-library/models'; // does not work

I believe, I'm missing something about mapping webpack module resolution because VS Code recognizes the import, intellisense works and even Ctrl + Click navigates to right file but webpack fails in compilation.
Error:

module not found error can't resolve my-custom-library/models

You need to export the models from models/index in your public_api
On Thu, 05 Jul 2018 at 14:45, sataqi<EMAIL_ADDRESS>wrote:

@alan-agius4 https://github.com/alan-agius4
Model class: src/app/modules/my-custom-module/models/my-model.ts
export class MyModel {
constructor() {
// default values for props here
}
// ...props here
}
Index file: src/app/modules/my-custom-module/models/index.ts
export * from './my-model';
export * from './my-other-model';
Export file at root: models.ts
export * from './src/app/modules/my-custom-module/models/index';
ng-packagr file at root: public_api.ts
export * from './models';
export * from './src/app/modules/my-custom-module/my-custom-module.module';
export * from './src/app/modules/my-custom-module/components/index';
Main project code:
import {MyCustomModule} from 'my-custom-library'; // works
import {MyModel} from 'my-custom-library'; // works
import {MyModel} from 'my-custom-library/models'; // does not work
I believe, I'm missing something about mapping webpack module resolution
because VS Code recognizes the import, intellisense works and even Ctrl +
Click navigates to right file but webpack fails in compilation.
Error:
module not found error can't resolve my-custom-library/models
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dherges/ng-packagr/issues/992#issuecomment-402709848,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQv-Wp-Os9mNh7-2P85DVPS8vWcUFAIyks5uDgpUgaJpZM4VDgTw
.

Ok but wouldn't my import still look like this:
import {MyModel} from 'my-custom-library'; // as models are exported from public_api.ts
but I want my models import to look something like this:
import {MyModel} from 'my-custom-library/models' // note the /models sub path in the end

If you want to import my-custom-library/models you need to use secondary entrypoints and create a subpackage https://github.com/dherges/ng-packagr/blob/master/docs/secondary-entrypoints.md

If you wish to use import {MyModel} from 'my-custom-library/models' you'd need to create secondary entrypoints.
With your current implementation that is something not possible.
Take a look at this documentation; https://github.com/dherges/ng-packagr/blob/master/docs/secondary-entrypoints.md

I'll try that and update. thank you!

Can you create a small reproduction please?

nvm. It worked using secondary-endpoints.  Thank you for your help!


Move CPU/GPU timestamp correlation to vkGetPhysicalDeviceProperties()

It turns out that MTLDevice sampleTimestamps:gpuTimestamp: executes synchronously with other queue activities, and can block GPU execution if it is called frequently.
Move timestamp correlation to the execution of vkGetPhysicalDeviceProperties() so it is called only on demand by the app.
Furthermore, MTLDevice sampleTimestamps:gpuTimestamp: should only be invoked if all of these conditions are met (otherwise the VkPhysicalDeviceLimits::timestampPeriod should be set to 1.0):

CPU is not Apple Silicon (!supportsMTLGPUFamily(Apple1)).
MVKPhysicalDevice::_timestampMTLCounterSet exists.
MVKPhysicalDeviceMetalFeatures::counterSamplingPoints is empty.

PR #1992 fixes this issue. Please retest to verify, and close this issue if it fixes the problem you encountered.


BUG: pip install -e .[extra1,extra2] dinged for not using hashes, but it can't

Same as #2228 but need support for extras_require
setup.cfg
[metadata]
name = Package-A

[options.extras_require]
dev =
    ReportLab>=1.2
oidc =
    pyjwt

Example Dockerfile
Dockerfile
RUN pip install --no-deps --editable .[dev]
RUN pip install --no-deps --editable .[dev,oidc]

References

https://github.com/ossf/scorecard/pull/2731

https://github.com/ossf/scorecard/issues/2228

https://setuptools.pypa.io/en/latest/userguide/dependency_management.html#optional-dependencies

See setup.cfg example (reproduced above)

Can you provide some more details? What version of scorecard are you using? Or if there's a specific file/repo?
I tried making an example Dockerfile from your example
FROM python:3.12@sha256:3733015cdd1bd7d9a0b9fe21a925b608de82131aa4f3d397e465a1fcb545d36f
RUN pip install --no-deps --editable .[dev]
RUN pip install --no-deps --editable .[dev,oidc]

And scorecard at HEAD is saying everything is pinned:
$ go run main.go --local=/tmp/pinned --checks Pinned-Dependencies --format json --show-details | jq
{
  "date": "2024-01-02T14:23:46-08:00",
  "repo": {
    "name": "file:///tmp/pinned",
    "commit": "unknown"
  },
  "scorecard": {
    "version": "",
    "commit": "unknown"
  },
  "score": 10.0,
  "checks": [
    {
      "details": [
        "Info:   1 out of   1 containerImage dependencies pinned",
        "Info:   2 out of   2 pipCommand dependencies pinned"
      ],
      "score": 10,
      "reason": "all dependencies are pinned",
      "name": "Pinned-Dependencies",
      "documentation": {
        "url": "https://github.com/ossf/scorecard/blob/main/docs/checks.md#pinned-dependencies",
        "short": "Determines if the project has declared and pinned the dependencies of its build process."
      }
    }
  ],
  "metadata": null
}

Unable to reproduce, happy to reopen with more details.


Rework the database models to handle chat dialogues

Done in https://github.com/Flagro/TelegramRPBot/pull/35


Three + parents broken in report

Not showing the third parent here.
I guess put it below P1 is the simplest?

Ping @hyanwong