RS232 control of digital scale

Using https://www.waveshare.com/wiki/Pico-2CH-RS232 and US Solid 3kg scale
EDIT: one Pico-2CH-RS232 is available (in 3D printer room). Both the scale and the adapter that came with the RS232 module are male, so I also ordered  F-F adapters. The same applies for the A&D scale.
I had trouble finding the instructions/manual for the US Solid scale online. Here is a scan of a paper copy:
uss-dbs-series-operation-manual.pdf
The directions are somewhat sparse, perhaps because continuous output is essentially the only option (compared with A&D which has a lot more functionality exposed).
Related microcourse module: https://ac-microcourses.readthedocs.io/en/latest/courses/robotics/3.2-serial-communication.html

Trying to connect the scale to the raspberry pi + base but can't seem to get it to connect.

Hi @evelynnesher, here is the documentation for the PICO-2CH-RS232 module. Connecting the scale directly to the Pico W won't work. You also won't need to user the Maker Pi Pico base. Just the Pico W and the RS232 module (I think it's already plugged in).
The resources from the first post should also help: https://github.com/AccelerationConsortium/ac-training-lab/issues/20#issue-2503809952

@sgbaird I think I don't have a Industrial RS232 to 3.3V TTL Converter.

@sgbaird I think I don't have a Industrial RS232 to 3.3V TTL Converter.

Correct, I'm mostly referring to the code snippet. You have this one https://www.waveshare.com/pico-2ch-rs232.htm (an alternative to the one you linked).

Did I set this up correctly? Still having connection issues

I think that's correct. Could you describe the connection issue in more detail?

When all the parts connect, it is not reading any data.

Specifically, I make sure to check the scale is connected but uart.any() is always empty.
I also make sure to follow the instructions on page 7 of the scale operations manual, data output settings.

Can you share the full code snippet that you're running? Use three backticks to apply code formatting

The following code from module 3.2 of the microcourse:
import machine
import utime

# Initialize UART
uart = machine.UART(1, baudrate=9600, tx=machine.Pin(4), rx=machine.Pin(5))

# Send the "Q" command and read response
uart.write(b"Q\r\n")
utime.sleep(0.1)
if uart.any():
    print(uart.read().decode("utf-8"))

# Continuous reading loop
while True:
    if uart.any():
        print(uart.read().decode("utf-8"))
    utime.sleep(1)

You can remove the "Q" command. That doesn't apply to the US solid scale. It may not affect anything, but will make debugging easier.
Assuming you've set the scale up in continuous output mode per the instruction manual, it may be worth using the uartassist software that was mentioned and connect directly to your computer, however you'll need a different type of cable. I think I have the required connectors in the office. I'll set those aside for you to pick up (likely tomorrow).

Actually, it looks like you have it connected into channel 0, however you're specifying the pins for channel 1 I think. Check the pin legend on the Pico 2ch rs232 wiki.

@sgbaird
I am trying to correctly set up the scale to send continuous output. I follow the continuous output instructions (pasted below/ found on page 7 of the instructions manual), once I get to the last step and I click TARE, it sends the display to C06-0. I provided the reference for C06 displays.

I had ChatGPT write Thonny code that checks if the scale is connected. I believe my issue either lies in the continuous output or the physical setup.
import utime

# Initialize UART1 on pins GP4 (TX) and GP5 (RX)
uart = machine.UART(1, baudrate=9600, tx=machine.Pin(4), rx=machine.Pin(5))

def check_scale_connection():
    print("Checking if the scale is connected...")

    # Try reading data from the UART
    if uart.any():  # If there's data available on the UART
        response = uart.read()  # Read the data
        if response:
            try:
                # Try to decode the response as UTF-8
                decoded_data = response.decode("utf-8").strip()
                print("Scale connected. Data received:", decoded_data)
            except UnicodeDecodeError:
                # If the data cannot be decoded, show it in raw form
                print("Scale connected. Non-text data received:", response)
        else:
            print("Scale connected, but no data received.")
    else:
        print("No data received. The scale may not be connected or may not be sending data.")

# Run the check in a loop to continuously check if the scale is connected
while True:
    check_scale_connection()
    utime.sleep(2)  # Check every 2 seconds

Thanks for the info! I'm not sure what the issue is. Happy to take a look when you're nearby. Otherwise, you could take a video of the full process and I can look over it.

https://github.com/user-attachments/assets/60bff6e9-e8eb-4627-bbc4-e17e1bfe4ec2
I added a video of me following the manual instructions. As for the physical connection, it is the same as the picture I added yesterday except it is in channel 1 instead of 0 to correspond with the code. I have two adaptations of the F-F adapter. When I take the screws out it falls apart/ doesn’t stay inside the port in the scale so I just play around with it until it stays.

https://github.com/user-attachments/assets/ab9fdf10-f28d-4be1-8f42-a9c7c035b08f

It's different from what the instructions say, but maybe worth trying a long press of the tare at the end, or ignoring the last step of pressing tare. Directly connecting to a computer with a DB9 to USB-A cable (in one of the boxes in the room with the 3D printer), and using the uartassist software will likely help with the troubleshooting. We also have a second type of scale that probably has better documentation.

Aside: Some additional Pico 2-channel RS232 modules came in

I’ve gone through every combination of buttons, so the long TARE at the end isn’t the solution. I’ll stop by around 3 tomorrow to pick up the new materials. Will you be available then? If so, we can take a look together; if not, I’ll keep trying to sort it out on my own.

Here's the cable that you should be able to use to connect directly to your computer for troubleshooting. It's in the room with a 3D printer

There is a second scale that may be worth troubleshooting with. This one is more sensitive and needs to stay in the office. Instructions are also different, but I think there are links on the micro course website. This is one that we know can do serial communication.

Thank you! I’d like to start with the first one you provided. If that doesn’t work, I’ll come back and try the second scale.

UartAssist Software worked. Worked with Channel COM9 with the baud rate, parity, data bits, stop bits, and flow control set to the values specified by the scale manual.

Amazing! Narrows things down for sure.

And these were the correct instructions?
https://github.com/AccelerationConsortium/ac-training-lab/issues/20#issuecomment-2375510617

These were the instructions available for using the software

To use the UartAssist Software, you configure the serial options (top left) then click open and it gives you continuous input.

I'm trying everything to debug the issue. Could the problem be related to the fact that the scale's output is 110V/220V while the Pico operates at 3.3V~5V? Could this voltage difference be causing the communication issue?
Scale technical parameters:

Pico-2CH-RS232 Specifications:

As part of my debugging efforts, I wrote some code to check the connection with the scale. The uart.any() method checks for available data in the UART and returns the number of bytes present in the receive buffer. However, it hasn’t provided any clarity, as it consistently returns False/zero. This means that there is no data available (I’m not sure if you already know this, but I wanted to clarify since you mentioned you're not familiar with the RS232 module). Any suggestions/next steps?

import machine
import utime

# Initialize UART
#uart = machine.UART(1, baudrate=9600, tx=machine.Pin(4), rx=machine.Pin(5))
uart = machine.UART(1, baudrate=9600, tx=machine.Pin(4), rx=machine.Pin(5), bits=8, parity=None, stop=1)

#pins 4 and 5, 8 and 9 work
# Function to check if the scale is connected
def check_scale_connection():

    utime.sleep(0.1)

    if uart.any():  # Check if there's any response
        response = uart.read()  # Read the response
        if response:
            print("Scale connected. Response:", response.decode("utf-8").strip())
        else:
            print("Scale is not responding.")
    else:
        print("No response from the scale. Check connections.")

# Check if the scale is connected
check_scale_connection()

Various resources:
Demo code from the "Download Example" section from the wiki, using https://files.waveshare.com/upload/5/5a/Pico_2CH_RS232_Code.7z, which can be downloaded manually and viewed (Windows seemed to do fine opening it up even in the archived state, not sure if that's because I did something special a while back to get it to work with 7z, or if it's a default for Windows now). The following Python example is given:
from machine import UART, Pin
import time

uart1 = UART(1, baudrate=9600, tx=Pin(4), rx=Pin(5))

uart0 = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))

txData = b'RS232 receive test...\r\n'
uart0.write(txData)
time.sleep(0.1)
while True:
        #rxData = bytes()
    while uart0.any() > 0:    #Channel 0 is spontaneous and self-collecting
        rxData0 = uart0.read()
        uart0.write("{}".format(rxData0.decode('utf-8')))
        print(rxData0)
        if(uart0.any()==0):
            uart0.write("\r\n")
    while uart1.any() > 0:   #Channel 1 is spontaneous and self-collecting
        rxData1 = uart1.read()
        uart1.write("{}".format(rxData1.decode('utf-8')))
        print(rxData1)
        if(uart1.any()==0):
            uart1.write("\r\n")

Some other code examples:

General-purpose UART example code by Waveshare
CircuitPython example of using the Waveshare Pico-2CH-RS232 module (user project)

I think the issue may actually be the use of the female-female adapter, in that it flips the connections from what is expected.. this was my bad. I'm planning to get something like the following so we can have more control:
Futheda 5PCS D-SUB DB9 RS232 Interface Breakout Board Connector 9-pin 2-Row Female RS-232 Serial Port Solderless Terminal Block Adapter with Positioning Nuts https://a.co/d/6LEEta6
Likewise, the existing connector could be modified, but maybe better to just wait and go with the one above.

Submitted the following ticket to Pico-2CH-RS232 Wiki page on October 11, 2024.
Hi,
I hope you're doing well.
I'm working on connecting a Pico-2CH-RS232 module to a U.S. Solid Digital Scale. I'm following the RS232 module instructions for continuous output as outlined in the scale's manual, aiming to have the Pico collect and manage the data. The digital scale is connected to Channel 1 on the Pico Base using a Dupont 3-pin to DB-9 wire cable. We've confirmed that the scale works by testing the continuous output with UartAssist software.
However, the main issue we're facing is that, when using MicroPython on Thonny, we cannot read any connection from the scale. After following the continuous output instructions from the scale manual, nothing happens. We have also tried the basic example demo code from the "Download Example" section from the wiki, using https://files.waveshare.com/upload/5/5a/Pico_2CH_RS232_Code.7z
Here’s the code I’m currently using, which continuously prints "No response from the scale. Check connections":
import machine
import utime

# Initialize UART
# uart = machine.UART(1, baudrate=9600, tx=machine.Pin(4), rx=machine.Pin(5))
uart = machine.UART(1, baudrate=9600, tx=machine.Pin(4), rx=machine.Pin(5), bits=8, parity=None, stop=1)

