128x64 display setup

I successfully tested 128x64 (two P3 64x64 Led panels), you need to setup:
// Defines the buffer height / the maximum height of the matrix
#define PxMATRIX_MAX_HEIGHT 64
// Defines the buffer width / the maximum width of the matrix
#define PxMATRIX_MAX_WIDTH 128
PxMATRIX display(128,64,P_LAT, P_OE,P_A,P_B,P_C,P_D,P_E);
display.begin(32);
display.setPanelsWidth(2);

Great :)

Thanks for the info

I am using a d1 mini pro. Using Wifi to fetch live data and display in 1 screen works great. But as soon I try the same with 2 displays the board crashes.
Which board are you using? In the picture you posted seems to be  esp8266. Are you also fetching live data using the Wifi?

Just set variables in libraries by the instructions. I used NodeMcu ESP8266 Lua WIFI V3, CH340.

I did, it was the first thing I did while I read the first message. I am trying to understand if there are some limitations with my board (d1 mini pro).
While using the 2 screens are you using also the WIFI library and fetching data from some live source? Can you paste the imports you are using in the example you showed?

Definitely is too much for the board I am using. Using only the PxMatrix with 2 screens works relative ok (with some ghost pixels). Thanks for the info :)


docs-bug(MatDialog): Document standalone import

