Second Mode/G-Shift support

Quick question about functionality support: is it a device limitation that I can't see a way to configure the "g-shift" (which is called second-mode by libratbag) functions, or is it a general libratbag problem? Happy to open a new issue if that's required.

I think this is something we never sorted out:

you can assign a special key second-mode that triggers the G-shift
you can not assign the buttons while in the G-Shift mode (at least not in ratbagctl)

IIRC, when working on the Roccat driver I duplicated every button, but that created a massive amount of visual data.
So there are 2 problems:

one UI problem (how do we present these from the UI) -> that would be a piper issue
one protocol problem: I am not sure how we can configure an alternate mapping for a button.

_Originally posted by @bentiss in https://github.com/render_node/MDU6SXNzdWUzMDkzNjM3NTk=/issues/unread_timeline#issuecomment-451442215
With that in mind are there any ideas around way that second-mode could be implemented effectively within the protocol.

This really needs to be implemented. I am fed up with the Logitech software being broken and not allowing me to unbind left and right click as the secondary binds.

@scj643 we'd really appreciate any help with the implementation. As it is, everyone is struggling for time.

I came here to post this, as it stands now I have to run a windows VM, so I can bind to any of the " G-Shift " keys.

how did u get the mouse to show up in the logitech gaming software within the vm?

Well, it seems we already have an API for second-mode so it shouldn't be that hard to add support.

When do you expect progress in that regard?
In the meantime I'll have to dual boot Windows just for that.

So piper just successfully messed up half of my binds and I only found out after the fact that G-shift isn't supported yet. Any progress on this?

So piper just successfully messed up half of my binds and I only found out after the fact that G-shift isn't supported yet. Any progress on this?

Same here. This is why I don't use Piper anymore.
(Back when I first commented on this issue) I had to crawl underneath my desk, unplug my mouse from my PC, plug it into my laptop, boot Windows 10 (yikes), open LGS, re-configure my mouse, shut down Window 10 (finally), crawl underneath my desk again and plug in my mouse again.
I highly advise everyone with a Logitech mouse NOT to use Piper.
Please fix.

Not yet. @grenzionky how did it mess up your binds? It should not touch anything if you don't try to reconfigure them. Which device do you have?

Not yet. @grenzionky how did it mess up your binds? It should not touch anything if you don't try to reconfigure them. Which device do you have?

While I cannot speak for someone else, even just re-configuring the RGB stuff causes my G-switch binds to disappear.

@FFY00

i just send all the buttons to the abcs in alphabetical order like so ↑ , then i use https://github.com/mafik/logitech-g600-linux to set each button to a command, which is mostly keyboard shortcuts through xdotool ex:
const char *downCommands[] = {
        //[scancode] = "command to run",
        [4 ] = "xdotool key XF86Back", // scroll left
        [5 ] = "xdotool key XF86Forward", // scroll right
        [6 ] = "xdotool key ctrl+c", // g8
        [7] = "flameshot gui", // G9 // screenshot application example
        [8] = "playerctl play-pause", // G10 //play/pause media example
        [9] = "xdotool key Return", // G11
        [11] = "xdotool key XF86AudioLowerVolume", // G18*/
        [12] = "xdotool keydown Shift_R", // G19
        //[19] = "SWITCH MODE", // G20
	[32] = "xdotool key XF86AudioRaiseVolume", // G-shift + G18
	[32] = "xdotool key F31", // G-shift + G18
};
const char *upCommands[] = {
        //[scancode] = "command to run",
        [18] = "xdotool keyup shift", // G19
};

Not yet. @grenzionky how did it mess up your binds? It should not touch anything if you don't try to reconfigure them. Which device do you have?

I didn't try messing around with ratbagctl yet, but just opening piper, changing some LED settings and then applying the whole profile, caused all the already present and configured bindings in that profile which include the G-Shift key to not work anymore.

@grenzionky why don't you just configure the buttons directly?
@grizeldi which device do you have?

Can you try #988?

@grizeldi which device do you have?

G502 Hero SE.
I'm not very familiar with C development, so I doubt I'll manage to get the PR to build, let alone convince piper to use the custom built version. I don't currently have access to a windows machine on which I could fix the profile, so it might take a bit before I could test, even if I manage to get the PR to build.
Once I fix the profile I can give it a shot.

You don't need to know C to build it. And you don't need to convince piper of anything, it should connect to the daemon running.
This should work
mkdir build
cd build
meson ..
ninja
./ratbagd

Make sure to kill the current daemon before running this one.
killall ratbagd

Then start piper.

If someone does try it out please let me know if the fix worked so that I can merge.

The fix worked for me. Using Logitech G203 with the current release of libratbag will reset G-Shift bindings when interacting with ratbagctl, e.g.
ratbagctl "Logitech G203 Prodigy Gaming Mouse" led 0 set mode off
After pulling and building your branch, ratbagctl does not overwrite G-Shift bindings. Piper works properly as well.

Great :)

Any updates on supporting the G-Shift mode?

So can we assume G-Shift is dead?

I don't know why anyone thinks G-Shift is dead.
For my g600 at least, support for it was added in this commit: https://github.com/libratbag/libratbag/commit/e6a9fba4985ab06554b64c87ff6faf1ab6ac08b3
The caveat is that you'll have to have to stop using piper and manually bind the buttons for now. Use this file as a guide: https://github.com/libratbag/libratbag/blob/master/src/driver-logitech-g600.c
For example, if you want to bind CTRL+X to Gshift+G12, run this command:
ratbagctl warbling-mara profile 0 button 32 action set macro +KEY_LEFTCTRL +KEY_LEFTSHIFT KEY_X -KEY_LEFTSHIFT -KEY_LEFTCTRL

This is really good news but, is there any other mouse, beside the G600, that has the G-Shift/2nd mode support of libratbag?

This is really good news but, is there any other mouse, beside the G600, that has the G-Shift/2nd mode support of libratbag?

For real, my G502 Hero doesn't even report having the extra buttons even though it support G-Shift. Like I can map the G-Shift button to "second mode," but ratbagctl info only reports 11 buttons (which is the number of actual physical buttons I have).

For me it says, "Something went wrong. The device has been reset to a previous state." Any fixes? (G502 HERO)

So, is there any other mouse that support G-Shift/Second mode?

@leinardi like in general? There are plenty, but if you mean in libratbag (which is what I think you mean) it looks like it's still just the G600.

Is there any progress or interest for adding support for other mice similar to how the G600 is implemented? (Specifically I have a G604)

Maybe for budget entry mice as well like the G102? The mouse only has 6 buttons, adding second mode would give it 5 more.

So I see I can set second mode as a button for my G604 but I don't see any way to configure it, or Macros, or other such stuff. How can we make this feature-parity with Windows?

Any progress on this?