# Function to check if the scale is connected
def check_scale_connection():
while True:
if uart.any(): # Check if there's any response
response = uart.read() # Read the response
if response:
print("Scale connected. Response:", response.decode("utf-8").strip())
else:
print("Scale is not responding.")
else:
print("No response from the scale. Check connections.")

# Check if the scale is connected
check_scale_connection()

Here’s the GitHub thread where we've outlined all the troubleshooting steps we've taken so far:
https://github.com/AccelerationConsortium/ac-training-lab/issues/20
Please let me know if you need further information or have any suggestions on how I can proceed.
Best regards,
Evelyn

https://github.com/user-attachments/assets/9da69e02-e084-4394-aefa-b2872de8c110

I got it working! I used the Female DB9 breakout board adapter with three male-to-male jumper wires. I connected GND to GND, and TX on the breakout board to RX on the Pico. I didn’t need to use the DB9 to multicore cable. I also sent a video showing the continuous output. I’ll attach the code I used as well.

By using the new adapter, I realized the connection issue wasn’t with the Female-Female adapter but with the TX-RX connection. I used the male-male jumper cables with our original setup instead of directly plugging in the DB9 to TX1, RX1 and GND of the microcontroller. I connected the jumper wires as shown in the picture: black to black and red to yellow.
Now, we have two working setups, both very easy to assemble. The only issue with this one is that the Female-Female adapter tends to fall apart because we had to remove the nuts that hold it together to fit it to the scale. No screwdriver was needed for this setup, while one was required for the one mentioned above. The connection is stable in both setups and the speed at which the scale sends data seems to be the same with both setups, but I’ll test it to confirm. When securing the jumper wires into the terminal blocks (screw terminal connectors), the wires may bend slightly. This happens in both setups, but in this one, it’s only on one side, while in the previous setup, it happens on both. However, it doesn’t affect functionality.

Way to go! That's great you figured it out on both setups. Great progress.

Let's ditch the F-F adapter setup. I think sticking with the terminal breakout is fine.
I wouldn't worry much about the data transfer speed. Instead, the next priority will be setting up MQTT and a hugging face spaces web app for it.
This will be very similar to the fan control demo, except without the "send command" aspect. Will share some links.

Now that you have the scale working, can you start working on an MQTT + gradio web app implementation for one way streaming of the scale data?

Definitely, I’ve started already. You want me to use Gradio instead of Streamlit?