Documentation Feedback
TLDR; would be nice to document how to provide dialog and snackbar for standalone components.
I don't want to provide MatDialogModule for every standalone component that uses a dialog.
I guess I could add it to main.ts. I have a convenience service that does alert(), confirm(), error() dialogs and hides the MatDialogModule from simple components. I don't have a great way of providing MatDialogModule for this convenience service.
in the docs it says:
import {MatDialogModule} from '@angular/material/dialog';
now that i'm using standalone components,
is it recommend to use:
importProvidersFrom(MatDialogModule),
in main.ts
e.g.
  providers: [
    // https://this-is-angular.github.io/angular-guides/docs/standalone-apis/configuring-the-router-using-standalone-features
    provideRouter(
      routes,
      withDebugTracing()),
    importProvidersFrom(HttpClientModule),
    importProvidersFrom(MatDialogModule),
    provideAnimations(),
  ]
}).catch(err => console.error(err));```

I guess it wouldn't make sense to provide MatDialogModule to the convenience service separately to how I provide it to some standalone components, as then perhaps the app would have inconsistent dialogs, so in main.ts makes sense, just feels disorganised.

### Affected documentation page

https://material.angular.io/components/dialog/api

We plan to eventually make the MatDialog standalone which should resolve this issue entirely. I'll leave this open for now and we'll close it once we've done that

We have the exact same use-case, a convenience service using MatDialog.
@wagnermaciel how would the final solution look like ?
Instinctively, I tried something similar to the following, but that obviously does not work because imports does not exist for injectables:
@Injectable({
    providedIn: 'root',
    imports: [MatDialog] // DOES NOT COMPILE, because `imports` does not exist for injectable !
})
export class MyAlertService {
    public constructor(private readonly dialog: MatDialog) {
    }

    public confirm(message: string): void {
        const dialog = this.dialog.open(MyConfirmComponent, {
            data: {...},
        });
    }
}

More generally, how are we supposed to declare dependencies of a "standalone" service ? Are services never meant to be standalone ?

Any suggestions how to use for the meantime?

Any suggestions how to use for the meantime?

You would have to create a module.
In there have the service on the providers list, and whatever imports you need, for example the MatDialogModule

Creating a module would work, but you don't have to. You can also do without module. Your library would export its required providers, something like:
export const myLibProviders: ApplicationConfig['providers'] = [
    importProvidersFrom([MatDialogModule, MatSnackBarModule]),
    otherCustomFromMyLibProvider,
];

Then your app can use it like so:
bootstrapApplication(AppComponent, {
    providers: [
        myLibProviders,
        ... // All other app specific providers
    ],
}).catch(err => console.error(err));


ubi-minimal++

OSD-18595

/lgtm

Codecov Report

Merging #218 (ed7ec25) into main (ec779fa) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files

@@           Coverage Diff           @@
##             main     #218   +/-   ##
=======================================
  Coverage   40.59%   40.59%
=======================================
  Files          25       25
  Lines        1855     1855
=======================================
  Hits          753      753
  Misses       1010     1010
  Partials       92       92


ipa_pc Commitment has_degree_bound function always returns false

https://github.com/arkworks-rs/poly-commit/blob/18619538e430bdf88d8384cf2dbf9f1e9e79302d/src/ipa_pc/data_structures.rs#L115-L117

It also might be worthwhile to include the enforced degree bound directly in the commitment if there is a degree bound, so we don't need to rely on LabeledCommitment to retrieve the degree bound.


css change on basis of language

Hi everyone,
I have configured  Arabic as additional language in my JHipster project.  What I want if user select Arabic language page should load different set of css files e.g., instead of cssfile1.css cssfile2.css should be loaded. Can anyone recommend best practice to do this.

Hello, this is an issue tracker, a better place for questions or discussions is on stackoverflow or gitter.


Recloser Discrete Control issue regarding the trip-close-code

Depending upon how the template.yaml file is created within the adapter config tool, certain results will prevent the RecloserDiscreteControlXCBR signal from successfully opening or closing an Intellirupter.  While comparing my working SEL 651R yaml template file to code written on a seperate computer that was not successfully controlling an Intellirupter I noticed that the value entered in
profiles.0.mapping.recloserDiscreteControl.recloserDiscreteControlXCBR.discreteControlXCBR.Pos.phs3.ctlVal.when-true.0.trip-close-code
is NUL for me and CLOSE or TRIP for the non-working code.  Within the same Intellirupter code, we can see meter readings and the relay's status but couldn't control it.
I went in and manually changed the CLOSE and TRIP to NUL and retried the adapter.  This worked.  I am unsure where NUL came from in my code as I recall selecting CLOSE or TRIP and saving the file but it seems the template was saved as NUL.  (Or I forgot to change them and happened to get lucky?)
Attached are 2 images referencing the relevant sections of the code and showing the differences in the trip-close-code:

Hi @spark706
The Trip-Close Code is defined and configurable in the Adapter Config tool.

According to DNP3 spec, the Trip-Close Code field is used in conjunction with the Operation Type field to specify a control operation.  It really depends on how the device is setup/configured to handle CROB and I've seen (in most cases), the Trip-Close Code is NUL.
Regards,
Cory

I am using the Operation Type for the SEL 651R as a Pulse_On as the device is setup for pulse and Latch_On for the Intellirupter.  In addition, I added a Command-ID where I typed Close or Trip (nat familiar with this item so a guess)  and set the Trip-Close-Code to CLOSE or TRIP with the dropdown menu.  I can't be positive that my working SEL 651R Trip=Close Code was set to other than NUL but I do know the Intellirupter version was set to TRIP or CLOSE as part of the Latch_On selection.

The image above shows how I built, or recall how I built, the SEL 651R discrete control code and the image below is the saved/working template yaml showing how NUL was actually saved

I do know that the Intellirupter code as created with the Operation Type as Latch_On set and the Trip-Close Code as TRIP and the template file was created saying that.  Upon changing the Trip-Close Code to NUL manually and re-running the code, the discrete signal worked.  The Operation Type is still set to Latch_On along with the same CROB and timing inputs.


new RLHF benchmark

=================
Benchmark results
=================

System
------
cpu:      AMD EPYC 7742 64-Core Processor
n_cpu:    128
product:  NVIDIA A100-SXM4-80GB
n_gpu:    8
memory:   81920.0

Breakdown
---------
bench                          | fail |   n | ngpu |       perf |   sem% |   std% | peak_memory |      score | weight
rlhf-gpus                      |    0 |   1 |    8 |    6440.75 |   1.8% |   9.7% |       21828 |    6440.75 |   0.00
rlhf-single                    |    0 |   8 |    1 |    1108.44 |   0.4% |   9.8% |       19566 |    8891.21 |   0.00


Added more hxLabels

Comp/EQ/Mod/Legacy Mod/Legacy Delay should all be added
Fixed a couple out of order alphabetically labels.

This did pass offline testing :)


anyOf wrong (dirty) typing

Scheme:
          anyOf:
            - $ref: '#/components/schemas/PortInformation'
            - $ref: '#/components/schemas/WarehouseInformation'

Result:
origin: PortInformation | WarehouseInformation | (PortInformation & WarehouseInformation);

Expected:
origin: PortInformation | WarehouseInformation;

The output is correct. anyOf is an intersection which allows the value to be valid against one or more of the types provided. Read the result as "origin can be PortInformation or WarehouseInformation or a combination of the two".
Use oneOf if you want your expected results as it is an XOR which is most similar to a Typescript Union.


3.0.6328  Unable to load the driver

Windows Defender has quarantined SystemInformer.exe with the reason "Trojan:Win32/Wacatac.H!ml". I canceled this action, however, the driver stopped loading. I reinstalled SystemInformer and now get the message "KSystemInformer could not be loaded. KSystemInformer does not support your operating system or could not be loaded. Make sure System Informer is running with administrative privileges." running as admin.
System Informer
Version: 3.0.6328 (8903fe9)

@wnstngs
check https://github.com/winsiderss/systeminformer/issues/1630 and https://github.com/winsiderss/systeminformer/issues/1631

I'm sure it's a false positive. The problem is that I can't install the driver anymore.

I can't install the driver

@wnstngs This specific error is when files are missing. Check defender isn't quarantining the files.

I can't install the driver

@wnstngs This specific error is when files are missing. Check defender isn't quarantining the files.

I followed this guide https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/restore-quarantined-files-microsoft-defender-antivirus?view=o365-worldwide and came to the conclusion that none of the files associated with System Informer are in quarantine.

Defender doesn't generally restore files and will keep deleting them until you view the protection history and manually allow the file or whitelist the install directory.
The defender no longer swears at the file and Protection History is empty.

The files are missing or something is blocking the files. If you've tried reinstalling and it's still happening then something is still deleting the files or blocking file access.
I tried both the version with the installer and the portable version where you can see that all the files are present, including the driver. Still "KSystemInformer could not be loaded." and "Unable to open the thread. Access is denied." I'm sure that I run System Informer as admin.

Run Process Monitor (https://learn.microsoft.com/en-us/sysinternals/downloads/procmon)
I tried using ProcMon to inspect events, but I couldn't find anything related to the error / driver.

@wnstngs
Is EnableKphWarnings set to 1?

I tried using ProcMon to inspect events, but I couldn't find anything related to the error

You might need to reboot and/or delete everything from the Filter menu > Filter window since the defaults exclude System

@wnstngs
Looks like I was wrong about this error message and This specific error is when files are missing. was not correct. There were a bunch of changes last year and this exact same error is shown for multiple reasons.
We've added extra diagnostics and error messages for these other cases. Update to the latest nightly (3.0.6370) and it should display the correct error message.

@wnstngs
Looks like I was wrong about this error message and This specific error is when files are missing. was not correct. There were a bunch of changes last year and this exact same error is shown for multiple reasons.
We've added extra diagnostics and error messages for these other cases. Update to the latest nightly (3.0.6370) and it should display the correct error message.

Thanks for the update
The error message:
The kernel driver is not supported on preview builds. If this is not a preview build, request support by
submitting a GitHub issue with the Windows Kernel version.
Kernel version: 10.0.25314.1010
State mask: 0x00000000

It turns out that the driver will not work as long as I use Canary Build. Why is it not possible to load the driver in the case of the Preview version?

Insider changes too quickly and regularly has things changed that do not make it to retail. It simply just isnt worth the time to try to keep up with a moving non-guaranteed target.


Cli -  Provide ability to add description when creating project and clusters.

rancher version - v1.0.0-alpha5
When creating project/cluster only name can be provided. Ability to add description/add members when creating project and clusters.

Cluster description was added in https://github.com/rancher/cli/pull/144

Available in v1.0.0-alpha12

Tested with rancher-v1.0.0-alpha13
Have the ability to add description when creating project and clusters using --description option.


Use thread unique date formatters

Fixes #44

@johnbona once the calls are done on the variable and array, ie: [ .iso8601() ] then it will be constant from the initializing thread regardless of whether or not subsequent calls come from other threads. I think we need to rethink this slightly to accommodate the timing there .. any thoughts?

We still have the issue of being locked to a thread in this one, I'm not sure we'll resolve more than the lock is doing, feel free to reopen this or we can discuss it in slack, just closing so it's easier for us to keep track of what needs our attention.
Thanks for submitting!! 👍


prebootInitFn() error

I get  Uncaught ReferenceError: prebootInitFn is not defined error. Not sure what I need to do to fix it?

https://github.com/MarkPieszak/aspnetcore-angular2-universal/issues/680#issuecomment-420431084

@Vicher it's a temp solution. Do we have a permanent fix for this problem?

Any solution ?


python3Packages.certifi: allow not overriding ca bundle

Description of changes
We replaced certifi's CA bundle with the system-wide bundle, however, the system-wide bundle includes the openssl-specific BEGIN TRUSTED CERTIFICATE cert format, while the bundle that ships with certifi contains only the BEGIN CERTIFICATE cert format.
This breaks some things that expect to see only the latter, eg, I'm currently trying to fix tls support in the nixpkgs build of the syncplay client, and openssl throws an error when it tries to read one of these certificates, but syncplay just passes through a cryptic
[03:18:00 AM] [('PEM routines', '', 'no start line')]

Through playing with syncplay's cert-loading code in a python repl, I've been able to narrow the issue down to these erroneous certs.
Disabling our overriding of certs allows my syncplay patch to properly load the ca bundle, so I'm adding a simple toggle to do so.
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] 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/)
23.11 Release Notes (or backporting 23.05 Release notes)

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

[ ] Fits CONTRIBUTING.md.

Hmm, maybe we should create a parallel trust bundle that only includes the trusted certs, rather than trying to bundle the trust bits for OpenSSL. That probably means a change to buildcatrust...
In your PR description you say it's openssl choking on this - is actually openssl or is it syncplay or one of its dependencies parsing the cert outside of using OpenSSL to do it?

I think it is the pem module, but it should support the trusted certificate spec since 21.2.0.
https://github.com/hynek/pem/pull/50/

[nix-shell:~]$ python3
Python 3.10.11 (main, Apr  4 2023, 22:10:32) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pem
>>> import certifi
>>> from twisted.internet.ssl import Certificate, optionsForClientTLS, trustRootFromCertificates
>>> certpath = certifi.where()
>>> certs = pem.parse_file(certpath)
>>> for cert in certs:
...   Certificate.loadPEM(str(cert))
...
<Certificate Subject=b'ACCVRAIZ1' Issuer=b'ACCVRAIZ1'>
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
  File "/nix/store/f7217dwq4h2xhcbdbqv7sdlsfi136n9b-python3.10-twisted-22.10.0/lib/python3.10/site-packages/twisted/internet/_sslverify.py", line 473, in loadPEM
    return Class.load(data, crypto.FILETYPE_PEM)
  File "/nix/store/f7217dwq4h2xhcbdbqv7sdlsfi136n9b-python3.10-twisted-22.10.0/lib/python3.10/site-packages/twisted/internet/_sslverify.py", line 452, in load
    return Class(crypto.load_certificate(format, requestData), *args)
  File "/nix/store/0196pzrm9by8b16kw8328mkb8zggdirb-python3.10-pyopenssl-23.1.1/lib/python3.10/site-packages/OpenSSL/crypto.py", line 2029, in load_certificate
    _raise_current_error()
  File "/nix/store/0196pzrm9by8b16kw8328mkb8zggdirb-python3.10-pyopenssl-23.1.1/lib/python3.10/site-packages/OpenSSL/_util.py", line 57, in exception_from_error_queue
    raise exception_type(errors)
OpenSSL.crypto.Error: [('PEM routines', '', 'no start line')]
>>>

Ah, https://github.com/Syncplay/syncplay/blob/master/syncplay/client.py#L850-L851
They load the file with pem, which is fine, but then pass things into twisted.internet.ssl.Certificate, which will blow up if its an OpenSSLTrustedCertificate since the format is different.
In any case, doing this directly without teaching the underlying thing what the trust bits mean is dangerous, since we include the TRUSTED CERTIFICATE bits (but no normal CERTIFICATE) for certificates we're untrusting: https://github.com/lukegb/buildcatrust/blob/main/buildcatrust/certstore_output.py
I think we could tweak syncplay in this case not to do this (and only try to parse pem.Certificate into a twisted Certificate), but we should probably also provide an escape hatch to make this less annoying.

I took a quick look and i don't think any of the other dependents of certifi are impacted by this issue.


Exposed LightSwitch store, Used LocalStorageWritable

Created a separate stores file to be exposed and altered the lightswitch functionality to use the LocalStorageStore to its fullest
Partially Addresses #291
I feel we have this as fast as reasonable at the moment.

Again, nailed it. I just made some minor adjustments.
I agree with the performance, our bottleneck is the onMount method, but to my knowledge we don't have a faster means to access DOM related data with pure Svelte. SvelteKit offers browser but it's not available for Vite/Astro so we cannot proceed with it.
This update is going to make James very happy! Great job Luke!


UdpSocket is never writable

I tried to use rotor with this minimal code (maybe I am doing something wrong). But after starting the loop the socket never becomes ready:
use std::str;
use mio::udp::UdpSocket;
use rotor::{EventSet, PollOpt, Loop, Config, Void};
use rotor::{Machine, Response, Scope, EarlyScope};

struct Context;

enum Client {
    Foo
}

impl Client {
    fn new(socket: UdpSocket, scope: &mut EarlyScope) -> Response<Client, Void> {
        scope.register(&socket, EventSet::all(), PollOpt::level()).unwrap();
        Response::ok(Client::Foo)
    }
}

impl Machine for Client {
    type Context = Context;
    type Seed = Void;

    fn create(_: Void, scope: &mut Scope<Context>) -> Response<Self, Void>
    {
        println!("create");
        Response::ok(Client::Foo)
    }

    fn ready(self, events: EventSet, _scope: &mut Scope<Context>) -> Response<Self, Void>
    {
        println!("ready: {:?}", events);
        Response::ok(Client::Foo)
    }

    fn spawned(self, _scope: &mut Scope<Context>) -> Response<Self, Void>
    {
        println!("spawned");
        Response::ok(Client::Foo)
    }

    fn timeout(self, _scope: &mut Scope<Context>) -> Response<Self, Void>
    {
        println!("timeout");
        Response::ok(Client::Foo)
    }

    fn wakeup(self, _scope: &mut Scope<Context>) -> Response<Self, Void>
    {
        println!("wakeup");
        Response::ok(Client::Foo)
    }
}

pub fn get() {
    println!("starting ...");
    let mut loop_creator = Loop::new(&Config::new()).unwrap();
    let any = str::FromStr::from_str("<IP_ADDRESS>:0").unwrap();
    let socket = UdpSocket::bound(&any).unwrap();
    loop_creator.add_machine_with(|scope| {
        Client::new(socket, scope)
    }).unwrap();
    loop_creator.run(Context).unwrap();
}

This example with "raw" mio works as expected:
extern crate mio;

use mio::*;
use mio::udp::*;
use std::str;

const LISTENER: Token = Token(0);

pub struct UdpHandler {
    tx: UdpSocket,
}

impl UdpHandler {
    fn new(tx: UdpSocket) -> UdpHandler {
        UdpHandler {
            tx: tx,
        }
    }
}

impl Handler for UdpHandler {
    type Timeout = usize;
    type Message = ();

    fn ready(&mut self, event_loop: &mut EventLoop<UdpHandler>, token: Token, events: EventSet) {
        println!("{:?}", events);
    }
}

fn main() {
    let mut event_loop = EventLoop::new().unwrap();
    let any = str::FromStr::from_str("<IP_ADDRESS>:0").unwrap();
    let tx = UdpSocket::bound(&any).unwrap();
    event_loop.register(&tx, LISTENER, EventSet::all(), PollOpt::edge()).unwrap();
    event_loop.run(&mut UdpHandler::new(tx)).unwrap();
}

I tested your first example using rotor (on Windows) and I saw that the socket failed to become writable as well. However, you are registering it in level triggered mode in that example whereas the second example using mio you register it in edge triggered mode.
Using edge triggered mode in the rotor example works for me to where I saw the socket become writable. I am not sure if you are using Windows or not, but last I talked to the mio guys, level trigger support on Windows is somewhat lacking (at least for v0.5). I would use edge triggered registration when possible.

I tested with both edge and level and none of them work. I tested on OS X 10.11.5, not sure why mio works.

Oh I see. Unfortunately I don't have a copy of OS X to test on.
What you could always do is see if it a problem with rotor not receiving the writable event from mio, or if it is a problem with rotor not properly percolating the writable event up the stack to the machine.
I believe a print statement before this line might provide some information.

Ok turns out I did do something wrong: by mistake I passed the ownership of the socket to the function new and this caused the socket to be closed.
@GGist Thanks for the help anyway :)

Ah good catch.
I guess that means the writable event that I saw on my end was just another quirk with Windows.


Pattern being incorrectly matched

I am running git-secrets on Windows, using the latest master-branch source.
I have a currently empty config.json file to store a token for an application:
{
    "Token": ""
}

I am attempting to write a rule to pick up non-blank tokens.  I have tried several variations:
git secrets --add '"Token": ".+"'
git secrets --add '\"Token\": \".+\"'
git secrets --add '\"Token\": \".+?\"
git secrets --add '\"Token\": \"[a-zA-Z0-9_]+\"'
git secrets --add '\"Token\"\: \"[a-zA-Z0-9_]+\"'

The first rule ends up matching every line in every file.  I think this is an issue with the quote character being escaped.
Every other rule I have flags the 2nd line of config.json (below) as matching the prohibited pattern.
config.json:2:    "Token": ""

[ERROR] Matched one or more prohibited patterns

However in all of these cases I'm looking for a non-empty token string, and the + operator should be doing that for me.  I'm really not sure what's going on here.  I'm not the sharpest with RegEx but this should be correct and I've tested with several online tools which all validate this as well.
Thanks,
Charlie

Some additional issues with the regex matching.  Note that I added the blank token as an allowed literal for the time being.
git secrets --list
secrets.patterns \"Token\": \"[a-zA-Z0-9_]+\"
secrets.allowed "Token": ""

config.json:2:    "TOKEN": "",
config.json:3:    "GUILD_ID": "",
config.json:4:    "MAX_WINNERS_PER_GROUP": 0

[ERROR] Matched one or more prohibited patterns

It seems this pattern is matching... anything that looks remotely similar.

+1 I am having trouble ignoring the match for "AccountId"

Looked into this with my personal usage. Your pattern can't have spaces in it causes it to split words. Instead, replace the spaces with \s for now and I will look into what changes should be made to prevent this.


Subscribing to messages using Homie.getMqttClient() is not reliable: topic is truncated

Hello,
I am trying to use Homie as my base code for all the developments in my ESP8266. It is a great framework to run projects!
In my code, I am subscribing to messages from other Homie devices: let's say device 'A' subscribes to messages from device 'B' (homie/B/#).
It is done as this example:
_AsyncMqttClient& mqttClient = Homie.getMqttClient();
uint16_t packetIdSub = mqttClient.subscribe("homie/B/#", 2);
...
mqttClient.onMessage(onMqttMessage);
...
void onMqttMessage(char* topic, char* payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total)
{
  Serial << "[MQTT onMqttMessage]: " << topic << ":" << ((String)payload).substring(0,len) << endl;
}

I have noticed that topic is truncated to 'homie/B'
The reason, as far as I have understood the code, is that BootNormal::_onMqttMessage(), that is the first event handler called by async-mqtt-client library when a subscribed message arrives, modifies 'topic'
This method calls to __splitTopic(), that calls to strtok(), to split the topic, and fill in _mqttTopicLevels.
That function exchanges '/' with a '\0' character after its first token (in my example 'homie/B').
Later, when you deal with 'topic', in onMqttMessage() , it has been truncated, because you are called after BootNormal::_onMqttMessage().
I see, at least, two solutions:

One, more transparent, would be to make a copy of 'char* token' at the begining of BootNormal::_onMqttMessage(), and work with the  copy. I need more experience in programing to do that, as I am not aware of all of the implications of allocating memory in a library that I do not fully know.

And two: BootNormal::_onMqttMessage() could call first to the rest of functions that are subscribed to mqtt messages, and then, continue to do its job. This will probably imply more changes in code

Homie library would be much more powerful if we can use devices for generic purposes, based on Homie, not restricted to some 'limitations'. But that may need changes, like the ones proposed here.
I am sorry if all of this is wrong, because I am not an expert, maybe I am not coding as I should. In such case, please ignore this comment.
Regards

@peret2000, you make a good point. You should be able to tap into the mqtt lib and use it as expected it you really need to. I shall fix this/if you want to you can.
That said you shouldn't need to, for this kind of thing, sharing messages between devices directly over mqtt was thought of to be solved by broadcast messages.
http://marvinroger.github.io/homie-esp8266/docs/2.0.0/advanced-usage/broadcast/
Hopefully this will help you. That said it's quite basic, and if you think of improvements please share
Thanks

@timpur, thanks a lot. I appreciate your interest and disposition to make the changes. I will try to propose something for you to evaluate if it is ok.
Having a thought, there may be a leak, each subscribed message implies this event to be invoked, so there is a call to several "new" calls to reserve memory and I do not see where it is freed.
So, I will propose a change to, on one hand, avoid the leak, and also allow to pass the topic to the next events to be called.
I see your point about broadcast messages. My idea is to allow subscriptions in general, without a particular pattern: they could come from ahomie

I was wrong. There is no memory leak at all. Memory keeps the same. Reading about std:unique_ptr smart pointers, I see there is no need to free memory explicitly.
So, I have added in my local copy of BootNotmal.hpp a new property (std::unique_ptr<char[]> _mqttTopicCopy) used in BootNormal::_onMqttMessage() as a copy of char* topic; so that char* topic remains unchanged.
I am testing the execution, and the memory remains constant (it seems), and the topic travels correctly to the events subscribed.
Thanks for your comments. I will implement these changes in my local deplyment of Homie. Let me know if you want them uploaded or sent to you. I am a newbie with github (I am learning)

All g.
Don't worry, only one way to learn.
Fork Homie, make your changes there, then create a pull request to homie here, with your changes. Google will help you along the way.
I'll review and decided if anything enhancements can be done :)
But sounds like you know what your doing, and have a viable solution.
Thanks :)


Add Pre-commit and black formatter checks to dbt-bigquery

resolves #123
Description
adding pre-commit and black formatter to match that of dbt-core
Checklist

[x] I have signed the CLA
[x] I have run this code in development and it appears to resolve the stated issue
[x] This PR includes tests, or tests are not required/relevant for this PR
[x] I have updated the CHANGELOG.md and added information about my change to the "dbt-bigquery next" section.

NOTE: flake8 tests aren't going to be passing against main as test is removed.


[Issue] azd in dev container on Mac M1 - azd fails

[ ] Make sure you've installed the latest version using instructions in the wiki

Output from azd version
Run azd version and copy and paste the output here:
azd version 1.1.0 (commit ea9cb12575734ee6a5f99c4d415c1a51d6f32d3e)
Describe the bug
Description of issue you're seeing...
can't use azd up on Static React Web App + Functions with Node.js API and MongoDB on Azure template
To Reproduce
Steps to reproduce the behavior...

create dev container for typescript from microsoft
install azd - which fails
check dev container setting so azd is installed by default with container rebuild
rebuild
azd auth login succeeded on third try - something about localhost not being available
use azd init with template switch
rebuild again because now there is a new devcontainer
azd up
get error: ERROR: compiling bicep template: failed to compile bicep template: failed running bicep build: signal: segmentation fault, stdout: , stderr: qemu: uncaught target signal 11 (Segmentation fault) - core dumped
I assume this is about docker + Mac M1

Expected behavior
Does azd work on Mac M1?
Environment
Information on your environment:
* Language name and version
* IDE and version : [e.g. Visual Studio 16.3]

Additional context

@v-xuto can you try repro'ing this?

@v-xuto can you try repro'ing this?

@rajeshkamal5050 We can repro this issue.

Environment:

OS: Apple M2
azd version: 1.2.0

@rajeshkamal5050 When we reopen the todo-nodejs-mongo-swa-func with devContainer, encountered this error:

Environment:

OS: Apple M2
azd version: 1.2.0

Thanks for chatting @dfberry! A couple scenarios to consider here:
Run azd without installing azd on the local machine (container OK)
This scenario should work well enough today because our templates supply the .devcontainer config needed. However, the steps to accomplish this would be:

git clone the template repo
Open vscode against the template directory
vscode will suggest reopening in the devcontainer, do that
azd auth login and azd up, etc.

Those should all work in the devcontainer running in emulated x86_64 mode. I'll ensure that's the case.
Errors running bicep in non-emulated devcontainer mode
This is the error repro'd above by @v-jiaodi, this should be looked into as well.

bicep build, when running inside the x86_64 emulated docker container reliably crashes. Running file ~/.azd/bin/bicep shows that the binary is x86-64 so, given that the container is x86_64, this is the correct binary that azd is downloading.
We'll need to dig into what's making bicep fail when running bicep build in an emulated container. This could be an issue with bicep, dotnet which is building the bicep binary, or possibly qemu.
I also tried switching the devcontainer out of x86_64 mode into the ARM64 mode but that doesn't work because Azure Functions Core Tools aren't available on packages.microsoft.com for ARM64 of the Debian distro we are using. The azure-functions-core-tools releases page on GitHub also only shows binaries for x64 on Linux.
Two avenues of further exploration for the bicep crash are:

Fixing bicep (possibly involving .NET and qemu) or
Getting azure-functions-core-tools building and publishing on ARM64 Linux

@danieljurek is this issue still valid? Not seeing much activity here?

There's not a release for arm64 linux yet so this does not work in devcontainer.

There's not a release for arm64 linux yet so this does not work in devcontainer.

@danieljurek given the dependency on https://github.com/Azure/azure-functions-core-tools/issues/3112 please pull it when the dep is resolved. Moving to backlog.


Create a method for users to store metadata with the candidate objects

Goals:

Be able to store metadata for each of the candidates in the db
Be able to retrieve/view the metadata

The metadata is not in a regular structure that can be used for all candidates, however it can be serialised (eg as JSON) so a string based metadata column would suffice.
The website doesn't need to interpret the data, just display it as a set of key:value pairs.
Potential solution:

Create a new model which is metadata that holds the serialised content plus a link to the candidate to which it refers.

from d1894ed2a42614dcbc29f1c757159b4a9c9db65f it is now possible to upload metadata along with a candidate. The fits file must have a column called "metadata" and it can contain any text data. When viewing the "candidate ratings table" there is now an additional column which shows a link to the metadata. The linked page shows the raw metadata.

However if there is no metadata the link results in a 404.
[ ] Remove the link if there is no metadata to show.

When downloading tables of candidates the metadata isn't also downloaded.
Submit a new issue if this is not aligned with your use case.


Question regarding slots as childs of divs

Description
For a particular usecase we're having, we require an AR Button area such as this:

(the button has a footnote specifying some details, and a link for privacy information).
I'm unclear however how to build that with model-viewer; I first tried wrapping the ar-button slot in a div and also putting that information in the div (which seemed like the right way, structurally), but then the slot is not detected (I get double buttons). From reading a bit about web component slots that might be by design?
I currently ended up putting all the elements into the slot button, but that requires really nasty CSS and also semantically doesn't feel right (a link in a button). Is there a better way to do this?
Does not work (slot not detected, regular AR button shows up):

    <button slot="ar-button" id="button-enter-ar">
        View In AR*
    </button>

*Some Text.

More Info

Workaround (with hacky CSS, semantics are bad)
<button slot="ar-button" id="button-enter-ar" class="ar-entry-area">

        View In AR*

*Some Text.

More Info

</button>

Could you paste the HTML for the two cases or Glitch links so I can see what you mean?

Updated the question!

That's a good question; I definitely think the slot has to be the parent of everything else you want included. Not sure if there's a cleaner way to set up the CSS for this one. Any thoughts @cdata?


Update embedded-kafka to 3.6.0

About this PR
📦 Updates io.github.embeddedkafka:embedded-kafka from 3.4.1 to 3.6.0
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "io.github.embeddedkafka", artifactId = "embedded-kafka" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "io.github.embeddedkafka", artifactId = "embedded-kafka" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, version-scheme:semver-spec, commit-count:1

Superseded by #767.


Flyway shouldn't suppress comments after "prompt" with Oracle (SQLPlus)

Which version and edition of Flyway are you using?
6.2.0 but the same issue is reproducible in newer versions
If this is not the latest version, can you reproduce the issue with the latest one as well?
(Many bugs are fixed in newer releases and upgrading will often resolve the issue)
If the SQL migration contains something like prompt --application/set_environment Flyway will show nothing while in SQLPlus is shown "--application/set_environment"
Which client are you using? (Command-line, Java API, Maven plugin, Gradle plugin)
Command line
Which database are you using (type & version)?
Oracle 18
Which operating system are you using?
MacOS
What did you do?
Oracle APEX source files contain lots of prompt --<some message> that are useful when importing the app in other environments. However, Flyway seems to ignore the message as it may think it's a comment.

Support for many SQLPlus commands (including PROMPT) is a flyway Pro or Enterprise only feature. Do you have a pro or enterprise license? If so can you confirm whether or not it works when running in pro or enterprise mode?

I have a pro license and can confirm that suppressing the "--" after the "prompt" command is a real issue.

This will be fixed in the next flyway release


UI bug on the Buy token screen on the Firefox browser

Describe the bug
UI bug on the Buy token screen on the Firefox browser

Version test: http://<IP_ADDRESS>:8900/s/86iEAFn2YAjjAWY
Validation passed.


utils/gems: prioritise Homebrew's chosen Ruby

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew tests with your changes locally?

As seen in https://github.com/Homebrew/brew/issues/5561#issuecomment-606872007, Ruby in other locations like rbenv may be used when installing gems. At the very least, this can mean installing native extensions to a place that won't match what Homebrew's chosen Ruby actually uses. At worst, we get hard to debug errors.
The reason other Rubys were being picked was because ~/.gem/2.6.0/bin was prioritised over Homebrew's chosen Ruby bin directory. This may mean that ~/.gem/2.6.0/bin/bundle is run instead.
This is a separate issue to the TMPDIR one.

Makes sense, thanks @Bo98.


Array Manipulation

A function arraymanipulation was called and the parameter was size of the 1-d array and a 2-d array.
Use the same for the solution of array manipulation problem.

Hi Wazeer,
Thanks for writing, but I could not understand your query.
It will be good if you can elaborate the same so that I can help you ASAP.


Skillgain will not work if skilltotal is over 32767

Skillgain seems to disregard any skillsum set in the skillclass and just stops if you reach or exceed a number around 32767 for your skilltotal.
Blaorp

Is it working now?

works perfect now


Python Service SDK don't have useragent

The ClientVersion from Python Service SDK is blank. It should have azure-iot-service-iothub-py

For node the user agent that is reported from Node service seems to be azure-iothub/1.9.9
Does python need to be the exactly like that of Node or does python needs to be azure-iot-service-iothub-py/<some_version> ?

For node the user agent that is reported from Node service seems to be azure-iothub/1.9.9
Does python need to be the exactly like that of Node or does python needs to be azure-iot-service-iothub-py/<some_version> ?

From the service side code of python it seems that there is an user agent iothubgatewayserviceapis/<some_versison> but this seems to be never reported.

From the service side code of python it seems that there is an user agent iothubgatewayserviceapis/<some_versison> but this seems to be never reported.

This is the user agent that gets sent in one of the headers

This is the user agent that gets sent in one of the headers

Closing this as it appears to be an issue on the data ingestion side-- will reopen if needed


run python test.py error ,maybe some error in code

python test.py
Batch [1/4]
Error: Numpy + Intel(R) MKL: MKL_THREADING_LAYER=INTEL is incompatible with libgomp-7c85b1e2.so.1 library.
Try to import numpy first or set the threading layer accordingly. Set NPY_MKL_FORCE_INTEL to force it.
Collecting test error...
Traceback (most recent call last):
File "test.py", line 35, in
cross_error += full_batch(0)
File "/home/linux/workspace/skeletonAware/deep-motion-editing-master/retargeting/get_error.py", line 15, in full_batch
res.append(batch(char, suffix))
File "/home/linux/workspace/skeletonAware/deep-motion-editing-master/retargeting/get_error.py", line 54, in batch
err = (pos - pos_ref) * (pos - pos_ref)
ValueError: operands could not be broadcast together with shapes (108,28,3) (156,28,3)

Hi, it seems I can't reproduce the same error.  According to your report, there could be something wrong with your environment configuration of numpy and MKL. If you can provide more information, e.g. platform, environment, it might be helpful.

Hi, we recently enhanced compatibility. Hope the latest commit helps.


New version of vscode makes it impossible to overwrite read-only files

In previous versions of vscode, attempts to save a readonly file would bring up a prompt for overwrite.  This has been replaced by an open as administrator link.  The other option is save as which brings up a save dialog and also doesn't allow overwriting read-only files.  Is there another way to overwrite read-only files now?
Version: 1.48.0 (user setup)
Commit: db40434f562994116e5b21c24015a2e40b2504e6
Date: 2020-08-13T07:50:42.600Z
Electron: 7.3.2
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Windows_NT x64 10.0.18363

Please update to 1.48.1 that just came out, then retest and report back


Stop asking for support here.

title. this is strictly for issues with code. if you are unable to use it, don't.

All of this. This this this.

So your saying don't report issues ok gotcha

No, he is saying don't do stuff like #76 #77 or any of the other issues that say "{my device type} support now plz"

If You = Not Able To Comprehend Then
Move on
Else
If your contributing to the code Then
@Error then
make issue
endif
endif

This is not the only one that got useless issue reports.
Peoples who modding/hacks games are also having spam reports and begging for hacks


Searching for a service by it's label it doesn't show the tasks

Bug description
Searching for a service by it's label it doesn't show the related tasks in the dropdown table
Expected behavior
Searching for a service by it's label should still show the tasks that are part of the service in the dropdown table
Steps to reproduce the issue:

Deploy a service with a label (Not as part of a stack)
Go to services view and search for the label
See the service shown but not it's related tasks

Technical details:

Portainer version: 1.23
Docker version (managed by Portainer): 19.03.2
Platform (windows/linux): Linux (Ubuntu 18.04.02 LTS)
Command used to start Portainer (docker run -p 9000:9000 portainer/portainer): portainer-agent-stack
Browser: FireFox

Additional context
Doesn't happen with services deployed in a stack as everything inherits the service labels

Closing this, as tasks inherit container labels and not service labels to the behaviour makes sense.


WordPress cron example

It would be interesting to have an example of how to configure WordPress cron with DDEV-CRON :)

I haven't used WP before so am not the best person for creating a guide.

Oh, I see. This is the issue for PR #35

Thanks!


FileNotFoundError: [Errno 2] No such file or directory: 'python2'

OSX El Capitan
Blender 2.78
Starting build
Read assets from: /Users/leotreasure/Panda3dprojects/assets/
Export them to: /Users/leotreasure/Panda3dprojects/game/assets/
Ignoring file patterns: ['*.blend1', '*.blend2']
Build took 0.0003s
Running main file: /Users/leotreasure/Panda3dprojects/game/main.py
Traceback (most recent call last):
  File "/Users/leotreasure/Library/Application Support/Blender/2.78/scripts/addons/BlenderPanda/operators.py", line 199, in execute
    pman.run(config)
  File "/Users/leotreasure/Library/Application Support/Blender/2.78/scripts/addons/BlenderPanda/pman.py", line 292, in run
    args = [get_python_program(config), mainfile]
  File "/Users/leotreasure/Library/Application Support/Blender/2.78/scripts/addons/BlenderPanda/pman.py", line 108, in get_python_program
    retcode = subprocess.call(args, stderr=fp)
  File "/Applications/Blender2.78.app/Contents/Resources/2.78/python/lib/python3.5/subprocess.py", line 560, in call
    with Popen(*popenargs, **kwargs) as p:
  File "/Applications/Blender2.78.app/Contents/Resources/2.78/python/lib/python3.5/subprocess.py", line 950, in __init__
    restore_signals, start_new_session)
  File "/Applications/Blender2.78.app/Contents/Resources/2.78/python/lib/python3.5/subprocess.py", line 1540, in _execute_child
    raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'python2'

location: <unknown location>:-1

I tried adding to my bash_profile file:
alias python2='python2.7'
but no luck. I can run Panda3d samples using both python and ppython at the terminal.
I also have a panda3d.pth file in /Library/Python/2.7/site-packages with:
/Developer/Panda3D
/Developer/Panda3D/bin

Thanks rdb, creating a symlink did the trick!
ln -s $(which ppython) /usr/local/bin/python2

Reopening this. The symlink is a work-around, and I should address the root issue of BlenderPanda not detecting the correct Python binary to use.

This should now be fixed with 5fd355131135a406431398471a1fa1a9b9331cb7. Can you try deleting your symlink (/usr/local/bin/python2) and trying again? You will want to run Update Project from Blender in the Render properties. This updates the blenderpanda module in your project directory. However, keep in mind that this will wipe out any changes you have to the pman.py in your project directory.

Thanks - it works now!!


Add: ForEach added

Added forEach example

LGMT!

@rizkyhaksono , Please label this PR with hacktoberfest-accepted. Thanks


More sql functions coverage

Codecov Report

Merging #42 into develop will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##           develop       #42   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           15        15
  Lines          967       991   +24
=========================================
+ Hits           967       991   +24

Impacted Files
Coverage Δ

src/zero_one/geni/core.clj
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


Cannot load swagger UI

Describe the bug
Swagger UI page doesn't load when launched from API-Docs link.
To Reproduce
Go to user -> API Docs:
Expected behavior
Swagger UI should load.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
You can get the logs by running: docker logs <service_name>
Did JtlReporter make you happay in any way?
Answering this question is not required, but if you have anything positive to share, please do so here.
Cause:- Jtl reporter is deployed over http using docker, the swagger UI tries to load css and js using https after initial request

Hi @puran157
Yes, sorry, it's not working, and even if it was, it's unfortunately outdated. I forgot to remove the link.
I know it's less user friendly, but you can check all the API from here: https://github.com/ludeknovy/jtl-reporter-be/tree/master/src/server/routes


Add myself as code owner for sourcekit-xfails.json

Hopefully, this will mean that I don’t have to bother @clackary or @shahmishal for changing the Stress Tester’s XFails file.

@swift-ci Please test


fix: change default similarity_metric for milvus

description
Milvus not supported similarity_metric:cosine and only L2 and IP are supported. Therefore, I updated the default similarity_metric.
log
[11/25/24 14:28:57] INFO     [evaluator.py:127] >>                                                                                evaluator.py:127
                                             _        _____            _____
                                  /\        | |      |  __ \     /\   / ____|
                                 /  \  _   _| |_ ___ | |__) |   /  \ | |  __
                                / /\ \| | | | __/ _ \|  _  /   / /\ \| | |_ |
                               / ____ \ |_| | || (_) | | \ \  / ____ \ |__| |
                              /_/    \_\__,_|\__\___/|_|  \_\/_/    \_\_____|

                    INFO     [evaluator.py:128] >> Start Validation input data and config YAML file first. If you want to skip this, put the --skip_validation flag evaluator.py:128
                             or `skip_validation` at the start_trial function.
                    WARNING  [validator.py:50] >> Minimal Requested sample size (5) is larger than available records (1). Sampling will be limited to 1 records.     validator.py:50
[11/25/24 14:28:58] INFO     [evaluator.py:228] >> Embedding BM25 corpus...                                                                                evaluator.py:228
[11/25/24 14:29:10] INFO     [evaluator.py:248] >> BM25 corpus embedding complete.                                                                                evaluator.py:248
                    INFO     [_client.py:1039] >> HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 200 OK"                                          _client.py:1039
[11/25/24 14:29:11] ERROR    [decorators.py:147] >> RPC error: [create_index], <MilvusException: (code=0, message=metric type not found or not supported,          decorators.py:147
                             supported: [L2 IP])>, <Time:{'RPC start': '2024-11-25 14:29:11.011688', 'RPC error': '2024-11-25 14:29:11.017874'}>

Hi, I thought Milvus is supporting cosine similarity metric according to the docs of Milvus.

@e7217 But is it solved your Milvus issue? Then I will happy to merge it.

@vkehfdl1 I made an assumption based on the log messages. From the log, it appears that it shows supported: [L2 IP], which led me to conclude that the cosine similarity method is not supported. My assumption could be incorrect, but the issue was resolved when I proceeded this way. To ensure proper functionality, the parameters need to be defined. #1001 Thank you!
https://github.com/langchain-ai/langchain-milvus/blob/288f5197f1e68d1cc98a416e0f7b8f3a6a3a9517/libs/milvus/langchain_milvus/vectorstores/milvus.py#L1421

@vkehfdl1 Sorry, I found that the default metric type is COSINE in the pymilvus repo.
https://github.com/milvus-io/pymilvus/blob/46f12b21c80efdfc718bc2ef86d867b710a06f1c/pymilvus/milvus_client/milvus_client.py#L65
I don’t know why this issue occurred, but other metric types, except for COSINE, were configured successfully.

This fix might add another error as side effect, regarding the default metric for milvus search.
I am trying to use milvus-lite (that is supported by pymilvus 2.4.2).
I am able to ingest correctly my data using the following config:
vectordb:
  - name: bge_m3_milvus
    db_type: milvus
    embedding_model: huggingface_bge_m3
    collection_name: huggingface_bge_m3
    uri: local_milvus.db
    embedding_batch: 50
    index_type: FLAT
    params:
      metric_type: ""

But when the search module kicks in:
[12/03/24 00:51:04] INFO     [_client.py:1038] >> HTTP Request: GET https://api.gradio.app/gradio-messaging/en "HTTP/1.1    _client.py:1038
                             200 OK"
[12/03/24 00:51:08] INFO     [evaluator.py:228] >> Embedding BM25 corpus...                                                evaluator.py:228
                    INFO     [evaluator.py:248] >> BM25 corpus embedding complete.                                         evaluator.py:248
                    INFO     [SentenceTransformer.py:218] >> Load pretrained SentenceTransformer: BAAI/bge-m3    SentenceTransformer.py:218
[12/03/24 00:51:10] INFO     [SentenceTransformer.py:357] >> 2 prompts are loaded, with the keys: ['query',      SentenceTransformer.py:357
                             'text']
                    INFO     [connections.py:381] >> Pass in the local path local_milvus.db, and run it using            connections.py:381
                             milvus-lite
[12/03/24 00:51:12] INFO     [evaluator.py:205] >> Running node line retrieve_node_line...                                 evaluator.py:205
                    INFO     [node.py:55] >> Running node retrieval...                                                           node.py:55
                    INFO     [run.py:165] >> Running retrieval node - semantic retrieval module...                               run.py:165
                    INFO     [base.py:18] >> Initialize retrieval node - VectorDB                                                base.py:18
                    INFO     [connections.py:381] >> Pass in the local path local_milvus.db, and run it using            connections.py:381
                             milvus-lite
                    INFO     [base.py:31] >> Running retrieval node - VectorDB module...                                         base.py:31
Batches:   0%|                                                                                | 0/1 [00:00<?, ?it/s]
Batches: 100%|###############################################################################################| 1/1 [00:00<00:00, 10.55it/s]

Batches:   0%|                                                                                | 0/1 [00:00<?, ?it/s]
Batches: 100%|##############################################################################################| 1/1 [00:00<00:00, 137.38it/s]

Batches:   0%|                                                                                | 0/1 [00:00<?, ?it/s]
Batches: 100%|##############################################################################################| 1/1 [00:00<00:00, 174.38it/s]

Batches:   0%|                                                                                | 0/1 [00:00<?, ?it/s]
Batches: 100%|##############################################################################################| 1/1 [00:00<00:00, 187.40it/s]

Batches:   0%|                                                                                | 0/1 [00:00<?, ?it/s]
Batches: 100%|##############################################################################################| 1/1 [00:00<00:00, 182.19it/s]

                    ERROR    [decorators.py:147] >> RPC error: [search], <MilvusException: (code=1100, message=fail to    decorators.py:147
                             search: metric type not match: invalid [expected=][actual=L2]: invalid parameter)>,
                             <Time:{'RPC start': '2024-12-03 00:51:12.248113', 'RPC error': '2024-12-03
                             00:51:12.248668'}>
                    ERROR    [decorators.py:147] >> RPC error: [search], <MilvusException: (code=1100, message=fail to    decorators.py:147
                             search: metric type not match: invalid [expected=][actual=L2]: invalid parameter)>,
                             <Time:{'RPC start': '2024-12-03 00:51:12.251065', 'RPC error': '2024-12-03
                             00:51:12.251423'}>
                    ERROR    [decorators.py:147] >> RPC error: [search], <MilvusException: (code=1100, message=fail to    decorators.py:147
                             search: metric type not match: invalid [expected=][actual=L2]: invalid parameter)>,
                             <Time:{'RPC start': '2024-12-03 00:51:12.253529', 'RPC error': '2024-12-03
                             00:51:12.253798'}>
                    ERROR    [decorators.py:147] >> RPC error: [search], <MilvusException: (code=1100, message=fail to    decorators.py:147
                             search: metric type not match: invalid [expected=][actual=L2]: invalid parameter)>,
                             <Time:{'RPC start': '2024-12-03 00:51:12.255825', 'RPC error': '2024-12-03
                             00:51:12.256095'}>
                    ERROR    [decorators.py:147] >> RPC error: [search], <MilvusException: (code=1100, message=fail to    decorators.py:147
                             search: metric type not match: invalid [expected=][actual=L2]: invalid parameter)>,
                             <Time:{'RPC start': '2024-12-03 00:51:12.258249', 'RPC error': '2024-12-03
                             00:51:12.258537'}>
Ingesting VectorDB... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 1/1 0:00:03
Evaluating...         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━   0% 0/4 0:00:00

As you can see in the error message, the L2 metric is passed for search, even if metric_type param is set to empty string.

@elsatch Hi! What will be the distance metric do you want to use? You can configure it through "similarity_metric" key in the config YAML file.
vectordb:
  - name: bge_m3_milvus
    db_type: milvus
    embedding_model: huggingface_bge_m3
    collection_name: huggingface_bge_m3
    uri: local_milvus.db
    embedding_batch: 50
    index_type: FLAT
    similarity_metric: cosine

Like this!
The default metric is cosine in this docs.
If you want to "already ingested" vectordb, simply use below.
vectordb:
  - name: bge_m3_milvus
    db_type: milvus
    embedding_model: huggingface_bge_m3
    collection_name: huggingface_bge_m3
    uri: local_milvus.db
    embedding_batch: 50
    index_type: FLAT
    similarity_metric: l2

@elsatch
Hello,
The vllm module configuration has been updated as follows to accommodate various options:
vectordb:
- name: autorag_2024_xx_xx
  db_type: milvus
  embedding_model: openai
  collection_name: autorag_2024_xx_xx
  uri: http://192.xxx.xxx.xxx:19530
  embedding_batch: 50
  similarity_metric: l2
  index_type: IVF_FLAT
  params:
    nlist : 16384

Please refer to the following PR for details:
#1001
@vkehfdl1
Since the official documentation has not yet been updated, I will incorporate these changes accordingly.
Additionally, in the updated code, the default similarity_metric is set to l2, but I will change it to cosine.

@elsatch Hello, The vllm module configuration has been updated as follows to accommodate various options:
vectordb:
- name: autorag_2024_xx_xx
  db_type: milvus
  embedding_model: openai
  collection_name: autorag_2024_xx_xx
  uri: http://192.xxx.xxx.xxx:19530
  embedding_batch: 50
  similarity_metric: l2
  index_type: IVF_FLAT
  params:
    nlist : 16384

Please refer to the following PR for details: #1001
@vkehfdl1 Since the official documentation has not yet been updated, I will incorporate these changes accordingly. Additionally, in the updated code, the default similarity_metric is set to l2, but I will change it to cosine.

#1030


Add updates for each of the workshops in the training course

When first released.

Work in progress...

All done.


[Update Request]: VCVRack.VCVRack 2.6.0

What type of update are you requesting?
A new version of an existing package
Current Package Identifier
VCVRack.VCVRack
Package Version
2.6.0
Please describe the changes you would like to see
https://github.com/VCVRack/Rack/blob/v2/CHANGELOG.md

[!NOTE]
InstallerUrl of version 2.5.2 is extracted from PackageUrl. The PackageUrl does not provide installer file of version 2.6.0.

[!NOTE]
By guessing the pattern of InstallerUrl, it seems version 2.6.0 is available via version-related static direct link.
Have no idea why they don't upgrade contents of their PackageUrl 😕.


Issues with change #1274 (backend_oculus_camera_rig_reset)

https://github.com/Samsung/GearVRf/commit/0a09fc9e5f9fb266fa9ccf4fc62b1ddadc209fd4
We've been noticing odd behavior that is tied to this change. Where sometimes when taking off and putting back on the headset results in the camera rig being rotated 90 or 180 deg (on the Y axis) after prolong use. The issue goes away with rolling back this change.
I sadly haven't had time to investigate further then this.
At the current time I roll back the change in my own build of the libraries but I though I would bring this to your attention.

Thanks. Do you know the length of time it takes? 5 minutes? 30 minutes?

To be honest I am not sure as I haven't had time to fully isolate when and why. It usually happens after using and testing the app out a lot through out the day and when it does happen we were probably running the app for 15m or more.
The issue did not start happening till after this change was made and it always goes away when this change is reverted and always crops back up when I compile the latest code and forget to take it back out.

@brian-faber Could you please examine your code for any use of the GVRCameraRig.resetXyz() methods? Can you reproduce this problem by following a similar scenario with any of our demo apps? How long do you wait before putting the headset back on? Do you think your activity may be recreated instead of resumed in this case?
The commit just honors the complementary rotation we are supposed to use and which is needed for the resetXyz() methods to actually work.

Hi,
I don't have answers off hand to your questions. I will investigate and get back to you next week on it.

@brian-faber Do you have anything for us? If not I am planning to close in few days.. I haven't heard anybody else seeing this and we haven't either.

Hi,
Sorry I never found time to go back and investigate. So for now I will just close the bug.


[Fix] Could not find a version that satisfies the requirement jaxlib==0.4.25+cuda12.cudnn89

Description
Fix the following error on MacOs:
ERROR: Could not find a version that satisfies the requirement jaxlib==0.4.25+cuda12.cudnn89; extra == "cuda12_pip" (from jax[cuda12-pip]) (from versions: 0.4.17, 0.4.18, 0.4.19, 0.4.20, 0.4.21, 0.4.22, 0.4.23, 0.4.24, 0.4.25)
ERROR: No matching distribution found for jaxlib==0.4.25+cuda12.cudnn89; extra == "cuda12_pip"

Reference
24 - Error "Could not find a version that satisfies the requirement jaxlib==0.4.25+cuda12.cudnn89"

I got it installed manually putting this in the command line pip install jax[cuda12_pip] -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html

@Bakobiibizo I did the same, but would be interesting if we could just run pip install instead installing this dependencies manually.

Nvidia no longer supports macOS since CUDA 11.7 (https://developer.nvidia.com/nvidia-cuda-toolkit-11_7_0-developer-tools-mac-hosts)
Jax does not support cuda on macOS so it is impossible to install it with cuda 12 on your computer.
https://jax.readthedocs.io/en/latest/installation.html


Applying destroys my PhysBones

So, whenever I try to apply an accessory, it just gets warped and weird. No problem, that's what “Don't reuse bones” is for. But when I try to apply it with this option ticked, a lot of the PhysBones just disappear.
I've attached two images for before and after applying with "Don't reuse bones on”

This repo hasn't been updated in almost a year and the strategy it used has been made obsolete. It's recommended to move on to newer tools such as Modular Avatar: https://modular-avatar.nadena.dev/


USB C port

this does not seem to be recognsed when I plug anythhing into it?

The Additional Files Sections contains a Files called USB_ports.ziü containing all the Info and files abour which ports are mapped. And due to the 15 Port Limit USB C is not mapped. So if you want to use USB C you need to map it yourself using Hackintool.


collect data for face recognition

Create data collection plan for the face recognition

The data collection plan has been finished and it will entail simple sampling from friends and mining for images in the MNIST database.


Upgrade vulnerable json5 and glob-parent dependencies

Fixes:
https://issues.redhat.com/browse/LOG-3456
https://issues.redhat.com/browse/LOG-3457

/lgtm


Is there an example to use adversarial training on coqa?

hi, thanks for your hard work! Do you known how to add an adversarial training when finetuneing on the coqa dataset?

This repo doesn't support adversarial training yet. Normally, for AT, perturbations will be added to input embedding, and based on whether it's AT or VAT, different perturbation updating strategy will be applied when calculate gradients.


fix VS2013 compile issues

To compile in VS2013, maybe we should check _MSC_VER or simply discontinue VS2013 support.

We don't intend to support VS2013.


Dynamic ClassLoading

This is the main blocker for this branch right now:
List links to resources, tutorials or libraries to help in this effort

https://github.com/kamranzafar/JCL A library the loads jarfiles
https://jcp.org/en/jsr/detail?id=277
https://github.com/jbake-org/jbake/pull/78
This looks to be the most promising. Look at ManagePlugins class

Got this working. Writing tests


add TF/Pose_V pub in DiffDrive

Solves https://github.com/ignitionrobotics/ros_ign/issues/131
With this PR, there is only /tf<EMAIL_ADDRESS>to add to the args of the ros_ign_bridge parameter_bridge node to get similar TF publishing behavior as in Gazebo Classic DiffDrive plugin.
Once merged I can PR ros_ign_gazebo_demos if needed with the additional /tf<EMAIL_ADDRESS>I did the most straightforward implementation. Improvement to discuss:

Variable naming: tfPub, tf_msg or pose_VPub and pose_V_msg ?
Ign topic for frame_id -> child_frame_id transform: tf or something else ?
TF/Pose_V always on, or enable/disable for instance through _sdf->HasElement("publish_tf") (or other name)

Thanks for the PR! Did you consider using the PosePublisher system alongside the DiffDrive?

Thanks for the PR! Did you consider using the PosePublisher system alongside the DiffDrive?

I wasn't aware of the PosePublisher plugin but I guess that could work too!

I wasn't aware of the PosePublisher plugin but I guess that could work too!

Though if it is the plugin that publishes directly the Pose_V / tf, we get a behavior/configuration more similar to the gazebo classic in my opinion.

Though if it is the plugin that publishes directly the Pose_V / tf, we get a behavior/configuration more similar to the gazebo classic in my opinion.

if it is the plugin that publishes directly the Pose_V / tf, we get a behavior/configuration more similar to the gazebo classic in my opinion.

Agreed, but in the long run, less duplication is easier to maintain. If we need to update something about how transforms are being published, right now we only need to update the PosePublisher and all users benefit from it. I'm inclined to suggest users migrating from Gazebo classic use the 2 plugins, instead of duplicating the functionality here.

if it is the plugin that publishes directly the Pose_V / tf, we get a behavior/configuration more similar to the gazebo classic in my opinion.

Agreed, but in the long run, less duplication is easier to maintain. If we need to update something about how transforms are being published, right now we only need to update the PosePublisher and all users benefit from it. I'm inclined to suggest users migrating from Gazebo classic use the 2 plugins, instead of duplicating the functionality here.

I gave it a try but I fail to understand how to configure PosePublisher to publish the transform from odom to the link of the robot.
What model/link would be odom ?

Coming back on this, I cannot find a solution to get the tf published from frame_id to child_frame_id without this PR and by using the PosePublisher. Would you reconsider the merge ?


How to create an SAP HANA Developer Edition in the Cloud

Hi, We have got an instance for SAP HANA Develop Edition in the cloud (Running on AWS).
I tried to launch the HANA instance using http://XXX.XXX.XXX.XXX as mentioned in the Getting Started Guide. But we don't get anything. Our intention is to launch SAP Web IDE for HANA to develop XSA applications.
My question is:
Does the SAP HANA Developer Edition 1, SPS12 come with the services required for WebIDE and XSA? I tried to list out all the xs apps/ services as mentioned in the openSAP Course for SAP HANA/ SPS12, but I get only the below listed. I don't see any of the services like hrtt, webide etc.
when we do a xs apps (we have two space - PROD and SAP. PROD is empty. SAP has the below)
deploy-service
component-registry-db
component-registry
product-installer
and for xs services, we get the below:
hdi-container
hdi-schema
uaa
deploy-service-ss
deploy-service-database
alm-uaa
product-installer-database
Could you please let us know why we aren't able to see Web IDE and hrtt tools?
Regards
Reshma

For the above issue, do we need to get SAP HANA Express instead of SAP HANA Developer edition?
This would be the first HANA instance in our landscape and we would like to get started on the latest technologies. By reading online and taking the openSAP course, I understand XS Advanced is the way forward.
Please advise.

The existing SPS12 Developer Edition would be fine for XSA as well or you can switch to the newer HXE (Express Edition) as well.
For SPS12 Developer Edition try putting the :8000 on the end of the URL perhaps the internal port redirection for traffic on port 80 to 8000 is not working. The port for the Web IDE is 53075


regression: timeout waiting for breakpoint with cortex-m-rt 0.7.1

(This originally started as https://github.com/knurling-rs/probe-run/issues/316. I have tracked the issue down to the cortex-m-rt 0.7 branch and so am filing a new, more specific, issue here.)
I have been trying to update the nucleo-h743zi crate to use the latest cortex-m-rt and am hitting a timeout error when probe-run attempts to start and debug the board with newly flashed firmware. It does so by setting a hardware breakpoint and then running. I assume the expected breakpoint is never hit, and so probe-run does not enter the expected state and throws a timeout error.
This timeout is a regression from cortex-m-rt 0.6.15, where the issue does not happen. Using git bisect on the archived https://github.com/rust-embedded/cortex-m-rt, I discovered that the first commit with the problematic behavior is https://github.com/rust-embedded/cortex-m-rt/commit/1fd84a8fc5a02854b561b413fd5c828a2f798e03. Unfortunately the relevant issues at play here are outside my familiarity and it would be slow going for me to pursue this further.

Thanks @astraw for all of the effort so far in tracking down the culprit commit!
I've run into this issue as well.  I'm using Nucleo-H745ZI-Q boards, which are very similar to the Nucleo-H743ZI2-Q boards except that the STM32H745 has a Cortex-M4F core onboard (which, for the purposes of this issue, I'm not using).
I haven't had a chance to really dig in myself, but I just noticed that in the current version of link.x.in many of the changes that https://github.com/rust-embedded/cortex-m-rt/commit/1fd84a8fc5a02854b561b413fd5c828a2f798e03 made have been unwound.
From some quick reading around https://github.com/rust-embedded/cortex-m/commit/bf99836c09e6e5cab058fed4ffe38b9c3f8282b0 (which did a bunch of that unwinding), I found a few PRs/issues that look like they might be relevant:

https://github.com/stm32-rs/stm32h7xx-hal/issues/263
https://github.com/rust-embedded/cortex-m-rt/pull/287
https://github.com/rust-embedded/cortex-m-rt/pull/323

Is it possible that this is a similar problem?

The project where I ran into this problem was based on @antoinevg's BSP for the Nucleo boards (https://github.com/antoinevg/nucleo-h7xx and https://github.com/antoinevg/hello-nucleo-h7xx); I ran into the problem when upgrading dependencies, much like what astraw@ mentioned trying to do.
I just tried something simpler---I cloned a fresh copy of https://github.com/stm32-rs/stm32h7xx-hal (master is 884a50b) and tried to build and run one of the examples.
$ probe-run --chip STM32H745ZITx target/thumbv7em-none-eabihf/debug/examples/blinky```