I have a HUNCH (speculation) this may be in a better state when the Logitech HID++ improvements hit the Linux kernel ( https://www.phoronix.com/news/Linux-6.1-Try-Logitech-HID-BT ), however it seems to primarily talk about Bluetooth, so I do not know if HID++ functionality is already present for non-bluetooth interfacing.

Please make this g-shift function work for the G502 models and the G502X. I'm autistic and had to go through a lot of efforts to use proprietary drivers to set-up my mouse, it's such a pain. And I need my mouse to have all its buttons have two properties whether or not I'm holding with my thumb the big one on the left to activate g-shift. For key combinations like alt+tab, ctrl+pageup/pagedown, and all. Including the buttons to the left and right of the wheel. Without this I cannot function as a human being lol
Would really make my day if piper could cover this or smth

@bluemner this is a long shot since it's been 3 years since you worked on #1064, but do you recall how you figured out the memory model for the G600 (referencing your comment below)? I looked at the hidpp20 driver and read through the Logitech documentation linked from that driver, but haven't been able to figure out how G-Shift is modeled for it.

Due to the locality of G-shift addresses in the memory of the mouse the G-Shift functions can be accessed via the normal button interface

@collinjackson93 this is what I still have hopefully it help
Background
With the G600 I took a guess that the  G-Shift section would be right after the normal buttons in the vendor usage page section. I noticed that while it did work the buttons where off by one and writing to the first button was changing the color of the leds. I  added a hack/  phantom button to account for this shift in the profile knowing its the led's 8bit section.
Process

Before you being make sure you understand HID Descriptors and the profile  understanding-hid-report-descriptors.

When profiles are saved on device they are normally in the USAGE PAGE(Vendor defined 0x####)
The step you might want to try for hidpp2++ driver the:

Dump the whole profile memory out (this is the USAGE PAGE(Vendor defined 0x) from then hid profile.
On windows machine change one g-shift button
Dump out the profile once more and do a diff to see where it is changing.
Create a c struct for the profile you can use this to help:  (https://github.com/Logitech/cpg-docs/tree/master/hidpp20)[hidpp20]

g600 Test File
Here is my testing script I used for the G600 (https://gist.github.com/bluemner/5728f5fca4b5b580262db958c27055aa)[https://gist.github.com/bluemner/5728f5fca4b5b580262db958c27055aa]
If you sum all unit8_t  its 154 words of size uint8_t  subtract 1 to get 153; or an array from  [0....153].  which matches the REPORT_COUNT(153)
REPORT_SIZE(8)
From the hid-descriptor
Data structure
struct logitech_g600_button {
	uint8_t code;
	uint8_t modifier;
	uint8_t key;
} __attribute__((packed));

struct logitech_g600_profile_report {
  uint8_t id;
  uint8_t led_red;
  uint8_t led_green;
  uint8_t led_blue;
  uint8_t led_effect;
  uint8_t led_duration;
  uint8_t unknown1[5];
  uint8_t frequency; /* frequency = 1000 / (value + 1) */
  uint8_t dpi_shift; /* value is a linear range between 200->0x04, 8200->0xa4, so value * 50, 0x00 is disabled */
  uint8_t dpi_default; /* between 1 and 4*/
  uint8_t dpi[4]; /* value is a linear range between 200->0x04, 8200->0xa4, so value * 50, 0x00 is disabled */
  uint8_t unknown2[4];
  uint8_t unknown3[4];
  uint8_t unknown5[5];
  struct logitech_g600_button buttons[20];
  uint8_t g_shift_color[3]; /* can't assign it in LGS, but the 3rd profile has one that shows the feature :) */
  struct logitech_g600_button g_shift_buttons[20];
} __attribute__((packed));

I then call the report using the
Helper functions for ioctl Interface

// make it look nice
void print_buffer(uint8_t *buf, size_t len, uint8_t reg, int result){
    int i;
    printf("buffer result 0x%02hx %d\n\t", reg, result );
    for(i=0; i< len; i++)
        printf("0x%02X ", buf[i]);
    puts("\n");
}

/**
 * read device feature information
 * @param [out] fd
 * @param [in] len
 * @param [out] buf
 * @param [in] reportnum
 **/
int read_device_feature(int fd, const size_t len, uint8_t *buf, const unsigned char reportnum ){
    uint8_t tmp_buf[4096];
    int result;
    memset(tmp_buf, 0, len);
	tmp_buf[0] = reportnum;

    result = ioctl(fd, HIDIOCGFEATURE(len), tmp_buf);
    if (result < 0)
		return -errno;
    memcpy(buf, tmp_buf, result);
	return result;

}

Example main
Location of profile  will be defined in  USAGE(0xF3) in the vendor defined section.
int main(){
int main(int argc, char** argv){
  const char* path = "/dev/hidraw9"; // TODO: CHANGE ME
  int fd = open(path, O_RDONLY, 0); // OPEN UP Connection will need sudo / read access for user on /dev/hidraw#
  int result, i, j, size =0;
  if (fd < 0){
      printf("error");
      return  -1;
  }
  // Get Report
  struct  hidraw_report_descriptor descriptor;
  struct hidraw_devinfo info;
  memset(&descriptor, 0x0, sizeof(descriptor));
  memset(&descriptor, 0x0, sizeof(descriptor));
  result = ioctl(fd, HIDIOCGRDESCSIZE, &size);
  descriptor.size = size;
  result = ioctl(fd, HIDIOCGRDESC, &descriptor);

  if (result < 0) {
  	printf("descriptor %d\n", result );
  } else {
  	printf("Report Descriptor:\n");
  	for (i = 0; i < descriptor.size; i++)
  		printf("%02hhx ", descriptor.value[i] );
  	puts("\n");
      printf("Please go to http://eleccelerator.com/usbdescreqparser/ to view report \n");
  }
 //  hardware Vendor info
  result = ioctl(fd, HIDIOCGRAWINFO, &info);
  if (result < 0) {
  	printf("descriptor %d\n", result );
  }else{
      printf("Raw Info:\n");
  	printf("\tbustype: %d - %s\n", info.bustype, bustype_string(info.bustype));
  	printf("\tvendor: 0x%04hx\n", info.vendor);
  	printf("\tproduct: 0x%04hx\n", info.product);
  }
 //  Get profile section
  struct logitech_g600_profile_report profile0; // Create structure to store data
  result = read_device_feature(fd, sizeof(profile0), (uint8_t*)&profile0, 0xF3); // Read profile and load into structure
  printf("id 0x%02hx result  %d\n", 0xF3, result ); // Print data
  printf("profile id %u\n", profile0.id );
 return 0;
}

I have found a way of simulating Second Mode, as a workaround. I hope it is OK that I post it here -- let me know otherwise.
First I use libratbag/piper to bind the mouse buttons to numbers (e.g. the left mouse button to 1).
Then I use keyd to remap these keys (e.g. 1 or 5) to a layer toggle or similar. This way I can get the same functionality on my G502 on Linux as I would using the Logitech software. Using keyd-application-mapper, it is also easy to have specific maps for specific applications.

How is the status of this issue as of now?
I recently bought a Logitech G502 Hero and ratbagctl only reports 11 buttons (ratbagctl hollering-marmot button count) even though tools like xmodmap can see all 20 (because of second mode) (xmodmap -pp), so I'd assume the ways to implement it are already there and it seems G600 already has that implemented. So what is making it hard to do it for G502?
By the way, on the topic of workarounds I found out that if you remap to a keyboard key that doesn't exist in your keyboard (F14-F16 in my case, since I'm using F13 for another button), KDE plasma will let you assign it like normal, since it doesn't let you do it with normal mouse buttons for some reason.

I have found a way of simulating Second Mode, as a workaround. I hope it is OK that I post it here -- let me know otherwise.
First I use libratbag/piper to bind the mouse buttons to numbers (e.g. the left mouse button to 1). Then I use keyd to remap these keys (e.g. 1 or 5) to a layer toggle or similar. This way I can get the same functionality on my G502 on Linux as I would using the Logitech software. Using keyd-application-mapper, it is also easy to have specific maps for specific applications.

Hey @jloow Could you specify a little bit more how is this achieved? I don't understand what exactly did you do. How do you access the G-shift buttons if there isn´t a "second mode" button, given that you remapped the mouse buttons to keyboard inputs, or did you just remap all buttons and then create custom shortcuts that work with one of the assigned keys emulating the G-shift button. I feel like I'm missing something obvious, hope you don't mind explaining.

@FragataIncognita Hey, sorry for a late reply. I did the latter thing. In short, I bind all mouse buttons except left, middle & right to number keys 1 through 8 (G-shift is 8). I then use a config specially for the G502 (/etc/keyd/g502.conf). It looks like this:
[ids]
046d:c08b

[aliases]
1 = button1
2 = button2
3 = button3
4 = button4
5 = button5
6 = button6
7 = button7
8 = button8

[main]
button1 = C-c
button2 = C-v
button3 = C-w
button4 = C-S-tab
button5 = C-tab
button6 = mouse1
button7 = mouse2
button8 = overload(extra, M-space)

[extra]
button4 = M-pageup
button5 = M-pagedown

In this case, the G-shift (button8) activates the extra layer if held and sends M-space if pressed (but this can be substituted for any appropriate function). In the extra layer, button4 send M-pageup etc. This is how I replicate basic G-shift functionality.
I also use keyd-application-mapper to support application specific mapping. My ~/.config/keyd/app.conf looks as follows:
[emacs]
button1 = A-w
button2 = C-y

[gnome-terminal-server]
button1 = S-C-c
button2 = S-C-v
button3 = S-C-w
button4 = C-pageup
button5 = C-pagedown
button6 = up
button7 = down
middlemouse = enter

[librecad]
button3 = f8
button4 = enter
button5 = esc
button6 = up
button7 = down

extra.button1 = C-z
extra.button2 = C-S-z
extra.button6 = delete

(There are a few gotchas, such as having to use aliases to rebind on the mouse keys in app.conf but hopefully this is enough to get you started.)


using hiera-http with puppet 4.10 yields Error while evaluating a Function Call, HTTP request path is empty

this has happens because order_override is an empty array [] in my case. dunno where this comes from.
the following code (http_backend.rb line 52) in hiera-http inserts the empty array at position 0 in the paths array:
paths.insert(0, order_override) if order_override

if order_override is an empty array we end up with
[ [ ],"/first", "/second" ]

end the first element [] gets pass all the way down to net/http, which complains rightfully about the empty path.
as a quick fix i changed this to
paths.insert(0, order_override).flatten! if order_override

will open a pull request for this as well.
thanks
toni

I think this is also effecting us, just tried to upgrade our lab to 2017.3 and get the following:
[root@<REMOVED> puppet]# puppet lookup --node <REMOVED>  rhel --explain
Warning: /etc/puppetlabs/puppet/hiera.yaml: Use of 'hiera.yaml' version 3 is deprecated. It should be converted to version 5
   (in /etc/puppetlabs/puppet/hiera.yaml)
Warning: Undefined variable 'product';
   (file & line not available)
Warning: Undefined variable 'client_id';
   (file & line not available)
Warning: Undefined variable 'role';
   (file & line not available)
Warning: Undefined variable '::environment';
   (file & line not available)
Warning: Undefined variable 'clientcert';
   (file & line not available)
Warning: Undefined variable 'datacenter';
   (file & line not available)
Warning: Undefined variable 'client_environment';
   (file & line not available)
Warning: Undefined variable 'environment';
   (file & line not available)
Error: Could not run: HTTP request path is empty

Manually patching both rb files from the two gem installs does indeed fix this issue. Any ideas on if a new gem will be published?

@dzeleski Are you using the latest version of hiera-http (from the Puppet module, not from the gem)?
I don't think your errors are related to this issue, but I'm happy to help equally - can you send your hiera.yaml file too?

We are not, Im still using hiera 3. I assumed I still had to use the old 2.0 gem? Should I be using the new 3.0 module even with hiera 3?
---
:backends:
  - http
  - yaml

:logger: console
:merge_behavior: deeper
:deep_merge_options:
  :knockout_prefix: '--'

:hierarchy:
  - "nodes/%{clientcert}"
  - "%{datacenter}/products/%{product}/clients/%{client_id}/roles/%{role}"
  - "%{datacenter}/products/%{product}/clients/%{client_id}"
  - "%{datacenter}/products/%{product}/roles/%{role}/client_environments/%{client_environment.type}"
  - "%{datacenter}/products/%{product}/roles/%{role}"
  - "%{datacenter}/products/%{product}/common"
  - "%{datacenter}_common"

:yaml:
  :datadir: /etc/puppetlabs/code/environments/%{environment}/hieradata

# datadir is empty here, so hiera uses its defaults:
# - /etc/puppetlabs/code/environments/%{environment}/hieradata on *nix
# - %CommonAppData%\PuppetLabs\code\environments\%{environment}\hieradata on Windows
# When specifying a datadir, make sure the directory exists.

:http:
  :host: <REMOVED>
  :port: 8080
  :output: yaml
  :failure: graceful
  :cache_timeout: 10
  :headers:
    :Authorization: <REMOVED>
  :paths:
    - "/hiera_%{product}/%{client_id}/%{role}"
    - "/hiera_%{product}/%{client_id}/common"


Optional lab Exercixe 2 Lab 10

Lab/Demo: 10
Task: Select on Create under Ubuntu Server 18.04 LTS in the Popular view.
Step: 3
18.04 LTS no longer exists, Please change the dialog as some setting are different or have changed.

Thanks for the submission... I will get this updated for the end of week release.

I still see the 18.04 LTS in my list.  However, I have modified the lab to be a little more generic in the selection.  You can actually most of the options listed, and get the same capabilities.


Logging errors only in Application Insights

I'd like to log errors only for my functions, unfortunately it seems it's not possible.
Repro steps

Create Function App and a function with Application Insights integrated

Use following configuration for host.json file:

{
  "logger": {
    "categoryFilter": {
      "defaultLevel": "Error",
      "categoryLevels": {
        "Host.Results": "Error",
        "Function": "Error",
        "Host.Aggregator": "Error"
      }
    },
    "aggregator": {
      "batchSize": 1000,
      "flushTimeout": "00:00:30"
    }
  },
  "applicationInsights": {
    "sampling": {
      "isEnabled": true,
      "maxTelemetryItemsPerSecond": 5
    }
  }
}

Expected behavior
Only errors are logged.
Actual behavior
Still traces are visible in the portal

Is it intended?
Best regards,
Kamil

This is not intended and is an issue with the current release. A fix has been put in place and that will roll out in the next deployment that is about to begin.

@fabiocav Cool, can't wait!


xSQLServerSetup: Fix PSSA Rules

Pull Request (PR) description
Adds the whitespace needed for the rules to pass on xSqlServerSetup.
This Pull Request (PR) fixes the following issues:
Fixes #729
Task list:

[x] Change details added to Unreleased section of CHANGELOG.md?
[ ] Added/updated documentation, comment-based help and descriptions in .schema.mof files where appropriate?
[ ] Examples appropriately updated?
[ ] New/changed code adheres to Style Guidelines?
[ ] Unit and (optional) Integration tests created/updated where possible?

This change is

@ChrisLGardner,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by Microsoft. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

Codecov Report

Merging #762 into dev will not change coverage.
The diff coverage is n/a.

@@         Coverage Diff         @@
##            dev   #762   +/-   ##
===================================
  Coverage    97%    97%
===================================
  Files        30     30
  Lines      3250   3250
===================================
  Hits       3165   3165
  Misses       85     85

@ChrisLGardner Thanks for fixing this! Please add this change to the CHANGELOG.md.

Done.

Reviewed 1 of 1 files at r1, 1 of 1 files at r2.
Review status: all files reviewed at latest revision, 1 unresolved discussion.

CHANGELOG.md, line 60 at r2 (raw file):

Analyser

Please change to 'Analyzer' (let's use american english)

Comments from Reviewable

Reviewed 1 of 1 files at r3.
Review status: all files reviewed at latest revision, 2 unresolved discussions.

CHANGELOG.md, line 60 at r3 (raw file):

    administrator (issue #691).
  - Added a simple integration test ([issue #709](https://github.com/PowerShell/xSQLServer/issues/709)).
  - Fixed PS Script Analyzer errors ([Issue #729](https://github.com/PowerShell/xSQLServer/issues/729))

Please change to lower-case 'i' on 'issue'. Here and the other PR's.

Comments from Reviewable

Review status: 1 of 2 files reviewed at latest revision, 2 unresolved discussions.

CHANGELOG.md, line 60 at r2 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

Analyser

Please change to 'Analyzer' (let's use american english)

Done.

CHANGELOG.md, line 60 at r3 (raw file):
Previously, johlju (Johan Ljunggren) wrote…
Please change to lower-case 'i' on 'issue'. Here and the other PR's.

Done.

Comments from Reviewable

Reviewed 1 of 1 files at r4.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Thanks for fixing this! 😄


feat(white-theme): website homepage

Related Ticket(s)
Gatsby homepage code review for the new white theme design - Leads pace/hero image section #381
Gatsby homepage code review for the new white theme design - Get started section #382
Gatsby homepage code review for the new white theme design - Other resources section #383
Gatsby homepage code review for the new white theme design - Latest updates section #384
Gatsby homepage code review for the new white theme design - Contribute section #385
Description
IBM.com website white theme homepage components

@annawen1 Thank you for going over the design with me today. #473 is created for the QA and items you need to move forward with this task.

@annawen1 Thank you for your hard work, Anna! Our next step is to align on a release date from the leadership team so we can push the update to the live website.


Support for customizing Jenkins service types during deployment and upgrade

What is version of KubeSphere DevOps has the issue?
v3.4.0
How did you install the Kubernetes? Or what is the Kubernetes distribution?
kubekey
Describe this feature
Default jenkins service type is NodePort.
Some user need to modify jenkins service to ClusterIP or LoadBalancer
Now it is not able to modify service type in ks-installer cc
If modify the service, when upgrade ks, it will be rollback.
Additional information
No response

https://github.com/kubesphere/kse-installer/pull/365/files
https://github.com/kubesphere-sigs/ks-devops-helm-chart/pull/119/files


Images in assets folder are not present in public or resources after build

Description
The images added in the folder assets/ are not mounted in the public/ or resources folder after a npm run build, with the exception of the favicon who is the only image present after a build or run.
Steps to reproduce

Create a new project npm create hyas@latest -- --template doks
Go to the folder created and run npm install
Add an image in the assets/images folder with a name like my_image.jpg.
Execute npm run build
Search the image in the generated folders (public/ and resources)

Expected result
You should be able to find the image in the generated folder after a build.
Actual result
The image is missing.
Environment
><EMAIL_ADDRESS>preinfo
> npm version

{
  'hyas-project': '0.0.0',
  npm: '10.5.0',
  node: '21.1.0',
  acorn: '8.10.0',
  ada: '2.7.2',
  ares: '1.20.1',
  base64: '0.5.0',
  brotli: '1.0.9',
  cjs_module_lexer: '1.2.2',
  cldr: '43.1',
  icu: '73.2',
  llhttp: '9.1.2',
  modules: '120',
  napi: '9',
  nghttp2: '1.57.0',
  nghttp3: '0.7.0',
  ngtcp2: '0.8.1',
  openssl: '3.0.10+quic',
  simdutf: '3.2.18',
  tz: '2023c',
  undici: '5.26.4',
  unicode: '15.0',
  uv: '1.46.0',
  uvwasi: '0.0.19',
  v8: '<IP_ADDRESS>-node.14',
  zlib: '<IP_ADDRESS>-motley'
}

><EMAIL_ADDRESS>info
> npm list

<EMAIL_ADDRESS>/home/dario/Documents/gogs/test/hyas-project
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>

><EMAIL_ADDRESS>postinfo
> exec-bin node_modules/.bin/hugo/hugo version

hugo v0.123.7-312735366b20d64bd61bff8627f593749f86c964+extended linux/amd64 BuildDate=2024-03-01T16:16:06Z VendorInfo=gohugoio

You'll need to reference (use) the image for it to be processed — and be copied over to public
For example:
![Alt text](images/dylan-shaw-XNOGg2MsGpk-unsplash.jpg)

public directory:
├── images
│   └── dylan-shaw-XNOGg2MsGpk-unsplash_hu05e9368bbbdd4df7268c6b3177992462_682799_2400x1600_resize_q85_h2_lan

See also: https://images.gethyas.com/


Add a Cache.deleteStudent(username) method instead of using Cache.setStudent(username, null)

File location: app/src/main/java/app/abhijit/iter/data/Cache.java
~(update/add unit tests accordingly)~

I'd like to take this up!

Alright! 🎉

Do I need to modify only the implementation in data/Cache.java or do I need to modify the method uses too?

You also need to change all the method calls.
Bonus: add unit tests for the new method.

You also need to change all the method calls.
Bonus: add unit tests for the new method.

Never added a unit test myself. Could you walk me through briefly, if you don't mind? 😃

Could I work on it at the night? if it's all good with you!

I fixed the build config issue. Update your fork accordingly. I also recommend using different branches for each pull request. See: https://guides.github.com/introduction/flow/

Never added a unit test myself. Could you walk me through briefly, if you don't mind? 😃
Actually, I haven't set up tests for Cache yet. So you don't have to worry about that.

Here is an example unit test, for Subject: SubjectTest.java

Could I work on it at the night? if it's all good with you!
Take your time!

Actually, I haven't set up tests for Cache yet. So you don't have to worry about that.

So I'd have to add tests for the entire 'Cache.java' if I'm not mistaken?

Here is an example unit test, for Subject: SubjectTest.java

Thank you!

Take your time!

Sure 😁

No, you don't have to add tests for Cache.

Okay. Thank you!

No, you don't have to add tests for Cache.

So, all in all, I don't need to work with tests?

No. Just ensure that the app builds successfully without any warnings/errors.

Hi!
Is this issue taken by anyone?
Thanks! :)


Build strong named assemblies

This supports https://github.com/thomhurst/TUnit/pull/1467
Note that for .NET Framework users, adding a strong name is a binary breaking change. This means an application will fail if it has a mix of Sourcy users where some assemblies were compiled against the strong named version and some were not. I wonder if you want to rev the version number in a particular way to reflect this.

@AArnott I asked AI and it says it's generally not a good idea to store .snk files publicly. Should these be stored in Azure or something instead?
When building a strongly signed nuget package, is it okay to have the .snk file public in the repository?

No, it's generally not okay to have your .snk file public in a repository when building a strongly signed NuGet package.

Here's why:

Security Risk: The .snk file contains your private key, which is used to sign your assembly and your NuGet package. If someone gets hold of this file, they can:

Impersonate You: Create assemblies or NuGet packages that appear to be signed by you.
Tamper with Your Code: Potentially replace your legitimate packages with malicious versions, leading users to install compromised software.
Damage Your Reputation: If malicious packages are distributed under your name, your reputation and trustworthiness could be severely damaged.
Best Practices: Security best practices strongly advise keeping private keys secret and protected. Publishing them in a public repository is a direct violation of these practices.

What to Do Instead:

Keep the .snk file private and secure:

Store it in a secure location, like a dedicated build server or a secure vault.
Use environment variables or configuration files to reference the .snk file during the build process.
Never commit it to source control.
Use a dedicated signing service (recommended for production):

Services like Azure Key Vault or other code signing solutions offer a more secure way to manage signing keys.
These services store keys securely and provide controlled access for signing.
Use a .gitignore file:

Add *.snk to your .gitignore file to prevent accidental commits of the private key file.
Delay Signing (as an alternative in some scenarios):

In some situations, such as open-source projects, you might use delay signing. This means the assembly is signed with only the public key during development and testing.
The final signing with the private key happens later, during the release process.
However, this should be carefully evaluated in the context of your project.
In Summary:

Treat your .snk file as a highly sensitive secret. Compromising it can have serious security and reputational consequences. Always prioritize the security of your private key and avoid exposing it in public repositories. Use secure storage and dedicated signing services whenever possible.

The AI response is based on very old guidance. If for historical reasons you want to maintain a perception with your users that only you can build assemblies with your strong name (e.g. as the .NET Framework itself still does), an author may choose to retain the private key for their strong name as a secret. But generally it's not treated that way any more.
Microsoft's official stance on strong naming points users to Authenticode signing for verifiability of authorship or source of a binary. Strong naming only serves two purposes nowadays:

avoid simple name collisions with other assemblies that may have the same name
allow being referenced by other assemblies that are strong named.

Both of the above apply to .NET Framework. However strong naming means nothing by default on .NET, whether you do it or not.
Then there's the open source angle: since .NET Framework does care about strong naming, if you don't disclose the private key you use for strong naming, others cannot in fact fork, build and replace your dll in their application because they will not be able to reproduce a strong named and signed dll that you built. So in the spirit of open source, when strong naming the private key should be disclosed with the code.
The AI response is appropriate treatment for an authenticode private key, to be sure. But strong name private keys aren't for privacy or security at all (as Microsoft's guidance now states), but rather just a necessity for historical reasons in order to strong name sign, and thus are not harmed at all by being made public.


Update readme with guide for running local dev environment

Would be great to have a guide for how to install and run a local version with step-by-step install/build/run instructions. See e.g. this one.

This is perhaps a duplicate of #4


[stable/jenkins] serviceAccountName not work when install=true

What this PR does / why we need it:
Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #

Special notes for your reviewer:
I find that if set .Values.rbac.install = true,
then .Values.rbac.serviceAccountName will not working,
because all serviceAccountName will be replaced by {{ template "jenkins.fullname" . }}.
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md

this will probably be fixed by #13136

/hold

#13136 looks good！and I think it should be fixed

Thanks for the feedback. Please close the PR if it is fixed.

got it


Gitlab edit.

Detailed description
GitLab keeps giving an error when you try to sync repo's.
Context
It seems they have changed the way the API responds. You need to edit this file
app/Classes/Gitlab.php on line 51
change
'is_private' => $repo->public == true,
to something like
'is_private' => $repo->visibility,
because the $repo->public is no longer returned it is now visibility that is returned.

Version used (e.g. PHP 7.1, HHVM 3):
Shared Hosted cPaned

Thanks!

I think this issue was closed in PR #330


Run ontology validations in pre-commit hook rather than build?

Just a thought - it would be nice to be alerted to problems before a release build.

Gets run when you submit a PR - see .github/workflows/validate.yaml.
No need to run on each commit.


Left Module is suddenly unresponsive

Left Module stopped working, even while connected through USB.
When I turn bluetooth on, the Fn LED quickly blink green once and then the left module is unresponsive.
I tried the bootloader, but it is also unresponsive, doesn't blink white like the right module.
Battery should be well charged as I left it charging overnight.
Has anyone faced this before?

Hmm. That sounds like a hardware failure of some kind. Please submit a ticket and we'll get it sorted for you. Sorry!
https://kinesis-ergo.com/support/contact-a-technician/

great!


Allow providers to defer offers

Context
Providers need the ability to defer an offer until the next recruitment cycle.

Changes proposed in this pull request

Adds button links allowing a provider user to defer offers on applications which are recruited or pending conditions.
Adds a confirmation step before deferral state change.
Calls DeferOffer service which triggers a candidate email and notifies the state change.

Offer deferral button

Offer deferral confirmation

Guidance to review
I've deliberately omitted the Offer tab from this PR, will tackle this separately.

Link to Trello card
https://trello.com/c/ouFrR3xE/2690-allow-providers-to-defer-offers

Things to check

[x] This code does not rely on migrations in the same Pull Request
[x] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[x] API release notes have been updated if necessary
[x] New environment variables have been added to the Azure config

@steventux can you make the offer panel design match the prototype so that the defer offer is a link at the top etc?

@adamsilver this is being covered in a different story/PR as it's large enough to split off from this PR.


HOCS-3468 MPAM Local Dispatch

Camunda userTask's have a Form Key that can be specified and used.

Could become the following:

Which is arguably more simple. I feel that fixing forward, the service tasks should probably be removed?

Probably need to catch up with you about this, not sure what I specify in the Form Key


s/ethereumproject/ethereumclassic/g

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

dup #14


Fan noise while using PWM on Commander PRO

I have built a circuit for the commander PRO and I am using the PWM signal to drive an N channel MOSFET to run the 12v fans pulsing the negatice rail. I use the same technique on my 3D printers.  However anything less then a 100% duty cycle spins the fans ok but makes the fans noisy where you can here the PWM pulsing from the fan. like a background buzzing. I have tried multiple types of fans.
I Tried changing the fan update rate from 500 to a lower value but it didnt seem to make any difference.

which pins do you use for the fan pwm signal?

Also which board do you use? The PWM timings depend on the boards used, I only tested it with Pro Micro.

I connected the fans to pins 5, 6 and 9 guided by the code in the examples Sent from my Samsung Galaxy smartphone.
-------- Original message --------From: Leon Kiefer<EMAIL_ADDRESS>Date: 30/11/2019  13:42  (GMT+00:00) To: Legion2/CorsairLightingProtocol<EMAIL_ADDRESS>Cc: Gannit<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [Legion2/CorsairLightingProtocol] Fan noise while using PWM on Commander PRO (#75) which pins do you use for the fan pwm signal?
—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe.
[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/Legion2/CorsairLightingProtocol/issues/75?email_source=notifications\u0026email_token=AN5CK4SGMIITUR4IQ4PFVP3QWJUSZA5CNFSM4JTGTG32YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFQHHYI#issuecomment-559969249",
"url": "https://github.com/Legion2/CorsairLightingProtocol/issues/75?email_source=notifications\u0026email_token=AN5CK4SGMIITUR4IQ4PFVP3QWJUSZA5CNFSM4JTGTG32YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFQHHYI#issuecomment-559969249",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]

Ah I am using a pro micro however not the spark fun version. It could be that. When programming I have to set it as a leonardo as when I choose pro micro, it wont upload. The ones I have here are by keeyees (a Chinese brand I believe)I will get hold of a spark fun board and try with that. Thank you  Sent from my Samsung Galaxy smartphone.
-------- Original message --------From: Leon Kiefer<EMAIL_ADDRESS>Date: 30/11/2019  13:58  (GMT+00:00) To: Legion2/CorsairLightingProtocol<EMAIL_ADDRESS>Cc: Gannit<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [Legion2/CorsairLightingProtocol] Fan noise while using PWM on Commander PRO (#75) Also which board do you use? The PWM timings depend on the boards used, I only tested it with Pro Micro.
—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe.
[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/Legion2/CorsairLightingProtocol/issues/75?email_source=notifications\u0026email_token=AN5CK4TGSWSXMIRM5VBPES3QWJWRTA5CNFSM4JTGTG32YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFQHV4Q#issuecomment-559971058",
"url": "https://github.com/Legion2/CorsairLightingProtocol/issues/75?email_source=notifications\u0026email_token=AN5CK4TGSWSXMIRM5VBPES3QWJWRTA5CNFSM4JTGTG32YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFQHV4Q#issuecomment-559971058",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]

@Gannit Did you try with the other board?

I managed to get hold of a full size leonardo and it worked ok.  So I'm guessing it could be the cheap clone arduino causing the issue. Sent from my Samsung Galaxy smartphone.
-------- Original message --------From: Leon Kiefer<EMAIL_ADDRESS>Date: 16/12/2019  18:26  (GMT+00:00) To: Legion2/CorsairLightingProtocol<EMAIL_ADDRESS>Cc: Gannit<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [Legion2/CorsairLightingProtocol] Fan noise while using PWM on Commander PRO (#75) @Gannit Did you try with the other board?
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or unsubscribe.
[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/Legion2/CorsairLightingProtocol/issues/75?email_source=notifications\u0026email_token=AN5CK4X3S424ZNC2JDOLVDTQY7B37A5CNFSM4JTGTG32YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEG7UDXI#issuecomment-566182365",
"url": "https://github.com/Legion2/CorsairLightingProtocol/issues/75?email_source=notifications\u0026email_token=AN5CK4X3S424ZNC2JDOLVDTQY7B37A5CNFSM4JTGTG32YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEG7UDXI#issuecomment-566182365",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]

Ok i will then close this Issue, if you have any other problem or suggestion, you can open a new one.


react-native-qrcode-scanner cannot read property oneOftype undefined

I'm using react-native v0.49 and i have error when i run qrcode scanner.

cannot read property oneOftype undefined

import React, { Component } from 'react';
import {
    View,
    Text,
    TouchableOpacity,
    Linking,
    StyleSheet,
} from 'react-native';
import { style } from './style';
import { globalStyle } from '../../../assets/styles/globalStyle';

// redux
import { connect } from 'react-redux';
import * as actions from '../../../actions';

//third party library
import QRCodeScanner from 'react-native-qrcode-scanner';

class ScanPage extends Component {
    constructor(props) {
        super(props);
        this.state = {
            barcodeText: ''
        }

    }
    onSuccess(e) {
        this.setState({ barcodeText: e.data });
        console.log(e);
    }

    render() {
        const { } = style;

        return (
            <QRCodeScanner
                onRead={this.onSuccess.bind(this)}
                topContent={(
                    <Text style={styles.centerText}>
                        Go to <Text style={styles.textBold}>wikipedia.org/wiki/QR_code</Text> on your computer and scan the QR code.
          </Text>
                )}
                bottomContent={(
                    <TouchableOpacity style={styles.buttonTouchable}>
                        <Text style={styles.buttonText}>OK. Got it!</Text>
                    </TouchableOpacity>
                )}
            />
        );
    }
}

const mapStateToProps = () => {

}
const styles = StyleSheet.create({
    centerText: {
      flex: 1,
      fontSize: 18,
      padding: 32,
      color: '#777',
    },

    textBold: {
      fontWeight: '500',
      color: '#000',
    },

    buttonText: {
      fontSize: 21,
      color: 'rgb(0,122,255)',
    },

    buttonTouchable: {
      padding: 16,
    },
  });

export default connect(null, actions)(ScanPage);

I checked into the node_modules the react-native-qcode-scanner folder into examples and I did exaclty the example. in addition in index.js of this folder of the plugin I see the oneOfType property but I don't see any wrong from my side. t

Would you be able to add the complete error message/possibly also a screenshot of the error, thanks!

@adirzoari when did you add react-native-qrcode-scanner to the project?
a change was recently introduced to use the prop-types standalone package instead of using it from within the react module which is going to be deprecated. My guess is that for some reason, prop-types wasn't installed correctly (since that's the only place the package uses oneOfType, can you try running yarn or npm install again to make sure prop-types is currently installed.
Let me know how that goes.

I installed it today actually. and I tried to install again. when i delete the plugin\import to qr scanner, the app works fine. so the issue is this plugin.

Going to have to look into this further, may be able to get to this tonight or tomorrow.

thank you for your time.

hey @moaazsidat, I'm sorry but it's was my fault.
I had react-native-camera version 0.6.0 and when i deleted it and install again react-native-camera the current version is 0.10.0 and it solve my problem. so it's not issue of react-native-qrcode-scanner. sorry, thank you for your time.

No worries, glad the issue was resolved!


Added support for export/import to Liquibase XML format

Support for import of basic operations  'createTable' 'createIndex' 'addForeignKeyConstraint' 'addPrimaryKey' 'addColumn'
Import from PostgreSQL, Oracle, MSSQL
Export to PostgreSQL, Oracle, MSSQL

Wow, thank you for your contribution!
Let me know if you need any help.
@peterstriz


Predict two images

Hello.
I want to know the similarity of two images.
Your code is the evaluation output.
I want to know the code to predict.
E.g. Given two image inputs
Can you tell if this is the same or not?
Or get each features?

@mangye16

Hi,
Generally, the person re-identification is considered as a retrieval task, i.e., a retrieved list is output according to the similarity scores between the gallery images and query image.
If you want to predict two images belong to the same identity or not, you may need to train an additional classifier, for example, a similarity threshold. Alternatively, you may also mannually set the similarity threshold by extracting the features from the pooling layer output.
I


Let user to choice whether to do bazel clean during configure

Currently running the configure will do 'bazel clean --expunge' by default.  It is OK for the first time to run configure.  But when I need to rerun the configure (because some errors occur, I will retry), I have to spend much time to download files from internet again each time during to the execution of 'bazel clean --expunge'.
So, should we let user to choice whether to do bazel clean during configure?

@jart
I have also been puzzled by that. It prevents using the cache, and doesn't really belong in a configure script. You can use sed s/bazel.clean/true/ <configure|bash as a workaround.

The bazel clean --expunge and bazel fetch //tensorflow/... need to happen unfortunately to work around bugs in Bazel. There's issues relating to cache invalidation on remote repositories. There's also issues relating to passing environment variables to repository rules. CC: @davidzchen
It'd probably be better if we didn't have an option to disable the clean and fetch. We want to guarantee that builds work, even if that means things go a little slower. We're going to be improving the state of the build real soon though. We're actually planning to make the configure script optional. I think the Bazel team is doing amazing work helping to make that happen.
Thanks for bringing this to our attention. Feel free to post any other questions you might have and I'll be happy to answer them.

One other note, if you're 100% certain you want to roll the dice by disabling the clean and fetch, it shouldn't be too difficult to comment out those lines in the configure script.

If you have a link to the issue, please post here and/or in the code.

It's possible that the related issues are https://github.com/bazelbuild/bazel/issues/1022 and https://github.com/bazelbuild/bazel/issues/1595 and https://github.com/bazelbuild/bazel/issues/974. There was another one, but I'm having trouble digging it up.
Also here is an explanation that @davidzchen gave me a week ago regarding the necessity of fetch.

The reason why we fetch in the configure script is because the way the script
passes values to the cuda_configure workspace rule is via environment variables
(see comment at the top of cuda_configure.bzl).

The configure script exports these environment variables before calling bazel
fetch, which will set up external repositories, such as @local_config_cuda,
according to the values provided by the user. However, if we do not do this,
when the user runs bazel fetch/build after running ./configure, then
cuda_configure will use the environment variables in the user's shell, which
would not contain any of the values set by ./configure.

That is, with this change, even if the user runs ./configure to enabling
building with CUDA, when the user subsequently runs bazel build, the build will
fail because @local_config_cuda would have been configured without GPU support.

It might be more ideal to be able to pass values to Skylark repository rules
via command line flags. For example, something like the following would build
with CUDA support enabled, and cuda_configure would look for the cuda
installation in a set of standard install locations:

bazel build --enable_cuda //tensorflow/...

If the user would like to specify a custom cuda install location, then she
would be able to do so with another flag:

bazel build --enable_cuda --cuda_toolkit_path=/opt/local //tensorflow/...

If adding arbitrary flags is not feasible, then perhaps we can use an approach
similar to the kubernetes vars:

bazel build --vars=enable_cuda=true,cuda_toolkit_path=/opt/local //tensorflow/...

These are hypothetical examples, and I haven't scoped out the work that would
be required to implement this feature. However, with the way things are set up
currently, removing the fetch from the configure script would cause the build
to fail.

We're also working hard to pay off the technical debt in TensorFlow that is contributing to this broader problem. For example, we recently committed https://github.com/tensorflow/tensorflow/commit/1dba78b997dc49df9df663a838e0bacd6602f5b8 which removes SWIG from the configure script. So we're one step closer to having a hermetically sealed build.
Once the Bazel bugs are fixed, and once TensorFlow is fully hermetically sealed, bazel clean will become a command that no one will ever need to run again.

Nice, thanks!

https://github.com/bazelbuild/bazel/issues/2033
If I try to build tensorflow on NFS, it's necessary to provide --output_user_root for clean to work properly

FYI @damienmg is working on improvements to Bazel's Skylark remote repositories to both improve its caching and invalidation and make it possible to pass environment variables to workspace rules, which will enable us to implement the kind of interface I suggested in @jart's comment.


Only add LookbackDelta to vector selectors

Signed-off-by: Thomas Jackson<EMAIL_ADDRESS>Related to #4226

Thanks!


sheetsManager: option to inject a custom sheetsManager

This issue is part of a series of feedbacks. I been upgrading the Material-UI solution.
Unfortunately, I had to fork the package in order to reach my goal.
Now, it's time to reconciliation.
The issue
Material-UI went with a different implementation of the sheetsManager in order
to better support nested theme (a WeakMap).
I wish we were able to provide the sheetsManager through the JssProvider.
Right now, Material-UI is providing through the MuiThemeProvider. I don't think that it should be the theme provider responsibility.

I think sheet manager in mui and the one from jss package are very different. Lets use very specific use cases as a way to communicate the need. Its much easier to think in this perspective.

The main difference between the Material-UI sheetManager and the react-jss is the following "inversion".
react-jss create a sheetManager per sheet and then handle each theme

That's the most important difference between react-jss and Material-UI.
Material-UI is using a single SheetManager, that's already one important difference with react-jss that use many when it's not provided by the context.
I have to admit that my original motivation for writing a new one was around not understanding the original code, I would like, "does that work by chance?" So I wanted to write something simple, that I could understand and make sure it had no leak.

What can be done in such cases:

request for inline documentation in specific places
add tests

I think we have an issue on ssr with the current approach, the first point https://github.com/cssinjs/react-jss/issues/133 describes it. I think you simple want to have it fixed instead of an option for a custom sheets manager.


Restrictions for identifying my model + model extension

Hi Tomasz @donotdespair,
I hope this message finds you well.
I know that I'll make you use of exclusion restrictions in order to identify my model, but I'm still in doubt how to exactly set these restrictions on my B_0 matrix. For now I'm thinking about following section 8.4.1 in Kilian & Lütkepohl and impose a recursive system on my variables.
My y matrix is (cpi, ip, m2, ff, hp, spx)', where ip denotes industrial production, hp denotes house prices and spx is the sp500 index. Thus, I would interpret the first two equations in the u_t = B_0 w_t system as an AS/AD model with a horizontal AS curve and downward-sloping AD curve and the third equation as a money demand equation. The fourth equation would represent the monetary policy reaction function. So any change in ff not accounted for by this reaction function, I would interpret as a money supply shock, which is the shock I'm investigating in my project. Last but not least I have house prices and the sp500 index as the last two variables, meaning they are affected contemporaneously by the first 4 variables but not the other way around.
Does this recursive system of identifying my model seem plausible in your opinion?
In regards to the extension of my model I'm thinking about estimating my hyperparameter. I don't seem to be able to find any literature or code on this. Any chance you can point me in the right direction?
Thanks a lot in advance.
Kind regards,
Jonas

Hi @donotdespair
Apologies for not responding to your answer above. Very helpful, thanks.
Following up on Yobins comment regarding the change of definition of the M2 aggregate, I have now run my model with M1 instead. Please see the attached screenshots, where I compare the IRFs using M1 and M2.
M1:

M2:

I would argue that using M1 has improved the IRFs considerably. Would you agree with this?
Many thanks in advance and do not despair.
Jonas

Yes, i would :) nice work. So now, the irf of money and stocks are as they should! It's still interesting that all the irfs except for money hike. Would you compute the irfs for 5 years ahead?

Yes, I agree. But isn't it plausible that house prices, inflation and activity rises initially? Since it is an inflationary/stimulating shock?
Please see below the IRFs for 5y ahead. It seems like stocks and industrial production converges to zero. It only has a significant long run effect on the levels of CPI and house prices. Further, the fed funds rate goes into negative territory after around 4y. Isn't this in line with theory as the fed naturally would react to rising prices and output after some time?

Hey @jonasld23
You have to be careful with the interpretations of the IRFs. Those that you plotted are IRFs to a single cause, which is a positive shock increasing the money. Don't bring in the simultaneity of inflation and interest rate movement here. You have IRFs to other shocks that could be interpreted this way. So, please just stick to the interpretations about what the positive money supply shock does.
I'd say that all your responses look fine and would have standard interpretations. But the increase of interest rates following the inflow of new money is a bit puzzling.

Thanks for the feedback @donotdespair.
I can see that one has to be careful with the interpretations. I will stick to solely interpreting the effect of a money supply shock.
I agree that the increase of rates is odd as increased money supply should make money cheaper.

Hey @jonasld23
Great! BTW, for future reference, Belongia & Ireland's paper is one of the recent works that would also look at the money supply shock.

Hey @jonasld23
The materials for the Student t error terms are not numerous. One is the appendix to a textbook by Bauwens, Lubrano, Richards (1999). Another is the article by Geweke (1993).
And the Paper Nathan found instructive to him was by Bobeica and Hartwig

tmp <- try(G.standard.deviation(aux, priors, restrictions))

if(!inherits(tmp, "try-error")){
                aux <- tmp
}else{
                cat(iteration,"Standard deviation error\n")
}

Hi @donotdespair,
Thanks for sending it through. I tried to run the model with 10k draws and it was done really quick. It also seemed like the rejection-rate we set up earlier turned out to be 100%. So something is completely off. Especially considering that it works for the artificial data. I'm unsure what to do wrt. to the final submission. Can I just say it didn't work out with my data?
Have a great weekend.
Greetings, Jonas

Hi again @donotdespair ,
I fixed the issue with my matrices not being positive definite. Thus, I'm now able to run my model without the above try function.
However, as seen below my lambda clearly doesn't converge, but rather explodes. For the artificial data it converges though.
Artificial data:

Actual data:

As I unfortunately don't have much time left for finalizing my report, I will conclude that this model doesn't converge properly on my data and therefore is somewhat a failed experiment. Would that make sense?
Thanks in advance.
Jonas


Refactor $__registerHooksFromSchema, replace hooks with kareem for save, validate, remove

$__registerHooksFromSchema is currently a tangled mess to make promises and hooks play nicely together. Would be great if we could move promise support into kareem and solve this is a more elegant way.

Also will be related to #2688

Will this issue cover support of "thenable" pre-hooks (hooks than returns promise instead of calling next())?
I could not find any info about such use of pre-hooks, only some mentions about post hooks.

Not necessarily. That's a separate feature, although vkarpov15/kareem#3 would help us do that. I haven't had a chance to take a look at grappling-hook yet though.

Ok, then consider as request please, that it would be cool to tech hooks understand promises instead of callbacks. Should i create a new issue for that?

Please do :)

Consider this a follow-on to #4821


[Sandia] Extractor not working

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like that [x])
Use Preview tab to see how your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2016.06.25. If it's not read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2016.06.25

Before submitting an issue make sure you have:

[x] At least skimmed through README and most notably FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[x] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
Add -v flag to your command line you run youtube-dl with, copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):
[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['-v', 'http://digitalops.sandia.gov/Mediasite/Play/24aace4429fc450fb5b38cdbf424a66e1d']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2016.06.25
[debug] Git HEAD: dcfe3ee
[debug] Python version 3.5.1 - Darwin-15.3.0-x86_64-i386-64bit
[debug] exe versions: avconv 11.4, avprobe 11.4, ffmpeg git-2016-06-24-84b252b, ffprobe git-2016-06-24-84b252b, rtmpdump 2.4
[debug] Proxy map: {}
[Sandia] 24aace4429fc450fb5b38cdbf424a66e1d: Downloading webpage
ERROR: Unable to extract JS code URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/Users/A/dev/y/youtube_dl/YoutubeDL.py", line 676, in extract_info
    ie_result = ie.extract(url)
  File "/Users/A/dev/y/youtube_dl/extractor/common.py", line 343, in extract
    return self._real_extract(url)
  File "/Users/A/dev/y/youtube_dl/extractor/sandia.py", line 44, in _real_extract
    webpage, 'JS code URL')
  File "/Users/A/dev/y/youtube_dl/extractor/common.py", line 646, in _search_regex
    raise RegexNotFoundError('Unable to extract %s' % _name)
youtube_dl.utils.RegexNotFoundError: Unable to extract JS code URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):

Single video: https://www.youtube.com/watch?v=BaW_jenozKc
Single video: https://youtu.be/BaW_jenozKc
Playlist: https://www.youtube.com/playlist?list=PL4lCao7KL_QFVb7Iudeipvc2BCavECqzc

Description of your issue, suggested solution and other information
Explanation of your issue in arbitrary form goes here. Please make sure the description is worded well enough to be understood. Provide as much context and examples as possible.
If work on your issue required an account credentials please provide them or explain how one can obtain them.

Fixed in 94a5cff91d81c120b8e8b395f9fbe465286940f0.


reading MFCC features from CSV files instead of extracted them on the fly.

In this Tutorial (keras-io/examples/audio/ctc_asr.py)
https://keras.io/examples/audio/ctc_asr/#:~:text=CTC is an algorithm used,create is similar to DeepSpeech2.
The features had been extracted from wav files path with is in dataframe :
def encode_single_sample(wav_file, label):
file = tf.io.read_file(wavs_path + wav_file + ".wav")
Is there any way to read the features MFCC from CSV files in this function
feature_dim=41
font_column_types= [float()]*(feature_dim)
numeric_features = tf.io.decode_csv(feature_file,record_defaults=font_column_types)

Tagging the author of the tutorial - @rbouadjenek

@kerolos @sampathweb
It it possible to do a two stage preprocessing. You just need to adapt the code 🙂🙂


Hi I just wanted to know when the screen sharing is going on  while the screen gets auto locked, after end user unlocking it the screen sharing get stuck. Is there any way where we can resume the screen sharing after unlock event happens?
We are using Opus and H264 codec here..

Hey @AamanPhale
Sorry I didn't respond to this sooner. Unfortunately nothing you can really do with Pion here. You can detect when RTP packets have stopped flowing, but you can't really know why the remote machine has pushed them.
If you discovered anything more while working on this I would love to know! Would be great to help others. Thanks @AamanPhale


[QUESTION] Why do we need response_model?

Why doesn´t FastAPI use python hints for returning types as well?
This code is more intuitive
@app.post("/items/")
async def create_item(item: Item) -> Item:
    return item

than this
@app.post("/items/", response_model=Item)
async def create_item(item: Item):
    return item

Please do a search here first. Possible duplicate of #875.

And here as well: https://github.com/tiangolo/fastapi/issues/620. I think many people are asking about it because it makes lots of sense. I actually see as the most common scenario to return the model itself as is, rather than a special "serialization model" with different fields.

Thanks for the help here @phy25 :cake: :bowing_man:
Thanks @aklauza for coming back to close the issue :+1:


TwoFactorUserId & TwoFactorRememberMe cookie issues

RC2 tooling, new project using local accounts.
1: The TwoFactorUserId cookie middleware seems to be set to somehow running automatically (tho the AutomaticAuthN is not set AFAICT). This has the side effect of interfering with the primary authentication cookie and the User claims. So in short, I'm seeing all the claims from both the main cookie merged with the claim in the TwoFactorUserId cookie. For example, I put this in a view:

Claims

    @foreach(var claim in User.Claims)
    {
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>    }

Even for an anonymous user shows:
Claims
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
97e6826a-b32a-4067-8f6b-ce5cd70c53b2

2: Also, it's using the Name claim type to store the user's user ID, so it seems more appropriate to use the NameIdentifier claim type instead. Especially if you can't fix the first issue for RTM.
3: Once I login with 2FA, the TwoFactorUserId cookie is not getting cleared.
4: All of the above is also true for the TwoFactorRememberMe cookie and claims.

Ok, just debugged some more... turns out all of the UseIdentity() cookie middlewares are now being set to AutomaticAuthenticate=true. Perhaps this was a change in the cookie MW defaults in RC2?
If I explicitly set the 3 of them to false (all but the app cookie) then it's working as expected.
The TwoFactorUserId cookie is still not removed upon successful 2fa tho.

Looks like this might be the issue: https://github.com/aspnet/Security/blob/dev/src/Microsoft.AspNetCore.Authentication.Cookies/CookieAuthenticationOptions.cs#L27
Setting this to default to true is dangerous, as evidenced by this issue and the fact that someone forgot to update all of the MW here.

Ugh, yeah we should fix this


SCRUM-1569 Save null values on editing VocabularyTerm abbreviation/definition

Fixes bug where values for (non-required) abbreviation and definition fields were only saved if non-empty string

@markquintontulloch is what is coming in from the UI an empty string?

@oblodgett - not sure, but it's theoretically possible at least via the API.  This should cover all bases.


add documentation on search

Here are the changes I made to fix #128

[x] Link README.md to MEILISEARCH-JAVA.md
[x] Add search and rawSearch() on MEILISEARCH-JAVA.md

Thank you for contributing to MeiliSearch. If you are participating in Hacktoberfest, and you would like to receive a small gift from MeiliSearch too, please complete this form.

Hi @alallema ,
It's cute about the gift. 😃
Btw could you please elaborate on what changes I need to do so that my pull request will be accepted?


Support multi-matched globbed target files for uprobe and usdt

The change is pretty straightforward, it's mostly achieved by changing the form of strings returned by find_wildcard_matches for these probe types (the new form is target:function for uprobe and target:namespace:probename for usdt) and handling the new form where needed.
A noticeable behavior is for usdt probes when a process PID is specified. By default, all binaries and libraries executed by the process are searched for usdt probes. If a target path is specified along with a PID, only the binaries/libraries matching the path are searched. I wonder if this information should be put into the Reference Guide.
Resolves #1113.
Note: this change introduces usage of std::filesystem. This requires some changes, in particular adding the -lstdc++fs linker flag for some compiler versions and using GCC version 8 in Docker images (since GCC 7 does not support std::filesystem). These changes will probably be needed for #1263, too.
Checklist

[ ] Language changes are updated in docs/reference_guide.md
[x] User-visible and non-trivial changes updated in CHANGELOG.md
[x] The new behaviour is covered by tests

Look ok! Adding std::filesystem should be fine, shame the detection has to happen like this but I don't see a better way either.


Time and IP not displayed

Describe the bug
The recently added feature is not showing time and IP . Weather part is working fine
Update
The time and IP is showing up on localhost but not on the deployed version.
Screenshot

GitMate.io thinks possibly related issues are https://github.com/monsij/StudentPortal/issues/19 (Unusual display size), and https://github.com/monsij/StudentPortal/issues/20 (Current dynamic date,time,weather and user IP).

I'll have a look

Solved: #44


Include gtest-death-test in common/testing/gtest.h

I think death tests are a good idea, but is this import necessary? It looks like I'm already using death tests in this repo:
https://github.com/google-research/raksha/blob/942a2f8b99e01826609ba45048cac1d901f98209/src/ir/system_spec_test.cc#L41

I think death tests are a good idea, but is this include necessary? It looks like I'm already using death tests in this repo:
https://github.com/google-research/raksha/blob/942a2f8b99e01826609ba45048cac1d901f98209/src/ir/system_spec_test.cc#L41

Ah. For some reason, I got an error that EXPECT_DEATH was not defined when I added a new death test. Let me see why that was the case and circle back.

@markww You were right. This is not needed. Not sure why I saw that error in the first place. :)


Look for a GSR sensor

http://www.dx.com/p/seeed-sen01400p-grove-gsr-skin-sensor-module-board-blue-black-white-322401?tc=AUD&gclid=CMX3hsKn_M4CFQt_vQodIkcIow

https://www.seeedstudio.com/Grove-GSR-sensor-p-1614.html

http://www.robotshop.com/en/galvanic-skin-response-grove-module.html

http://www.pakronics.com.au/collections/grove-shield-australia/products/grove-gsr-ss101020052

Order done, we will be receiving it by next week hopefully

Finally we got this: http://www.pakronics.com.au/collections/grove-shield-australia/products/grove-gsr-ss101020052#

Order #PAKR-127568
Tracking number: HXQ0000350
*Please allow some time for the tracking number to show at Australia Post.


IriWidget: Remove unnecessary "parameter" property

The parameter-property is included, but not used within the IriWidget (see here).
Can it therefore be removed from the property object type IriWidgetProps?

I didn't see a point at the moment why we should need the parameter-property there. So it could be removed.

Removed the property in this commit. When feat/plainJS-sb-integration is merged, this issue can be closed


Wait for units to settle after charm refresh

Avoids hitting race conditions in charms,
such as https://bugs.launchpad.net/charm-barbican/+bug/2039604

@canonical/soleng-reviewers I'd appreciate your thoughts on the implementation here.  I haven't updated all the tests yet, but please see the first commit in this PR for the actual app code changes.  I'm not sure if this is the best way to implement it, but the goal is to get COU to wait for the charm to finish any upgrade-charm hooks after running a charm refresh.
Specifically, it appears that waiting between Upgrade <charm> from <old channel> to the new channel: <new channel> and Change charm config of <charm> 'openstack-origin' to 'cloud:focal-<new release>' is a workaround to https://bugs.launchpad.net/charm-barbican/+bug/2039604
In general, it will be better for COU to wait for the charm to finish processing hooks after any changes (change config, refresh charm, etc.).

However, just to leave it as note, we might need to increase global default timeout.

I don't think there is a global timeout?

I don't think there is a global timeout?

okay, maybe I was wrong. anyways, it's out of scope now

@gabrielcocenza

so if I understood correctly if you manually upgrade the cloud the issue doesn't happen because you give more time to the application settle?

Correct.  And waiting for the unit to settle in between making changes to it is good practice in general. :)


Everytime i run it now, used to work perfectly

18:29:26: Fatal error encountered:
18:29:26:
18:29:26: Traceback (most recent call last):
18:29:26:   File "main.py", line 158, in main
18:29:26:   File "twitch.py", line 764, in run
18:29:26:   File "twitch.py", line 783, in _run
18:29:26:   File "twitch.py", line 1454, in get_auth
18:29:26:   File "twitch.py", line 515, in validate
18:29:26:   File "twitch.py", line 524, in _validate
18:29:26:   File "contextlib.py", line 181, in aenter
18:29:26:   File "twitch.py", line 1479, in request
18:29:26:   File "gui.py", line 2050, in coro_unless_closed
18:29:26:   File "aiohttp\client.py", line 1151, in send
18:29:26:   File "aiohttp\client.py", line 562, in _request
18:29:26:   File "aiohttp\connector.py", line 540, in connect
18:29:26:   File "aiohttp\connector.py", line 901, in _create_connection
18:29:26:   File "aiohttp\connector.py", line 1178, in _create_direct_connection
18:29:26:   File "aiohttp\connector.py", line 980, in _wrap_create_connection
18:29:26:   File "asyncio\base_events.py", line 1050, in create_connection
18:29:26:   File "asyncio\base_events.py", line 961, in _connect_sock
18:29:26:   File "asyncio\proactor_events.py", line 703, in sock_connect
18:29:26: RuntimeError: await wasn't used with future
18:29:26:
18:29:26: Exiting...
18:29:27:
18:29:27: Application Terminated.
18:29:27: Close the window to exit the application.

This is a problem with aiohttp and asyncio itself. This will happen if your Internet becomes unstable. You can try restarting it.

This is a duplicate of #80.


events: Add support for bulk delete_message events.

I haven't yet tested end-to-end an actual bulk delete; I'm still looking for a way to do that in the UI on CZO. Maybe it's an admin feature, or it's not accessible through the UI yet?
Fixes: #4158

OK, just tested this on a dev server, and it works as expected. I see the EVENT_MESSAGE_DELETE action with multiple items in messageIds, and the messages do disappear.

Merged. Thanks for the review!


Are the outDir and indexTemplate options valid in @svgr/core?

Once again I want to preface my question with a thank you for SVGR. I'm developing a Webpack plugin which watches the filesystem for changes and re-runs SVGR to generate components each time new SVGs are added to the project.
The options page of the website mentions: SVGR ships with a handful of customizable options, usable in both the CLI and API.
However, when running @svgr/core with the outDir option (and am also interested in using indexTemplate), no files seem to get written to the filesystem. This is not necessarily an issue, it's trivially easy to write the code generated by SVGR to the filesystem myself - but I was just wondering if the outDir and indexTemplate options are expected to have an effect when used with @svgr/core?

Hello @codynova, no outDir and indexTemplate are CLI only options, so they are not available in config. We should mention it in documentation.


Merge Request for #4809: provide a convenient method for C++ client producer batch container

provide a convenient method for C++ client producer batch container https://github.com/apache/pulsar/issues/4809
Formally the container element should be used like the following way:
MessageContainerList::iterator iter = messagesContainerListPtr->begin();
iter->sendCallback_(r, iter->message_);
There are totally 3 reference operation steps inside:
Reference an exact element of MessageContainer explicitly from outside by iteration operator;
Reference the sendCallback_ function pointer of said MessageContainer element explicitly from outside;
Reference the message_ member of said MessageContainer element explicitly from outside;
Besides,  there is only one incoming variable say Result r is given from outside;
So a reasonable convenient invoking method should be like:
MessageContainerList::iterator iter = messagesContainerListPtr->begin();
iter->CallBack(r);
Obviously, said convenient method is also an efficient one.
Moreover, use a more efficient iteration method while going through the MessageContainerList;
From some benchmark test result in my local environment, such "for iteration based a fixed-length", will be 5 times faster than the STL::iterator operator way.
Refer to the change on BatchMessageContainer.cc, please.

// org.apache.pulsar.functions.worker.PulsarFunctionStateTest.testPulsarFunctionState (#4887)
run java8 tests

@sijie I updated the description of this MR, add some simple messages about the thinking of the new method.

Some more updates in the description.

Change the Milestone to 2.4.2, because of conflict.


test 2 vectors

Summary of changes
Changes introduced in this pull request:
Reference issue to close (if applicable)

Closes
Other information and links

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@901d00c). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master       #6   +/-   ##
=========================================
  Coverage          ?   11.41%
=========================================
  Files             ?      192
  Lines             ?    15565
  Branches          ?     7653
=========================================
  Hits              ?     1777
  Misses            ?    12388
  Partials          ?     1400

Continue to review full report at Codecov.

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

Commit pull request


Replace links with redirect destination

When I edited docs into Japanese, reviewers found some links redirected, and I modified them.
I modified some resource names.
editorconfig automatically removed trailing spaces.

/assign @jimangel

/lgtm
/approve


Upgrade FTXUI version.

Use version the current dev version >3.0.0
Fix the breaking changes around options.
Add some animated buttons.
Use vscroll_indicator to display some scrollbar.

Hi, @ArthurSonzogni Thanks for your time, really appreciate this.


Thunks for optimizing rendering

This should directly affect performance in the 'many' example.

How do you implement thunks when Cycle doesn't have states? applyToDOM takes Observable of vtree which is basically the result of rendering. And custom elements are already handling their own subtree redraws.

This issue was moved to cyclejs/cycle-web#9


azure_devops_rust_api::test::models::IdentityRef contains a mandatory deprecated uniqueName field.

I have run into this problem, while trying to call Test - Points - Get Point and the field LastResultDetails contains a run_by with type azure_devops_rust_api::test::models::IdentityRef. However in this case the server doesn't include the uniqueName or really any metadata.
The example in the api does not even include the LastResultDetails field.
The shortened request/response pair which triggers the error:
GET https://dev.azure.com/<ORG>/<PROJ>/_apis/test/Plans/1/Suites/2/points/1?api-version=7.1-preview'

{
    "id": 1,
    "url": "https://dev.azure.com/<ORG>/<PROJ>/_apis/test/Plans/1/Suites/2/Points/1",
    "assignedTo": {
        "displayName": "<My Name>",
        "url": "<My identiy url>",
        "_links": _,
        "id": "<my uuid>",
        "uniqueName": "<My Mail>",
        "imageUrl": _,
        "descriptor": _
    },
    "lastTestRun": {
        "id": "9",
        "url": "https://dev.azure.com/<ORG>/<PROJ>/_apis/test/Runs/9"
    },
    "lastResult": {
        "id": "100000",
        "url": "https://dev.azure.com/<ORG>/<PROJ>/_apis/test/Runs/9/Results/100000"
    },
    "lastUpdatedDate": "2024-09-11T12:10:04.77Z",
    "lastResetToActive": "2024-09-11T11:08:00.59Z",
    "lastUpdatedBy": {
        "displayName": "<My Name>",
        "url": "<My identiy url>",
        "_links": _,
        "id": "<my uuid>",
        "uniqueName": "<My Mail>",
        "imageUrl": _,
        "descriptor": _
    },
    "testPlan": {
        "id": "1",
        "name": "The Test Plan",
        "url": "https://dev.azure.com/<ORG>/<PROJ>/_apis/test/Plans/1"
    },
    "lastResultDetails": {
        "duration": 0,
        "dateCompleted": "2024-09-11T12:10:04.627Z",
        "runBy": {
            "displayName": "<My Name>",
            "id": "<my uuid>"
            // Here is the problem, the server doesn't give the `uniqueName` here
        }
    },
    ..
}

I wonder what workaround there is. Because making the uniqueName and Option is technically a breaking change, so I don't expect you to do this right away. But then, it is a deprectated field.
Thanks for any help and thanks for maintaining this Wrapper, it is very useful :)

Thanks very much for the detailed report.  Yes, as you suggest the fix is to make the uniqueName field optional.  This is a field within IdentityRef.  As you say, this is a breaking change for any existing users, but is the right fix to make.  I can document the change and the compiler will tell anyone affected when they upgrade.

Okay, nice, yeah I would much appreciate a fix. :) I have now run into this again with another api call.

Fixed: https://github.com/microsoft/azure-devops-rust-api/pull/482
I've just published a new version with the fix: 0.22.0.


HEXLOAD Patch

It appears to me that the HEXLOAD patch is included in Quark 1.04, but not in any vdp version for Console8.

What makes you think that? The code is in there and hexload works fine on C8...

Yeah - hexload support is present in the Console8 codebase
I regularly check for additions to the Quark codebase and regularly merge the Quark main branch into the Console8 codebase. There is nothing present in Quark VDP 1.04 that wasn’t in the Console8 VDP 2.0.0 release.

As soon as send.py initiates the transmission, whether HEXBIN is active or not, a reset or restart is triggered. This occurs regardless of whether the jumper is set, as described. I'll now test it with the Quark firmware. However, with the current firmware from C8, a reset is immediately executed. Hence, I assumed that the patch is not included.

Are you definitely using the latest send.py from the repo? I also occasionally have issues with hexload causing a reset if Ive recently used e.g.PIO or a bidirectional terminal on the port, which is actually down to an underlying reset circuit in the ESP32 rather than the firmware itself, but goes away after a reboot (of the host).

I've finally managed to prevent any further resets (reinstalled the vdp, reuploaded all files, etc.). Thus, we can consider this issue resolved. However, it's still not working properly. Hexload indicates a transfer (dots and one an X?), but it never returns to the prompt. But I believe this is no longer a firmware-related problem. Thank you for your help.

The FIFO in the ez80 can hold on to bytes sometimes and spit them out when hexloading, but that doesn't result in hexloading hanging...
Have you definitely got the latest (October, from memory) send.py on your host and latest hexload.bin in /mos/ ?

I can't explain why it's working now. I switched to Quark VDP, but that didn't help. Just then, I updated both MOS and VDP back to the latest C8. Now it's running smoothly. Thanks for the assistance.