Great, and yes - it would be best to switch over (see https://github.com/AccelerationConsortium/ac-training-lab/issues/77#issuecomment-2429034334).

I successfully established the MQTT connection and will now start implementing Gradio. It's currently set up to send the following data:
{
    "weight": "15.5g",
    "time": "2024-10-30 12:34:56",
    "device_id": "ambiguous-goose"
}

On HiveMQ, I can see the following information organized under the columns Message, Topic, and QoS:

For Hugging Face Spaces, would you like a button to turn continuous data on and off, and should the scale send just the weight or include the timestamp and other information? Should the output appear below the button, or would you prefer it to be displayed elsewhere?

Nice! That's great. I think weight and timestamp works, and you can use a unique ID from the Pico W in the topic structure and leave off the device ID. Something like <US Solid product ID>/<Pico ID>.
For id, see https://github.com/sparks-baird/self-driving-lab-demo/blob/3d45417f1832679f84044f52e3c64daeb5437ca3/src/public_mqtt_sdl_demo/main.py#L63. For UTC timestamp, see (https://github.com/sparks-baird/self-driving-lab-demo/blob/3d45417f1832679f84044f52e3c64daeb5437ca3/src/public_mqtt_sdl_demo/lib/sdl_demo_utils.py#L188 and https://github.com/sparks-baird/self-driving-lab-demo/blob/3d45417f1832679f84044f52e3c64daeb5437ca3/src/public_mqtt_sdl_demo/main.py#L106) (i.e., you should synchronize the time via ntptime before calling).
For Hugging Face, I think as soon as it starts up, then start streaming the weigh data. You will want to try to avoid re-instantiating the MQTT client within a session.
Also, I recommend using some variation of the plotting code from https://huggingface.co/spaces/AccelerationConsortium/fan-control

I’ve completed the Gradio app in a personal space on my account. I made two versions: one displays data when you click the refresh button, and the other updates continuously. Let me know what changes to make. I’ll also need access to the Acceleration Consortium space so I can implement it there.
Currently, I run main.py on Thonny to collect the data and send it to HiveMQ, while I run app.py on Hugging Face Spaces to create the graph that retrieves data from HiveMQ.

Needs Refresh:  Continuous:
I’ve completed the Gradio app in a personal space on my account. I made two versions: one displays data when you click the refresh button, and the other updates continuously. The continuous one currently updates slowly, but I'm working on sending real-time updates.
Let me know what changes to make. I’ll also need access to the Acceleration Consortium space so I can implement it there.
Currently, I run main.py on Thonny to collect the data and send it to HiveMQ, while I run app.py on Hugging Face Spaces to create the graph that retrieves data from HiveMQ.

Nice! Can you provide links to these two spaces?

https://huggingface.co/spaces/evelyn-nesher19/scale-test-continous
https://huggingface.co/spaces/evelyn-nesher19/scale-test-refresh
I made distinct visual differences between them so we can choose which best suits our implementation. For the continuous version, we may want to add a screen that shows the exact weight, as it’s difficult to read precise values when the weight fluctuates significantly.
If the graph isn’t connecting, it’s likely because the Raspberry Pi stopped sending information.

Continuously updating graph : https://huggingface.co/spaces/evelyn-nesher19/scale-test-continous
This graph updates smoothly in real-time and includes a refresh button for manual updates.
Manual Refresh Needed: https://huggingface.co/spaces/evelyn-nesher19/scale-test-refresh
This version has a "connection status" button and requires manual refreshing to display the latest data.

Maybe use a sliding window for the data, with a history of ~30 seconds? I don't think a manual refresh is needed in this case. Maybe have a look at the main.py for the fan control demo in the AC training lab repo (nested under src). You can reduce the time sampling so that data points get sent every 2-3 seconds for example.
Overall looks good though!

I just wanted to clarify the suggestion about using a sliding window for the data. Does this mean we'll only display the data using the sliding window, or should I keep the graph showing a few seconds of data and have the sliding window below it to show the history for the past 30 seconds?

I've embedded the space into Gather Town!

Nice! Looks great 😊
I noticed something when trying to click connect:
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/gradio/queueing.py", line 624, in process_events
    response = await route_utils.call_process_api(
  File "/usr/local/lib/python3.10/site-packages/gradio/route_utils.py", line 323, in call_process_api
    output = await app.get_blocks().process_api(
  File "/usr/local/lib/python3.10/site-packages/gradio/blocks.py", line 2015, in process_api
    result = await self.call_function(
  File "/usr/local/lib/python3.10/site-packages/gradio/blocks.py", line 1562, in call_function
    prediction = await anyio.to_thread.run_sync(  # type: ignore
  File "/usr/local/lib/python3.10/site-packages/anyio/to_thread.py", line 56, in run_sync
    return await get_async_backend().run_sync_in_worker_thread(
  File "/usr/local/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 2441, in run_sync_in_worker_thread
    return await future
  File "/usr/local/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 943, in run
    result = context.run(func, *args)
  File "/usr/local/lib/python3.10/site-packages/gradio/utils.py", line 865, in wrapper
    response = f(*args, **kwargs)
  File "/home/user/app/app.py", line 46, in connect_mqtt
    client.tls_set()
  File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 1302, in tls_set
    self.tls_set_context(context)
  File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 1193, in tls_set_context
    raise ValueError('SSL/TLS has already been configured.')
ValueError: SSL/TLS has already been configured.

Fixed! I don't have access to edit AC Hugging Face Spaces Collections, so can't place under "Hardware Control" Collection. Ready to set it up at the office and start my next task.

Nice! If there are any updates to main.py on the microcontroller, do you mind making a PR? If not, you can ignore. The Pico W will need the Nokia credentials, and you can use the 248 broker and username/password (the public test credentials) for now. We may switch to a different one a bit later.

Perhaps the next task will be the autotrickler, since that carries over the RS232 experience and is a natural extension.

Great! Could you comment briefly on how you implemented this? This relates to https://github.com/AccelerationConsortium/ac-training-lab/issues/35, which we're still not decided on in terms of a convention we want to follow.

There are two global variables: connection_status and data_status which store the current MQTT connection status and the state of data reception, respectively. If you need to track other statuses, like a connection for another component or a different piece of data, you can easily add more variables and follow the same approach.
A mutex (status_lock) is used to make sure that only one part of the program can update or read the status at a time. This is important because the program has multiple threads running at once (e.g., the MQTT client handling incoming messages and the Gradio app updating the user interface). Without the mutex, both threads might try to change or read the status at the same time, which could cause errors or confusing results. The mutex ensures that these updates happen one at a time, keeping everything in sync.
The get_status function formats and returns the current status as a string while ensuring thread safety.
In the Gradio app, the status is displayed using a gr.Markdown component (status_md). This component is refreshed every second (every=1), ensuring that the status is kept up-to-date for the user without manual refreshes.
Long story short: The get_status function is called every second to retrieve the latest values for connection_status and data_status, and the Gradio UI is refreshed accordingly to show the updated status.
The current setup causes the UI to "flash" with each refresh. To fix this, I plan to adjust the implementation so that the UI only refreshes when the connection_status changes, instead of refreshing every second.

Nice! A simple workaround for now may be to just increase to 30 s. When a user first goes to the page is the most important time to see the status in my mind (especially if it's not connected or receiving data).

Nice! You can use one of the 5V power adapters any plug it in normally instead of the built in USB spot. Thanks!


Fix resinhup bundle creation directory

fixes https://github.com/resin-os/resinos/issues/211

@floion Any idea why this failed? (build)

That particular one I don't know. Not related to this PR
I retriggered the build and it worked
So merging this PR


installing kills csp directory

Installing cleans up the csp directory. The system portal is broken.
the problem is in the deploypath attribute of the module.xml file

The error is reproduced when
zpm "install iris-csv-anonymizer"
on Windows

fixed


Docker: Store local data on host rather than in container

When updating the docker image one looses the order of the cards. If the Readme for the Docker-File would instruct to mount the folder where this data is stored from the host, this could be avoided.

There exists two kinds of storage, local and s3. I was not aware of the fact that people use local store in production setups.
If you have an idea how to improve the existing documentation in this aspect, go for it. I'm happy to take contributions that clarify this.

I had no idea that two kind of storage exist. Don't see anything about it in https://github.com/nikku/wuffle/blob/master/docs/SETUP.md.
Currently when starting the container with docker-compose I mount the config as a volume:
volumes:
      - ./wuffle/wuffle.config.js:/app/packages/app/wuffle.config.js

I was thinking I could mount the folder where wuffle stores data in just the same way.

Yes, that is an option that could be documented somewhere.

Storage is now documented.
People good at Docker will surely know how to map that file.


Documentation for e2e under wayland

There's an error about trailing whitespace introduced by the use of the tag summary.
Some source files have trailing spaces:
CHANGELOG.md:- [Ogmios](https://github.com/mlabs-haskell/ogmios) - v5.5.7
make: *** [Makefile:34: check-whitespace] Error 1

<details>
  <summary>Spoiler warning</summary>

  Spoiler text. Note that it's important to have a space after the summary tag. You should be able to write any markdown you want inside the `<details>` tag... just make sure you close `<details>` afterward.

  ```javascript
  console.log("I'm a code block!");

```


Bug: Cannot start project

Issue type
I'm submitting a ...  (check one with "x")

[x] bug report
[ ] feature request
[ ] question about the decisions made in the repository

Issue description
I clone the projet, install dependency and start the projet. I always get 404 error (Cannot GET ...)
Current behavior:
Cannot access any pages
Expected behavior:
Application lauch correctly
Steps to reproduce:
1- Git clone project
2- npm install
Get this output:

ngcc --properties es2015 es5 browser module main --first-only --create-ivy-entry-points --tsconfig "./src/tsconfig.app.json"

Warning: Entry point 'ngx-echarts/core' contains deep imports into 'C:/Users/lucdef/Desktop/dev/openStore-front/node_modules/echarts/lib/echarts'. This is probably not a problem, but may cause the compilation of entry points to be out of order.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>- 3 but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of typescript@>= 2.3.1 < 3 but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of tslint@>= 4 < 6 but none is installed.
Warning: Entry point 'ngx-echarts/core' contains deep imports into 'C:/Users/lucdef/Desktop/dev/openStore-front/node_modules/echarts/lib/echarts'. This is probably not a problem, but may cause the compilation of entry points to be out of order.
chunk {main} main.js, main.js.map (main) 2.02 kB [initial] [rendered]
chunk {polyfills} polyfills.js, polyfills.js.map (polyfills) 689 bytes [initial] [rendered]
chunk {runtime} runtime.js, runtime.js.map (runtime) 6.15 kB [entry] [rendered]
chunk {scripts} scripts.js, scripts.js.map (scripts) 1.38 MB [entry] [rendered]
chunk {styles} styles.js, styles.js.map (styles) 3.01 MB [initial] [rendered]
chunk {vendor} vendor.js, vendor.js.map (vendor) 342 kB [initial] [rendered]
Date: 2020-12-11T22:12:12.106Z - Hash: 58bcb38a3e862e6c27e1 - Time: 15459ms
ERROR in The target entry-point "ng2-smart-table" has missing dependencies:

ng2-completer

** Angular Live Development Server is listening on localhost:4200, open you
Other information:
npm, node, OS, Browser
Windows 10 Pro  [version 10.0.19042.685]
'ngx-admin': '6.0.0',
npm: '6.14.8',
ares: '1.16.1',
brotli: '1.0.9',
cldr: '37.0',
icu: '67.1',
llhttp: '2.1.3',
modules: '83',
napi: '7',
nghttp2: '1.41.0',
node: '14.15.1',
openssl: '1.1.1g',
tz: '2020a',
unicode: '13.0',
uv: '1.40.0',
v8: '8.4.371.19-node.17',
zlib: '1.2.11'
}
ngular-devkit/architect       0.1000.8
@angular-devkit/build-angular   0.1000.8
@angular-devkit/core            10.0.8
@angular-devkit/schematics      10.2.0
@angular/cdk                    10.1.1
@angular/cli                    10.2.0
@angular/google-maps            10.2.7
@angular/language-service       10.0.10
@schematics/angular             10.2.0
@schematics/update              0.1002.0
rxjs                            6.6.2
typescript                      3.9.7

@lucdef
The following may be helpful for ng2-smart-table errors.
Due to the version upgrade, the referenced library has been changed.
Https://github.com/akveo/ng2-smart-table/blob/master/CHANGELOG.md

Thank you !
It's working once again

please close!

This issue still persists.

Guys, I think that you should check the project dependencies: if I delete te package-lock.json, many problems arise.
I had to fix these dependencies:

<EMAIL_ADDRESS>is not compatible with<EMAIL_ADDRESS>it must be updated to 3.8.0
tslint-language-service: is not compatible with tslint >= 6 (removed tslint-language-service, it is an old package and probably is not needed anymore, most IDE support tslint well now)

Sorry for not opening a new issue, I've found this one which is very similar, so I've added my 2 cents here.
Cheers!

Guys, I think that you should check the project dependencies: if I delete te package-lock.json, many problems arise.
I had to fix these dependencies:

<EMAIL_ADDRESS>is not compatible with<EMAIL_ADDRESS>it must be updated to 3.8.0
tslint-language-service: is not compatible with tslint >= 6 (removed tslint-language-service, it is an old package and probably is not needed anymore, most IDE support tslint well now)

Sorry for not opening a new issue, I've found this one which is very similar, so I've added my 2 cents here.
Cheers!


etcd dashboard blank when using kops

Could someone provide instructions or guidance on getting the etcd dashboard to work for a cluster brough up with kops?  I did not bring up an HA mode.
From what I can tell, etcd has port 2380 open, but not 2379. So I'm confused as to where the metrcs endpoint is when using kops to create the cluster.

The metrics endpoint of etcd is on the 2379 port (and optionally an additional one that you can specify starting with etcd v3.3). You may need to open firewall rules if you are running Prometheus on a non master (I would recommend running it on a master node though).
If your etcd is not visible through the Kubernetes API, you will need to use something along the lines of this to monitor an external etcd: https://github.com/coreos/prometheus-operator/blob/master/contrib/kube-prometheus/docs/Monitoring external etcd.md
I will close this as there is no issue with the Prometheus Operator here.


reordered cards

Changed the cards order, with Install as first card, and neural modeling after background.
Emphasis on "virtual environment".

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

Project coverage is 97.24%. Comparing base (32132b1) to head (aeacda7).
Report is 379 commits behind head on development.

Additional details and impacted files
@@               Coverage Diff               @@
##           development     #237      +/-   ##
===============================================
- Coverage        97.30%   97.24%   -0.06%
===============================================
  Files               18       20       +2
  Lines             1669     1815     +146
===============================================
+ Hits              1624     1765     +141
- Misses              45       50       +5

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


Unable to open at current working Folder using "wt"

OS Used: Windows 10
Default Terminal is Powershell 7
When I try to open Windows Terminal using "wt". It opens at the default folder setting.
Can anyone know how to fix this issue

You need to use wt -d . to have it start in the current folder.

Thank you for your response.
"wt -d . " works.
I also figured out that if you use

at defaults section, you can only use "wt" command and it open windows terminal at the working folder

I think this should be default behavior similar to PS or cmd


⚠ Bofrost.fr has degraded performance

In 1885511, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1397 ms

Resolved: Bofrost.fr performance has improved in d71bba6 after 32 minutes.


SW-2800 Sort enums using locale's ordering rules

Different locales have different rules for sorting text. When an enum field is
used as a sort field in a search API call, we need to sort based on the correct
rules.
We were already mapping enum values to localized display names for sorting
purposes, but that would have ended up sorting based on the database's default
rules. Make this more correct and more efficient by instead mapping enum values
to integers representing the correct sort order of the localized display names.
For gibberish, there's no behavior change here since gibberish uses English
sort ordering. The existing tests that cover this functionality continue to pass.

Current dependencies on/for this PR:

main

PR #927   👈

This comment was auto-generated by Graphite.


HIVE-26670: Track every single HTTP request between beeline and hs2

What changes were proposed in this pull request?

Why are the changes needed?

Does this PR introduce any user-facing change?

How was this patch tested?

Thanks, @abstractdog ! This looks useful. I entered a few comments. Additionally, have you explored if any unit testing is possible?

thanks a lot @cnauroth! honestly, I haven't found existing unit tests in this area to extend easily, and I was lazy :) but it's time now to improve, let me check

@cnauroth, pushed a new commit: https://github.com/apache/hive/pull/3710/commits/7579d5f65f92780658bd70c7230221294613a263
can you check if it's okay?

+1 (non-binding)
@abstractdog , thanks for your patience responding to the code review feedback!

thanks a lot, @cnauroth for the quality code review!

Thanx Laszlo, just some nits. rest LGTM

thanks, fixed them!


ARROW-3017: [C++] Don't throw exception in arrow/util/thread-pool.h

Simple patch for resolving https://issues.apache.org/jira/browse/ARROW-3017

Codecov Report

Merging #2472 into master will increase coverage by 1.27%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master    #2472      +/-   ##
==========================================
+ Coverage   86.21%   87.48%   +1.27%
==========================================
  Files         308      246      -62
  Lines       46980    43311    -3669
==========================================
- Hits        40502    37890    -2612
+ Misses       6404     5421     -983
+ Partials       74        0      -74

Impacted Files
Coverage Δ

cpp/src/arrow/util/thread-pool.h
85.71% <0%> (-6.6%)
:arrow_down:

cpp/src/arrow/test-util.h
76.74% <0%> (-1.56%)
:arrow_down:

rust/src/record_batch.rs

go/arrow/datatype_nested.go

rust/src/array.rs

go/arrow/math/uint64_amd64.go

go/arrow/internal/testing/tools/bool.go

go/arrow/internal/bitutil/bitutil.go

go/arrow/memory/memory_avx2_amd64.go

rust/src/error.rs

... and 54 more

Continue to review full report at Codecov.

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


Support for color themes

Is there a way to change the color theme within config.yml for the interface?

Not currently. I'd be happy to entertain the idea.
Feel free to share what you think would be a reasonable amount of configuration in config.yml.
If I recall correctly, I used a single hard-coded color across the whole app, defaulting to your terminal colors for all other text.
That would mean something like this in config.yml
primary_color: #HEXCODE
secondary_color: #HEXCODE

Yes, if I could change foreground t st and background color, that would be fantastic. I want to match my grubhub-dark theme with kitty term.

Do you mind sharing what it looks like in kitty right now?
It's been a while since I've worked on the views for this application. I believe it was somewhere around 2018 when I implemented all that, so I'll need to refresh myself.
With that said, I'm fairly confident I'm only changing text colors, and not the background. So, I believe your terminal background color is what you'll see. So I'd love to see an image of your terminal running di-tui, and perhaps a screenshot of it not running di-tui, with something innocuous on the screen.

So, when I switch manually to the darker config through the kitten, I can get closer to what I want, but I would like the ability to modify separate from it.
kitty +kitten themes

di-tui screeen interface

kitty config interface

terminal output

Ok thanks a lot, that's interesting. di-tui is clearly setting a background, although perhaps not directly.

I've got a themeable build ready, but I want to fiddle with the default colors some more before triggering a release.

@ryanmusante If you're comfortable checking out a branch and running the app with go run main.go, you can try out the branch associated with this PR to see if you can achieve what you'd hoped to achieve style-wise.
Have a look at its README.md for a starter theme to start making your changes from.

Sure, to confirm, the branch is?
git clone https://github.com/acaloiaro/di-tui/tree/add-color-theme-support

Yep that's the one.

I installed with go, but for some reason, it won't launch the binary
~ > ps -ef | grep di-tui
────────────────────────────────────────────────────────────────────────────────
     STDIN
 413 root        5703       2  0 10:44 ?        00:00:00 [kworker/u32:5-events_u
     nbound]
 414 root        5704       2  0 10:44 ?        00:00:00 [kworker/u32:6]
 415 ryan        5712    2174  0 10:45 pts/2    00:00:00 /home/ryan/go/bin/di-tu

~ > locate di-tui
/home/ryan/.config/di-tui
/home/ryan/.config/di-tui/config.yml
/home/ryan/go/bin/di-tui
/home/ryan/go/pkg/mod/cache/download/github.com/acaloiaro/di-tui
/home/ryan/go/pkg/mod/cache/download/github.com/acaloiaro/di-tui/@v
/home/ryan/go/pkg/mod/cache/download/github.com/acaloiaro/di-tui/@v/list
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

Unfortunately this isn't related to the theme branch. Believe it or not, di.fm is suffering an outage https://maintenance-di.pages.dev/
In the mean time, you can go install github.com/acaloiaro/di-tui@add-color-theme-support to get this proposed theme build installed locally.
Once di.fm is back online and I get your test results back, I can cut a build assuming there are no issues.

Digitally Imported has been a life giving apparatus to be honest. Electronia in rare form. There is no other streaming service that even compares. Thanks to all your work with this app!

np! This multi-day di.fm outage is painful.

Is it another DDOS? What purpose do hackers have in breaking up a music service?

DI is back in biz: go install github.com/acaloiaro/di-tui@add-color-theme-support and give it a whirl

Fixed by #14

Looks great with default!

Awesome, thanks for testing and requesting!


Support docker deployment

Hi,
I didn't see any mention of Docker in the issues (except on the discussion of Typemill v2) so forgive me if I missed some.
Would you accept a PR for a simple integration of Docker in the project to give the ability for people who don't want to install PHP locally to have a quick workaround?
The end commit should not have more than three files/folder added to the master root path: a Dockerfile, a .dockerignore & a docker-utilities folder with some bash boot scripts for Docker.
Also I would provide a how-to documentation for the installation path in the place and form of your choice.
What do you think before I start coding this? What would be the macro steps to take care of you would advice?
Thanks in advance a have a great day!

Hi Matthieu,
that is highly welcome, thank you!!
Have a great day
Sebastian

Solved by #338

Sooooo, this is published with <IP_ADDRESS> now, great contribution!!!


Multiply edges

I have a problem that some two nodes have many edges - Im adding only one connection. Ive tried using drawConnections() method but the result is the same.
Kind regards!

Ive solve the problem by adding id property to Edge class. Additionaly thanks that Im able to get human readable connected nodes by given edge the id value is: from - to. My suggestion is to implement this approach.


OS X Swift installation test fails due to using prebuilt binary for wrong Swift version

When releasing v2.4.3 tonight the installation examples job failed: https://ci.realm.io/job/Cocoa Release Installation Examples/37/.
In particular, the two jobs that test Swift with our prebuilt dynamic libraries fail with errors like this:
/Users/realm/workspace/Cocoa Release Installation Examples/binding/swift/method/dynamic/platform/osx/realm-cocoa/examples/installation/osx/swift-3.0/DynamicExample/DynamicExample/AppDelegate.swift:20:8: error: module compiled with Swift 3.0 cannot be imported in Swift 3.0.2: /Users/realm/workspace/Cocoa Release Installation Examples/binding/swift/method/dynamic/platform/osx/realm-cocoa/examples/installation/osx/swift-3.0/DynamicExample/../../../realm-swift-latest/osx/swift-3.0/RealmSwift.framework/Modules/RealmSwift.swiftmodule/x86_64.swiftmodule
It looks like Xcode 8.2 with Swift 3.0.2 is being used to build the example, but something is pulling in the Swift 3.0.0 version of the framework.

The Xcode projects in question hard-code the swift-3.0 framework path in their framework search paths. We need to update the version specified in the project and/or explicitly specify which version of Xcode the CI job uses.


Auth Backend: Refactor Google provider to reduce dependency on passport

PassportJS is a black box when it comes to using it as a middleware and handling errors so refactor to get more control over error flow and reduce dependency on passportJS.

use passport only for the provider strategy
remove the need for middlewares in auth-backend/service/router.ts

I can pick this up!

:trollface:


Update pyOpenSSL version

After a recent run of dev_setup.py I have been experiencing  the following error:
\keyvault\custom.py", line 12, in <module>
    from OpenSSL import crypto
  File "C:\Users\trpresco\Documents\github\azure-cli\env\lib\site-packages\OpenSSL\__init__.py", line 8, in <module>
    from OpenSSL import rand, crypto, SSL
  File "C:\Users\trpresco\Documents\github\azure-cli\env\lib\site-packages\OpenSSL\SSL.py", line 112, in <module>
    SSL_ST_INIT = _lib.SSL_ST_INIT
AttributeError: module 'lib' has no attribute 'SSL_ST_INIT'

This occurs on both Python 2 and 3 (though it manifests worse in Python 2). Updating the pyOpenSSL version fixes this issue.

Codecov Report

Merging #2473 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #2473   +/-   ##
=======================================
  Coverage   72.44%   72.44%
=======================================
  Files         362      362
  Lines       19547    19547
  Branches     2865     2865
=======================================
  Hits        14160    14160
  Misses       4475     4475
  Partials      912      912

Continue to review full report at Codecov.

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


tiled 1.9?

Hi
I see tiled 1.8.4 is going to be supported but now there is Tiled 1.9 alpha
Do you know if there is another change in the format or will tiledcs still work with 1.9?
I read automapping is changed (or something I don't use)

Hi
I am going to look at Tiled 1.9 support when the alpha release has become the next stable one. Version 1.8.4. is the latest stable as to date.
With kind regards,
TheBoneJarmer


Add a build tool

Phing would be more than suitable.

No need for a build tool. Github packages the source in nice tarball and we have circleci running.


Fix tests

Tests were complaining about CREATE EXTENSION postgis - this PR fixes that. Also, running tests now generates some coverage reports.

test this please

test this please

Doesn't work for me - enters an endless loop saying
curl: (7) Failed to connect to  port 80: Connection refused
Waiting for  ...

I suggest splitting this into two scripts, as the 'wait for db container' functionality is only needed by Jenkins - so cut the wait_for definition and call out into a separate script (test_ci.sh ?) that then calls this script (which just runs the tests)

test this please

test this please

test this please

(thumbsup)


Does it work from a compiled app run on another machine / from another user?

See this issue:
https://github.com/JuliaPy/PyCall.jl/issues/981

That problem doesn't affect PythonCall.


[BUG] cluster created but not displayed in UI

Describe the bug
A cluster was created with autok3s successfully but no cluster was shown in autok3s UI.

To reproduce
[cluster] k3s master command: curl -sLS http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_TOKEN='1527938602b358b53a4adec5c85245e0' INSTALL_K3S_EXEC='server  --tls-san <IP_ADDRESS> --tls-san <IP_ADDRESS> --node-external-ip <IP_ADDRESS> --cluster-cidr <IP_ADDRESS>/16 --cluster-init' INSTALL_K3S_CHANNEL='stable' sh -
on the node it says:

Later I recreated a same cluster
[INFO]  Skipping /usr/local/bin/kubectl symlink to k3s, already exists
[INFO]  Skipping /usr/local/bin/crictl symlink to k3s, already exists
[INFO]  Skipping /usr/local/bin/ctr symlink to k3s, command exists in PATH at /usr/bin/ctr
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
[INFO]  systemd: Starting k3s
This time kubectl gives a TLS handshake timeout and still nothing in UI:
[root@k3sserver-4 ~]# autok3s kubectl config use-context test
Switched to context "test".
[root@k3sserver-4 ~]# autok3s kubectl get pods -A
Unable to connect to the server: net/http: TLS handshake timeout
Environments (please complete the following information):

AutoK3s Version [e.g. v0.4.0]
Same OS on four nodes: cat /proc/version
Linux version 3.10.0-1160.11.1.el7.x86_64<EMAIL_ADDRESS>(gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Fri Dec 18 16:34:56 UTC 2020

other k3s version
I also tried 1.19.5 but failed with same problem

cluster created by native provider won't show up in the UI list for current version(https://github.com/cnrancher/autok3s/issues/330)
If you want to create cluster with the same node, please uninstall k3s for each node

thanks for the quick reply!
k3s is uninstalled on all four nodes but I noticed that the deleted cluster option remains in the 'launch kubectl' selector.
Is there any thing to do with that?

For now, there's nothing we can do, sorry :) But you can try to reinstall with the same name of your native cluster, then the kubeconfig file will update for the new cluster.


receiving The specified key does not exist after exiting amplify env add flow mid-init

How did you install the Amplify CLI?
pnpm
If applicable, what version of Node.js are you using?
18
Amplify CLI Version
11.1.1
What operating system are you using?
mac
Did you make any manual changes to the cloud resources managed by Amplify? Please describe the changes made.
n/a
Describe the bug
After exiting amplify env add shortly after it started deploying the root stack will produce an environment that you cannot pull or recreate, forcing you to manually delete the stack in the CloudFormation console.
When we do this, the stack still creates the deployment bucket but it will be empty, thus the reason why we run into this error.
Expected behavior
Amplify CLI allows deleting the stack if the bucket is empty.
Reproduction steps

amplify init -y
amplify env add asdf
wait for it to start deploying the root stack and ctrl+c
observe amplify env add asdf produces "Stack [amplify-1432-asdf-110206] already exists"
observe amplify pull --envName asdf --appId <my-app-id> produces "Error downloading #current-cloud-backend.zip from deployment bucket: amplify-1432-asdf-110206-deployment, the error is: The specified key does not exist."

Project Identifier
No response
Log output

# Put your logs below this line

Additional information
No response
Before submitting, please confirm:

[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
[X] I have removed any sensitive information from my code snippets and submission.

was able to reproduce the issue. marking as bug.

also observed that message ✔ An unexpected error has occurred, opt in to send an error report to AWS Amplify with non-sensitive project configuration files. Confirm  (y/N) ·  prompt was hidden and showed as a hang state until i hit enter.


404 precompiled binary for OTP 26.1.1

** (RuntimeError) Failed to fetch https://burrito-otp.b-cdn.net/OTP-26.1.1/darwin/aarch64/otp_26.1.1_darwin_aarch64_ssl_1.1.1s.tar.gz?please-respect-my-bandwidth-costs=thank-you! (Got 404) Perhaps we haven't built a pre-compiled Erlang for this release yet? If this was a 404, please file an issue! Thanks!

You are correct! Haven't built those yet. Let me go ahead and kick those off...

All built!


SetController test

:tada: This PR is included in version 2.0.1-beta.58 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Task.json shouldn't need to be manually created to build .NET projects before debugging

For .NET debugging, we currently need to have the user manually create a tasks.json in order to support build. We would like to find some solution to avoid the user needing to do this manually.
A few options:

Support simple shell commands directly inside of launch.json. So if all the user wants to do is execute a command with a default error syntax they don't need this extra file. Example:
"preLaunchCommand": "dotnet compile"
Which would execute 'dotnet compile' in the workspace directory.
-or-
Support auto-generating a tasks.json when creating launch.json. This way we can give them a good default value of it and the user doesn't need to manually enter it.
-or-
Support defining tasks in an extension's package.json. So the user only needs to create a launch.json if they want to do something weird.

FYI @weinand @dbaeumer

@gregg-miskelly after discussing with @dbaeumer we think it is best that we help the user generate tasks.json file. We can not move the task running logic inside the launch.json since then we would have to replicate all the tasks logic into debug.
Is the task that you want to run a prelaucnh task, or would the user want to run it independent of debug?

Ideally, it would be nice if people could run it some other way too. But running it as a preLaunchTask is the biggest thing that we care about.

After discussing with @dbaeumer we should introduce a way for an extension to contribute an 'initial' tasks.json. This should all live in the task framework, however this is not a small effort so moving it to the backlog and assigning to Dirk.

After discussing with @dbaeumer we should introduce a way for an extension to contribute an 'initial'  tasks.json .

Yes, please!  With the PowerShell extension we want to provide a default task to run Pester tests.  It would be great to define an initial tasks.json file like we can for the launch.json file.  Except what would be the user action to initiate the creation of the tasks.json file from the initial config stored in package.json? It wouldn't make sense for the Debug view gear icon which creates the launch.json file to also create the tasks.json file.

Moved the comment from @rkeithhill to #966.

After investigating into this issue we came up with the following proposal:

Handle the situation more gracefully when a preLaunchTask cannot be found. This is tracked in #3081
The .net extension should avoid this situation all together by creating a task.json for the user when one doesn't exist yet. This can be done when the extension is activated.

Rejected proposals:

Support to launch a shell command as a preLaunchTask. To make this properly requires to support all the configuration options (e.g. platform specific commands) that is already provided by the task.json. It doesn't make sense to duplicate this inside the launch.json.
Generate the task.json by the generator yo or aspnet - the generators do not want to generate tool specific files.

Closing this issue.


Gas Tank Recipe in NEI

Hello, while creating Project Ozone 2, the Basic Gas Tank won't display its recipe in NEI. I have to craft it first before I can see the recipe by pressing "R" in NEI, but it won't display the recipe directly. The Advanced, Elite, and Ultimate Gas Tanks don't show up in NEI at all. Using Version: <IP_ADDRESS>1 the recommended version. Should I update to the latest?

This is due to a mod interaction, I can't put my finger on the name right now. Make sure your mods list is totally up to date.

all mods are as updated as curse will let me.


release on conda-forge or similar?

Hi there,
Are there plans to release the package for conda installation through conda-forge or another channel? I would love to be able to conda install this package so it will track in my conda environments.
(My personal machine is on Mac OS, and I also work on a Linux server, so if I could put in requests for build OSs it would be those.)
thank you for your consideration!

hi Monica,
conda should track packages installed from PyPI (by pip), could you provide steps to reproduce your issue?
>>> conda activate ...
>>> pip install onnx2torch

>>> pip list | grep onnx2torch
onnx2torch              1.4.1

>>> conda list | grep onnx2torch
onnx2torch                1.4.1                    pypi_0    pypi

Hi, yes! onnx2torch does appear as being sourced from PyPI when I conda list.
conda list | grep onnx2torch
onnx2torch                1.4.1                    pypi_0    pypi

I should have been a bit more specific--are there plans to release the package on a channel like conda-forge such that this works to install as well?
conda install -c conda-forge onnx2torch

Where possible, I've been trying to only use the conda-install-able versions of packages so that I don't accidentally overwrite a dependency for a pip-installed package by conda installing something else later. I'm just starting a new project so I definitely haven't yet discovered or installed all the packages I might need by this point!

Where possible, I've been trying to only use the conda-install-able versions of packages so that I don't accidentally overwrite a dependency for a pip-installed package by conda installing something else later. I'm just starting a new project so I definitely haven't yet discovered or installed all the packages I might need by this point!

got it, I think we can release onnx2torch to conda-forge on the next week.

Monica,
we submitted PR for conda-forge: https://github.com/conda-forge/staged-recipes/pull/20266, as soon as it is accepted you can install onnx2torch by using conda install -c conda-forge onnx2torch command.
Feel free to open new issues and good luck in your research.

confirmed that it installed from the conda-forge channel! thank you again!


send_later: Add send later feature.

Not too sure about the icon.

I definitely want to write some tests here but not motivated to do it today.

I think for the UI widget to request "Send later", the approach used by GitHub and Gmail for this sort of variable default button of having a menu attached to the button is great:

I merged 3 of the prep commits as the series ending with 9af4d5a155a14bc68d7e850b4aa97dbcd7df1d03.

I posted a batch of comments on code details; overall this looks promising.  I think one thing we should change in the interaction design is using the same approach used by Gmail, where you click an arrow next to the send button, select "Send later", we provide the popover to pick a date/time (possibly followed by "Custom" flatpickr), and then once you've picked something, we change the button label to "Schedule send for {time}", and only clicking that button confirms (and you can switch back, or change your selection by re-clicking the arrow).  I think 95% of the time, folks will want to pick the time while still having the message partially composed, and it'll be confusing for that to trigger an immediate scheduling of the message.
Thanks @amanagr!  I'm really excited about this.

diff:
diff --git a/static/js/popover_menus.js b/static/js/popover_menus.js
index 79562a4c69..448f4e33b0 100644
--- a/static/js/popover_menus.js
+++ b/static/js/popover_menus.js
@@ -14,7 +14,7 @@ import * as blueslip from "./blueslip";
 import * as compose from "./compose";
 import * as compose_actions from "./compose_actions";
 import {show_flatpickr} from "./composebox_typeahead";
-import {$t} from "./i18n";
+import {$t, $t_html} from "./i18n";
 import * as narrow_state from "./narrow_state";
 import * as popovers from "./popovers";
 import * as reminder from "./reminder";
@@ -23,6 +23,7 @@ import * as settings_data from "./settings_data";
 let left_sidebar_stream_setting_popover_displayed = false;
 let compose_mobile_button_popover_displayed = false;
 let compose_send_later_popover_displayed = false;
+let selected_send_later_time;

 const default_popover_props = {
     delay: 0,
@@ -151,13 +152,25 @@ export function initialize() {
         },
     });

-    function schedule_message_to_custom_date(send_at_time) {
+    $("body").on("click", "#send_later .schedule_confirm", () => {
+        schedule_message_to_custom_date();
+    });
+
+    function show_schedule_confirm_button(send_at_time) {
         if (!send_at_time) {
             return;
         }
+        selected_send_later_time = send_at_time;
+
+        $("#send_later .schedule_confirm").show();
+        $("#send_later")[0]._tippy.setContent(
+            $t_html({defaultMessage: `Send at {send_at_time}`}, {send_at_time}),
+        );
+    }

+    function schedule_message_to_custom_date() {
         const request = compose.create_message_object();
-        request.content = `/schedule ${send_at_time}\n` + request.content;
+        request.content = `/schedule ${selected_send_later_time}\n` + request.content;
         reminder.schedule_message(request);
     }

@@ -213,7 +226,7 @@ export function initialize() {
         onMount(instance) {
             const $popper = $(instance.popper);
             $popper.one("click", "#send-later-custom-input", () => {
-                show_flatpickr($("#send_later")[0], schedule_message_to_custom_date, new Date());
+                show_flatpickr($("#send_later")[0], show_schedule_confirm_button, new Date());
             });

             $popper.one(
@@ -221,7 +234,7 @@ export function initialize() {
                 ".send_later_hours, .send_later_tomorrow, .send_later_days_and_weeks",
                 (e) => {
                     const send_at_time = set_compose_box_schedule(e.currentTarget);
-                    schedule_message_to_custom_date(send_at_time);
+                    show_schedule_confirm_button(send_at_time);

                     instance.hide();
                     e.stopPropagation();
diff --git a/static/js/reminder.js b/static/js/reminder.js
index fdcc67bfac..8a4bf67e68 100644
--- a/static/js/reminder.js
+++ b/static/js/reminder.js
@@ -10,6 +10,7 @@ import * as message_lists from "./message_lists";
 import * as notifications from "./notifications";
 import {page_params} from "./page_params";
 import * as people from "./people";
+import * as timerender from "./timerender";
 import * as transmit from "./transmit";
 import * as util from "./util";

@@ -85,13 +86,15 @@ export function schedule_message(request = compose.create_message_object()) {
@@ -85,13 +86,15 @@ export function schedule_message(request = compose.create_message_object()) {
     );

     const success = function (data) {
+        const deliver_at = timerender.stringify_time(data.deliver_at);
         if (request.delivery_type === deferred_message_types.scheduled.delivery_type) {
-            const deliver_at = data.deliver_at;
             notifications.notify_above_composebox(
                 $t_html({defaultMessage: `Message scheduled for {deliver_at}`}, {deliver_at}),
             );
         }
         $("#compose-textarea").prop("disabled", false);
+        $("#send_later .schedule_confirm").hide();
+        $("#send_later")[0]._tippy.setContent($t({defaultMessage: "Send later"}));
         compose.clear_compose_box();
     };
     const error = function (response) {
diff --git a/static/styles/compose.css b/static/styles/compose.css
index 25fc580f04..7d7ee336e4 100644
--- a/static/styles/compose.css
+++ b/static/styles/compose.css
@@ -577,6 +577,16 @@ a.compose_control_button.hide {
         height: 15px;
     }

+    .schedule_confirm {
+        display: none;
+        padding-left: 6px;
+        /* Same as send button */
+        font-size: 0.9em;
+        font-weight: 600;
+        position: relative;
+        bottom: 0.5px;
+    }
+
     &:hover {
         opacity: 1;
         text-decoration: none;
diff --git a/static/templates/compose.hbs b/static/templates/compose.hbs
index<PHONE_NUMBER>..d376b48b6d 100644
--- a/static/templates/compose.hbs
+++ b/static/templates/compose.hbs
@@ -91,6 +91,7 @@

+                                    {{t 'Schedule' }}

                                 <button type="submit" id="compose-send-button" class="button small send_message animated-purple-button" title="{{t 'Send' }} (Ctrl + Enter)">{{t 'Send' }}</button>

diff after this:
diff --git a/static/js/popover_menus.js b/static/js/popover_menus.js
index 448f4e33b0..333686fefa 100644
--- a/static/js/popover_menus.js
+++ b/static/js/popover_menus.js
@@ -152,14 +152,24 @@ export function initialize() {
         },
     });

+    function schedule_message_to_custom_date() {
+        const request = compose.create_message_object();
+        request.content = `/schedule ${selected_send_later_time}\n` + request.content;
+        reminder.schedule_message(request);
+    }
+
     $("body").on("click", "#send_later .schedule_confirm", () => {
         schedule_message_to_custom_date();
     });

-    function show_schedule_confirm_button(send_at_time) {
+    function show_schedule_confirm_button(send_at_time, not_from_flatpickr) {
         if (!send_at_time) {
             return;
         }
+        if (!not_from_flatpickr) {
+            send_at_time = format(new Date(send_at_time), "MMM d yyyy h:mm a");
+        }
+
         selected_send_later_time = send_at_time;

         $("#send_later .schedule_confirm").show();
@@ -168,12 +178,6 @@ export function initialize() {
         );
     }

-    function schedule_message_to_custom_date() {
-        const request = compose.create_message_object();
-        request.content = `/schedule ${selected_send_later_time}\n` + request.content;
-        reminder.schedule_message(request);
-    }
-
     function set_compose_box_schedule(element) {
         const send_later_in = element.id;
         const send_later_class = element.classList[0];
@@ -234,7 +238,8 @@ export function initialize() {
                 ".send_later_hours, .send_later_tomorrow, .send_later_days_and_weeks",
                 (e) => {
                     const send_at_time = set_compose_box_schedule(e.currentTarget);
-                    show_schedule_confirm_button(send_at_time);
+                    const not_from_flatpickr = true;
+                    show_schedule_confirm_button(send_at_time, not_from_flatpickr);

                     instance.hide();
                     e.stopPropagation();
diff --git a/static/js/reminder.js b/static/js/reminder.js
index 8a4bf67e68..53afc1875a 100644
--- a/static/js/reminder.js
+++ b/static/js/reminder.js
@@ -10,7 +10,6 @@ import * as message_lists from "./message_lists";
 import * as notifications from "./notifications";
 import {page_params} from "./page_params";
 import * as people from "./people";
-import * as timerender from "./timerender";
 import * as transmit from "./transmit";
 import * as util from "./util";

@@ -86,7 +85,6 @@ export function schedule_message(request = compose.create_message_object()) {
     );

     const success = function (data) {
-        const deliver_at = timerender.stringify_time(data.deliver_at);
         if (request.delivery_type === deferred_message_types.scheduled.delivery_type) {
             notifications.notify_above_composebox(
                 $t_html({defaultMessage: `Message scheduled for {deliver_at}`}, {deliver_at}),

I posted https://chat.zulip.org/#narrow/stream/6-frontend/topic/Send.20later.20feature/near/1282027 for further discussion of the UI.  Overall I think this is getting close to being mergeable.

Putting a comment here, since I feel like the #frontend thread is getting unwieldy...
I think we want a different set of options for the pre-selected times, as the main use case for this feature is to send something during business hours the next day, or perhaps a few days later.
For reference, Gmail:

And Slack:

I think Gmail's options are pretty good. I also like that they express both the concept (e.g. "Tomorrow morning") and the precise time, and helpfully confirm the time zone.

Keyboard enter to open popover is not working for some reason (trying to debug it). Other than that, this should be ready for review.

Resolved conflicts and enter to show the popover works.

@amanagr can you rebase following #20530?

Also I think this is a glitch, but I don't see an icon here after checking it out -- didn't rebase+provision so that may be the explanation.

I merged the first few prep commits, since they seemed clean and independent, as the series ending with b3886af651b368025ccaa8468d667ebcbd71391f.

@alya can you do a final product review on this?

I merged the first commit as 98fa5c9ae2e926d609444d7195d09604ada7c013.

I just spend some time playing around with this -- will post a few pieces of feedback as separate comments.

There are a few problems with the "Clear selected" button. I'll write them all up, but I do wonder if we want it at all, or if we should do something else (e.g. an "x" on the selected option).

Most importantly from a UX perspective, there's nothing in the menu to indicate what you have selected. We should make the current selection clear there.

The button feels like it's in the wrong place to me. I think it should be below the "Custom" option.

I'm not sure about the styling; it especially doesn't look great when combined with the hover effect:

The styling is definitely off in dark theme:

The calendar icon looks too complex/distracting to me right next to the "Send" button. I think most apps just use a caret pointing down, and we should probably do the same. We'll need to add a header to the menu to make it clear what's going on (e.g. "Schedule message").

Chatting with @timabbott  a bit about "Clear selected", we should probably just add that info at the top. Something like: "Scheduled for XXX", which can be cleared with an x or a "Clear" button.

We should make how times are displayed consistent with the time widget by adding a comma before the time (e.g. Jan 28 2022, 12:56 PM or Tomorrow, 9 AM.

It would be better English for the tooltip to say "Send at 9:05 AM on Jan 11 2022"; I think we should change it to that.

I think the really big thing we're missing at this point is having some way to review scheduled messages and cancel if needed. I can be very unpleasant if you realize you shouldn't send a message anymore, but you can't do anything about it. So I think this should be a blocker for releasing this feature.
Because it's a decent amount of additional work, I'm going to remove the "release goal" label from the issue and mark it as "post release" instead. I'll write up an issue for the UI to review scheduled messages.

Okay, makes sense to release it with a dialog to manage scheduled messages. Thanks for the review!

This can be closed since we merged a version of this via #23670.


use_triton=True always chooses the first device

https://github.com/PanQiWei/AutoGPTQ/blob/144bd804369264998dce2ca5b97a365d01a725a6/auto_gptq/modeling/_base.py#L489-L493
When you set use_triton=True then the device is automatically set to cuda:0. But is it really necessary to set it to the first device? Let's assume I'm passing device="cuda:1" and use_triton=True to from_quantized. After that the device will be changed from cuda:1 to cuda:0. But can it remain cuda:1?
Maybe change the device only if it's cpu?
I don't have multiple GPUs and I don't know much about Triton, so I'm not sure if this is a bug or not.

Yeah, this is not good to enforce model only load into first GPU when use_triton=True, will be improved.

Hi, the optimization of inference on multiple devices with triton integration is added, now you can try the main branch to inference across gpus with triton.


Support footer info

I made some suggestions to make remove it more general, since I think we don't need to make it specific to one website.


Version bumps.

Nginx - 1.17.3 to 1.17.6 : http://nginx.org/en/CHANGES
Alpine - upgrade to 3.8.
Test that a supported version of OpenSSL is installed. OpenSSL 1.1.1 removes the ability for the client to negotiate a SSLv3 connection, so two tests do not work. I'm not certain if it actually breaks those expectations or just the test, so we'll need to resolve this eventually in order to upgrade to a newer Alpine version with a newer OpenSSL in the future.

not ok 26 It allows RC4 for SSLv3
not ok 29 It allows CloudFront-supported ciphers when using SSLv3

I'm not certain if it actually breaks those expectations, so we'll need to resolve this eventually.

ngx devel kit - no real changes: https://github.com/simplresty/ngx_devel_kit/releases

README still indicates that 1.17.3 is the version of nginx running.

README still indicates that 1.17.3 is the version of nginx running.

Fixed, thanks!


Add attributes to makeArray - part 2 (length + init)

splitup of #4677 - depends on #4679.

Current coverage is 88.68% (diff: 100%)

Merging #4682 into master will increase coverage by <.01%

@@             master      #4682   diff @@
==========================================
  Files           121        121
  Lines         73827      73844    +17
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits          65471      65489    +18
+ Misses         8356       8355     -1
  Partials          0          0

Powered by Codecov. Last update 6db08d3...9870e01

Auto-merge toggled on


Deny iFrame embeds (v1.1 branch)

@berndverst looks like validation of a link failed. I checked the link manually and it is returning a 404.


Retained message cannot be cleaned

Environment

OS: centos7.3
EMQ: 2.3.0

Description

clientA往topic：abc发送一条保留消息，clientB收到这条保留消息，并发送一条空消息给topic：abc
clientB自身又收到自己发送的这条空消息，然后又发送一条空消息出去，以此循环...
同样的代码在2.2.0可以正常运行，在2.3.0出现这个问题
代码

        // 发送消息
        Server server =  new Server();
        server.message = new MqttMessage();
        server.message.setQos(2);
        server.message.setRetained(true);
        server.message.setPayload("".getBytes());
        server.publish(server.message);

    // 收到消息
    @Override
    public void messageArrived(String topic, MqttMessage message) throws Exception {
        // subscribe后得到的消息会执行到这里面
        System.out.println("client接收消息主题:"+topic);
        System.out.println("client接收消息Qos:"+message.getQos());
        System.out.println("client接收消息内容:"+new String(message.getPayload()));

        System.out.println("client 发送空消息 清除保留消息");
        MqttMessage message2 = new MqttMessage();
        message2.setQos(2);
        message2.setRetained(true);
        message2.setPayload("".getBytes());
        Client.publish(message2);
    }

A description of the issue

@windhc The server's behavior is correct!
Accord to MQTT-3.3.1-10:

A PUBLISH Packet with a RETAIN flag set to 1 and a payload containing zero bytes will be processed as normal by the Server and sent to Clients with a subscription matching the topic name. Additionally any existing retained message with the same topic name MUST be removed and any future subscribers for the topic will not receive a retained message

So, the server should send the empty message to client as normally, but we don't implement in previous version.
We has fixed this issue in EMQ 2.3.0. so your code show different behaviour than pervious version. sorry about that...

thank you very much

Close the issue.


Is it possible to swap flate2 with libflate?

Is it possible for imagefmt to switch to a pure Rust implementation of DEFLATE: https://github.com/sile/libflate ?

Not soon. Flate2 is nearly twice as fast to decode and it relies on the better tested miniz library. That libflate is very recent and probably buggier.

You are very much correct! I'm currently experiencing problems with latest version of image and image-png maybe because of the recent swap to libflate.

 Im actually referring to rust deflate not libflate. Anyways, moving to close this issue.


514 sanitizer new config properties

#514
attributesToAppreciate: attributes for apply encoding (ignore everything else)
attributesToIgnore: attributes for ignore encoding (apply everything else)

@jefperito I have manually synced the master to the feature branch as the base has been changed from jdk8 to jdk11. One question: why do you name the positive list as attributesToAppreciate instead of attributesToEncode?

Sure, it's seems a better name to this purpose

done, that commit adds an integration test for encoding extended by client.

i don't know why that build step is broken:
"No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself."

It seems we have some problem with Travis. The local build is OK always and I guess the multiple threads test in client module is not working on Travis as it only allocates one thread per build. There might be other reasons but I don't know. It is nothing to do with this PR.


fusemaps: Add support for second MAC address for i.MX7D

i.MX7D supports two ethernet controllers, add second mac address to fusemap
as interpreted by U-Boot: https://source.denx.de/u-boot/u-boot/-/blob/master/arch/arm/mach-imx/mac.c#L26-L59.

Thanks! Merged along with a RM naming consistency fix.


Remove app.hasRequestPending from resources/step4/app.js

In resources/step4/app.js, remove app.hasRequestPending, it isn't supposed to be there until step 7.
As of right now, it's on line 135.

fixed

fixed by direct commit to master


Add some more friends

r? @alexcrichton
(rust_highfive has picked a reviewer for you, use r? to override)


[Feature] import images from docker daemon into k3d

Context
k3d import-images to import docker images from the used docker daemon into containerd inside the k3d nodes.
This is a new version of PR #83 which makes use of a named volume and an additional k3d-tools container.
How it works

upon k3d create, a named volume for storing images will be created and mounted on /images in all nodes (NOTE: this requires at least --image rancher/k3s:v0.7.0-rc2 because of ctr)
user has nginx:local and redis:v2 cached locally after issuing docker build and wants to have them available to the k3d nodes (without having to push to a registry)
user issues $ k3d import-images --cluster test-cluster nginx:local redis:v2
a helper container (currently iwilltry42/k3d-tools:v0.0.1) will be spawned, mounting the same volume as the nodes and /var/run/docker.sock to have access to the docker daemon/API
the helper container will internally run a docker save nginx:local redis:v2 -o /images/images.tar (API variant)
the /iamges/images.tar is then available to the k3d nodes
k3d will exec a ctr image import /images/images.tar in every k3d node to import the images into each node's containerd image cache
the helper container will be removed again (and the tarball if wanted)

Explanation
I chose this approach, since I had much trouble with the other approach (saving the stream to a tarball on the fly) and because I think that we can save bandwidth and avoid possible network latency by working directly on the docker host (which might be remote) instead of saving from docker host to local host and copy the tarball back.
The drawback is, that we'll have to maintain the additional docker image as well, though it's really small.
Possible TODOs

[x] add either --rm or --no-rm flag to enable/disable automatic removal of the tarball

UPDATE 11.07.2019: added --no-remove, --no-rm, --keep, -k flag to disable automatic removal

[ ] add --all-cached (or similar) flag to directly import all tarballs that are already in the /images directory
[ ] add --from-tar flag to import from a tarball that you have saved locally (branching before we create the helper container)
[ ] rollback (i.e. delete helper container) in any case of error

FYI @andyz-dev

Found a small issue that may be worth fixing:
Suppose local docker has the image alpine:3.9, the following command sequence can be improved with better error handling:
bin/k3d import-images alpine:4.0
2019/07/15 16:28:16 INFO: Saving images [alpine:4.0] from local docker daemon...
2019/07/15 16:28:17 ERROR: helper container failed to save images -> Logs from [k3d-k3s-default-tools]:

=2019/07/15 23:28:16 ERROR: couldn't save images [alpine:4.0]
5Error response from daemon: reference does not exist
This error is expected, no problem. Then I won't be able import the right image any more.
bin/k3d import-images alpine:3.9
2019/07/15 16:28:29 INFO: Saving images [alpine:3.9] from local docker daemon...
2019/07/15 16:28:29 ERROR: couldn't create container k3d-k3s-default-tools
Error response from daemon: Conflict. The container name "/k3d-k3s-default-tools" is already in use by container "6f70a6e635bb0164492129e0cc7fc623c8944bb8ef736a3aa9946d24f2a26764". You have to remove (or rename) that container to be able to reuse that name.
Until the 'iwlltry42/k3d-tools:v0.0.1' container is manually deleted from docker.

What's plan for maintaining the helper container? May be we should plan to build and release the helper containers for each k3d release?

@andyz-dev true, I totally forgot about deleting the container again in case of error, because I moved the code back and forth quite a lot. I will fix this soon :+1:
Right now, the helper container has a single functionality, so I'm unsure if it's worth building it everytime, though I don't have a problem with it, as that way we can ensure compatibility with each release :+1:
I put the code in a separate repository, because I didn't want to bother with adjusting all the little knobs to treat it as a sub-project.
Would you prefer having it embedded in this repo or maintain it separately?
Or some setup with a git submodule/subrepo/subtree?

I agree with you that a sub project may be an overkill.  This is one of the downside of this approach. On the other hand, when we merge the PR in (hopefully soon), we will have to have a plan for publish the "official" image for it.
Would it be possible to add a makefile rule (and a corresponding dockerfile) for building the image? The rule can be tied into the build-cross target, so that pushing an official image can be part of the release.
If this is too much work, and keeping an separate  repo is easier, that will be fine too.  We can model it after how k3s images are supported. Personally, I'd prefer the makefile approach if it is possible.

@andyz-dev ready for another review :+1:
I decided to cleanup the tools container whenever we return.
Pro: we catch any case
Con: bad for debugging, as all traces of it will be gone if it fails
So either we go this way or we put a catch for every case or we enable re-using an already existing tools container, so we don't have conflicting names.


celeryd-multi could persist the arguments used to start nodes

That would be awesome, as it's currently a little tedious (at least to explain).

This has been merged into master
https://github.com/ask/celery/commit/67fb27b6dbf8cbc40f05dbc2256f797cfccf4308


Read page functionality

solved #8
i Rachit Profile have worked upon the read page functionality
I have made use of the local storage to transfer the content to the read page
Plss take a look

solved #8
i Rachit Profile have worked upon the read page functionality
I have made use of the local storage to transfer the content to the read page
Plss take a look

Great job.


Fix broken sync between animation TrackEditor and PlayerEditor

Fixes https://github.com/godotengine/godot/issues/93771
Supersedes/Closes https://github.com/godotengine/godot/pull/93975

There are three Editors for Animation, and the current position must be synchronized in all three editors:

TimelineEditor
TrackEditor
PlayerEditor

Of these, changes in position by TimelineEditor are propagated to PlayerEditor by TrackEditor's signal, but changes in position by TrackEditor are not propagated to PlayerEditor.
Add a signal to AnimationTrackEditor::set_anim_pos(). Then, an argument that only updates the position needs to be added to the PlayerEditor's method and passed as an option.

Thanks!


Added sext.b instruction support

Added signed extend of least significant byte instruction
Opcode: 1100100
This instruction sign-extends the least-significant byte in the source to XLEN
by copying the most-significant bit in the byte (i.e., bit 7) to all of the more-significant bits.
X(rd) = EXTS (X(rs)[7 . . 0]);

Have you followed instructions to build and run tests? Because the tests fail now.


Bad file name (example.env)

-The file examples.env should be named example.variables.env

@MathiasMoralesDixtra I'll take this one


Add name of reaction to canvas?

Is it possible to add the name of the reaction to the canvas?

add a new feature (showReactionIds) to draw() function (https://sunnyxu.github.io/SBMLDiagrams/processSBML.html#SBMLDiagrams.processSBML.load.draw).


openbmc: fix hostname verification failure

hostnamectl output will output 2 hostnames.
Static hostname and transient hostname
Need to modify library code to to pick static hostname.
root@openbmc:~# hostnamectl | grep hostname | cut -f 2 -d : | sed -re 's/ //g'
openbmc
openbmc1

Discussed with dev team, agreed to use hostname instead of hostnamectl for verification.


Information State Tensor Format

I am running Leduc Poker and I am having a hard time figuring out the format for the Information State Tensor. Where can I find more information on how the following Information State String is translated to the corresponding Information State Tensor?
[Observer: 0][Private: 1][Round 2][Player: 0][Pot: 14][Money: 95 91][Public: 3][Round1: 1 1][Round2: 2 2]
[1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0]

Hi @nikhilweee,
You can find the function that fills the tensor here: https://github.com/deepmind/open_spiel/blob/da774f602fb4a390e66b979a67210498fd0d8919/open_spiel/games/leduc_poker.cc#L176
The bits include: one-hot encoded observing player, one-hot encoded private card, one-hot encoded public card, then the betting sequence of one-hot encoded actions (call or raise).
Also described in the comment here: https://github.com/deepmind/open_spiel/blob/da774f602fb4a390e66b979a67210498fd0d8919/open_spiel/games/leduc_poker.cc#L811
Hope this helps!

I see, this was very helpful. Thank you so much!

No problem!


639-update updatePartnerAdminById function

Issue link / number:
https://github.com/chaynHQ/bloom-frontend/issues/639
https://github.com/chaynHQ/bloom-frontend/pull/980#discussion_r1664349591
What changes did you make?
updated updatePartnerAdminById function to execute the database update
Why did you make the changes?
To enable super admin users to update the status of Partner Admin users from active to inactive
Did you run tests?
✅ yes
<!---IMPORTANT NOTE ABOUT RUNNING TESTS: ->
- Some tests may require multiple runs before success.
- Some test failures may not be due to your contribution and can be ignored.
- If tests fail without resolution, please let us know here.
- Directions for running tests are in the README.md

<!--- PR CHECKLIST: PLEASE REMOVE BEFORE SUBMITTING —>
Before submitting, check that you have completed the following tasks:
- [ ] Answered the questions above.
- [ ] Read Chayn's Contributing Guidelines in the CONTRIBUTING.md file.
- [ ] Enabled "Allow edits and access to secrets by maintainers" on this PR.
- [ ] If applicable, include images in the description.
After submitting, please be available for discussion. Thank you!

Thanks ⭐  This is great


preprocessor change between v4 & v5 leading to error when used with karma-mocha

Operating System: MacOS
Node Version: 14
NPM Version: 6
webpack Version: 5
karma-webpack Version: 5

Expected Behavior
karma-webpack should work well with karma-mocha

Actual Behavior
This is related to executing the functional tests with karma,karma-webpack & karma-mocha

we use karma-mocha v2. Which has the following code to add files to existing fileList passed to webpack plugin
in karma-webpack v4, the preprocessor had the code to include files which were not part of entryPoints & compile them & make it available.
in karma-webpack v5, the preprocessor code is changed to skip the inclusion of files & just includes the entryPoints for compilation.

In our usecase where we recently updated the karma-webpack, we are facing errors as few files are not available post preprocessing causing the karma server to fail.
Not sure if the change is a bug or intended. Just wanted to understand the reason behind the change. Appreciate if there are any workarounds & corrections in my understanding of the code.

In v5 you can require all of the files you want to include in your entry point rather than pass them in via configuration. Let me know if that works for you.

Thanks for the response. In our use case we have set all the entrypoints.
however as shared above karma-mocha is adding few files which is not configured by us. With v5 as karma-webpack as it’s not adding files in the preprocessor those files are part of bundle output causing the error.
Are you recommending to import the files added by karma-mocha by us explicitly.

What files is karma-mocha adding?

Are you recommending to import(set in the entry section) the files added by karma-mocha by us explicitly.

If you mean these files are created by you and added in your mocha config, yes, this should fix your problem.

Which files are karma-mocha adding?

karma-mocha is adding karma-mocha/src/adapter.js

Are you recommending to import(set in the entry section) the files added by karma-mocha by us explicitly.

If you mean these files are created by you and added in your mocha config, yes, this should fix your problem.

the files are not created by us, but are added by karma-mocha. These files used to be picked up by karma-webpack v4 here.

Can you post the error that you're getting and configs for webpack / karma / mocha? We have integration tests for karma-mocha so I know its possible to use in v5.

Hi @codymikol,
In our project, we construct a customTest.js at the root level of project which has import to all the test-entry points for the project. We trigger the karma process from the root level on the customTest.js. In our karma.config.js we have the following entry of preprocessor
preprocessors: {'**/*.js': ['webpack']}, // include add JS files from project root

I checked the integration tests in karma-webpack & checked how its working. I was able to simulate the error we are facing by making changes to one of the tests(link to the forked karma-webpack project with the code changes: #1, #2)
I have updated the preprocessor entries to point to the root location of the project as we have in our project. If you could clone the forked project & execute npm run test you will see the below error which we are getting.

This error is thrown as the js files(#file1, #file2) added by karma-mocha as allowed to be processed by the karma-webpack plugin due to the updated preprocessor pattern in karma config. However, with v5 the plugin is not allowing any new file additions as compared to v4.
As the plugin is skipping the files added by karma-mocha(or plugin which might have similar code) the following code in karma is finding empty content for files added by karma-mocha & causing the error while setting sha1 to undefined
Hope this conveys the issue.
I have the below followup queries.

Is setting the preprocessor path at the root level a valid entry?
if Yes, should this error be a bug?
If No, karma-webpack v4 used to allow it. Should this change in option be documented.

Thanks again for your time in checking & responding. Really appreciate it.

This is trying to run the webpack preprocessor on all files in the repository including node_modules via globbing, try using a single file that specifies exactly what you want to import like the index.scenario.js file.

So is including the files on node_modules as part of preprocessor pattern invalid?
If so, this used to work in karma-we pack v4. Also, any reason for removing add files code in v5

Can you share your project or at least configurations? I may be able to point you in the right direction.

Updated the preprocessor pattern to include only test files to address the issue we faced. Thanks for the support


fix: Update openapi.yaml

Testing to see if Github workflows can run successfully when PR created from fork.

conventional-commit workflow is failing when attempting to write access Github resource integration:
https://github.com/whispir/openapi/actions/runs/3615305988/jobs/6092323957#step:3:12

api-style workflow silently passes, even when errors are present in OpenAPI spec:
https://github.com/whispir/openapi/actions/runs/3615305989/jobs/6092323949#step:4:13

Both PR workflows need modification/updating to support workflow runs from fork. Specifically, they need to run without error under success circumstances without needing to write to any Github resources.


Import Images with annotations

Actions before raising this issue

[X] I searched the existing issues and did not find anything similar.
[X] I read/searched the docs

Steps to Reproduce
I labelled some images on cvat and exported the dataset in YOLO 1.1. So now that I have the images and the .txt annotations, how can I upload the labelled image back?
Expected Behavior
No response
Possible Solution
No response
Context
No response
Environment
No response

Please, try to refer to documentation first.


Playing sound when receiving notification worked in Development but not in Production

I'm Facing an issue when i Debug Project in Real Device, I'm Getting Notification With Custom Sound, But After making a Build Via Diwai, I'm Not Getting Custom Sound, It Play Default Sound with Notification.I'm Using Firebase. I have Added Custom Sound in Project and added in Bundle Resources as well. Please Have A look on My Code.
My Code  In App Delegate
  `class AppDelegate: UIResponder, UIApplicationDelegate,UNUserNotificationCenterDelegate, MessagingDelegate {

 var window: UIWindow?
var audioPlayer : AVAudioPlayer?

   func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.

    let content = UNMutableNotificationContent()
    content.sound = UNNotificationSound.default
    content.sound = UNNotificationSound(named:UNNotificationSoundName(rawValue: "Eigenintro.aiff"))

    FirebaseApp.configure()

    let audioSessionError: Error? = nil
    do {
        try AVAudioSession.sharedInstance().setCategory(.playback, options: .mixWithOthers)
        try AVAudioSession.sharedInstance().setActive(true)
    } catch let audioSessionError {
        print(audioSessionError.localizedDescription)
    }

    UIApplication.shared.beginReceivingRemoteControlEvents()

    if let audioSessionError = audioSessionError {
        print("[AppDelegate] audioSessionError: \(audioSessionError)")
    }

    if #available(iOS 10.0, *) {
        // For iOS 10 display notification (sent via APNS)
        UNUserNotificationCenter.current().delegate = self
        Messaging.messaging().isAutoInitEnabled = true

        let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
        UNUserNotificationCenter.current().requestAuthorization(
            options: authOptions,
            completionHandler: { [self] _, _ in
                Messaging.messaging().delegate = self

            }
        )
    } else {
        let settings: UIUserNotificationSettings =
        UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
        application.registerUserNotificationSettings(settings)

    }

    Messaging.messaging().token { token, error in
        if let error = error {
            print("Error fetching FCM registration token: \(error)")
        } else if let token = token {
            print("FCM registration token: \(token)")
        }
    }
    application.registerForRemoteNotifications()
    return true
}

     func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
       print("Firebase registration token: \(String(describing: fcmToken))")
      self.sendDataToServer(token: fcmToken!)
      }

func userNotificationCenter(_ center: UNUserNotificationCenter,
                            willPresent notification: UNNotification,
                            withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions)
                            -> Void) {
    let userInfo = notification.request.content.userInfo

     defer {
        completionHandler([.badge,.sound, .alert])
        SoundPlayer.sharedInstance.playSound()
     }

    print(#function)
    print(userInfo)

}

func userNotificationCenter(_ center: UNUserNotificationCenter,
                            didReceive response: UNNotificationResponse,
                            withCompletionHandler completionHandler: @escaping () -> Void) {
    let userInfo = response.notification.request.content.userInfo

    print(#function)
    print(userInfo)
    completionHandler()
}

       func application(_ application: UIApplication,
             didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
let token = deviceToken.hexString

print("APNs Device Token: \(token)")
#if DEVELOPMENT
Messaging.messaging().apnsToken = deviceToken

#else
Messaging.messaging().setAPNSToken(deviceToken, type: .prod)
#endif

}

       func application(_ application: UIApplication,
             didReceiveRemoteNotification userInfo: [AnyHashable : Any],
             fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {

print(#function)
Messaging.messaging().appDidReceiveMessage(userInfo)

if application.applicationState == .background {

       guard let soundURL = Bundle.main.url(forResource: "Eigenintro", withExtension: "aiff") else { return }
        //let soundUrl = URL(fileURLWithPath: path)
        do {
            audioPlayer = try AVAudioPlayer(contentsOf: soundURL)

            print("[AppDelegate] audioPlayer play call")
            audioPlayer!.play()
        } catch let audioPlayerError {
            print("[AppDelegate] audioPlayerError: \(audioPlayerError)")
        }
    completionHandler(UIBackgroundFetchResult.newData)

     } else {
    completionHandler(UIBackgroundFetchResult.noData)
     }
     }

    // foreground
       func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any]) {
    print("didReceiveRemoteNotification: Received new push Notification")
    Messaging.messaging().appDidReceiveMessage(userInfo)
     print(#function)
    print("didReceiveRemoteNotification: Push notificationMessage is: \(userInfo)")
   }
   }`

 **Payload**

   `{
   "message": {
  "token": "fcm token",
  "notification": {
  "title": "Breaking News",
   "body": "New news story available."

      },
     "apns": {
       "payload": {
       "aps": {
     "category" : "NEW_MESSAGE_CATEGORY",
     "sound": "Eigenintro.aiff"
    }
    }
   }
   }
  }`

You need to protect your media resources from minification and obfuscation. There is a topic dedicated to this in our documentation and also in the Android documentation.

Hi! Sorry for taking so long to respond to your issue on GitHub. I was focused on releasing the new 0.7.0 version of awesome_notifications and awesome_notifications_fcm and i didn't had time enough to do both. But now I can answer all your questions.
So now i'm asking you to recreate this topic using the new issue template. There's a lot of missing informations that i need to understand your problem, and all the instructions are already in the new issue template. Also, remember to check beforehand if your issue was posted by another user.
So I will automatically close all previous issues so far.
Sorry for the inconvenience and i will be waiting for your new issue request.
Thank you so much for your support!