... and it works!  I was using probe-run v0.2.6 (the latest that supports defmt v2) and then upgraded to probe-run v0.3.3 (the latest release), which behaves identically.  I also tried checking out `v0.11.0` of the HAL (the latest release), and it works just fine as well.

I think that there's something about these BSP crates that is causing trouble when we try to upgrade versions in existing projects.

I've just followed the instructions in https://github.com/knurling-rs/app-template and that works perfectly, too.  One of the steps there is to copy over memory.x (the memory layout) from the HAL crate, and I notice that that is different from the version in the project that was giving me trouble.  I wonder if the trouble is because I didn't re-copy that file when upgrading the version of the stm32h7xx-hal crate that I was using.

Thank you so much. This solves the local issue for my case.
Could cortex-m-rt (or some other crate) could do a check (ideally compile-time) that the memory layout is as expected and give an explicit and clear error if not?

Are you able to copy/link to the old non-working and new working memory.x? As far as I can think we haven't really changed what's required in that file between versions, so I'm surprised that's somehow breaking it unless something non-standard was there.
We do already have a bunch of checks in the linker script, so without working out what exactly was going wrong in this case it's hard to know what else to check for.

https://github.com/astraw/nucleo-h743zi/commit/161aac7541883bda6c0fab9fce638646eeedbdea is the commit which finally allowed probe-run to work without error using cortex-m-rt 0.7.1. It looks like INSERT AFTER .bss; in memory.x is the key change.
Is that the information you want? (I hope so, because these linker scripts are outside of my experience.)

