Separate ReadyToRun targeting compiler

Creates crossgen2 that has the ready to run specific bits.
Sending it out to get some eyes on this.
CI will not work because we need to redirect the ready to run legs to crossgen2. Hence the WIP tag.

From what I see, it looks like the only major thing left is to actually hook up the CPAOT command-line parsing and cherry-pick the relevant bits from the ILCompiler\src\Program.cs

New Program.cs is already in this. I need to update the .targets files to invoke crossgen2 instead of ilc, but that's should be all for this pull request.
Then I'll need to take a look at things in ILCompiler.TypeSystem - there's a bunch that is AOT specific.

Then I'll need to take a look at things in ILCompiler.TypeSystem - there's a bunch that is AOT specific.

But that will be a separate pull request. This pull request is already too big to my taste, but unfortunately there's no way around it. Once you start pulling on this particular thread, you have to keep pulling or things don't build...

Cool, seems like the CI is green. @trylek @nattress please have a look!
Is there any additional validation I can run to ensure I didn't break something?


Manage Log Path of a IIS website - new param logfile

Adressing the enhancement #187

Hi. I'm going to close this PR. We deprecated the module and the new version is available here: https://forge.puppet.com/puppetlabs/iis


fix: use div_ceil and assert max fee geq actual fee (#1764)

fix: use div_ceil and assert max fee geq actual fee (#1764)
chore: bump RC version (#1777)
Signed-off-by: Dori Medini<EMAIL_ADDRESS>fix: add strict_subtract_mappings (#1632)
chore: merge branch main-v0.13.1 into main (with conflicts)
chore: fix conflicts
Signed-off-by: Dori Medini<EMAIL_ADDRESS>refactor(state): move global cache to papyrus reader (#1774)
refactor: pass bouncer_config from python to TransactionExecutor (#1783)
refactor: move bouncer creation to block executor
Co-authored-by: Yael Doweck<EMAIL_ADDRESS>Merge pull request #1780 from starkware-libs/dori/merge-main-v0.13.1-into-main
Merge main-v0.13.1 into main
refactor: move imports to macros (#1778)
refactor: move BlockFull error (#1785)
test(concurrency): test decrease_validation_index (#1776)
chore: use valuse in transactions_test for parametrization

This change is

#1789  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @ArniStarkware and the rest of your teammates on  Graphite

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 75.71%. Comparing base (9b27b71) to head (b8f70b3).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1789   +/-   ##
=======================================
  Coverage   75.71%   75.71%
=======================================
  Files          61       61
  Lines        8675     8675
  Branches     8675     8675
=======================================
  Hits         6568     6568
  Misses       1675     1675
  Partials      432      432

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

Merge activity

Apr 14, 11:23 AM EDT: @ArniStarkware started a stack merge that includes this pull request via Graphite.


[Feature request] follow xdg variables.

Hi @mgord9518 thank you for all the recent work and fixes done to aisap. I really like how this is turning out.
Suggestion
Make aisap follow xdg user dirs variables instead of using hardcoded values.
For example instead of XDG_DOCUMENTS_DIR being hardcoded as ~/Documents aisap should check if it defined in user-dirs.dirs else it defaults to using ~/Documents.
This also applies to the xdg base dir variables, that is for example check if the $XDG_CONFIG_HOME variable is defined, else default to using ~/.config
Use case
This allows using aisap easily on non English systems. As the default permissions assume that you have a ~/Documents, ~/Videos, directory instead of using their name in other languages in user-dirs.dirs.
And following the xdg base dir variables is for me xd, as I have all of those defined inside ~/.local.

This can also be extended beyond what the xdg spec calls, for example instead of having ~/Games and ~/ROMs rules like it happens with the emulators, aisap can instead allow and look for XDG_GAMES_DIR which if not set defaults to ~/Games.
That way the user can define their XDG_GAMES_DIR to whatever name they want and aisap automatically uses that location instead.
XDG_GAMES_DIR is not something I invented, if you google it you will see that several people already use it and want it in the spec as well.
iirc NixOS did something similar with XDG_BIN_HOME, it isn't part of the spec but it is very useful to have it as that allows moving and renaming that location.
Possible issue
aisap has to check that none of these variables get defined as $HOME or $HOME/ as we discovered that can happen when testing in am, hopefully it is not too big of a deal to add such check.

I 100% agree on moving away from the hard coding, my original reasoning in doing this was so Applications only saw the "default" versions of those directories to hopefully make the user harder to track but I'm not sure I want to keep it like that. In such cases like you're talking about where the user is accustomed to XDG directories in a different language, it may be annoying and confusing. I've been doing research on XDG-portals, and I believe they shouldn't be crazy hard to implement in aisap, so that might resolve this issue on its own
As for the checking, I don't think it should be a huge security risk since the user themselves would have to set it, but some extra forethought never hurts. Can you link to the issue with setting these variables in AM?

This is something I'll try to implement in the new aisap-zig version I've been working on, but yeah it's a bit difficult to balance features and too much complexity. I think I'll end up making a GUI configuration tool, which should make messing with these options a lot easier


Provide classloader incase of FST so that it doesnt get the class loader from current thread

Do we have a way to provide class loader when using FST codec. we are facing classNotfound exceptions as the FSTConfiguration is picking up the current thread class loader which is used by RedisExecutor as shown in the below stack trace.

195, FstCodec (org.redisson.codec)
:190, FstCodec (org.redisson.codec)
newInstance0:-1, NativeConstructorAccessorImpl (sun.reflect)
newInstance:62, NativeConstructorAccessorImpl (sun.reflect)
newInstance:45, DelegatingConstructorAccessorImpl (sun.reflect)
newInstance:423, Constructor (java.lang.reflect)
getCodec:705, RedisExecutor (org.redisson.command)
execute:132, RedisExecutor (org.redisson.command)
run:357, RedisExecutor$3 (org.redisson.command)
expire:663, HashedWheelTimer$HashedWheelTimeout (io.netty.util)
expireTimeouts:738, HashedWheelTimer$HashedWheelBucket (io.netty.util)
run:466, HashedWheelTimer$Worker (io.netty.util)
run:748, Thread (java.lang)__

Our proprietary classes are loaded from our class loader. So wanted to understand if we can set the classloader which is used by FSTCodec.

By debugging further I see that thread name is "pool-19-thread-1". I could not understand from where these items are queued and who is managing the thread pool. Can you please help in understanding the issue here

不要重复new FstCodec ，会内存溢出的。client 和 codec 都只初始化一次就没事

不要重复new FstCodec ，会内存溢出的。client 和 codec 都只初始化一次就没事

We are not doing new FstCodec, it is all handled by Redisson itself. Looks like redisson is using a thread pool, where we can see this is causing.

Issue reported has not been fixed, I have tested it with 3.12.1 redisson. I couldnt see a way to reopen this Issue.
What is the significance of the below code, this was added as a fix to this issue.

if (codec.getClassLoader() != codec.getClass().getClassLoader()) {
return codec;
}

What is the issue ?
We are observing classNotfound exception due to wrong classloader being considered by the codec.
What are different classloader coming into picture ?
PRAppClassLoader(custom classloader) and ParallelWebAppClassLoader(tomcat loader). Classes should always be loaded with PRAppClassLoader.
What are the sequence of event causing this issue ?

Start the server using tomcat.
In the initialization state, we connect to redis. Codec is created and PRAppClassLoader is specified as the classLoader.
Some operation is performed on RMap, like get.
Now, RedisExecutor is coming into the picture.
- It goes to RedisExecutor, check the codec.getclassLoader - PRAppclassLoader is returned
- It checks for codec.getClass().getClassLoader() - PRAppClassLoader is returned
- It gets the thread class loader - ParallelWebAppClassLoader( since the thread is created by tomcat for intializing server)
- It checks for cached codecs, it returns null
- Now creates the codec with ParallelWebAppClassLoader. Because of which when class.forName() is performed, ClassNotfoundExeception is thrown.

@mrniko , I wanted to understand why the thread class loader is consider when classloader is specified in the codec explicitly. I assume classloader when specified in the codec, should be used irrespective of the thread class loader.

@ALSowjanya The thread class loader is considered because of the case where the RedisClient is been bound into Tomcat JNDI tree to be used by multiple web applications. In this case the provided class loader during the creation of the RedisClient is the tomcat system classloader which do not have the web app classes used during serialization. That's why the thread class loader has been considered here.
@mrniko probably it should detect if the RedisClient comes from JNDI only then to apply the thread class loader, or to add some property that says that the provided classloader should be the one to be uses instead of the thread class loader in this case

@jchobantonov
Thanks for response! I think a new setting like useThreadClassLoader should be added.

@ALSowjanya The thread class loader is considered because of the case where the RedisClient is been bound into Tomcat JNDI tree to be used by multiple web applications. In this case the provided class loader during the creation of the RedisClient is the tomcat system classloader which do not have the web app classes used during serialization. That's why the thread class loader has been considered here.

Thanks for the response @jchobantonov
Will the code.getClass().getClassLoader() also not have the tomcat system classloader ?

@ALSowjanya

Will the code.getClass().getClassLoader() also not have the tomcat system classloader ?

It depends which classloader was used during codec class loading.

Config.useThreadClassLoader setting added

@mrniko do we have a tentative date for 3.12.4 milestone.

Config.useThreadClassLoader setting added

Can we set this config via yaml file ?

Yes

Yes

Do we have a tentative dare for 3.12.4 milestone

It's already has been released


Do not redirect to the root when a depositor views a collection

Why was this change made? 🤔
Fixes #2825 by not enforcing authorization before rendering the admin component which causes a redirect to root.
How was this change tested? 🤨
⚡ ⚠ If this change involves consuming from or writing to another service (or shared file system), run integration test create_object_h2_spec.rb and/or test manually in [stage|qa] environment, in addition to specs. ⚡

And it's OK not to authorize in the controller because this controller action renders a template that renders a component within a turbo-frame, and that component only renders for administrators: https://github.com/sul-dlss/happy-heron/blob/main/app/components/collections/admin_component.rb#L13
So the authorization is being done in a different way.


ChatCommands: Add Clipboard Support

Adds CTRL+V and CTRL+C support to the in-game chatbox.
Fixes an issue with errors being thrown when shortcuts were used when not currently logged in.
Extracts clipboard logic (a couple places already had a sort of "copy" functionality) to a simple clipboard util.

This is autotyping and should probably not be in the game

@MagicfTail yeah... I was wondering if that would be the case, honestly.


Implemented a new function in index.ts to dynamically update the values of variables inside specmatic.json

What:
A new function has been added to index.ts to set the values of the variables dynamically inside specmatic.json

Why:
To dynamically set the desired values of variables inside specmatic.json , so that custom data to the request-body can be passed in the contract test.

How:
The function setEnvVariable, takes 3 parameters as input:

name - The name of the variable that needs custom data from userEnd
value - The value to define the variable with
fileName - The Path to the specmatic.json file in your project

It uses 'fs' module to synchronously write the data to the specmatic.json file.

Checklist:

[ ] Documentation added to the README.md
[x] Tests
[x] Typescript definitions updated
[ ] Ready to be merged

Also can we add this to REAMDE, in the JS helper section, as an Experimental Section


Only Exception Error in my debug.log

Exception: Error short batch syncing, could not fetch block at height 72590 <class 'ValueError'>, closing connection {'host': '<IP_ADDRESS>', 'port': 7444}. Traceback (most recent call last
How can i fix it ?
debug.log

Problem solved


Publish owners of the API schemas.

It is helpful to know who the owners of the Schema are, so that we can ask the right people when the consumers have questions.
Perhaps, we could add an owners field in the swagger JSONs.

A response would be greatly appreciated.

Hi @tariq1890  we have codeowner file in repo to know who is the owner for the RP. it is useful for your question?

@akning-ms I don't work for Microsoft anymore

codeowner file can support this requirement, so close the issue


Using reference to PubSubClient inside a class

Hi,
I am passing the reference of a WiFiClient and a PubSubClient to a class definition because I want to be able to send an MQTT publish message from within the class. I don't need callbacks. This statement is used to initialize the object:
MLTCsignal1.init(hostName, name, signalNr, signalPin1, signalPin2, espClient, MQTT);
the method inside the class has this format:
void init(char* hostName, char* name, int signalNr, byte redpin, byte greenpin, WiFiClient& espclient, PubSubClient& MQTT);
As I use a reference, both espClient and MQTT point to the objects in the mail program.
_MQTT is the local PubSubClient definition in the class. MQTT is moved to _MQTT.
Technically, this works. Problem is that I can use MQTT.publish in my class, but only for a few seconds. This is the code for publishing a message inside my class:
_MQTT.loop();
if (!_MQTT.connected())
{
_MQTT.setServer(MQTT_SERVER, MQTT_SERVERPORT);
_MQTT.connect(_name, MQTT_USERNAME, MQTT_PASSWORD, "mltc/emergency", 0, false, "1");
}
_MQTT.publish(Topic, Payload);
_MQTT.disconnect();
I need to disconnect because more objects of the same type use MQTT. If I don't connect, only the first created object is able to publish. Once the connection is created it works for about 10 seconds, then the connection fails (-4) and the publish stops. After the main program has re-established the connection it again works for a few seconds. But it is not stable at all. Any ideas on this?
Adrian Hondema,
The Netherlands.

I created a simplified version of my sketch, hoping it will help you understand better what I am trying to do. I am using a NodeMCU minicomputer which has to LED signals connected to each. Each signal has a red and a green LED. The signal object handles all the logic: switching LED on and of. When the state of a LED changes, a MQTT message is published from within the class. This works well for about 10 to 15 seconds, then the MQTT connection fails, leading to a new initialization of MQTT after which it words again for the same amount of time. It is obvious that I would prefer a more stable solution....
#include <ESP8266WiFi.h>
#include <PubSubClient.h>

/*
   Signal Class definition
*/
#include "Signal.h"

#define wifiStatusLEDPin D0
#define signal1Pin1 D1
#define signal1Pin2 D2
#define signal2Pin1 D5
#define signal2Pin2 D6

#define WIFI_SSID       "SSID"
#define WIFI_PASSWORD   "PASSWORD"

#define SKETCH_ID       "MLTC"
#define MQTT_SERVER     "<IP_ADDRESS>"
#define MQTT_SERVERPORT 1883
#define MQTT_USERNAME   ""
#define MQTT_PASSWORD   ""
#define MQTT_CLIENTID   "MLTC_signal1"

/*
   Create the MLTC objects
*/
Signal MLTCsignal1;
Signal MLTCsignal2;

/*
   Create an ESP8266 WiFiClient class to connect to the MQTT server.
*/
WiFiEventHandler wifiConnectHandler;
WiFiEventHandler wifiDisconnectHandler;
WiFiClient espClient;

/*
   PubSubClient
*/
PubSubClient MQTT(espClient);

void setup() {
  Serial.begin(9600);
  while (!Serial && millis() < 10000)
    ;

  /*
     Init WiFi
     Register event handlers
  */
  wifiConnectHandler = WiFi.onStationModeGotIP(onWifiConnect);
  wifiDisconnectHandler = WiFi.onStationModeDisconnected(onWifiDisconnect);
  InitWiFi();

  /*
     Init MQTT
  */
  MQTT.setServer(MQTT_SERVER, MQTT_SERVERPORT);
  MQTT.setCallback(callback);

  /*
    Init objects
  */
  initSignal1(MQTT_CLIENTID, "signalA1", 1, signal1Pin1, signal1Pin2);
  initSignal2(MQTT_CLIENTID, "signalA2", 2, signal2Pin1, signal2Pin2);
}

void loop() {
  if (!MQTT.connected()) {
    reconnect();
  }
  MQTT.loop();

  MLTCsignal1.mqttLoop();
  MLTCsignal1.red();
  delay(2000);
  MLTCsignal1.mqttLoop();
  MLTCsignal1.green();
  delay(2000);
  MLTCsignal2.mqttLoop();
  MLTCsignal2.red();
  delay(2000);
  MLTCsignal2.mqttLoop();
  MLTCsignal2.green();
  delay(2000);
}

void initSignal1(char* hostName, char* name, int signalNr, byte signalPin1, byte signalPin2) {
  MLTCsignal1.init(hostName, name, signalNr, signalPin1, signalPin2, espClient, MQTT);
}

void initSignal2(char* hostName, char* name, int signalNr, byte signalPin1, byte signalPin2) {
  MLTCsignal2.init(hostName, name, signalNr, signalPin1, signalPin2, espClient, MQTT);
}

void InitWiFi()
{
  digitalWrite(wifiStatusLEDPin, HIGH);
  Serial.println("WiFi initialization...");

  WiFi.hostname(MQTT_CLIENTID);

  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }
}

void onWifiConnect(const WiFiEventStationModeGotIP& event) {
  Serial.println("Connected to WiFi successfully.");

  digitalWrite(wifiStatusLEDPin, LOW);

  Serial.println("WiFi initialization completed");
}

void onWifiDisconnect(const WiFiEventStationModeDisconnected& event) {
  Serial.println("Disconnected from WiFi, trying to connect...");

  digitalWrite(wifiStatusLEDPin, HIGH);

  WiFi.disconnect();
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
}

void callback(char* topic, byte* payload, unsigned int length)
{
  /*
      Select only the characters according to the length of the payload
  */
  payload[length] = '\0';

  Serial.print("MQTT [");
  Serial.print(topic);
  Serial.print("]: ");
  Serial.println((char *)payload);

  /*
    Signal 1
  */
  if (String(topic) == String(MLTCsignal1.getMQTTSetStateTopic()))
  {
    switch (atoi((char *)payload))
    {
      case 1:
        {
          MLTCsignal1.green();
          break;
        }
      case 0:
        {
          MLTCsignal1.red();
          break;
        }
    }
    MQTT.publish(MLTCsignal1.getMQTTStateTopic(), MLTCsignal1.getState() ? "1" : "0");
  }

  /*
    Signal 2
  */
  if (String(topic) == String(MLTCsignal2.getMQTTSetStateTopic()))
  {
    switch (atoi((char *)payload))
    {
      case 1:
        {
          MLTCsignal2.green();
          break;
        }
      case 0:
        {
          MLTCsignal2.red();
          break;
        }
    }
    MQTT.publish(MLTCsignal2.getMQTTStateTopic(), MLTCsignal2.getState() ? "1" : "0");
  }
}

void reconnect()
{
  if (WiFi.status() != WL_CONNECTED)
  {
    InitWiFi();
  }

  while (!MQTT.connected())
  {
    Serial.println("MQTT initialization...");

    if (MQTT.connect(MQTT_CLIENTID, MQTT_USERNAME, MQTT_PASSWORD, "mltc/emergency", 0, false, "1"))
    {
      Serial.println("MQTT initialization completed!");
      Serial.print("MQTT ClientID: ");
      Serial.println(MQTT_CLIENTID);

      MQTT.subscribe("mltc/emergency");
      MQTT.subscribe("mltc/signalA1/setstate");
      MQTT.subscribe("mltc/signalA2/setstate");
    }
    else
    {
      Serial.print("failed, rc=");
      Serial.print(String(MQTT.state()));
      Serial.println(" try again in 5 seconds");
      delay(5000);
    }
  }
}

My class (.h) definition is as follows:
#ifndef MLTC_SIGNAL_h
#define MLTC_SIGNAL_h

#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <PubSubClient.h>

class Signal {

  private:

    char* _hostName;
    char* _name;
    int _number = -1;
    byte _redpin;
    byte _greenpin;
    int _state;
    int _previousState = -1;

    WiFiClient _espClient;
    PubSubClient _MQTT;

    /*
      MQTT Topics
    */
    char _pub_State[100] = "";
    char _sub_SetState[100] = "";

  public:
    Signal();

    void init(char* hostName, char* name, int signalNr, byte redpin, byte greenpin, WiFiClient& espclient, PubSubClient& MQTT);
    void red();
    void green();
    void mqttLoop();
    void mqttPublish(char* Topic, char* payload);

    void setState(int state);

    char* getName();
    int getNumber();
    int getState();
    char* getMQTTStateTopic();
    char* getMQTTSetStateTopic();
};
#endif

The .cpp file is as follows:
#include "Signal.h"
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <PubSubClient.h>

#define SKETCH_ID       "MLTC"
#define MQTT_SERVER     "<IP_ADDRESS>"
#define MQTT_SERVERPORT 1883
#define MQTT_USERNAME   ""
#define MQTT_PASSWORD   ""
#define MQTT_CLIENTID   "MLTC_signal1"

Signal::Signal() {}

void Signal::init(char* hostName, char* name, int number, byte redpin, byte greenpin, WiFiClient& espClient, PubSubClient& MQTT)
{
  _hostName = hostName;
  _name = name;
  _number = number;
  _redpin = redpin;
  _greenpin = greenpin;

  pinMode(_redpin, OUTPUT);
  pinMode(_greenpin, OUTPUT);

  _espClient = espClient;
  _MQTT = MQTT;

  /*
     MQTT Topics
  */
  sprintf(_pub_State, "mltc/%s/state", _name);
  sprintf(_sub_SetState, "mltc/%s/setstate", _name);

  /*
     Set signal to default position
  */
  red();
}

void Signal::red() {
  setState(0);
}

void Signal::green() {
  setState(1);
}

/*
   Setters
*/
void Signal::setState(int state) {
  _state = state;
  if (state != _previousState)
  {
    _previousState = state;

    switch (_state) {
      case 0:
        digitalWrite(_redpin, HIGH);
        digitalWrite(_greenpin, LOW);
        mqttPublish(_pub_State, "0");
        break;
      case 1:
        digitalWrite(_redpin, LOW);
        digitalWrite(_greenpin, HIGH);
        mqttPublish(_pub_State, "1");
        break;
    }

    Serial.print(_name);
    Serial.print(" set to ");
    Serial.println(_state ? "1 (Green)" : "0 (Red)");
  }
}

void Signal::mqttLoop()
{
  if (!_MQTT.connected())
  {
    _MQTT.setServer(MQTT_SERVER, MQTT_SERVERPORT);
    _MQTT.connect(_name, MQTT_USERNAME, MQTT_PASSWORD, "mltc/emergency", 0, false, "1");
  }
  _MQTT.loop();
}

void Signal::mqttPublish(char* Topic, char* Payload)
{
  _MQTT.publish(Topic, Payload);
  // _MQTT.disconnect();

  Serial.print("_MQTT.publish: ");
  Serial.print(Topic);
  Serial.print(", ");
  Serial.println(Payload);
  Serial.print("MQTT state: ");
  Serial.println(_MQTT.state());
}

char* Signal::getName() {
  return _name;
}

int Signal::getNumber() {
  return _number;
}

int Signal::getState() {
  return _state;
}

char* Signal::getMQTTStateTopic() {
  return _pub_State;
}

char* Signal::getMQTTSetStateTopic() {
  return _sub_SetState;
}

Serial Monitor output:
  09:25:56.451 -> _MQTT.publish: mltc/signalA1/state, 0
  09:25:56.499 -> MQTT state: 0
  09:25:56.499 -> signalA1 set to 0 (Red)
  09:25:58.453 -> _MQTT.publish: mltc/signalA1/state, 1
  09:25:58.499 -> MQTT state: 0
  09:25:58.499 -> signalA1 set to 1 (Green)
  09:26:00.459 -> _MQTT.publish: mltc/signalA2/state, 0
  09:26:00.506 -> MQTT state: 0
  09:26:00.506 -> signalA2 set to 0 (Red)
  09:26:02.450 -> _MQTT.publish: mltc/signalA2/state, 1
  09:26:02.498 -> MQTT state: 0
  09:26:02.498 -> signalA2 set to 1 (Green)
  09:26:04.500 -> _MQTT.publish: mltc/signalA1/state, 0
  09:26:04.547 -> MQTT state: 0
  09:26:04.547 -> signalA1 set to 0 (Red)
  09:26:06.511 -> _MQTT.publish: mltc/signalA1/state, 1
  09:26:06.559 -> MQTT state: 0
  09:26:06.559 -> signalA1 set to 1 (Green)
  09:26:08.492 -> _MQTT.publish: mltc/signalA2/state, 0
  09:26:08.534 -> MQTT state: 0
  09:26:08.534 -> signalA2 set to 0 (Red)
  09:26:10.481 -> _MQTT.publish: mltc/signalA2/state, 1
  09:26:10.532 -> MQTT state: 0
  09:26:10.532 -> signalA2 set to 1 (Green)
  09:26:12.485 -> MQTT initialization...                    <- FAILURE AND RECONNECT
  09:26:27.500 -> failed, rc=-4 try again in 5 seconds
  09:26:32.488 -> MQTT initialization...
  09:26:32.535 -> MQTT initialization completed!
  09:26:32.571 -> MQTT ClientID: MLTC_signal1
  09:26:32.618 -> _MQTT.publish: mltc/signalA1/state, 0
  09:26:32.656 -> MQTT state: 0                             <- AND THEN IT WORKS FOR ANOTHER +/- 10 SECONDS
  09:26:32.656 -> signalA1 set to 0 (Red)
  09:26:34.556 -> _MQTT.publish: mltc/signalA1/state, 1
  09:26:34.602 -> MQTT state: 0
  09:26:34.602 -> signalA1 set to 1 (Green)
  09:26:36.557 -> _MQTT.publish: mltc/signalA2/state, 0
  09:26:36.610 -> MQTT state: 0


May I ask a question about function loadAllMethodIDs?

The agent will invoke loadAllMethodIDs when it is started or attached, but the function seems to do nothing. It loads all the classes' method but frees them all as well.
Can I know why it should be like this?
``
  if (jvmti->GetClassMethods(klass, &method_count, &methods) == 0) {     jvmti->Deallocate((unsigned char *) methods);   }

The purpose is to allocate jmethodIDs for all methods.
HotSpot creates jmethodID lazily, on the first call to JNI/JVMTI function dealing with the method (in this case). However, we cannot call JNI/JVMTI functions from the signal handler, so we need to preallocate jmethodIDs by calling GetClassMethods.

Thank you very much!

@MattAlp This is a workaround for the JVM bug JDK-8062116. You may find some discussion in this topic. Async-profiler here constructs JVM structures for holding jmethodID list.


Button Refactoring

What does the pull request do?
Minor refactoring (looks worse than it is) to Button noticed when working on SplitButton

Comments fixed/added
Some code modernization
Extra method with the same signature removed (possible with Interfaces)
Use of OnPropertyChanged override instead of property changed observables

What is the current behavior?

What is the updated/expected behavior with this PR?

How was the solution implemented (if it's not obvious)?

Checklist

[ ] Added unit tests (if possible)?
[ ] Added XML documentation to any related classes?
[ ] Consider submitting a PR to https://github.com/AvaloniaUI/Documentation with user documentation

Breaking changes

Obsoletions / Deprecations

Fixed issues

You can test this PR using the following package version. 0.10.999-cibuild0018251-beta. (feed url: https://nuget.avaloniaui.net/repository/avalonia-all/index.json) [PRBUILDID]

You can test this PR using the following package version. 0.10.999-cibuild0018258-beta. (feed url: https://nuget.avaloniaui.net/repository/avalonia-all/index.json) [PRBUILDID]


ESP32C3 SPI configuration

Well, this story is still not finished yet :(
As of ESP32-C3 datasheet v1.1 (page 20):
ESP32-C3 features three SPI interfaces (SPI0, SPI1, and SPI2).
SPI0 and SPI1 can only be configured to operate in SPI memory mode,
while SPI2 can be configured to operate in both SPI memory and general-purpose SPI modes.

As of online documentation on ESP32-C3:
ESP32-C3 integrates 3 SPI peripherals.
SPI0 and SPI1 are used internally to access the ESP32-C3’s attached flash memory.
Both controllers share the same SPI bus signals, and there is an arbiter to determine
which can access the bus. Currently, SPI Master driver does not support SPI1 bus.

So at least there is no such thing as SPI3 and SPI3_HOST for ESP32-C3, though online docs have this somehow:
enum spi_host_device_t
Enum with the three SPI peripherals that are software-accessible in it.
Values:
SPI1_HOST = 0
SPI1.
SPI2_HOST = 1
SPI2.
SPI3_HOST = 2
SPI3.

As of spi_types.h from esp-idf there is no such thing as SPI0 or SPI0_HOST.
And definitely SPI1 can't work as a general purpose SPI controller now.
Sorry for not testing all the cases, but please don't revert this PR.
Originally posted by @arktrin in https://github.com/lvgl/lvgl_esp32_drivers/issues/145#issuecomment-1001219264

The invalid host message when calling spi_bus_initialize comes from is_valid_host, for C3 SOC_SPI_PERIPH_NUM value is 2, so I would say using SPI2_HOST would be safe, isn't @arktrin
static inline bool is_valid_host(spi_host_device_t host)
{
#if (SOC_SPI_PERIPH_NUM == 2)
    return host >= SPI1_HOST && host <= SPI2_HOST;
#elif (SOC_SPI_PERIPH_NUM == 3)
    return host >= SPI1_HOST && host <= SPI3_HOST;
#endif
}

SPI2_HOST is working ok without any problem.

@C47D I've already posted this issue in esp-idf. Will it be helpful or no chance to be noticed in reasonable time? or people in charge are already here?

@C47D  Since it is a esp-idf issue and not directly corresponds to lvgl_esp32_drivers - it may be closed.

Thanks @arktrin for the update.


inputText width problems

After updating my dependecies accordinaly to this commit bfb0cc4fcd86e74158b4937748c00e042a208a08 (with this one e1fbe03a0a6ee59bd239f6f20d2f5d9275789f86 for imgui specifically) I found that ImGui.inputText() now behaves incorrectly. See screenshot below.

Right now inputText() will produce small field like this one and you can't change its size (setNextItemWidth doesn't work).
I think that the bug could be found in Vec2::anyNotEqual method. Because right now it behaves incorrectly (Vec2(-1, -1).anyNotEqual(0f) will return false).

Hi,
it shall be fixed now
I'll wait for your feedback

Yeah, now everything is works fine. Thank you!


Clarification: change "sign" to "sign-off" or similar

File: opensource/code.md, CC @johndmulhausen
I was familiar with git's gpg signing capability (-S) but not with signing off on commits (-s).
It would have saved me a lot of time to realise I didn't need to set up gpg to follow the rules! :)

Closing this ticket due to its age, and the impending refactor. If you think this is in error, feel free to reopen. Thanks!


OpenSSL link doesn't point to OpenSSL deployment

Description
Hi,
I wanted to report that we find it very difficult to keep up with github actions environments updates.

Every few month we find our builds failing due to OpenSSL deployment changes (It happened 3 times at the last year)
Last time I used  a generic way to be agnostic to GHA deployment changes using export "OPENSSL_ROOT_DIR=readlink /usr/local/opt/openssl  "
Now this doesn't work also..
Deprecation on environment, Windows-2016 for example will be deprecated, I wanted to switch to Windows-2019 but it didn't have VS2015/VS2017 on it

Virtual environments affected

[ ] Ubuntu 18.04
[ ] Ubuntu 20.04
[X] macOS 10.15
[ ] macOS 11
[ ] Windows Server 2016
[ ] Windows Server 2019
[ ] Windows Server 2022

Image version and build link
Version: 20211207.1
Is it regression?
Yes
Expected behavior
OPENSSL_ROOT_DIR=readlink /usr/local/opt/openssl  find & set OpenSSL (previously was at
Found OpenSSL<EMAIL_ADDRESS>Actual behavior
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_INCLUDE_DIR)
Repro steps
Use this command and verify OpenSSL location
OPENSSL_ROOT_DIR=readlink /usr/local/opt/openssl

Hello @Nir-Az. Thanks for reporting, we'll take care about the issue investigation.

Hello @Nir-Az. I've tried to reproduce the issue but it looks like readlink /usr/local/opt/openssl working as expected. Could you please confirm?

That's exactly the issue.
Before the update the readlink command returned the absolute path to openssl1.1
Now it return a relative path to openssl3
This change broke our CI .
We managed to fix it but note that openssl link 2as changed 3 times this year which cause a regression each time..

@Nir-Az thank you for the provided information. Looks like during powershell.sh openssl1.1 is being redefined by openssl3.*. I'll take a closer look.

Also affects our mac 10.15 build.  Thanks, @Nir-Az for reporting the issue and thank you @dibir-magomedsaygitov for the fix

Hello @jdogmcsteezy @Nir-Az. We've merged PR with the fix. I'll notify you when the updated images are available to use.

@dibir-magomedsaygitov  Great, thanks

@dibir-magomedsaygitov Thanks


Make a list of desired fingerprinting tests

Also write this into the repository, in JSON format.

FYI: you can add css as well as matchMedia queries, by using JS to look up the pseudo value, but since only RFP does this and we already know it's covered, it seems a bit moot
click me for concept
I use this on TZP to detect screen spoofing and bypass it, but I use an upper and lower bound (ranges are too large when you factor in scaling and zoom etc to cover everything). If not bypassable due to range, I still know if the value is untrustworthy. But you don't have those issues to worry about, just add the values that cover your tests
css

except you probably don't want to use min (I use that as it shows a difference with hiDPI - i.e subpixels and rounds down for entropy)

@media (min-device-width:499px){#S:before{content:"";}}
@media (min-device-width:500px){#S:before{content:"500";}}
/* etc */
@media (min-device-width:2560px){#S:before{content:"2560";}}
@media (min-device-width:2561px){#S:before{content:"";}} /* upper */

@media (min-device-height:499px){#S:after{content:"";}} /* lower */

@media (min-device-height:499px){#S:after{content:"";}} /* lower */
@media (min-device-height:500px){#S:after{content:" x 500";}}
/* etc */
@media (min-device-height:2560px){#S:after{content:" x 2560";}}
@media (min-device-height:2561px){#S:after{content:"";}}

html

x is my catchall, I use this to also check other css values such as colors, CSS4 items, etc

js example
function getElementProp(id, prop, pseudo) {
	try {
		let item = window.getComputedStyle(document.querySelector(id), pseudo)
		item = item.getPropertyValue(prop)
		if (item == "none") {item = "x"}
		item = item.replace(/"/g,"")
		if (!isNaN(item * 1)) {item = item * 1} // numbers
		if (item == "") {item = "x"} // blanks
		return item
	} catch(e) {
		return "x"
	}
}

let w = getElementProp("#S","content",":before"),
  h - getElementProp("#S","content",":after"),

console.log("screen as shown by css", w +" x "+ h)


added placeholder attribute

placeholder attribute added to input box - placeholder name will be the field name - in filtering

Hi akash,
Thanks for the pull request. However, this duplicates #410 (issue #407). It seems #410 seems to be a better fit the design of ng-table.
I'm hopefully going to get sometime merge #410 which will add this feature.
C


Add JSON Schema that is v1.1 compliant

I've only added sample files in relation with the new features of the 1.1 version.
I still have to add the rules regarding the @-members and the extension members.
Coming soon...

great job! thanks for handling this!

According to this PR #1127, i've added a schema to validate requests that update a resource or relationship.

1.1 should be latest jsonschema compliant, like openAPI 3.1 does, IMHO.

Could someone tell me what is missing for this PR to be merged ?

@dgeb can we consider this for 1.1?

@jelhan can you take a look here please?

@jelhan can you take a look here please?

To be honest I'm not an expert for JSON schema. But I agree that we need to improve in that regard. Thanks a lot for following up.
Personally I would feel much more comfortable with reviewing if we would have some test coverage for the schema. Like having a set of JSON:API documents, which are validated with the schema in CI.
Also it's unclear to me how we could version the schema. v1.1 is not stable yet formally. We might need at least two schemas: one for the current stable version and one for the upcoming version.
We may want to setup such an infrastructure before moving forward.

Just had a look at the proposed changes in this PR and noticed that it is already addressing some points I raised above. Seems to be a great starting point! 👏

yes there is another PR for the v1.0 :)

I really appreciate this work and its importance for the spec. In my opinion, an official schema is not a blocker for the v1.1 release but it would be ideal to release both simultaneously. I think we stand a good chance to finalize the schema in the same time frame that the final v1.1 RC is being reviewed, without delaying either.

I really appreciate this work and its importance for the spec. In my opinion, an official schema is not a blocker for the v1.1 release but it would be ideal to release both simultaneously. I think we stand a good chance to finalize the schema in the same time frame that the final v1.1 RC is being reviewed, without delaying either.

thats a reasonable plan

Is there anything that is blocking this PR? :) Should I do something? Thank you

in fact we can move with it in 1.1 branch as well. in case v 1.0 need more work?

We must validate and merge v1.0 before merging it in 1.1 branch because this PR uses the validation script that is introduced in the #1600 (./_schemas/scripts/validator.js).

Ok great. Lets complete the v1.0 first


[Bug/Feuture] Subtitles

I just found out that the subtitles button (on RC 11 version) is always visible inside the player even if I have not added a subtitles on my video.
Maybe this was added or broke when @dularion added add bulk subtitles feuture?
Some users (including myself) may never use subtitles on streama so there should be one of the following options available.
A) Only show the subtitle button/option inside the player if a subtitle is actually preset.
Or
B) Have an option in admin area (check box) just like the allow users to download option to disable subtitles thus the button alltogether.

I think it's something intentional, as the subtitle menu now serves the purpose of subtitle track selection, video track selection and (in the future I think) audio track selection. That, plus the subtitle size feature when it's working.
In the case of the video not having subtitles, it says "No subtitle" in the subtitle track selection zone, correctly, so maybe it's a better idea to have the B option, in case you don't want the full menu available.
(Obviously, this is just my opinion as per usual XP)

Yep, like @Norwelian says, this has to do with the video track selection. But it makes sense to hide the button if neither multi-subtitle nor multi-video-track is available for the video. If either is available, I'd show the button again. That would be easiest and most intuitive I believe. Or what do you guys think?

Will be fixed in 1.7.0 stable


Markers not cleaned from cache on android

While the iOS version of "removeMarkers" command removes the markers from the cache, the android implementation seems to not do so.  This fix should properly remove markers from the cache whether all of them (if no id array is provided, or just the specified ids).

That looks very good to me, thank you!


Update index.d.ts

fix incorrect signature of asyncWrap

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

Pull Request Test Coverage Report for Build 13

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 98.198%

Totals

Change from base Build 12:
0.0%

Covered Lines:
87

Relevant Lines:
87

💛  - Coveralls


Support event typing declaration in class

Suggestion

🔍 Search Terms

event
✅ Viability Checklist

My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion

Allow declare { event type => handler type } mappings in class. And member methods can refer to these mappings.
class EventEmitter {
    addListener(type: @event(type), handler: @event(handler)): this;
    removeListener(type: @event(type), handler: @event(handler)): this;
    on(type: @event(type), handler: @event(handler)): this;
    off(type: @event(type), handler: @event(handler)): this;
    once(type: @event(type), handler: @event(handler)): this;
    protected emit(type: @event(type), ...args: @event(params)): this;
}

class Foo extends EventEmitter {
    @events {
         error: (error: Error)=>void,
         close: ()=>void,
    }
}

[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

You might want to check these points again.

I maybe wrong, but I don't think my suggestion breaks any of these points.
class EventEmitter {
    addListener(type: @event(type), handler: @event(handler)): this {
        // implementation
        return this;
    }
    removeListener(type: @event(type), handler: @event(handler)): this {
        // implementation
        return this;
    }
    on(type: @event(type), handler: @event(handler)): this {
        return this.addListener(type, handler);
    }
    off(type: @event(type), handler: @event(handler)): this {
        return this.removeListener(type, handler);
    }
    once(type: @event(type), handler: @event(handler)): this {
        // implementation
        return this;
    }
    protected emit(type: @event(type), ...args: @event(params)): this {
        // implementation
        return this;
    }
}

class Foo extends EventEmitter {
    @events {
         error: (error: Error)=>void,
         close: ()=>void,
    }
}

would emit javascript

class EventEmitter {
    addListener(type, handler) {
        // implementation
        return this;
    }
    removeListener(type, handler) {
        // implementation
        return this;
    }
    on(type, handler) {
        return this.addListener(type, handler);
    }
    off(type, handler) {
        return this.removeListener(type, handler);
    }
    once(type, handler) {
        // implementation
        return this;
    }
    protected emit(type, ...args) {
        // implementation
        return this;
    }
}

class Foo extends EventEmitter {
}

The typing of methods of Foo will be like
addListener(type: 'close', handler: ()=>void): this;
addListener(type: 'error', handler: (error: Error)=>void): this;

removeListener(type: 'close', handler: ()=>void): this;
removeListener(type: 'error', handler: (error: Error)=>void): this;

on(type: 'close', handler: ()=>void): this;
on(type: 'error', handler: (error: Error)=>void): this;

off(type: 'close', handler: ()=>void): this;
off(type: 'error', handler: (error: Error)=>void): this;

once(type: 'close', handler: ()=>void): this;
once(type: 'error', handler: (error: Error)=>void): this;

protected emit(type: 'close'): this;
protected emit(type: 'error', error: Error): this;

And if we have a class Bar
class Bar extends Foo {
    @events {
        'data': (data: Buffer)=>void
    }

    getListener(type: @event(type)): @event(handler) {
        // implementation...
    }
}

in javascript
class Bar extends Foo {
    getListener(type) {
        // implementation...
    }
}

And methods of Bar will be
addListener(type: 'close', handler: ()=>void): this;
addListener(type: 'error', handler: (error: Error)=>void): this;
addListener(type: 'data', handler: (data: Buffer)=>void): this;

removeListener(type: 'close', handler: ()=>void): this;
removeListener(type: 'error', handler: (error: Error)=>void): this;
removeListener(type: 'data', handler: (data: Buffer)=>void): this;

on(type: 'close', handler: ()=>void): this;
on(type: 'error', handler: (error: Error)=>void): this;
on(type: 'data', handler: (data: Buffer)=>void): this;

off(type: 'close', handler: ()=>void): this;
off(type: 'error', handler: (error: Error)=>void): this;
off(type: 'data', handler: (data: Buffer)=>void): this;

once(type: 'close', handler: ()=>void): this;
once(type: 'error', handler: (error: Error)=>void): this;
once(type: 'data', handler: (data: Buffer)=>void): this;

protected emit(type: 'close'): this;
protected emit(type: 'error', error: Error): this;
protected emit(type: 'data', data: Buffer): this;

getListener(type: 'close'): ()=>void;
getListener(type: 'error'): (error: Error)=>void;
getListener(type: 'data'): (data: Buffer)=>void;

The only effect of these @events things are making the typing of events easy.
The keyword @events may be not very pretty, Just think that won't conflict with any existing code.
I made some silly mistakes in my origin description, sorry about that.
PS: I'm not profession in language designing. I just think it's a good idea. But if it is not, please feel free to close this.
@MartinJohns

Wouldn't a cleaner way of achieving the same thing be to just have a generic handler that receives a single Event argument (or maybe and Event and an EventError argument)?
Kinda like how JS events currently work. I.E document.addEventListener(string, (Event) => void). Here, Event can be a KeyboardEvent, a MouseEvent, or anything you want. Or in your case, you could have an ErrorEvent and a BufferEvent.
You might already know this and still be suggesting this change, sorry if that's the case. Just my 2 cents.
@toddwong

@alexmorleyfinch Yes, I knew this. But NodeJS chooses the other way.
And even for the DOM event handling, we have a lots of addEventListener/removeEventListener overloads for different type of Event. Look at the lib.dom.d.ts, there are 2 addEventListeners and 2 removeEventListeners for every event target interface (with the help of the new keyof syntax sugar).
And much more worse in @types/node, which have dozens of on/off/addListener/removeListener/once/prependListener/prependOnceListener.... in every event emitting interface (which, of course, could be simplified a little bit with keyof syntax, but would be still too verbosity).


Fix up html generator for rendering tests

Fix:

Adding to source destination lists incorrectly, producing source on one row and destination on another.
Cleaned up to use source to determine destination file name by replacing language to avoid name mismatches per row. If exists as source file, then append destination file. e.g. if foo.glsl.png found then  foo.osl.png is added. The second file is not checked until generation time.
Fix to allow only one language to be shown (again) if both destination and source languages are the same.

Thanks for the fix, @bernardkwok!


add LastObs reading and writing for command-line run of main_V04 with HYfeature hydrofabric

Currently, reading lastobs files to create lastobs Dataframe and then writing lastobs files from run_results with updated lastobs time and values from computing mc_reach.py is only available for BMI running and command-line run for NHD hydrofabric. This PR adds such capability as well for command-line run with HYfeature hydrofabric.
Additions

def _read_lastobs_file() from model_DAforcing.py to DataAssimilation.py
lastobs_output parameter under output_parameters in test_AnA_V4_HYFeatuere config file
output_parameter in input argument list of def init of class HYFeatureNetwork
if lastobs condition in output.py for activating writing lastobs files

Removals

Changes

Testing

python3 -m nwm_routing -V4 -f test_AnA_V4_HYFeature.yaml

Screenshots
Notes

Todos

Checklist

[ ] PR has an informative and human-readable title
[ ] Changes are limited to a single goal (no scope creep)
[ ] Code can be automatically merged (no conflicts)
[ ] Code follows project standards (link if applicable)
[ ] Passes all existing automated tests
[ ] Any change in functionality is tested
[ ] New functions are documented (with a description, list of inputs, and expected output)
[ ] Placeholder code is flagged / future todos are captured in comments
[ ] Visually tested in supported browsers and devices (see checklist below :point_down:)
[ ] Project documentation has been updated (including the "Unreleased" section of the CHANGELOG)
[ ] Reviewers requested with the Reviewers tool :arrow_right:

Testing checklist
Target Environment support

[ ] Windows
[ ] Linux
[ ] Browser

Accessibility

[ ] Keyboard friendly
[ ] Screen reader friendly

Other

[ ] Is useable without CSS
[ ] Is useable without JS
[ ] Flexible from small to large screens
[ ] No linting errors or warnings
[ ] JavaScript tests are passing

HYFeature works but for NHD it gave me this error:


Custom notification in case destroy() failed

Right now there's just one default message in case the destroy() method failed.
I'm using some nesting/relations and I want to prevent the user from deleting the resource in case it has some specific relations still defined.
From functional point of view, everything works ok. I'm overriding the destroy() method in the CrudController, doing the checks and failing the destroy if there's a problem. But right now, there's no way to tell the user about the specifics of the problem.
My approach would be to rewrite said part of list.blade.php slightly, to:
error: function(result) {
    // Show an alert with the result
    var notificationText = "{{ trans('backpack::crud.delete_confirmation_not_message') }}";

    // Is there anything custom we'd like to tell the user?
    if (result.responseJSON.text != undefined) {
        notificationText = result.responseJSON.text;
    }

    new PNotify({
      title: "{{ trans('backpack::crud.delete_confirmation_not_title') }}",
      text: notificationText,
      type: "warning"
    });
}

And with this, we are free to throw 409 (or some other 4**/5** code, if applicable) in the destroy() method with some text. (e.g. return response()->json(['text' => $error)], 409);)
It shouldn't be a breaking change.
I don't know if something like this isn't a part of some other plans/PRs, so forgive me for not being informed, if that's the case :)
Is it worth a PR?

I'd prefer to keep the notify in the PHP controller, if possible, similar to the update messge (and the message if delete occurs).
@tabacitu - what say you?

Hi guys. This sounds like a good improvement, yes. I agree!

Hi, @tabacitu any update on this? Would be great if we could change the message. I have the exact same use case as @pavoltanuska

Same issue.
I looked around, and one of the issue is that:

For create and edit, the notification is passed through a flash message in the session, defined on the server side. It's great I think, despite it is not easily customizable (cf below).

For delete (Ajax request), the message is defined on the client side (in the javascript part of list.blade.php).

So, this is not consistent and not intuitive. Even for create and edit, it seems difficult to customize the message except I miss something. For these ones, I do this in my Controller, which is very ugly:
public function store(StoreRequest $request)
{
     [....]
     if (condition) {
            \Prologue\Alerts\Facades\Alert::flush();
            \Prologue\Alerts\Facades\Alert::warning(__('The item bas been submitted for review'))->flash();
     }
    [...]
}

For the delete, currently I modified list.blade.php but this is ugly too.
A way to rationalize all this stuff might be to always use flash messages defined on the server side. Proposed approach:

In alert.blade.php (Crud base), include the existing code in a function and call this function, so it can be called from another location in the code. In addition, the icon should be also a variable (currently set to false).

Define in CrudController a function "setNotificationMessage($type, $text, $icon)". If this function is called, a custom message is set and the default messages are not set (or removed).

In list.blade.php, call to the function defined in alert.blade.php to display all flash messages.

In the destroy function of CrudController, set the message through a flash Alert::success or Alert::error

This will offer the possibility to the users to use store, update and destroy and to define their own messages (with the icon!) as they want.
Thoughts?

Hi @jrpub ,
I agree with needing a consistent way of defining notifications on CRUD operations, and that being PHP (using flash messages or not).
I think I've figured out a simpler approach, though. Let me know if it fits your use case, like I think:

The javascript delete logic has been moved in CRUD 3.4 from list.blade.php to buttons/delete.blade.php:

@if ($crud->hasAccess('delete'))
	route.'/'.$entry->getKey()) }}" class="btn btn-xs btn-default" data-button-type="delete"> {{ trans('backpack::crud.delete') }}
@endif

Keep in mind this is how the delete method looks in the controller:

/**
     * Delete a row from the database.
     *
     * @param  int $id The id of the item to be deleted.
     *
     * @return bool True if the item was deleted.
     *
     * @throws \Illuminate\Database\Eloquent\ModelNotFoundException if the model was not found.
     *
     * TODO: should this delete items with relations to it too?
     */
    public function delete($id)
    {
        return (string) $this->model->findOrFail($id)->delete();
    }

I think a quicker way to achieve this would be to make the DELETE method return something else instead of true/false. Like a JSON:

[
  'success' => true,
  'message' => [
     'title' => 'lorem ipsum',
     'text' => 'lorem ipsum',
     'type' => 'danger',
     'icon' => 'lorem ipsum',
  ]
]

You'd then be able to easily customize that message in the Controller.
Of course, a fallback message would still be in the blade file, if the request is not processed correctly (AJAX fails).

What do you think?

It sounds good.
I forgot to update to 3.4 what a shame. Doing it now... Thanks for the reminder!

Closing this, as it's been fixed in 3.4 - the javascript in the delete button shows an error message if the operation wasn't successful.

Oups - the issue was that we'd want to customize that error message. Reopening it and marking as to-do for 4.0.

Good news everyone! We'll finally have this in 4.1 - if you're interested please follow the PR here https://github.com/Laravel-Backpack/CRUD/pull/2393


Mac OS keeps deleting Bitcoin Core GUI

I would expect the Bitcoin-QT client to stay on my machine, not to have to reinstall it every time.

It "disappears" - probably Mac OS' XProtect finds something it doesn't like in it and silently removes it

To reproduce: Have Bitcoin Core copied into the /Applications and wait some days

0.21.x, downloaded from Bitcoin.org
Mac OS 12.2, Macbook pro 16, 2019 model
It doesn't keep log files anymore unless you have it set on the console app. I am not sure when it does this virus check.

@Apple has become very invasive the last decade+ . I currently have the System Integrity Protection disabled - I am not sure if by default it is bypassing this functionality? I will try to look further into this. (I may have some other setting that has disabled this) - I will try to reproduce this.

Why is important to have it under /Applications?
It can be elsewhere and, if indexed,
spotlight is gonna find it anyway.
On Tue, Feb 1, 2022 at 1:14 PM Alexandre Strube
@.***> wrote:

I would expect the Bitcoin-QT client to stay on my machine, not to have to reinstall it every time.
It "disappears" - probably Mac OS' XProtect finds something it doesn't like in it and silently removes it
To reproduce: Have Bitcoin Core copied into the /Applications and wait some days
0.21.x, downloaded from Bitcoin.org
Mac OS 12.2, Macbook pro 16, 2019 model
It doesn't keep log files anymore unless you have it set on the console app. I am not sure when it does this virus check.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

I guess it is the same as bitcoin/bitcoin#23134. Therefore, closing.
Feel free to re-open this issue, if it differs from the one mentioned above.


TypeError: 'int' object is not callable

File "train.py", line 349, in len
return self.dataset.num_videos()
TypeError: 'int' object is not callable

Hi @qianjinhao,
Thanks for playing with PyTorchVideo! Could you please share me the full stack trace error?

Closing the issue since it has been resolved in the tagged PR. Please re-open the issue if you have any further questions.


Add watertight opt

This PR adds and option to export a watertight mesh by adding make_watertight to the end of the export DAGMC Trelis command.
Optional expansion on current work:

check the mesh for watertight-ness and report success rate to user on file write

The current build process for this is to add -DDAGMC_DIR=/path/to/dagmc/lib/ to mimic the one used for MOAB. It does not rely on a .cmake file in DAGMC currently as it does for MOAB includes and libraries.

Any thoughts on this?

I haven't really done any extensive testing, but the times I've tried it it seems to work

I think this is being tested empirically at ORNL right now if my UW box notifications are telling me the right story. Hopefully @gonuke and @makeclean will let me know if there are any problems.

So they turned out to be predominantly mac users, we dont currently have the mac version built, so it was best to have them all use the non mw version. Maybe I can try building the mac version later?


Pop up a "Time Out" error when connecting a VM created in Azure VM Extension on Mac/Linux

OS: Mac, Linux
Build Version: 20200226.22
Repro Steps:

Make sure the Remote - SSH Extension has been installed.
Select "Create Virtual Machine..." from Azure VM Extension --> Type the VM name and region.
Make sure the VM has been created -->Navigate to the Remote Explorer --> Refresh the Remote Explorer --> Right click the new host --> Select "Connect to Host in New Window".

Expect:
Succeed to connect the host.
Actual:
Fail to connect the host with error "time out".

This issue also reproduces on the latest master build 20200410.1.

Verified with the build 20200826.10.
This issue also reproduces for the virtual machine which created with Windows OS on Mac.
This issue also reproduces for the virtual machine which created with Windows/Linux OS on Linux.


Allow array blocks to have conditional on @value too

A test fails, but the failing test is present on master too, so it is not caused by this PR, FYI

💯


Feature: Nitra Bulbs improvements

Feature

add pop sound for explosion
ignite nitra blocks or tnt when hit
rework obstructive particles and add yellow flair

adjusted particles to be less intrusive, fixed and made sound quieter


⚠ ClamAV has degraded performance

In b23c8ab, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 197 ms

Resolved: ClamAV performance has improved in 53dfd99.


Backups integration

Well I've wrote a script that does backups. Have no idea currently on how to actually use it, we'll need to move backups somewhere else eventually, but for the beginning that'll do.
@linuxbandit @blacksph3re check this out.
(PostgreSQL backups are not fully valid as they include the oms.sh output but it can be done manually, I suppose?)

About the moving the backup to the correct place: for now edit your script to put in /opt/backup/, and I will configure this role to put stuff onto another server

From the docs:

Before restoring an SQL dump, all the users who own objects or were granted permissions on objects in the dumped database must already exist. If they do not, the restore will fail to recreate the objects with the original ownership and/or permissions. (Sometimes this is what you want, but usually it is not.)

How do we take care of that? (in case of catastrophic backup restore, not just corrupted data)
If you can take care of that, I am thinking of including your scripts in an ansible play which would use your commands in a cron script


New API IRIS 2019.4

Adapt the dashboard to work with the new API
https://irisdocs.intersystems.com/iris20194/csp/docbook/DocBook.UI.Page.cls?KEY=GCM_rest

I am using the REST API, as described in the link mentioned in the issue creation.
Also, using the link below:
Monitoring InterSystems IRIS Using Web Services
https://irisdocs.intersystems.com/iris20194/csp/docbook/Doc.View.cls?KEY=GCM_wsmon
I am combining both sources to retrieve the REST and WS information in one place.


Only for thanks

Tx for your great contribust. I've tried Gaze360 and also 3DGazeNet.Your works runs faster and prociser than them. It;'s really helpful

Hi @ZhanXKun , thank you for your nice comment.


Manually specify dependencies in st2client setup.py

dist_utils relies on some functionality which is only available in newer versions of pip. Right now there is a bug / issue where old version of pip is used on packs virtual environments on Ubuntu.
This is a temporary work around until we ensure that a more recent version of virtualenv is installed everywhere where st2client is installed (system wide and virtualenv used by packs).

Also backported into v1.3.1 branch in #2424.


fix for issue #63

fix for #63 -- blade tomes were also showing the internal name as well, but that should also be fixed too.

Thanks for the fix @jcjoneskern !
Do you know how to do conflict resolution? Its my bad because I merged a big update a few days ago after your pull request came in, but should be fast and easy to resolve.

I think it's resolved? I pulled the changes from this repo and made sure my changes were still intact then committed and pushed.


test(coverage): Separate unit and integration test coverage

I believe slightly coverage decrease was caused by separation of unit and integration test reports

Do you think we/tool can merge unit coverage and integration coverage

@AmitKumarDas it is merged, I mean in the report both are represented. this PR just mark them appropriately.

as you can see here, the overal coverage is 46%,  where 13% is unit, and 37% is integration

:tada: This PR is included in version 1.4.3 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[AMBARI-24342] PostTrunkMerge : UI issue at Step 7 of deploy, while g…

…etting configs for service.
What changes were proposed in this pull request?
Step 7 of installer wizard was breaking due to a console error. This was because all selected services were being updated from theme instead of those which have predefined attributes. As a part of the fix included that check.
How was this patch tested?
Tested manually on a cluster.
19979 passing (16s)
46 pending

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/3250/
Test FAILed.
Test FAILured.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/3249/
Test FAILed.
Test FAILured.


Fix stuck lightbox

Fixes a regression I introduced in https://github.com/bluesky-social/social-app/pull/6135.
See commit by commit.
This is tricky to reproduce, but if we got onEnd (which "flying away") while dismissSwipeTranslateY.value === 0, the decay animation ("flying away") would not even start. This looks like a Reanimated bug. Simply shifting the initial value by pixel does the job.
Other commits are minor improvements.
Test Plan
The easiest way to repro is to actually comment out dismissSwipeTranslateY.value = e.translationY in onUpdate or to hardcode it to dismissSwipeTranslateY.value = 0. Before the hack/fix, this would freeze up the lighbox. Now, it works.

lgtm!


Query

How can i change color of buttons and textfields ??

Hello @SyedFaraz55 ,
You can change the color of the buttons with the secret code
nameYourVariable.setBackground (yourColor);
If you want to change the color to all buttons at the same time you can switch to UIManager, with the following code
UIManagerUI.put("button.background", MaterialColor.YOUR_COLOR)
The same goes for the other components, you can find a more or less complete list of UIManager's Key here: https://www.logicbig.com/tutorials/java-swing/ui-default.html
I hope I understand your question and have been of help.

please let me know can i use this production purpose as well, i really like it and i want to build my applications on that.
Thank you. :)

Hello @SyedFaraz55 ,
You can change the color of the buttons with the next code
nameYourVariable.setBackground (yourColor);
If you want to change the color to all buttons at the same time you can switch to UIManager, with the following code
UIManagerUI.put("button.background", MaterialColor.YOUR_COLOR)
The same goes for the other components, you can find a more or less complete list of UIManager's Key here: https://www.logicbig.com/tutorials/java-swing/ui-default.html
I hope I understand your question and have been of help.

please let me know can i use this production purpose as well, i really like it and i want to build my applications on that.
Thank you. :)

please let me know can i use this production purpose as well, i really like it and i want to build my applications on that.
Thank you. :)

@SyedFaraz55  I'm glad that you like the project, I'm not the owner and creator of the project, I'm just a simple contributor who is learning, I do not think there are problems, I would like to; wait for the answer from @atarw

Yeah you can definitely use it for whatever you want!

Yeah you can definitely use it for whatever you want!

Ah that's great ! Thanks and i really like your project.. :1st_place_medal:


Need a "Copy" button on the code side

:tada: This issue has been resolved in version 0.8.0 :tada:
The release is available on:

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Debugging of saga!

Most of the time when I am trying to debug the saga, the cursor could not stop at the breakpoint. Is there anything I am missing?

There is nothing other than an ordinary code debug. I suggest to check the environment and your code logic. If everything seems fine, you can try to debug this example app. Try on ios,android,web.
Still face problems than please post the failing code pattern. Also provide which env the debug goes (ios,android,web...)


fix: update docs for linux install

What type of PR is this?
documentation
Which issue does this PR fix:
What does this PR do / Why do we need it:
I have added some missing steps in the installation.
Fixes minor formatting issues.
Will this break upgrades or downgrades?
No.
Does this PR introduce any user-facing change?:
Just documentation updates, added missing steps.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@nvtkaszpir what is the goal of this PR? whitespacing?

@rchincha as stated in PR description

add missing steps in bare metal installation such as:

better order of installing zot with sudo wget
moving line related to chmodding and chowning downloaded binary just after downloading binary
chowning /etc/zot dir instead of just the config file
systemd daemon-reload after adding new unit file
using zot verify after editing zot config

Fix some white spaces or new lines

some of them made markdown preview not working in editors
trimming too long lines.

I see.Inneed to do some other things as well as I see checks are failing. I'll do it in the evening.

 Sorry.


[main] sync main from opendatahub-io:main

Fixes: https://github.com/red-hat-data-services/notebooks/pull/359
sync main from opendatahub-io:main
this covers all the commits from opendatahub-io:main
created with following commands:
git checkout main
git checkout -b rsync-main
git remote add upstream <opendatahub-io/notebooks>
git pull upstream main --no-rebase

Seems like one extra commit is needed here (not sure why it differs from upstream, though - @jiridanek ?):
Error: Please run 'bash ci/generate_code.sh' (the command from the previous step), commit the changed files locally, and push again.

I guess just syncing everything does not apply cleanly, see

https://github.com/red-hat-data-services/notebooks/pull/359

/lgtm

/lgtm
Though, the GH states this still has some conflicts even though no new commit was added to the main branch in the past 2 days :thinking:


Update stable version in repo from 0.0.0 to 0.6.3

Think about adding version 0.6.3 to stable repository.
Version: stable=0.0.0 (0 days old) => latest=0.6.3 (119 days old)
Installs: stable=0 (0%), latest=2 (50%), total=4
Click to edit

Pull request done


fix: store docker images on raspberry pi in data partition, as rootfs is too small

Will be merged with #4


PreBind plugin "VolumeBinding" timed out waiting for the condition

Problem
Deployed Kubernetes v1.23 with CRI-O as the container runtime. But when deploying the latest CORTX, all the pods failed to be scheduled due the "VolumeBining" time out error. Search for a while but still could resolve. Any suggestion would be appreciated!
Expected behavior
Should schedule the pods successfully.
How to reproduce
Centos 7, Kubernetes and CRI-O both v1.23, CORTX 0.5.0 (latest).
# install cri-o
OS=CentOS_7
VERSION=1.23
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/devel:kubic:libcontainers:stable.repo
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$VERSION/$OS/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo
sudo yum install cri-o -y

# Install Kubernetes, specify Version as CRI-O
yum install -y kubelet-1.23.0-0 kubeadm-1.23.0-0 kubectl-1.23.0-0 --disableexcludes=kubernetes

The complete installation guide is here.
CORTX on Kubernetes version
v0.5.0
Deployment information
Kubernetes version: 1.23
kubectl version: 1.23
Solution configuration file YAML
solution:
  namespace: default
  deployment_type: standard
  secrets:
    name: cortx-secret
    content:
      kafka_admin_secret: null
      consul_admin_secret: null
      common_admin_secret: null
      s3_auth_admin_secret: Cortx123!
      csm_auth_admin_secret: Cortx123!
      csm_mgmt_admin_secret: Cortx123!
  images:
    cortxcontrol: ghcr.io/seagate/cortx-all:2.0.0-756
    cortxdata: ghcr.io/seagate/cortx-all:2.0.0-756
    cortxserver: ghcr.io/seagate/cortx-rgw:2.0.0-756
    cortxha: ghcr.io/seagate/cortx-all:2.0.0-756
    cortxclient: ghcr.io/seagate/cortx-all:2.0.0-756
    consul: ghcr.io/seagate/consul:1.11.4
    kafka: ghcr.io/seagate/kafka:3.0.0-debian-10-r97
    zookeeper: ghcr.io/seagate/zookeeper:3.8.0-debian-10-r9
    rancher: ghcr.io/seagate/local-path-provisioner:v0.0.20
    busybox: ghcr.io/seagate/busybox:latest
  common:
    storage_provisioner_path: /mnt/fs-local-volume
    container_path:
      local: /etc/cortx
      log: /etc/cortx/log
    s3:
      default_iam_users:
        auth_admin: "sgiamadmin"
        auth_user: "user_name"
        #auth_secret defined above in solution.secrets.content.s3_auth_admin_secret
      max_start_timeout: 240
      extra_configuration: ""
    motr:
      num_client_inst: 0
      start_port_num: 29000
      extra_configuration: ""
    hax:
      protocol: https
      service_name: cortx-hax-svc
      port_num: 22003
    storage_sets:
      name: storage-set-1
      durability:
        sns: 1+0+0
        dix: 1+0+0
    external_services:
      s3:
        type: NodePort
        count: 1
        ports:
          http: 80
          https: 443
        nodePorts:
          http: null
          https: null
      control:
        type: NodePort
        ports:
          https: 8081
        nodePorts:
          https: null
    resource_allocation:
      consul:
        server:
          storage: 10Gi
          resources:
            requests:
              memory: 100Mi
              cpu: 100m
            limits:
              memory: 300Mi
              cpu: 100m
        client:
          resources:
            requests:
              memory: 100Mi
              cpu: 100m
            limits:
              memory: 300Mi
              cpu: 100m
      zookeeper:
        storage_request_size: 8Gi
        data_log_dir_request_size: 8Gi
        resources:
          requests:
            memory: 256Mi
            cpu: 250m
          limits:
            memory: 512Mi
            cpu: 500m
      kafka:
        storage_request_size: 8Gi
        resources:
          requests:
            memory: 1Gi
            cpu: 250m
          limits:
            memory: 2Gi
            cpu: 1
  storage:
    cvg1:
      name: cvg-01
      type: ios
      devices:
        metadata:
          device: /dev/sdc
          size: 5Gi
        data:
          d1:
            device: /dev/sdd
            size: 5Gi
          d2:
            device: /dev/sde
            size: 5Gi
  nodes:
    node1:
      name: node-1
    node2:
      name: node-2

Logs
logs-cortx.zip
Additional information
All the pods are not ready
[root@node-1 k8_cortx_cloud]# kubectl get pods
NAME                        READY   STATUS    RESTARTS   AGE
cortx-consul-client-85gbv   0/1     Running   0          58m
cortx-consul-client-kx58q   0/1     Running   0          58m
cortx-consul-server-0       0/1     Pending   0          58m
cortx-consul-server-1       0/1     Pending   0          58m
cortx-kafka-0               0/1     Pending   0          58m
cortx-kafka-1               0/1     Pending   0          58m
cortx-zookeeper-0           0/1     Pending   0          58m
cortx-zookeeper-1           0/1     Pending   0          58m

Checking the log for consul pod, the error seemed to be VoumeBining causing causing the scheduling to fail
 Events:
  Type     Reason            Age                  From               Message
  ----     ------            ----                 ----               -------
  Warning  FailedScheduling  3m25s (x5 over 43m)  default-scheduler  running PreBind plugin "VolumeBinding": binding volumes: timed out waiting for the condition

The same error appeared kafka pod, and others
Events:
  Type     Reason            Age                  From               Message
  ----     ------            ----                 ----               -------
  Warning  FailedScheduling  3m25s (x5 over 43m)  default-scheduler  running PreBind plugin "VolumeBinding": binding volumes: timed out waiting for the condition

For the convenience of the Seagate development team, this issue has been mirrored in a private Seagate Jira Server: https://jts.seagate.com/browse/CORTX-31327. Note that community members will not be able to access that Jira server but that is not a problem since all activity in that Jira mirror will be copied into this GitHub issue.

Thanks for opening this issue and digging into CORTX on CRI-O! Most of our work has been done with Docker as the underlying container runtime, but that shouldn't be a major difference from the Kubernetes point of view. More than likely we are hitting an issue in the setup of the cluster or other assumptions that are going on with some pre-reqs. As it stands, it looks like the Rancher local-path-provisioner that we use for dynamic local provisioning is failing. So we'll start there to debug...

In your linked setup guide, can you detail what your disk layout looks like?

In Part 2, when you run the prereq-deploy-cortx-cloud.sh script, you are documenting that you pass /dev/sda to the script as the disk you want to use for file-system storage.
The prereq script expects this to be a secondary disk and not the main disk that is already mounted and in use.
The script generally creates a directory a /mnt/fs-local-volume/local-path-provisioner and mounts /mnt/fs-local-volume to the device passed in to the script (ie your /dev/sda parameter).
Can you verify if that path exists on your system at all or any updates to mounted devices?
If you only have one device on the system, we can then determine where to go from there.

Can you do a kubectl get pods -n local-path-storage and drop the output here?

If the previous bullet point isn't the culprit and Rancher has deployed successfully, then there should be more Pod information here.

Hi Rick,
Thanks so much for such a detailed reply!

Rechecked the disk layout and think that /dev/sda was not in use. The main disk was /dev/sdq for all nodes, but thanks for taking a look! Here is the disk layout:

[root@node-1 k8_cortx_cloud]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   1.8T  0 disk /mnt/fs-local-volume
sdb      8:16   0   1.8T  0 disk
sdc      8:32   0   1.8T  0 disk
sdd      8:48   0   1.8T  0 disk
sde      8:64   0   1.8T  0 disk
sdf      8:80   0   1.8T  0 disk
sdg      8:96   0   1.8T  0 disk
sdh      8:112  0   1.8T  0 disk
sdi      8:128  0   1.8T  0 disk
sdj      8:144  0   1.8T  0 disk
sdk      8:160  0   1.8T  0 disk
sdl      8:176  0   1.8T  0 disk
sdm      8:192  0   1.8T  0 disk
sdn      8:208  0   1.8T  0 disk
sdo      8:224  0   1.8T  0 disk
sdp      8:240  0   1.8T  0 disk
sdq     65:0    0 372.6G  0 disk
└─sdq1  65:1    0 372.6G  0 part /

Will do a kubectl get pods -n local-path-storage as soon as possible! Thanks again!

Based off of that error message in the local-path-provisioner pod logs, as well as all of the Consul Client pods not actually running (since they are 0/1), this would point me in the direction of a networking issue with your cluster as a whole - which means we now have to debug Calico.
Can you run the following command to see what version of Calico you deployed via your tutorial docs?
curl https://docs.projectcalico.org/manifests/calico.yaml -O
kubectl apply -f calico.yaml

You can use the following command to figure that out: (there are less verbose ways of doing this, but this does it all in one line through kubectl)
kubectl get pods  -n kube-system -l k8s-app=calico-kube-controllers -o jsonpath="{.items[0].spec.containers[0].image}"

We've seen recent issues with Calico v3.22.x and have moved the majority of our deployments to v3.23.

If you are on v3.23, then the next step is probably due to the default configuration of Calico in your environment.
Similar to how the CORTX (reference) prereq scripts assume certain layouts, the Calico default configs assume certain network interface layouts so we may need to configure the Calico deployment to select a network interface that can all talk to one another. You can reference https://projectcalico.docs.tigera.io/networking/ip-autodetection for the specific directions under the Manifest tab (since that is the installation method you are using).
If this is the case, you'll want to grab any of the logs from the calico-node-xxyy pods in the kube-system namespace and we can look for errors on which pods are selecting which network interfaces to use for communication and if there's a mismatch between them being able to talk to each other.

Hi Rick,
Thanks for kindly diagnosing the problem again!
The version of Calico seemed to be v3.23.1:
[root@node-1 cc]# kubectl get pods  -n kube-system -l k8s-app=calico-kube-controllers -o jsonpath="{.items[0].spec.containers[0].image}"
docker.io/calico/kube-controllers:v3.23.1

Here are the logs for the Calico controller pod and the Calico node pod for two nodes.
[calico-log-controller.txt](https://github.com/Seagate/cortx-k8s/files/87
calico-log-node-1.txt
46918/calico-log-controller.txt)
calico-log-node-2.txt
Tried to look through the logs, but didn't find many error messages. Maybe there were IP assigning problems that I didn't catch!
At last, thank for providing the Calico IP config documentation. I remember deploying CORTX with Docker successfully while using the default Calico configuration. Maybe I can try manual configuration next time with CRI-O? I can keep reading the documentation!
Thanks again for the assistance!
Best,
Faradawn

There were underlying issues here caused by the initial creation of the cluster and the --pod-network-cidr provided overlapping with the physical network the Kubernetes nodes were on, which causes issues due to Calico's inability to detect what is Pod traffic versus what is Node traffic for IPIP routing.
Following the expected default values as documented by Calico via https://projectcalico.docs.tigera.io/getting-started/kubernetes/quickstart#create-a-single-host-kubernetes-cluster should produce the proper results (when running kubeadm --pod-network-cidr=<IP_ADDRESS>/16 ).
Closing this issue as resolved.

Confirmed! Thank you Rick!
Deployment of CORTX 0.6.0 on Kubernetes v1.23.0 with CRI-O v1.23 was successful!

CRI-O Install
S3 Benchmark Script

Best,
Farasdawn

Patrick Hession commented in Jira Server:

.

Patrick Hession commented in Jira Server:

.

Patrick Hession commented in Jira Server:

.


Issue when using braces inside custom component

When using braces inside custom component the component's node doesn't render at all to the top custom component inclusive.

Hi there!
This is interesting. The demo runs with marksy/components. meaning that all HTML is transpiled by babel. the { in components world is actually syntax, causing it to be invalid when there is only one. Example:
function ({bar}) {
  return
foo {bar}

}

You have to think of it as React code :-)
So your example should work if you:
<Row>
  <Col>{`Need to tell you something over here
.my-class {
`}</Col>
</Row>

@christianalfoni, got it. Thank you!


Click to tune not yet implemented

The click to tune function of the spectrum display is not yet implemented.

Click to tune on the Spectrum display has been implemented.


Update for Electron 9?

Hi, will you be updating this series for Electron 9 any time soon?
Matt.

Hi Matt!
I probably won't have time to update these series for Electron 9.

here is a fork with version 9 and electron-forge https://github.com/yosiasz/electron-tutorial-app


Uncaught ReferenceError: require is not defined

I'm submitting a bug report
Webpack version:
<EMAIL_ADDRESS>Webpack Karma version:
<EMAIL_ADDRESS>Karma version:
<EMAIL_ADDRESS>Please tell us about your environment:
OSX 10.12.6
Browser: [Chrome 62.0.3202]
Current behavior:
When running tests, I'm getting the following error:
Uncaught ReferenceError: require is not defined

Expected/desired behavior:
require should be defined.
My karma.conf.js and webpack.config.js are available here.

Did you fix this? If so, how?

any idea for this issue? @adrice727

@adrice727 could you provide some feedback on your outcome with this issue?

How was this one fixed? I am facing exactly the same issue and can't find any resolution.

@terryjiang2020
You're running code dependant on commonjs in an environment where that is not recognized. It's not an issue with karma-webpack.
Look up CommonJS and ES Modules. Get a good understanding of what they are, how their APIs work, and what runtimes they can be used in. If you do that, you will have the answer to your question.


volantes-cursors: init at 2022-08-27

Description of changes
Init volantes-cursors. It is a cursor theme.
Things done
Been running the theme built with nix for a few months now.

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

All done and tested @Mindavi


[Bug] libra-node opens large number of file descriptors on sst files

lsof -p $(pidof libra-node) | wc -l

2917

Most of the files are RocksDB SST files.
Observed on branch moonshot-cli but seems to be more widespread.

Mine hover around 65k, which I think is an upperbound somewhere

An area of interest: https://github.com/OLSF/libra/blob/v4/storage/schemadb/src/lib.rs#L102

https://www.bookstack.cn/read/rocksdb-en/2f89b6c17fd1b7d4.md
https://www.bookstack.cn/read/rocksdb-en/b6f07d53a072be7d.md
https://github.com/facebook/rocksdb/wiki/Thread-Pool

https://stackoverflow.com/questions/45572264/how-to-disable-rocksdb-database-debug-logging

Good news: RocksDB debug logging (or, at least -- some logging) is enabled and written to libradb/LOG
In a devnet node, there are log messages that indicate compaction is at least being attempted. I need to learn to interpret the log output..

Mine hover around 65k, which I think is an upperbound somewhere

It's likely that it just has an fd to every single sbt file, and that our chain ends up producing 65k files today. Tomorrow : more.

Some analysis of the LOG file on a db that exhibited the problem shows that compaction was occurring. RocksDB just likes to create a large number of leaf files (L4 in this case), of fairly small size (100K - 65M). This explains the large number of files. Probably there are tuning properties that can fix this, but this isn't the primary problem.
(note this conclusion is unconfirmed, based on static analysis of the code and various internet posts/articles)
The primary problem is that this tuning option: https://github.com/facebook/rocksdb/blob/master/include/rocksdb/options.h#L459 has the default value: -1
-1 means "never close any file descriptors". Only my opinion, but this is insane. This tuning parameter should never, ever be set to -1, and yet that's the default. Go. Figure.
We know it's set to -1 because LOG tells us:
$ grep Options.max_open_files LOG
2021/04/01-15:03:35.479920 7f977d4c3600                          Options.max_open_files: -1

Proposed fix: set max_open_files to something less than infinity, and definitely less than ulimit on the target system.
I'm not sure the implication of a very small value for max_open_files -- if rocksdb is sanely designed, you'd expect to only require as many fd's open as is required to serve the concurrent live database access pattern -- perhaps something like 100 would be plenty. A larger number avoids the overhead of closing and re-opening files, assuming rocksdb needs to access the same files over and over (probably an invalid assumption for our workload). Anyway, I'd suggest trying 1000.
More info here : https://www.bookstack.cn/read/rocksdb-6.14-en/313111 ("When options.max_open_files is set to -1, during DB open, all the SST files will be opened")

@dboreham That's a great analysis. Let's try that! Want to send a PR to where that code change is?

Something to consider is that there may be another problem driving this -- somehow we may be causing rocksdb to create small sst files. If the normal behavior is for sst files to be much larger (say, 2GB which is the typical large file size to avoid issues in some older FS with files > 2GB), then their default of "open all files forever" would, while not a good idea, not actually cause practical problems since you'd only be looking at a few 100 files max.

Doesn't really help us but we wanted to add it anyways.
Open FDs in a swarm of 1 node, running for about one hour, FDs seem to peter around in the 95s, about 2.5K blocks mined. Mode is test, i.e., mining delay is between 0-1 seconds. Not sure whether we can assume that the data production amount is similar to a libra-node / miner that's been running for 2.5K blocks.
2021-05-04:01-26-21   93
2021-05-04:01-26-36   93
2021-05-04:01-26-51   94
2021-05-04:01-27-06   94
2021-05-04:01-27-21   93
2021-05-04:01-27-36   93
2021-05-04:01-27-51   93
...
2021-05-04:02-20-45   95
2021-05-04:02-21-00   95
2021-05-04:02-21-15   95
2021-05-04:02-21-30   94
2021-05-04:02-21-45   95
2021-05-04:02-22-00   95
ls -lh *.sst
-rw-r--r-- 1 ubuntu ubuntu 27M May  3 23:16 000030.sst
-rw-r--r-- 1 ubuntu ubuntu 20M May  4 00:26 000032.sst
-rw-r--r-- 1 ubuntu ubuntu 17M May  4 01:22 000034.sst
-rw-r--r-- 1 ubuntu ubuntu 16M May  4 02:10 000036.sst

https://github.com/tikv/rust-rocksdb/blob/master/src/rocksdb_options.rs#L757

How to set an option : https://github.com/tikv/rust-rocksdb#apply-some-tunings

Fix seems to be to set the max_open_files option here: https://github.com/OLSF/libra/blob/main/storage/schemadb/src/lib.rs#L218

https://github.com/OLSF/libra/pull/533

Thanks @dboreham looks good

Seems resolved in v5 on testnet


Live

Test PR

Docs Build status updates of commit 33d775b:
:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Invoke IParsable using invariant culture

This commit fixes an issue with parsing Oly code on systems with a culture that considers , as a decimal separator.

Awesome! Thank you for catching this!


OC-117 Enable continuous deployment for plugin-clover

Link to GitHub repository
https://github.com/jenkinsci/clover-plugin
When modifying release permission
If you are modifying the release permission of your plugin or component, fill out the following checklist:

### Release permission checklist (for submitters)
- [x] The usernames of the users added to the "developers" section in the .yml file are the same the users use to log in to [accounts.jenkins.io](https://accounts.jenkins.io/).
- [x] All users added have logged in to [Artifactory](https://repo.jenkins-ci.org/) and [Jira](https://issues.jenkins.io/) once.
- [x] I have mentioned an [existing team member](https://github.com/orgs/jenkinsci/teams) of the plugin or component team to approve this request.

When enabling automated releases (cd: true)
Follow the documentation to ensure, your pull request is set up properly. Don't merge it yet.
In case of changes requested by the hosting team, an open PR facilitates future reviews, without derailing work across multiple PRs.
Link to the PR enabling CD in your plugin
https://github.com/jenkinsci/clover-plugin/pull/34
and
https://github.com/jenkinsci/clover-plugin/blob/master/.github/workflows/B-release-jenkins-clover-plugin.yml
### CD checklist (for submitters)
- [ ] I have provided a link to the pull request in my plugin, which enables CD according to the documentation.

### Reviewer checklist
- [ ] Check that the `$pluginId Developers` team has `Admin` permissions while granting the access.
- [ ] In the case of plugin adoption, ensure that the Jenkins Jira default assignee is either removed or changed to the new maintainer.
- [ ] If security contacts are changed (this includes add/remove), ping the security officer (currently `@Wadeck`) in this pull request. If an email contact is changed, wait for approval from the security officer.

There are IRC Bot commands for it.

All users added have logged in to Artifactory and Jira once.

mparfianowicz and marekparf works on issues.jenkins.io (/)
mparfianowicz and marekparf are blocked on repo.jenkins-ci.org (x)

Can't you log in with the same credentials you're using on Jira on artifactory?

I tried and I can't. I had a few invalid password attempts (I did not log in for a long time) so maybe my account was blocked?

so maybe my account was blocked?

Best to file an issue on the helpdesk.

https://github.com/jenkinsci/clover-plugin/actions/runs/6411049291/job/17405672847
{noformat}
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project clover: Failed to deploy artifacts: Could not transfer artifact org.jenkins-ci.plugins:clover:hpi:4.14.0-rc550.9e732fca_5ec9 from/to maven.jenkins-ci.org (https://repo.jenkins-ci.org/releases/): authentication failed for https://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/clover/4.14.0-rc550.9e732fca_5ec9/clover-4.14.0-rc550.9e732fca_5ec9.hpi, status: 401 Unauthorized -> [Help 1]
{noformat}
The plugin builds fine, it stops on deployment, as expected.
Questions:

Are there any naming requirements for actions? I haven't found anything about it in the docs. I named the action "B Release Jenkins Clover Plugin", but in examples I saw "CD".

Is this necessary to have this hash after X.Y.Z number when doing a manual release? I understand it's required for automated releases, for incrementals. But what about explicit ones?

[clover-4.14.0-rc550.9e732fca_5ec9.hpi]

To 1: No, the name of the workflow doesn't matter for its functionality, but "cd" is expected in various metrics and scores, like the plugin health score.
To 2: See the "Manually controlled prefix" part of https://www.jenkins.io/doc/developer/publishing/releasing-cd/#update-maven-pom-and-config how to setup the files accordingly.
The PR linked is incomplete too.

Is this sufficient?
https://github.com/jenkinsci/clover-plugin/pull/47/files

Is this sufficient?

Yes.
If you like, you can make use of https://www.jenkins.io/doc/developer/publishing/requesting-hosting/#integrate-with-jira for https://github.com/jenkinsci/clover-plugin/pull/47/files#diff-101bec72d0f1f84e7290d113531bbd8c6aa355cdc9f456df255544bc0a2da0eaR5-R7, ignoring the Jira part and using openclover/clover URL 😉

I'd like to keep the "OC-" prefix, even if I not use Jira. :)
Thanks for reviewing my changes, I'll merge the PR #47 then.


Parsing json array not working

Test case in 0015.iteration.test.sh is not working.

wow. alright then. look at that.

how could this have ever worked? who's running this thing? Tyler Durden?
  You can use his thing or if you really want mine to work, ask me here.


supporting config.sass.load_paths

Moving from sass-rails to sassc-rails
Turns out sassc-rails does not support config.sass.load_paths directive
This is easy to add to SassC::Rails::Template. I've made a monkeypatch for my app, but if you're interested I may file a PR with this

hey, a PR would be great!

#67


fwupd: 1.9.24 -> 1.9.25

Description of changes
Changelog: https://github.com/fwupd/fwupd/releases/tag/1.9.25
cc @r-vdp

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

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

Result of nixpkgs-review pr 344392 run on x86_64-linux 1

27 packages built:

fwupd
fwupd.debug
fwupd.dev
fwupd.devdoc
fwupd.installedTests
fwupd.lib
fwupd.man
gnome-firmware
gnome-software
kdePackages.discover
kdePackages.discover.debug
kdePackages.discover.dev
kdePackages.discover.devtools
libsForQt5.discover
libsForQt5.kinfocenter
pantheon.elementary-greeter
pantheon.elementary-onboarding
pantheon.elementary-settings-daemon
pantheon.switchboard-plug-about
pantheon.switchboard-plug-pantheon-shell
pantheon.switchboard-plug-power
pantheon.switchboard-plug-security-privacy
pantheon.switchboard-with-plugs
pantheon.wingpanel-applications-menu
pantheon.wingpanel-indicator-power
pantheon.wingpanel-quick-settings
pantheon.wingpanel-with-indicators

@NixOS/nixpkgs-merge-bot merge


chore: add v6 upgrade handler to simapp

Description

Adding upgrade handler for ibc-go/v6 to simapp

This upgrade handler needs to be added to icad. I'll open a follow up PR on the interchain-accounts-demo repo.
ref: #2188

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against correct branch (see CONTRIBUTING.md)
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Code follows the module structure standards.
[ ] Wrote unit and integration tests
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[ ] Added relevant godoc comments.
[ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[ ] Re-reviewed Files changed in the Github PR explorer
[ ] Review Codecov Report in the comment section below once CI passes

Aye! Love it! Nice work, we can link this in our migration docs.
Left suggestions on code documentation. Ideally it should be easy for folks to understand how to do this correctly and why they might need to do it

Good call on code docs. I'll push an update for your suggestions! I have a WIP migration doc in #2417