Looking around the workspace that I was using to work through this issue, I see three versions of memory.x from the outside world.  I did a little bit of testing, remembering to cargo clean after modifying memory.x (per the docs).  I'm using<EMAIL_ADDRESS>The first one is from<EMAIL_ADDRESS>(same as current main).  This one exhibits the timeout error with probe-run, and also does not build unless I disable flip-link (Error: "MEMORY.RAM not found after scanning linker scripts").
The second one is from<EMAIL_ADDRESS>(same as @v0.10.0).  This one causes the timeout error with probe-run, though it builds with flip-link.
The third one is from<EMAIL_ADDRESS>(same as current master).  This one works correctly with probe-run and builds with flip-link.
I haven't tried to narrow down which of the differences is causing the problem, though I suspect it's related to the issues/PRs that I linked above (which are when those changes were made).
I agree with @astraw that it would be nice to have a way of reminding people that the memory.x that they (or someone producing a template for them) have copied from the HAL into their own project (as https://github.com/knurling-rs/app-template instructs) might need to be updated when they update dependencies.  It shouldn't need to be fancy; just a "hey, this is revision 123 of memory.x but you're using a version of the HAL that was released with revision 124!" to let people avoid this particular footgun.
Then again, there are probably more elegant ways of addressing the problem.  What do you think?

Actually looking at the diff between the versions of memory.x in stm32h7xx-hal@{v0.9.0,v0.10.0} and @v0.11.0, the removal of INSERT AFTER .bss from the SECTIONS block at the end is the only change, which lines up with what @astraw noticed above.
I suspect that there's some interaction with the changes that were made to link.x.in in the cortex-m-rt crate, though I haven't tried testing version pairs.

I'm triaging Cortex-M issues today; I wasn't able to reproduce this one with probe-rs 0.24.0 (git commit: crates.io) and a Nucleo-H743ZI2.  I'm going to close the issue, but please re-open if it is still an issue!


help: Add new "Writing messages" section.

Moves pages from "Sending messages" to a new help center section to document what you can do in a Zulip message, and make this information easy to find.
Adds include blocks for each section of "Message formatting" for reusability.
Creates a new page corresponding to each section that currently doesn't have a page. Renames sections to match new page names.

Fixes #24208.
Screenshots and screen captures:

Self-review checklist

[ ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[ ] Each commit is a coherent idea.
[ ] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

@alya I am still working on the content of each new page, but I think we can start playing around with the ordering of the pages.

Thanks! How about something like this? I tried to group them thematically.
* [Message formatting](/help/format-your-message-using-markdown)
* [Mention a user or group](/help/mention-a-user-or-group)
* [Quote and reply](/help/quote-and-reply)
* [Emoji and emoticons](/help/emoji-and-emoticons)
* [Links and images](/help/links-and-images)
* [Share and upload files](/help/share-and-upload-files)
* [Animated GIFs](/help/animated-gifs-from-giphy)
* [Text emphasis](/help/text-emphasis)
* [Paragraph and section formatting](/help/paragraph-and-section-formatting)
* [Bulleted and numbered lists](/help/bulleted-and-numbered-lists)
* [Tables](/help/tables)
* [Code blocks](/help/code-blocks)
* [LaTeX](/help/latex)
* [Spoilers](/help/spoilers)
* [/me action messages](/help/me-action-messages)
* [Polls](/help/create-a-poll)
* [Collaborative to-do lists](/help/collaborative-to-do-lists)
* [Global times](/help/global-times)
* [Video calls](/help/start-a-call)

I left comments on a few of the pages. I think you can apply them across the board, and then I can take another look at the updated version.
In terms of page structure, I think we should try the same thing I proposed for text emphasis on /help/links-and-images. I think the page should include file upload instructions (we can use and include block).

I left comments on a few of the pages. I think you can apply them across the board, and then I can take another look at the updated version.

Sound good. I left a few updated screenshots in response to your comments above; not sure if you saw them before your last comment.

@alya This PR is ready for you.

Closed in favor of #24694.


Bugfix neopython prompt return value

What current issue(s) does this address, or what feature is it adding?
This commit fixes a small issue, regading invocation errors using prompt.py (parse error on return value type), and should contribute to PR https://github.com/CityOfZion/neo-python/pull/448.
import contract test.avm "" 02 True False
Conversion error at: File "/neo-python/neo/Core/FunctionCode.py", line 19, in ReturnTypeBigInteger    return BigInteger(self.ReturnType)
How did you solve this problem?
I tested locally and realized prompt.py was failing (with conversion errors b'\xff' to BigInteger), so I converted data to string b'ff', then to int, then to BigInteger (if convert b'ff' to BigInteger it will become -1, not 255 as intended). The same applies to other types (int 0x02 was also failing with conversion error).
How did you make sure your solution works?
I tested locally and now all invocations work (for Void ff, and other types, boolean, int...). This version is running online at Eco platform neocompiler.io.
Are there any special changes in the code that we should be aware of?
It contributes to the PR https://github.com/CityOfZion/neo-python/pull/448
Please check the following, if applicable:

[ ] Did you add any tests?
[X] Did you run make lint?
[X] Did you run make test?
[X] Are you making a PR to a feature branch or development rather than master?
[ ] Did you add an entry to CHANGELOG.rst? (if not, please do)

Thanks for the attention!

@localhuman not sure about the implications of this change, please can you take a quick look?
There's some issue with the versions, why dies the version number change in this PR?  Seems there is one commit too many, can you please make sure you have the development branch merged in again @igormcoelho

In fact I just want to send commit https://github.com/CityOfZion/neo-python/pull/449/commits/432e460d54bdd4c6f4e9c200dc361615d1d22f84
Somehow, my branch is also pushing this commit https://github.com/CityOfZion/neo-python/pull/449/commits/47d23c3357462bf505b3b55f1fbdc635cf6205b3 which is not in my branch: https://github.com/igormcoelho/neo-python/tree/bugfix_neopython_prompt_return_value
Can you remove that @metachris ?

Ok, I managed to destroy that commit from branch :)

Coverage increased (+0.001%) to 79.322% when pulling 0ade299b04f997fb0e4aa0d8d8e5c7d1428a9f1d on igormcoelho:bugfix_neopython_prompt_return_value into 6813f5a629185c9bcd1f4f6e1a3ac6157635a2fe on CityOfZion:development.

Ok, I'll test.

Oh, that seems nice @localhuman , congratulations!
However.... (there's always some hidden stuff hahaha) do you know what is this Results ['2222', '3'] in python output?
My contract was just a simple return 3, but I noticed that on Csharp and Python it also returns this strange value. I'm just saying, because even when contract is void, it is doing Results ['2222'].
It came to a point that I want to understand it 100%, to avoid future problems hahah better to beat them now :)


Add documentation on how to send emails in Rahti.

This is just to add documentation on how to send emails in Rahti.
This documentation is taken from Pouta's docs. It is copied over to Rahti's to give visibility to Rahti users.

I will add an example, so the headers to use are more clear.

Ready to review

Looks good python-wise and can actually be quite useful of our users :-)


uv cannot find its own free-threaded Python when installing tools

$ uv python install 3.13t
Searching for Python versions matching: Python 3.13t
Installed Python 3.13.0 in 4.20s
 + cpython-3.13.0+freethreaded-macos-aarch64-none
$ UV_PYTHON_DOWNLOADS=manual UV_PYTHON_PREFERENCE=only-managed uv tool install nox
error: No interpreter found in managed installations
$ uv --version
uv 0.4.25 (97eb6ab4a 2024-10-21)
$ uname
Darwin

I guess it's not allowing the free-threaded build unless requested, or something like that?

Yeah we don't allow the free-threaded distribution unless you request it, even if it's the only one, due to its experimental nature.

Thanks for the explanation.


Use (true) long polling or websockets for events

Maybe for user actions too

Was implemented in https://github.com/hithroc/oak/commit/0672af1d947224106e88a08fc673a93cff809f63 and https://github.com/hithroc/oak/commit/d104aeae93b2b279ae7923c4402ae8d23176d592


Reproducer for HHH-16461 @Version + session.refresh(entity, LockMode.PESSIMISTIC_WRITE) leads to StaleObjectStateException

https://hibernate.atlassian.net/browse/HHH-16461
See #6401 for a backport of the reproducer to 5.6 (which does not fail).

Superseded by https://github.com/hibernate/hibernate-orm/pull/6406


OperationalInsights.QueryPacks API returns 201 but it's not defined in the Swagger

While creating the query pack resource, we found that the API's returning a 201 but it's not defined in the Swagger: https://github.com/Azure/azure-rest-api-specs/blob/main/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/stable/2019-09-01/QueryPacks.json#L220-L225. Seems it's a bug in the Swagger. So could you help take a look this issue? Thanks in advance.

ping @JackTn any update here?

@tombuildsstuff  I only add the label here


Update site ships outdated imglib2-cache version?

According to this https://github.com/imaris/imglib2-imaris-bridge/issues/1 sciview still ships imglib2-cache-1.0.0-beta-13 (?)
Could you remove that? (current Fiji has beta-16 already)

@ctrueden this is probably resolved now?

Yes! ☺ The sciview update site no longer shadows imglib2-cache, so the same version as core will be used (v1.0.0-beta-17 as of this writing).


[Refactor] Safe shutdown

Why
In the current implementation, we use shutdown_trigger to send signals to the background tasks. After receiving the signal, the background task will directly abort. This is an unsafe implementation, because directly abort will stop the background task at a random await point, and it will directly discard all the unfinished jobs. Therefore, we need a solution to shutdown tasks safely.
How
A feasible solution is that the stop signal is still sent to tasks as before, but after receiving the signal, task will not directly abort, it will actively handle its shutdown logic, complete the remaining work, and ensure that it stop running in a suitable position. after the background task stopped, the shutdown signal listener will be dropped, and the trigger of shutdown will wait until all listeners dropped.
#[derive(Debug)]
struct Inner {
    notify: Notify,
    is_cancelled: AtomicBool,
}

#[derive(Debug)]
pub struct Trigger {
    inner: Arc<Inner>,
    rx: mpsc::Receiver<()>,
}

impl Trigger {
    pub async fn shutdown(&mut self) {
        self.inner.is_cancelled.store(true, Ordering::Relaxed);
        self.inner.notify.notify_waiters();
        _ = self.rx.recv().await;
    }
}

#[derive(Debug)]
pub struct Listener {
    inner: Arc<Inner>,
    tx: mpsc::Sender<()>,
}

impl Listener {
    pub async fn listen(&self) {
        if self.is_cancelled() {
            return;
        }
        self.inner.notify.notified().await;
    }

    pub fn is_cancelled(&self) -> bool {
        self.inner.is_cancelled.load(Ordering::Relaxed)
    }
}

Note: tokio‘s select! macro may have similar problems as abort. If a branch of select! is a complex Future with multiple await points, then if the current select! block is over caused by other branches of this select! block, then this complex Future may also stop at a random await point. Therefore, try not to execute complex Future in the select!, unless this Future allows it to stop at any await point.

task dependencies in Curp
Curp now has the following tasks:

gc_spec_pool and gc_cmd_board: two gc tasks, we can shutdown them by abort safely.
log_persistent_task: receive log from log_rx and write them to disk. it will shutdown itself when log_tx is dropped.
election_task and sync_follower_task: check and send rpc requests to other nodes regularly. didn't depend on other tasks.
mpmc channel task and cmd_worker: depend on each other by channel. as shown in the following figure.

These two parts together constitute a state machine, driven by the external CEEvent<C>, after receiving the shutdown signal, there will be no more CEEvents<C>, the state machine will continue to complete all the current job until it cannot continue, there is only one case that the state machine cannot continue to move forward, that is when the command state is (Executed, NotSynced)(FYI: https://github.com/xline-kv/Xline/issues/254#issuecomment-1569434108), so the mpmc channel task will continue run and check the current state of all commands, if the state of all remaining commands is (Executed, NotSynced), then the mpmc channel task will shutdown itself, cmd_worker will also shutdown because of the channel closed.

Under the premise of ensuring the normal operation of the cluster, we will only shutdown at most f nodes that the cluster can tolerate. Therefore, the closed nodes  do not need to ensure that the commands they received must be executed or after synced, and we can directly drop them without destroying the overall external guarantee of the cluster. Does this create other problems?
@rogercloud @Phoenix500526 @bsbds @iGxnon

I haven’t identified any potential risks of doing so. But we still need to deal with the panic generated during a node crash, as mentioned in issue 370. Can you make anything of this issue? @bsbds @rogercloud @iGxnon

This issue describes the root cause of #376, #370, and #364. And what's your concrete design?

Under the premise of ensuring the normal operation of the cluster, we will only shut down at most f nodes that the cluster can tolerate. Therefore, the closed nodes do not need to ensure that the commands they received must be executed or after synced, and we can directly drop them without destroying the overall external guarantee of the cluster. Does this create other problems? @rogercloud @Phoenix500526 @bsbds @iGxnon

This issue describes the root cause of #376, #370, and #364. And what's your concrete design of the comment you mentioned above?

I plan to only ensure that the logs are successfully persisted in shutdown, And directly drop other content without panic

New design of shutdown
Shutdown process

Client sends a shutdown request to leader.
The leader synchronizes shutdown logs to the cluster through the backend protocol.
After the shutdown log is committed, the cluster enters the shutdown state, no longer accepts external requests, Internal requests are processed normally.
After the cluster has finished processing the remaining requests, all nodes shutdown themselves.

How to deal with the election during shutdown
If the cluster enters the shutdown state, all internal behavior still works correctly, include election. So we just need to wait for the election to finish before continuing with shutdown.
Different shutdown signal
We need two different shutdown signals. one is cluster shutdown, and the other is self shutdown, cluster shutdown will wait until all commands is complete. self shutdown only needs to ensure that the log is persisted, and the other content can be discarded directly.

How do you plan to freeze the cluster's state after the shutdown log has been committed? How should we test this functionality?

If a node receives a shutdown log, should it stop receiving user requests immediately or wait for the log accepted by the cluster? And please describe the recovery procedure if a shutdown log is rejected by the cluster.

How do you plan to freeze the cluster's state after the shutdown log has been committed? How should we test this functionality?

Add a check at the beginning of propose interface, if current state is shutdown, return an error directly.
Send a lot of proposals to the cluster, than shutdown and restart the cluster, test whether the previous propose is successful

If a node receives a shutdown log, should it stop receiving user requests immediately or wait for the log to be accepted by the cluster? And please describe the recovery procedure if a shutdown log is rejected by the cluster.

It should wait for the log to be accepted by the cluster. if a shutdown log is rejected by the cluster, this log has no effect on the cluster., what needs to be restored?

That makes sense

LGTM

LGTM


Fix for issue #672

This is a fix for #672
Creates a local part_header dictionary, then checks if the ChecksumSHA256 should be added.
While this fixes my specific issue, there are probably other headers that should be checked for and added if they exist.

Yes, I think this is right.
I don't know if moto supports this flow, but it would be worthwhile trying to write a test something like
def test_multi_checksum(s3_base):
    s3 = S3FileSystem(anon=False, client_kwargs={"endpoint_url": endpoint_uri},
        s3_additional_kwargs={"ChecksumAlgorithm": "SHA256"})
    with s3.open(path, "wb", blocksize=5 * 2**20, ) as f:
        f.write(b"0" * (5 * 2**20 + 1)) # starts multipart and puts first part
        f.write(b"data") # any extra data
    assert s3.cat(path) == b"0" * (5 * 2**20 + 1) + b"data"

You see there are couple of failing tests (as well as linting) due to the append codepath. In that case, I don't suppose you can know the checksum of the original data (if it has one), but you still need the upload parts.

It would have helped if I got the change in the correct spot.

moto apparently does support SHA256 Checksum (it's the only one it supports) however, test is getting a 404 back. Still trying to nail that down.

Seems MOTO doesn't actually support the Checksum:
We're sending the request to calculate the checksum:
DEBUG    botocore.endpoint:endpoint.py:114 Making request for OperationModel(name=UploadPart) with params: {'url_path': '/checksum', 'query_string': {'partNumber': 2, 'uploadId': '32EO9StqFRZpx46Ajt10auCSBhEevWTkQYW0mn5m6vFfsqG9rw0mNnhcfQ'}, 'method': 'PUT', 'headers': {'x-amz-sdk-checksum-algorithm': 'SHA256', 'User-Agent': 'Botocore/1.31.17 ua/2.0 os/linux#6.2.0-27-generic md/arch#x86_64 lang/python#3.11.4 md/pyimpl#CPython cfg/retry-mode#legacy', 'Expect': '100-continue', 'x-amz-checksum-sha256': 'Om6weQ85rIfJTzhWst0sXREOaBFgImGpqSPTuyOtyLc='}, 'body': <_io.BytesIO object at 0x7f75febd3600>, 'auth_path': '/test/checksum', 'url': 'http://<IP_ADDRESS>:5555/test/checksum?partNumber=2&uploadId=32EO9StqFRZpx46Ajt10auCSBhEevWTkQYW0mn5m6vFfsqG9rw0mNnhcfQ', 'context': {'client_region': 'us-east-1', 'client_config': <aiobotocore.config.AioConfig object at 0x7f75fedb4610>, 'has_streaming_input': True, 'auth_type': 'v4', 's3_redirect': {'redirected': False, 'bucket': 'test', 'params': {'ChecksumAlgorithm': 'SHA256', 'Bucket': 'test', 'PartNumber': 2, 'UploadId': '32EO9StqFRZpx46Ajt10auCSBhEevWTkQYW0mn5m6vFfsqG9rw0mNnhcfQ', 'Body': <_io.BytesIO object at 0x7f75febd3600>, 'Key': 'checksum'}}, 'signing': {'region': 'us-east-1', 'signing_name': 's3', 'disableDoubleEncoding': True}, 'checksum': {'request_algorithm': {'algorithm': 'sha256', 'in': 'header', 'name': 'x-amz-checksum-sha256'}}}}

We're also requesting the checksum mode:
DEBUG    botocore.auth:auth.py:426 CanonicalRequest:
HEAD
/test/checksum

host:<IP_ADDRESS>:5555
x-amz-checksum-mode:ENABLED
x-amz-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date:20230911T135549Z

host;x-amz-checksum-mode;x-amz-content-sha256;x-amz-date
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

But not returned in headers:
DEBUG    botocore.parsers:parsers.py:240 Response headers: HTTPHeaderDict({'server': 'Werkzeug/2.3.7 Python/3.11.4', 'date': 'Mon, 11 Sep 2023 13:55:49 GMT', 'content-type': 'binary/octet-stream', 'etag': '"8319f9b72555b648c82a2f362b94ffbb-2"', 'last-modified': 'Mon, 11 Sep 2023 13:55:49 GMT', 'content-length': '5242885', 'accept-ranges': 'bytes', 'x-amzn-requestid': '8XlBOBgI1ECyJd63dR9IcwLGqln1FyBsBA0RmgyiFbPoA1Tp9Bfw', 'access-control-allow-origin': '*', 'connection': 'close'})