C API: Session Options for prediction on GPU

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): yes for training and prediction
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Windows 10
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: no
TensorFlow installed from (source or binary): compile from sources
TensorFlow version (use command below): 2.0
Python version: 3.6.8
Bazel version (if compiling from source): 0.24.1
GCC/Compiler version (if compiling from source): Visual Studio 2017 with MSVC 14.16.27023
CUDA/cuDNN version: CUDA 10.1.243 / cuDNN <IP_ADDRESS>
GPU model and memory: NVIDIA GeForce RTX 2060 6Go

Situation
I create a C++ program to train a model with the aim to perform image segmentation. This part works perfectly on the GPU and I export the pb file. The final application have to be in C# so this pb file is imported and the prediction is performed with TensorFlow.NET.
The prediction works as expected on CPU but not on the GPU. This issue is probably not caused by TensorFlow.NET (https://github.com/SciSharp/TensorFlow.NET/issues/434) so I think it is caused by C API. I don't understand why the training can be performed on the GPU and the prediction on the same GPU give me an out of memory error when I run the session.
Describe the current behavior
I set the number of GPU to one to be sure and I set the configuration GpuOptions.
To not allocate all the GPU memory I set allow_growth option to true but the issue is still present.
To limit the usage of memory I set the parameter per_process_gpu_memory_fraction 0.2, 0.5 or 0.9 but nothing changes.
For the training I only use allow_growth option and there is not out of memory error. For information I use ClientSession for this part.
Describe the expected behavior
Using the C API or the original source code, the configuration of GPU must be the one defined with the code. I presume the issue is with the C API because the training in C++ works on GPU.
Code to reproduce the issue
Training in C++:
tensorflow::ConfigProto& config = _sessionOptions.config;
config.set_allow_soft_placement(true);
config.set_log_device_placement(true);
config.mutable_gpu_options()->set_allow_growth(true);

Prediction in C#:
ConfigProto config = new ConfigProto();
config.LogDevicePlacement = true;
config.AllowSoftPlacement = true;
GPUOptions gpuOptions = new GPUOptions();
gpuOptions.AllowGrowth = true;
gpuOptions.PerProcessGpuMemoryFraction = 0.5;
config.DeviceCount.Add("GPU", 1);
config.GpuOptions = gpuOptions;

Other info / logs
With the log placement option, I noticed the GPU memory is allocated twice when I call the run method. The first allocation take almost all the available GPU memory then the second one grows "step by step". So I presume allow_growth option is operational for the second memory allocation but not the first one.

Can you confirm that TF is indeed trying to use the same GPU you used for training and not a graphics GPU for inference?
Whether allow_growth is working on not should be completely unrelated to the TODO you filed.
Can you give us a small script to reproduce exactly the behavior you're seeing?

I confirm that TF is using same GPU for training and prediction.
I agree allow_growth is working. Could my issue is related to the usage of Session for C API and my usage of Client_Session for training? I know Client_Session has an instance of Session but maybe the GPU configuration is not properly set with Session in C API...
I don't know how to give you part of my code to reproduce the issue... I can't send you all my program. I'm using C# program with TF.NET that use C API. Did someone already test C API with a huge model (around 5GB on GPU memory)?
When I run the model on CPU, RAM reaches 2GB. And when I run the model on GPU, RAM reaches 9GB and GPU memory reach 5.7GB then growth until the out of GPU memory error. I don't understand this memory usage on GPU...

Could you somehow have two TF runtimes linked into the same process
competing against each other to use the GPU?
I don't really know how to debug this; can you try to make a minimal
example (like, maybe a graph which just has a 5gb-sized tf.zeros in it,
plus the C# code to load it that OOMs)?
On Tue, Nov 5, 2019 at 3:43 AM quintakFR<EMAIL_ADDRESS>wrote:

I confirm that TF is using same GPU for training and prediction.
I agree allow_growth is working. Could my issue is related to the usage of
Session for C API and my usage of Client_Session for training? I know
Client_Session has an instance of Session but maybe the GPU configuration
is not properly set with Session in C API...
I don't know how to give you part of my code to reproduce the issue... I
can't send you all my program. I'm using C# program with TF.NET that use
C API. Did someone already test C API with a huge model (around 5GB on GPU
memory)?
When I run the model on CPU, RAM reaches 2GB. And when I run the model on
GPU, RAM reaches 9GB and GPU memory reach 5.7GB then growth until the out
of GPU memory error. I don't understand this memory usage on GPU...
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/33849?email_source=notifications&email_token=AAABHRKDPTGFBFCM57TIZW3QSFL4NA5CNFSM4JGYDDU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEDCRCRA#issuecomment-549785924,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAABHRJXYDRYT5RSV7446TTQSFL4NANCNFSM4JGYDDUQ
.

--

Alex

I'm not sure to totally understand your question. I only use one Session created with TF.NET and I run it once so I'm assuming I only have one TF runtime.
I will create this little example in the next days. How will I share it to you when it is done? (model file is around 112 MB)

You can upload to google drive? Or come up with a smaller/simpler model
which also exhibits the bug?
On Wed, Nov 6, 2019 at 12:35 AM quintakFR<EMAIL_ADDRESS>wrote:

I'm not sure to totally understand your question. I only use one Session
created with TF.NET and I run it once so I'm assuming I only have one TF
runtime.
I will create this little example in the next days. How will I share it to
you when it is done? (model file is around 112 MB)
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/33849?email_source=notifications&email_token=AAABHRIMBFIPE5EOEPCZEIDQSJ6VLA5CNFSM4JGYDDU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEDFWNYY#issuecomment-550201059,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAABHRMK6N335SA7EAAXAMTQSJ6VLANCNFSM4JGYDDUQ
.

--

Alex

Perfect I will upload it to google drive.
Thank you @alextp !

@alextp I shared with you the program and the model on Google Drive (with you gmail address)
The variable "DevicePredict" in class Constants can be used to run the model on CPU or GPU:

If you set the variable to "CPU", the model will run normally
If you set the variable to "GPU", the error will appear. I use "watch -n 0.5 nvidia-smi" in PowerShell to observe the usage of GPU memory

For information:

EmguCV is used to simply manipulate images as matrix (like with OpenCV)
The TensorFlow dll is the one I build from source. I upload the files I modified to add functions. I didn't upload the BUILD file I modified to generate the dll because it can not be the issue. (Let me know if you would like to have more details about this)
TensorFlow.NET is developed for TF and not TF2 but the C API is the same between the 2 version so I decided to use TF2. I tested the same program with TF 1.14 and the issue is the same so I think this point could not be the issue

I changed the version of cuDNN to use <IP_ADDRESS> then compile TensorFlow. All the GPU memory is allocated even if PerProcessGpuMemoryFraction is set but the issue doesn't appear. So cuDNN 7.4 instead of 7.6 fix the issue but there is still the allocation of the entire GPU memory

Latest tensorflow.dll for c# api

Is this still an issue for you and please let us know.Thanks!

No, it's not. I managed all issues of memory allocation and memory access violation. Thanks

Closing as it seems this is no longer an issue. Please reopen if I am wrong.


Feature: Modal popup on ADD

Description
This PR is about adding a new feature to the ProductDetail Component
So when you click on the ADD button the MODAL shows up
Fixes # (issue)
https://github.com/HackYourFuture-CPH/fp-class19/issues/243
How to test?
On the ProductPage ( /product/:id ) click on the ADD button to see the MODAL show up
Checklist

[ ] I have performed a self-review of my own code
[ ] I have followed the name conventions for CSS Classnames and filenames, Components names and filenames, Style filenames, if you are in doubt check the the project README.MD and here https://github.com/HackYourFuture-CPH/curriculum/blob/master/review/review-checklist.md
[ ] I have commented my code, particularly in hard-to-understand areas, if you code was simple enough mark the box anyway
[ ] I have made corresponding changes to the documentation, if you code was simple enough mark the box anyway
[ ] This PR is ready to be merged and not breaking any other functionality

I'm not sure if I am going to have time to complete this tomorrow.
I'll leave somethings here maybe someone will try to implement it.
Things that needed to be added to the ProductDetail component.
import Modal from '../Modal/Modal.component';
import addedToCartImg from '../../assets/images/added_to_cart.png';
const [modalIsOpen, setModalIsOpen] = useState(false);
const openModal = () => {
setModalIsOpen(true);
};
     <Button
        className="product-detail-button"
        type="button"
        onClick={openModal}    // HERE we need a function that ADDs to card and opens the modal too.
        primary={true}
        label="ADD"
      />

  {modalIsOpen && (
    <Modal
      modalIsOpen={setModalIsOpen}
      message="Added to cart"
      primaryButtonLabel="VIEW CART"
      modalIsCloseable={true}
      showIcon={addedToCartImg}
      secondaryButtonLabel="Continue shopping"
      buttonFunction={' '}
      secondButtonFunction={' '}
    />
  )}


Repeated model-related code in views.py can be factored into models.py

Anything related to a Dataset you'd want to be able to play with in the interactive terminal when debugging should be in models. For example, a method should be added to Dataset to get its repo dir.

I'm refactoring some of the weedcoco.repo.deposit code into classes for the repository and its datasets which wrap up ocfl operations and other repository operations like duplicate checking. Some of this might be more appropriate in the Dataset in models.py.


Fix extensibility list refresh

Description
Changes proposed in this pull request:

...
...
...

Related issue(s)

Resolved in https://github.com/kyma-project/busola/pull/1424


Change prepare_test_result signature

Summary of the Pull Request
This small change isn't currently used in OneFuzz but helps a dependent project.

Performing integration tests


SSE connections are not killing process after handler is finished

For the given SSE endpoint:
defmodule SomeTestWeb.Controller do
  use SomeTestWeb, :controller

  def sse(conn, params) do
    conn =
      conn
      |> put_resp_header("content-type", "text/event-stream")
      |> put_resp_header("x-accel-buffering", "no")
      |> send_chunked(200)

    # adds the current process to the "sse_connection" :pg group
    :pg.join("sse_connection", self())

    parent_pid = self()

    # Spawns a process that will monitor whenever this current request is killed
    spawn(fn ->
      Process.monitor(parent_pid)

      receive do
        {:DOWN, _ref, :process, _object, _reason} ->
          # leave :pg group due to connection being down, either by client or timeout
          :pg.leave("sse_connection", parent_pid)
      end
    end)

    loop_connection_until_event(conn)
  end

  defp loop_connection_until_event(conn) do
    receive do
      {:close_with_data, data} ->
        send_message(conn, data)

        conn

      _event ->
        loop_connection_until_event(conn)
    end
  end

  defp send_message(conn, data) do
    chunk(conn, "event: \"message\"\n\ndata: #{data}\n\n")
  end
end

You can call this endpoint using whatever client you want.
Since the process is now attached with a :pg group, we can now check the connected member and send a message directly through the process.
iex(1)> :pg.get_members("sse_connection")
[#PID<0.51564.0>]
iex(2)> :pg.get_members("sse_connection") |> Enum.at(0) |> Process.send({:close_with_data, "some_data"}, [])
:ok
iex(3)> Process.alive?(pid(0, 51564, 0)) # the process was not killed
true
iex(4)> :pg.get_members("sse_connection") # the process is still in pg queue (Process.monitor was not triggered by it)
[#PID<0.51564.0>]

As described above, it doesn't close the process associated with it.
The expected scenario is that the connection and process is closed after reaching the end of the handler function.
If you try to close using a fetch client in any browser using AbortSignal it doesn't close either.
This is currently blocking me from moving to bandit instead of cowboy adapter. If you try doing that using cowboy adapter it will have this behavior I'm describing.

This is most likely because your client is keeping the connection open for keep-alive RFC9112§9.3. If you send the Connection: close response header your client should close the connection upon termination of the stream.
This is a perennially awkward corner of the Plug API; there's been discussion before about how best to disposition the connection at the end of chunk responses but every solution has downsides. Cowboy doesn't exhibit this issue because each single request on a persistent connection is handled by a separate process, so you're not seeing the connection process staying alive in the background. Bandit is rather 'closer to the metal' in that regard.

@mtrudel Setting Connection: close in the response header properly kills the connection after sending a message. However when clients kill the connection, for example when using fetch with AbortSignal. We have no notification whatsoever in the process that this request was canceled.
I can see the reason that the process itself isn't killed when client closes and what you said makes sense, however, is there a way to have some sort of message sent in this process for client closing? Just like {:plug_conn, :sent} message, maybe something like {:plug_conn, :closed}?

AbortSignal doesn't necessarily close the actual underlying TCP connection to the server, only indicates to the browser's network stack that it no longer needs the connection. Nothing guarantees that the browser will actually close the underlying connection since it may elect to keep it open for cache reasons (similar issues have been raised as #359 & #354).
In light of this, Bandit is doing the right thing here. Keeping the connection open for keep-alive is the default on HTTP/1.1 and is what you're seeing.


find_ch_connectivity doesn't find EEG templates

It looks like mne.channels.find_ch_connectivity only searches for MEG template files. This means that it doesn't work for EEG montages such as e.g. "biosemi64", even though a template exists. I think a note should be added in the docstring to clarify this behavior. Also, the note in mne.channels.read_ch_connectivity should be changed. Ideally, a good separation of the two functions is that read_ch_connectivity reads from template files whereas find_ch_connectivity computes connectivity.

PR welcome

OK - I guess clarifying the docstrings is sufficient (the other alternative would be to add support for automatic detection of EEG montages).

if you think the automatic way can have a low enough failure mode sure why
not.


Improve gas cost by using transient storage

Issue:
The address of L2 native token is stored in the SystemConfig contract.
The current flow of getting this address as below:
L1StandardBridge -> L1CrossDomainMessenger -> OptimismPortal -> SystemConfig
If L1StandardBridge query the address of L2 native token, the request goes throw L1CrossDomainMessenger and then OptimismPortal then SystemConfig. Later in the same transaction, if L1CrossDomainMessenger need the address L2 native token, it makes a call to OptimismPortal. It wastes some gas with this flow.
Suggestion
We can save gas by using transition storage so that if a contract queries the address of L2 native token successfully, the address will be cached in transient storage.
https://soliditylang.org/blog/2024/01/26/transient-storage/

We are using Solidity 0.8.15, but transient storage is introduced from 0.8.24. I think we will keep in mind and consider when we upgrade the Solidity version

If you don't upgrade the project version, the temporary storage will be difficult to use. This needs to be discussed.

You are right. Let leave the issue here for the future discussion

DevUreak I think upgrading the solidity version is a good idea, but I don't think we have enough time and people to make sure that the upgrade is applied correctly.
Can we propose this idea directly to Optimism repo instead? and work on it separately?
If you are ok with that, please close the issue, and leave the reference issue here for record keeping?

@suahnkim  That's a good idea. I will make a proposal regarding this to Optimism, and if the Core team allows, I will fork the project and test gas savings using tload.

Let me close this issue https://github.com/tokamak-network/tokamak-thanos/issues/253#issuecomment-2336706112


migrate mww to esphome_audio, bring back volume control and media_player

NOTE - this is using some undocumented features of esphome_audio thanks to it's author pointing them out.  (gain_log2: 3)
So, perhaps we make this another yaml as the previous one with "speaker" component is fairly stable, for me anyways.  Open to suggestions.
Ultimately, this probably needs a lot of testing.  I did have an issue with it once I added volume controls back in that seemed to vanish on its own, but its nice to have media_player back, and you can even detect a wake word while a song is playing.  However, I can't seem to find the VAD timeout setting for microwakeword, so it appears to take awhile to detect the wake word, if there is a song playing, but does work.    -- More nuance on this one too, once the TTS response comes back, it will stop the media player to play it, which makes sense, but we may want to configure it to resume from where it was in the previous file, if it was playing, perhaps.

@tetele implemented the stopping of media player on wake word detection.
Separately I have started another branch here that starts to implement audio ducking - IE - the music would play in the background but softer while the device/system processes the full request, with the end goal being that it would resume playing where it left off after the request is fully done.  As I got into this I realized it was going to be a little complex, and I might need to make some changes to media_player in esphome to support it, so I will work on this separately if I get time.

I doubt it will be easy to do that on the ESPHome media_player or that it will be implemented any time soon. It would be lovely, but certainly not trivial (from the ESPHome point of view; from this config's point of view, it just needs upstream support).
That said, I wanted to thank you for your contributions! You, sir, have been amazing! With my current limited availability, I don't even know when I would have been able to test and implement the ADF media_player in the MWW config.
I'd like to get at least some testing feedback on this implementation and then merge it to the main config. I've found an issue with the volume and reported it upstream. There's a workaround, but I'd like for that change to be merged before proceeding, apart from some testing.
If all goes well, I'd also like to port this implementation to the non-MWW config as a longer term plan. None of that would have been possible without your help ❤

Also pushed a method to restore the volume between reboots as it was driving me crazy.  Not sure if there is a better way to do it.
Ya, I noticed the speaker sounds bad over 50% of volume as well.  But strangely only for music, not TTS.  (for me, at least).  So I do wonder whether there is something else going on..  Does TTS sound poor above 50% for you, or just music?
Lastly, re: audio ducking, I agree, there needs to be changes in media_player, I plan to look at this when I get time, upstream in esphome, and perhaps in voice_assistant, too.  Might be a fun challenge, but my goal is to fully replace siri in my house, one day! :p

Does TTS sound poor above 50% for you, or just music?

Both TTS and media sound just as loud above 50%. Music does sound a bit poorer, but maybe TTS does too, it's just that it's harder to trace

Can you please hit me up on Discord @cowboyrushforth ? I'm @tetele on both the HA and ESPHome servers

Rolled that last commit back.  Sent you a DM on discord, I am on the esphome discord under spot or spotman_, cheers

I've been following this and porting to non-mww. Hit me up (@discord) if I can help out on that front. 👍

I'd like to contribute to this in some way, even if just through testing feedback, but creating an ESPHome config with this blows up almost immediately with
Reading CMake configuration...
-- Configuring incomplete, errors occurred!
See also "/config/.esphome/build/onju-voice/.pioenvs/onju-voice/CMakeFiles/CMakeOutput.log".

fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
CMake Error at /config/.esphome/platformio/packages/tool-cmake/share/cmake-3.16/Modules/Compiler/._ADSP-DetermineCompiler.cmake:1:
  Parse error.  Expected a command name, got bad character with text "".
Call Stack (most recent call first):
  /config/.esphome/platformio/packages/tool-cmake/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:6 (include)
  /config/.esphome/platformio/packages/tool-cmake/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:32 (_readFile)
  /config/.esphome/platformio/packages/tool-cmake/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection)
  /config/.esphome/platformio/packages/tool-cmake/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE)
  /config/.esphome/platformio/packages/tool-cmake/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD)
  /config/.esphome/platformio/packages/tool-cmake/share/cmake-3.16/Modules/CMakeDetermineCCompiler.cmake:116 (CMAKE_DETERMINE_COMPILER_ID)
  /config/.esphome/platformio/packages/framework-espidf/tools/cmake/project.cmake:381 (__project)
  CMakeLists.txt:3 (project)

========================== [FAILED] Took 1.73 seconds ==========================

Prior to that, I was getting this, which I worked around by issuing the suggested command in the ESPHome container:
voluptuous.error.Invalid: fatal: detected dubious ownership in repository at '/config/.esphome/idf_components/65270b52'
To add an exception for this directory, call:

    git config --global --add safe.directory /config/.esphome/idf_components/65270b52

Am I missing some depencency?

That took some legitimate long compile time haha, but super awesome work!!!
Could successfully test microwakeword with audio control and media player working!!!
works without disabeling listening manually, sound quality still seems to be missing higher frequencies... (does not bother me, just noticed it)
Also played a bit with adding a beep, this works really really well:
  on_wake_word_detected:
    - if:
        condition: media_player.is_playing
        then:
          - media_player.pause
    - media_player.play_media:
        id: onju_out
        media_url: "http://<IP_ADDRESS>:8000/beep.mp3"
    - delay: 300ms
    #- wait_until:
    #    not:
    #      media_player.is_playing: onju_out
    - voice_assistant.start:
        wake_word: !lambda return wake_word;

Beep is a sub 500ms little clip and is currently hosted on some rpi in my network, but I am wondering if there would be a more elegant version of this.... any ideas ?
Greetings, and thanks for the amazing work, I will flash this out to all 5 onjus I am running as soon as I get to it =D

I'm having some issues with either MWW or the I2S audio - wake word recognition simply stops after a long enough time. It works after the MWW detection is turned off and on again.
So far I haven't been able to trace the root cause of the issue, but I will keep trying. Does anybody else get that?

Hm... had it running since my comment yesterday, still works fine here (running esphome 2023.4 btw). I did have a issue like that on my RaspiAudio MuseProto Boards that I could never get to fix fully...

From https://github.com/gnumpi/esphome_audio?tab=readme-ov-file#i2s-settings:
sample_rate (Optional, positive integer): I2S sample rate. Defaults to 16000.

Probably just need to set this to 48000 for music playback.

So I started to look thru code as I read somewhere that HA supports only a single device actually responding

That is true, i haven't thought to check this, but it would not explain 1. the fact that toggling the wake word makes it work immediately and 2. the fact that until the toggle it doesn't trigger at all, regardless how well isolated it is from other devices (i.e. closed doors etc.).

Got some info from discord, so for MWW, the code HA uses to stop concurrent requests is here: https://github.com/home-assistant/core/blob/dev/homeassistant%2Fcomponents%2Fassist_pipeline%2Fpipeline.py#L1364-L1381
After expanding my loglevel for assist_pipeline, I do see this is triggered for me on the trouble unit.  Will continue debugging when I get more time.
My gut is that there is maybe multiple ways that the system can get into a weird state.

Small update here..

have not been able to replicate for 2 days.. nothing has changed in my house.
the only things I have changed code wise are

a. upgraded to ESPHome 2024.4.1
b. am running this yaml change, with the intention of making it obvious if there is a wifi issue:
  on_client_connected:
    - if:
        condition:
          and:
            - switch.is_on: use_wake_word
            - binary_sensor.is_off: mute_switch
        then:
          - script.execute: reset_led
          - micro_wake_word.start:
  on_client_disconnected:
    - if:
        condition:
          and:
            - switch.is_on: use_wake_word
            - binary_sensor.is_off: mute_switch
        then:
          - light.turn_on:
              id: top_led
              blue: 0%
              red: 100%
              green: 0%
              effect: none
          - voice_assistant.stop:
          - micro_wake_word.stop:

The intention of this yaml is just to make the lights red if the connection to HA fails.  When I restart HA I do see the lights go to red then back to normal.

Had some time to poke at the audio quality issue.
If you set sample_rate: 48000 for both input and output, then also add the resampler to the middle of the microphone pipeline, the quality is improved. If you don't use the resampler on the microphone, the logs fill up with buffer errors.
However, at least on my device the audio still hitches terribly. I imagine the resampler is introducting some resource contention.

I'm seeing a decryption failure with this PR when trying to play valid media on my Onju voice devices (tested with TTS, but also any responses).  I recall that responses worked at some point, but have updated to the ESPHome betas since then.
[10:08:15][D][media_player:059]: 'Onju Voice Satellite Dining Room' - Setting
[10:08:15][D][media_player:066]:   Media URL: https://xxx/api/tts_proxy/b8b13f9279e4f60bbc005a4c6d66bf220dd2df68_en-us_5c97d21c48_cloud.mp3
[10:08:15][D][adf_media_player:030]: Got control call in state 1
[10:08:15][D][esp_adf_pipeline:050]: Starting request, current state STOPPED
[10:08:15][D][esp_adf_pipeline:302]: State changed from STOPPED to PREPARING
[10:08:15][I][adf_media_player:135]: got new pipeline state: 1
[10:08:15][D][adf_i2s_out:127]: Set final i2s settings: 16000
[10:08:15][D][esp_audio_processors:079]: New settings: SRC: rate: 16000, ch: 2 DST: rate: 16000, ch: 2
[10:08:16][D][esp-idf:000]: I (7767236) AUDIO_ELEMENT: [http] AEL_MSG_CMD_RESUME,state:1

[10:08:16][D][esp-idf:000]: I (7767239) AUDIO_ELEMENT: [decoder] AEL_MSG_CMD_RESUME,state:1

[10:08:16][D][esp_aud:000]:
ERROR Fatal error: protocol.data_received() call failed.
protocol: <aioesphomeapi._frame_helper.noise.APINoiseFrameHelper object at 0x7f06254bf060>
transport: <_SelectorSocketTransport fd=6 read=polling write=<idle, bufsize=0>>
Traceback (most recent call last):
  File "/usr/lib/python3.11/asyncio/selector_events.py", line 1009, in _read_ready__data_received
    self._protocol.data_received(data)
  File "aioesphomeapi/_frame_helper/noise.py", line 136, in aioesphomeapi._frame_helper.noise.APINoiseFrameHelper.data_received
  File "aioesphomeapi/_frame_helper/noise.py", line 163, in aioesphomeapi._frame_helper.noise.APINoiseFrameHelper.data_received
  File "aioesphomeapi/_frame_helper/noise.py", line 319, in aioesphomeapi._frame_helper.noise.APINoiseFrameHelper._handle_frame
  File "/usr/local/lib/python3.11/dist-packages/noise/state.py", line 74, in decrypt_with_ad
    plaintext = self.cipher.decrypt(self.k, self.n, ad, ciphertext)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/noise/backends/default/ciphers.py", line 13, in decrypt
    return self.cipher.decrypt(nonce=self.format_nonce(n), data=ciphertext, associated_data=ad)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "src/chacha20poly1305_reuseable/__init__.py", line 127, in chacha20poly1305_reuseable.ChaCha20Poly1305Reusable.decrypt
  File "src/chacha20poly1305_reuseable/__init__.py", line 147, in chacha20poly1305_reuseable.ChaCha20Poly1305Reusable.decrypt
  File "src/chacha20poly1305_reuseable/__init__.py", line 263, in chacha20poly1305_reuseable._decrypt_with_fixed_nonce_len
  File "src/chacha20poly1305_reuseable/__init__.py", line 273, in chacha20poly1305_reuseable._decrypt_data
cryptography.exceptions.InvalidTag
WARNING onju-voice-dr @ <IP_ADDRESS>: Connection error occurred: onju-voice-dr @ <IP_ADDRESS>: Invalid encryption key: received_name=onju-voice-dr
INFO Processing unexpected disconnect from ESPHome API for onju-voice-dr @ <IP_ADDRESS>
WARNING Disconnected from API
INFO Successfully connected to onju-voice-dr @ <IP_ADDRESS> in 0.010s
INFO Successful handshake with onju-voice-dr @ <IP_ADDRESS> in 0.109s

If I stick the audio URLin a browser, it plays the expected audio.  I don't see anything in the HA logs when this happens.

@rccoleman can you double check that the encryption key in the config is the same as that stored in HA config entry?

@rccoleman can you double check that the encryption key in the config is the same as that stored in HA config entry?

The noise_psk key in the config_entry is the same as the one specified in the ESPHome config:
api:
  encryption:
    key: "same_as_noise_psk_key"

Is there something that prevents to merge this to the main branch?

Some minor comments here on testing this: It works nicely most of the time but sometimes I needed to do a fully clean build and re-upload to get stuff working, not sure what is happening there..
Meanwhile I added a http mp3 link served by home assistant to the on_wakeword_detected. This works fine, but it is too slow when using HTTPS... so I downgraded to HTTP (hosting it somewhere else than my HA instance now using a simple http server)
micro_wake_word:
  model: okay_nabu
  probability_cutoff: 0.6
  on_wake_word_detected:
    - if:
        condition: media_player.is_playing
        then:
          - media_player.pause
    - media_player.play_media:
        id: onju_out
        media_url: "http://<IP_ADDRESS>:8000/beep.mp3"
    - delay: 300ms # tuned to length, works a bit better than waiting for state
    #- wait_until:
    #    not:
    #      media_player.is_playing: onju_out
    - voice_assistant.start:
        wake_word: !lambda return wake_word;


CommandAPI logs should be silent if logs are not "verbose"

Please describe your suggestion

These logs ^ are too spammy. This looks especially worse when you have a shaded copy of the CommandAPI. Perhaps implement some sort of silentLogs config option?
new CommandAPIConfig(false, true);

Implemented in 6.0.0.


Question about img_norm_cfg

Hi, the mean and std in img_norm_cfg is "mean=[75.3, 76.6, 77.6], std=[50.5, 53.8, 54.3], to_rgb=False". Why didn't you use the origin value mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True?
Thank you !

Having the same question, did you find an answer?

I computed mean and std over 1000 random samples from the CurveLanes dataset. It appears that my numbers are to some extend similar to the numbers in img_norm_cfg. So i assume they computed the mean and std over one of the datasets or all datasets.
Mean: [73.801, 81.312, 79.472]
Standard Deviation: [60.823, 55.079, 56.215]


[FLINK-15937][python] Update the Development Status to 5 - Production/…

What is the purpose of the change
Update the Development Status to 5 - Production/Stable.
Brief change log

Update the Development Status to 5 - Production/Stable in setup.py

Verifying this change
This change do not need any test.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): ( no)
The public API, i.e., is any changed class annotated with @Public(Evolving): ( no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not documented)

@sunjincheng121 LGTM. +1 to merge.

Thanks @dianfu ,Merging...

@sunjincheng121 Thanks a lot for the update. LGTM. +1 to merge.


Benchmark demo

Something like DemoFX utilizing most core FXGL features for ~2mins with FPS stats at the end.

Hi @AlmasB
The basic idea behind DemoFX is that all effects extends an AbstractEffect subclass which has a start and stop time.
The demos programmatically set up the start and stop times for each effect to form a sequence.
The main loop class extends javafx.animation.AnimationTimer and renders (multiple) effects whose start and stop time span the current time. The class also handles recording the FPS.
Maybe with FXGL you could create scenes that demonstrate different aspects of the framework - collision detection, high sprite count, parallax scrolling, ...
Just a few thoughts.
Cheers,
Chris


Add swapped/swappedW to TaskEither

Similar to https://github.com/gcanti/fp-ts/issues/1360, I've been looking for a good way to be able to write log messages while on the left side of an Either. chainFirstIOK will be perfect for this, but there's no equivalent for the left side (where more logging will happen).
This adds a swapped/swappedW function which applies a function with the left and right sides swapped, then swaps them back again.
Leaving this as WIP for feedback, in case there's a better approach, name etc. Would need rolling out to the other Either categories too.

@thewilkybarkid my plan would be to backport these two helpers from v3

Ah, brillant. I really should look through the v3 branch more. 😅
Happy to do the leg work if you like.

@thewilkybarkid thanks, I made public my todo list for v2.11 (https://github.com/gcanti/fp-ts/issues/1446)

Closing in favour of #1463.


Add recognition of engines field in package manifest

This adds recognition of the engines field in package manifests.
While field keys can be arbitrary package/engine names, this currently restricts it to node and known package managers (npm/pnpm/yarn).

@Mrtenz Done :+1:


Allow pgsql filter threshold to be configured.

This threshold depends on the documents we're searching. It'd be helpful to
allow an agency implementation to show all matches, for example.

Coverage increased (+0.01%) to 93.703% when pulling 0b2166f2e98479a90e4115a26588b4e7af9bb4e2 on 475-config-search-limit into 618955d3c87c1eee9fc4c42eb15b92e343be030f on master.

Thanks @tadhg-ohiggins . I'll bump the version number then merge.

Coverage increased (+0.01%) to 93.703% when pulling 228d8f6105a0bd268fa5fb7687f952e5509e0ba4 on 475-config-search-limit into 618955d3c87c1eee9fc4c42eb15b92e343be030f on master.


Get rid of statannotation

Description of feature
Due to https://github.com/trevismd/statannotations/issues/122
Only used once
https://github.com/theislab/pertpy/blob/c58266b609f736d3776f5f0d46186875d183e3bf/pertpy/plot/_coda.py#L498

CC @tessadgreen


ARROW-13199: [R] add ubuntu 21.04 to nightly builds

@github-actions crossbow submit test-r-rocker-r-edge-latest

@jonkeane the change itself looks good to me, though the build is failing.

Thanks for taking a look at this. I actually think that I might change the implementation and manage a docker file that does something similar in our repo (while this one is published to rocker, it looks like quite a bit of a one-off).
The failure is accurate: we are not currently able to build on gcc11. I've tried bumping both aws-c-common and aws-sdk-cpp versions. The first resolves one error, though the second one doesn't build due to changes in the way that aws-sdk-cpp handles dependencies. I'm still trying to get it, but it looks like they've transitioned to a setup where they require using git (+ submodules) to grab the dependencies.

@github-actions crossbow submit test-r-ubuntu-21.04 test-r-gcc-11

Ok, I've split these out into two different jobs:

one that is 21.04 directly (which fails when building R with a segfault on loading)
one that is testing gcc 11 and that shows issues building the aws-sdk

I'm going to try and resolve the 21.04 issue now, but we might need to punt on gcc11 support for now, especially in light of https://issues.apache.org/jira/browse/ARROW-13134 which is pinning to a version of the aws-sdk that won't build cleanly on gcc11

Or you can disable S3 on that build for now?

@github-actions crossbow submit -g r

@github-actions crossbow submit -g r

@github-actions crossbow submit test-r-ubuntu-21.04 test-r-gcc-11

@github-actions crossbow submit test-r-ubuntu-21.04 test-r-gcc-11

@github-actions crossbow submit test-r-ubuntu-21.04 test-r-gcc-11

@github-actions crossbow submit test-r-ubuntu-21.04 test-r-gcc-11

@github-actions crossbow submit test-r-ubuntu-21.04 test-r-gcc-11

@github-actions crossbow submit test-*ubuntu

@github-actions crossbow submit test-ubuntu-

@github-actions crossbow submit -g r

@github-actions crossbow submit test-r-rstudio-r-base-3.6-centos8

This is ready for review again. This PR does a number of things (though all ended up being related):

Resolves a building flag issue for the R package on Ubuntu 21.04 where installing Arrow (and building static libraries) results in a segfault on load. This is by adding -fno-lto flags where appropriate in those build scripts
Adds a Ubuntu 21.04 dockerfile for testing on 21.04
Adds an option (only available in the 21.04 dockerfile for now) to install different versions of gcc for testing (including 11)
Adds the ability in the R build to specify a maximal build (i.e. LIBARROW_MINIMAL=FALSE) but remove just S3 (i.e. ARROW_S3=OFF)

The crossbow builds that have failed are either:

failing in our nightlies already: test-r-versions (ARROW-13243), test-r-rtools-35(ARROW-13216), test-r-linux-valgrind, and test-ubuntu-20.04-cpp-thread-sanitizer
transient test-r-rstudio-r-base-3.6-centos8

One things to note: the GCC 11 build fails if we enable S3 — we need to upgrade both aws-c-common and aws-sdk-cpp to versions that have fixes for GCC 11. We recently pinned a lower version for other reasons, so I have not made that change here (we should do it, but in a separate ticket)
This should close the following Jiras (as well as the one it's associated with):

https://issues.apache.org/jira/browse/ARROW-13192
https://issues.apache.org/jira/browse/ARROW-13196

@github-actions crossbow submit test-r-ubuntu-21.04 test-r-gcc-11

Thanks for the help @kszucs , I've made the changes that implement what you suggested (I'll push them in a bit).
One difference using the same ubuntu-r docker layer for both non-static and static is that the non-static one will build a version of the cpp that we then ignore later when R is being installed. Since we're running the same command:
    command: >
      /bin/bash -c "
        /arrow/ci/scripts/cpp_build.sh /arrow /build &&
        /arrow/ci/scripts/python_build.sh /arrow /build &&
        /arrow/ci/scripts/r_test.sh /arrow"

That wouldn't be a huge deal, but I'm running into an issue with the GCC11 build where if we do run /arrow/ci/scripts/cpp_build.sh /arrow /build first, the r package fails to build the cpp when it needs to: https://github.com/ursacomputing/crossbow/runs/2973848414#step:7:6488 (note: it's possible this is resolveable with a different change, I haven't dug too deeply into it — and don't want to delay the other fixes in this ticket tracking down this particular failure)
If I change this command to be:
    command: >
      /bin/bash -c "
        /arrow/ci/scripts/r_test.sh /arrow"

it passes just fine. Is there a way with archery to override the docker command (e.g. from the tasks.yml file) (like I can do with the docker-compose commands below)? I've looked and tried a few things, but nothing seemed to work.
Another alternative would be to create another docker-compose service like the following (and we might even move some of the content in flags here too). Though this is similar to what I had before that we've changed
  ubuntu-r-static:
    extends: ubuntu-r
    command: /bin/bash -c "/arrow/ci/scripts/r_test.sh /arrow"

Hmm, it looks like that supplying a custom command should work out of the box now that I read the source, but this is what I'm getting when I try with this command:
UBUNTU=21.04 ARROW_R_DEV=TRUE CLANG_TOOLS=9 GCC_VERSION=11 docker-compose run -e ARROW_SOURCE_HOME="/arrow" -e FORCE_BUNDLED_BUILD=TRUE -e LIBARROW_BUILD=TRUE -e ARROW_S3=OFF ubuntu-r "/bin/bash -c '/arrow/ci/scripts/r_test.sh /arrow'"
Creating arrow_ubuntu-r_run ... done
Error response from daemon: OCI runtime create failed: container_linux.go:367: starting container process caused: exec: "/bin/bash -c '/arrow/ci/scripts/r_test.sh /arrow'": stat /bin/bash -c '/arrow/ci/scripts/r_test.sh /arrow': no such file or directory: unknown
ERROR: 1

@github-actions crossbow submit test-r-ubuntu-21.04 test-r-gcc-11

I moved to 21.04 on my laptop to avoid drivers problems... and now I'm solving problems to install Arrow, like moving to a better circle in Dante's Inferno
Here are the installation steps I used
git clone -b ARROW-13199-r-ubuntu-21.04 git@github.com:jonkeane/arrow.git ARROW-13199-r-ubuntu-21.04

cd ARROW-13199-r-ubuntu-21.04/r
ln -s '/home/pacha/github/arrow-setup/02-install-arrow.sh'
bash 02-install-arrow.sh

02-install-arrow.sh corresponds to https://github.com/pachadotdev/arrow-setup/blob/main/02-install-arrow.sh, and I installed with ninja configures as in https://github.com/pachadotdev/arrow-setup/blob/main/01-install-dependencies.sh
This is the output after building successfully from this branch:
> arrow_info()
Arrow package version: <IP_ADDRESS>00

Capabilities:

dataset    TRUE
parquet    TRUE
s3         TRUE
utf8proc   TRUE
re2        TRUE
snappy     TRUE
gzip       TRUE
brotli     TRUE
zstd       TRUE
lz4        TRUE
lz4_frame  TRUE
lzo       FALSE
bz2        TRUE
jemalloc   TRUE
mimalloc  FALSE

Memory:

Allocator jemalloc
Current    0 bytes
Max        0 bytes

Runtime:

SIMD Level          avx2
Detected SIMD Level avx2

Build:

C++ Library Version                            5.0.0-SNAPSHOT
C++ Compiler                                              GNU
C++ Compiler Version                                   10.3.0
Git ID               5ad97c6c43b936a64c7124f0407799a768a5acae

I've created https://issues.apache.org/jira/browse/ARROW-13261 to remove the additional service once GCC 11 building is fixed (either via https://issues.apache.org/jira/browse/ARROW-13241 or another ticket)

@jonkeane Sorry, just seen the notification. Just wanted to confirm that your solution looks good to me.

No problem, thanks for the confirmation!

@jonkeane It seems that we can't use extends in docker-compose.yml.
$ archery docker run python-wheel-manylinux-2014 bash
...
ValueError: Found errors with docker-compose:
 - The Compose file '/home/kou/work/cpp/arrow.kou/docker-compose.yml' is invalid because:
 - Unsupported config option for services.ubuntu-r-only-r: 'extends'

Out of curiosity, what version of docker-compose are you running? It looks like it was removed from the v3 specification, but then added back in. I'm running version 1.29.1 and it seems to work for me.
Regardless of it being supported in new versions, we might want to revert this to the prior full but more repetitive specification I had earlier in the PR process (or we could figure out / fix overriding the command issue I ran into).

Thanks. I'm using 1.25.0 installed by apt: https://packages.debian.org/search?keywords=docker-compose
I'll use newer docker-compose.


New version: HydraLauncher.Hydra version 2.1.7

Pull request has been created with komac v2.6.0 :rocket:
Microsoft Reviewers: Open in CodeFlow

I'm guessing one of the words in the manfest might be causing the Policy 2.3 check.


Performance Improvement

Our customers see performance lags when typing very fast.
I debugged the elastic code and saw that every key stroke fires the adjust-function 2 times! One time called by the model-watcher and second time by the "oninput"-event of the textarea.
To improve the performance I buffered the function-call of adjust:
var bufferedAdjust = null;
function adjust() {
    if( !bufferedAdjust ) {
      bufferedAdjust = $timeout(_adjust, 100);
      bufferedAdjust.then(function () {
        bufferedAdjust = null
      });
    }
}

function _adjust() {
 // here is the original adjust-function-code
...

to investigate

Any updates on this please?

We also experience performance issues when the user enters a lot of text and then types fast. The profiler points out that the adjust function takes long because of "getPropertyValue" which I suppose means reading styles values from the DOM. Is there a way to bypass that?

Archiving repository.


Should casting be applied after default value

If a user has added casting that means that the user expects this field to be of a certain type.
I think that we should then cast the final value we get, regardless if it was the result of data fetching, if statements, regexes or default value.
Unless theres a good usecase for having default values be other types than whatever is in casting.
what do you think @ChameleonTartu ?

This does not really make sense outside my config generator, so i'll close this here. JSON has the types needed to express default values.


Force local linting

Motivation
Linting as in #367 is essential for concise PRs.
Linting should be enforced prior to merging, latest in CI.
However, it's a bad contributor experience and a waste of resources if a contributor pushes his changes, considers things done and only a pipeline fail tells him that his IDE forgot to prettify for him/her ;)
What's in this PR
This PR adds a pre-commit-hook which lints the code and fixes easy fixes (such as blanks or semicolons) on the contributor's machine. As the name suggests, this process runs prior to completing the commit, meaning the developer can't commit with linting issues.
Considerations

This PS is based upon #367 and should be merged 🔜  after this PR
Inexperienced developers may not understand that the linting happens pre-commit. I added a section to the contributions-guidelines to make this clear. Those who don't read this, well ...
Once there's a CI/CD in place, we could relax the check in various ways (e. g. that it only lints but doesn't fail), but I'd not recommend to do that now.

Give me a second with the actual merge, I figured that lint:fix might not be the best experience: If there are linting errors and the pre-commit fixes them, those changes will stay in the staging area but will not be automatically commited.
Thus, a subsequent pre-commit check will succeed without adding those to the commit.
Thus, I prefer some script which just checks and informs the developer about what he's got to do. I'll add that in a few

I added a small shell script which informs the developer what's going on.
Here's how it looks like

I do think this is better DX than linted files that are stuck in the staging area 😬

Soo. I did checkout, I use webstorm and it seems it ignores it and commits without it :D
I kinda view this as connivance.
In the end its repo rules that do not allow to merge that really enforce this.

Looks like two people like it.
I guess let's go.

Soo. I did checkout, I use webstorm and it seems it ignores it and commits without it 🫥

This is not a feature of the IDE, but if git itself. Even webstorm can't ignore it 😬
The hook is installed on first pnpm i . Did you perform it?

@wonderwhy-er it was not the typecheck that failed, but the subsequent linting.
If you run pnpm lint on the command-line, you'd see the same error.
Also, if you committed on the command-line, you'd get the same error.
The error also says "❌ Linting failed".
How could we improve verboseness?

edit: @wonderwhy-er added a fix to the error message to better help you ;)


Floating button as simple button

How can I use LGPlusButtonsView as simple button without any rotation, showing buttons on tap? Something like that is needed: https://github.com/bernikowich-cedoni/LGPlusButtonsView/commit/7f7211956af697b9935a9880c575112570239f30

Take look at plusButtonAnimationType property.


[gh-pages][ZEPPELIN-2303] Fix lately published package ordering

What is this PR for?
I added pagination below Helium package list in https://zeppelin.apache.org/helium_packages.html by #2126. But after this, "Lately published" page doesn't show actual latest package first. It's because while i'm paginating the packages, I should've made ordering by published date first before slicing package array. This PR will fix it.
What type of PR is it?
Bug Fix | gh-pages
What is the Jira issue?
ZEPPELIN-2303
How should this be tested?
Run the website(gh-pages) locally as described in here and compare the ordering like below.
1. "zeppelin-sigma-spell" : "2017-03-10T09:31:56.802Z"
2. "zeppelin-d3-spell" : "2017-03-08T10:08:51.022Z"
3. "zeppelin-markdown-spell" : "2017-03-07T19:17:35.975Z"
4. "zeppelin-echo-spell" : "2017-03-07T11:37:44.283Z"
5. "zeppelin-csv-spell" : "2017-02-28T04:57:05.463Z"
6. "zeppelin-json-spell" : "2017-02-28T04:49:27.897Z"
7. "zeppelin-highcharts-heatmap" : "2017-02-14T12:46:02.732Z"
...

Last. "zeppelin-bubblechart" : "2017-01-23T20:42:34.373Z"

tl;dr "zeppelin-sigma-spell" should be the first & "zeppelin-bubblechart" should be the last
Screenshots (if appropriate)

Before

After

Questions:

Does the licenses files need update? no
Is there breaking changes for older versions? no
Does this needs documentation? no

Hi, I guess calling it 'recently published' instead of 'lately published' is a better slang

@sravan-s Thanks for the suggestion. Addressed in 34dfec8a41a0e998fcc8c030860a6c796d11df86 :)

CI failure is not related with this change since it's based on gh-pages branch.
Merge into gh-pages if there are no more comments.


ForEach not working

Describe the bug
When using ForEach inside a WrappingHStack, the wrapping doesn't work correctly. It works fine only with the custom init.
// Works
WrappingHStack(recipients) { recipient in
    RecipientChip(recipient: recipient)
}

// Does not work
WrappingHStack {
    ForEach(recipients, id: \.self) { recipient in
        RecipientChip(recipient: recipient)
    }
}

Expected behavior
The behavior should be the same for the two ways. This is especially useful to add multiple items to the stack.
Screenshots

Context:

WrappingHStack version: 2.2.1
Model: iPhone 13
OS: iOS 15.5

This is the expected behaviour, I could not find a better way to handle this case.


Check download links for all vendors

User story

As a developer
I want to have check the download links for all the vendors
So that there are no issues and firmware can be downloaded successfully

Acceptance criteria

All firmware downloads links from all vendors checked for error
Firmware downloaded where there are no errors
Output a warning in case of an issue

Definition of done (DoD)

All the acceptance criteria have been met
The code has been merged with the main one
The documentation and Bill of Materials have been updated
The code is complete and uploaded in GitHub
Functionality has been reviewed

DoD general criteria

Feature has been fully implemented
Feature has been merged into the mainline
All acceptance criteria were met
Product owner approved features
All tests are passing
Developers agreed to release

dlink has javascript outputs (in print)


perf(redux): optimize selectors with memoization

What is the motivation for this pull request?
perf(redux): optimize selectors with memoization
What is the current behavior?
Components and hooks calling useSelector are not memoized:

Selector unknown returned a different result when called with the same parameters. This can lead to unnecessary rerenders.
Selectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization

What is the new behavior?
Components and hooks calling useSelector are memoized
Checklist:

[x] Conventional Commits
[x] Tests
[ ] Documentation

Codecov Report

Merging #1259 (fdbaa1e) into master (2394acb) will not change coverage.
The diff coverage is 100.00%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff            @@
##            master     #1259   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           92        95    +3
  Lines          894       925   +31
  Branches       129       128    -1
=========================================
+ Hits           894       925   +31

Impacted Files
Coverage Δ

src/components/BoardControls/AddColumn.tsx
100.00% <100.00%> (ø)

src/components/BoardControls/Export.tsx
100.00% <100.00%> (ø)

src/components/Boards/AddBoard.tsx
100.00% <100.00%> (ø)

src/components/Column/Column.tsx
100.00% <100.00%> (ø)

src/components/Column/ColumnName.tsx
100.00% <100.00%> (ø)

src/components/Columns/Columns.tsx
100.00% <100.00%> (ø)

src/components/Columns/DragDropContainer.tsx
100.00% <100.00%> (ø)

src/components/Item/Item.tsx
100.00% <100.00%> (ø)

src/components/Item/LikeButton.tsx
100.00% <100.00%> (ø)

src/components/Item/Likes.tsx
100.00% <100.00%> (ø)

... and 13 more


Minor updates for accessibility

Some minor changes to resolve issues detected by the Google Lighthouse audit tool.

thank you so much @fbeeper 🏅

Hm, not sure why danger isn't working, but the site builds. Going to merge.

@fbeeper I invited you to the org, so you should have push access now.


Export to Fusion Tables / Google Spreadsheets

Once you have extracted data from table, it might be handy to be able to export it to Fusion Tables or Google Spreadsheet from the App
Implementing this requires getting authorization with OAuth, uploading the data via the API, etc

wontfix


How to get noticed when player finished?

How can i be notified when the player did finish playing the current item? I have a UISlider to control its progress and i have to reset the slider when the item was played to 0.0

As far as i can see, the only available states are Ready, Playing, Failed, Paused, Loading

Oh, i think i found it. Ready should be the right state, am i right?


[$500] Android – Request – “Next step” is partly visible in the WS with IOU if device font size is larger

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.21-4
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Go to https://staging.new.expensify.com/
Log in
Make a device font size larger than the default
Navigate to the WS with IOU
Open IOU page

Expected Result:
“Next step” is fully visible in the WS with IOU if device font size larger than the default .
Actual Result:
“Next step” is partly visible in the WS with IOU if device font size larger than the default .
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/93399543/e9d9be6e-b1f4-4c6c-88c3-3fdd96c149d1
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01cae7b1feabc7d940
Upwork Job ID:<PHONE_NUMBER>581362688
Last Price Increase: 2024-01-18

Proposal
Please re-state the problem that we are trying to solve in this issue.
When we increase device font size, the Next Step text is partially visible because it's really big.
What is the root cause of that problem?
In the Next Step font size dynamically increases as we increase the system font size. We actually use a textMicroBold style for the Next Step text and the max font size for it is 17.
https://github.com/Expensify/App/blob/d5f5856b610cc39d5b5f2b054dab67bb74d66922/src/components/MoneyReportHeaderStatusBar.tsx#L27
https://github.com/Expensify/App/blob/d5f5856b610cc39d5b5f2b054dab67bb74d66922/src/styles/index.ts#L375-L379
But we use RN Text component to render the Next Step, not our custom Text.
What changes do you think we should make in order to solve the problem?

Replace RN Text with our custom Text component

@c3024 can you review the proposal above? Is it sufficient, or should we keep an eye out for more?

Have issues with building Android app. Will review ASAP.

@c3024 how's your android build coming along? Are you still having trouble with it?

@bernhardoj 's proposal here looks good to me.
🎀 👀 🎀 C+ Reviewed

Yes. I've not pulled the latest main when I reviewed it. Thanks.
The issue can be closed.


Improve favicon display

E.g. on safari mobile bookmarks, the favicon is weirdly sized.
Good guide on doing it right:
https://evilmartians.com/chronicles/how-to-favicon-in-2021-six-files-that-fit-most-needs

@chenglou you fixed this, right?

Yeah


Release a new version 0.1.0 with proper Changelog updates

After all the refactoring, cleanup and new tests we should release a new version.
Till now we have been releasing new versions but we never maintained a proper CHANGELOG.md file to list all the important changes that are made in this new release. We should start doing that and this release will be that first with Changelog.

That's a really great idea @srgothi92. It will make it easier for users to understand what has changed between releases, what will be introduced in the next release, which features became deprecated and which were entirely removed.
Can I contribute to it in some way?


4.2.0 release changed IdentityClient.getInstance().validateIdentityOnToken call return signature

https://github.com/frontegg/nodejs-sdk/releases/tag/4.2.0 changed the values returned from IdentityClient.getInstance().validateIdentityOnToken. Now roles and permissions are not returned anymore, which should be considered a breaking change.
This should've been a major version bump instead of a minor version according to semver. Teams who use dependency bots with automerge features would end up with a broken deployment.

Hi, @mcmxcdev,
Thanks for you noticing this change.
As it turns out the functions behavior did not change, and only the typing for it has.
We will release a fix with the previous typing soon.
Important to say - it is safe to use this version as the behavior hasn't changed.


Switch from Kryo to something more cross-platform

If we ever want to access the same data from a different language, Kryo will be a barrier since it's mostly just implemented in Java.

This has been implemented with https://github.com/getlantern/db-android/commit/a066a76a3fb32f416f5099f3e4a48eb3f42eac8d
I tested it against an existing install and the data migration worked fine.


Possible NPE

https://github.com/edgexfoundry/device-sdk/blob/7ce188b21aeb50d28b081e4db54a4c38070f20f5/src/main/java/org/edgexfoundry/BaseService.java#L299
getService() can return null

Thanks @ivelichko, I've added an explicit check for the condition.


Support configuring the bucket as a website

It would be useful to have an opt-in option for saying "this bucket should be configured as a website" - because setting that up without a tool is quite fiddly.
https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteAccessPermissionsReqd.html has the details:

When you configure a bucket as a static website, if you want your website to be public, you can grant public read access. To make your bucket publicly readable, you must disable block public access settings for the bucket and write a bucket policy that grants public read access.

See #20 for "block public access" setting, and #19 for bucket policies.

Relevant boto3 documentation: https://boto3.amazonaws.com/v1/documentation/api/1.9.42/guide/s3-example-static-web-host.html
import boto3

# Create an S3 client
s3 = boto3.client("s3")

# Create the configuration for the website
website_configuration = {
    "ErrorDocument": {"Key": "error.html"},
    "IndexDocument": {"Suffix": "index.html"},
}

# Set the new policy on the selected bucket
s3.put_bucket_website(Bucket="my-bucket", WebsiteConfiguration=website_configuration)

I think the --website option can default to error.html and index.html in the above, maybe providing separate --website-error= and --website-index= options for people who want to customize those.

I manually confirmed that turning off the public block stuff and configuring the website settings still isn't enough to expose files uploaded to the bucket - you also need to add the following bucket policy (see #19):
{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"PublicRead",
      "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject","s3:GetObjectVersion"],
      "Resource":["arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"]
    }
  ]
}

I'm going to always set them to index.html and error.html - I think those are perfectly sensible defaults. If someone really wants something else they can figure out how to do that outside of using this tool.
So I'll have a --website flag which implies --public and configures those.

Prototype:
diff --git a/s3_credentials/cli.py b/s3_credentials/cli.py
index 110c153..a9b1f84 100644
--- a/s3_credentials/cli.py
+++ b/s3_credentials/cli.py
@@ -252,6 +252,11 @@ def policy(buckets, read_only, write_only, prefix, extra_statements, public_buck
     help="Make the created bucket public: anyone will be able to download files if they know their name",
     is_flag=True,
 )
<EMAIL_ADDRESS>+    "--website",
+    help="Configure bucket to act as a website, using index.html and error.html",
+    is_flag=True,
+)
 @click.option("--read-only", help="Only allow reading from the bucket", is_flag=True)
 @click.option("--write-only", help="Only allow writing to the bucket", is_flag=True)
 @click.option(
@@ -286,6 +291,7 @@ def create(
     create_bucket,
     prefix,
     public,
+    website,
     read_only,
     write_only,
     policy,
@@ -331,6 +337,9 @@ def create(
     if not user_permissions_boundary and (policy or extra_statements):
         user_permissions_boundary = "none"

+    if website:
+        public = True
+
     s3 = None
     iam = None
     sts = None
@@ -376,6 +385,10 @@ def create(
                     if bucket_policy:
                         click.echo("... then attach the following bucket policy to it:")
                         click.echo(json.dumps(bucket_policy, indent=4))
+                    if website:
+                        click.echo(
+                            "... then configure index.html and error.html website settings"
+                        )
                 else:
                     s3.create_bucket(Bucket=bucket, **kwargs)
                     info = "Created bucket: {}".format(bucket)
@@ -388,6 +401,18 @@ def create(
                             Bucket=bucket, Policy=json.dumps(bucket_policy)
                         )
                         log("Attached bucket policy allowing public access")
+                    if website:
+                        s3.put_bucket_website(
+                            Bucket=bucket,
+                            WebsiteConfiguration={
+                                "ErrorDocument": {"Key": "error.html"},
+                                "IndexDocument": {"Suffix": "index.html"},
+                            },
+                        )
+                        log(
+                            "Configured website: IndexDocument=index.html, ErrorDocument=error.html"
+                        )
+
     # At this point the buckets definitely exist - create the inline policy for assume_role()
     assume_role_policy = {}
     if policy:

Point of confusion: if you do this, you still need to change the overall URL you are using to access the bucket in order to get website behaviour: https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteEndpoints.html
http://bucket-name.s3-website.Region.amazonaws.com/

I used my prototype to create this: http://sfms-slides.s3-website.us-east-1.amazonaws.com/
Weirdly https://sfms-slides.s3-website.us-east-1.amazonaws.com/ (using https not http) doesn't seem to work for me.

https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-custom-domain-walkthrough.html says:

Amazon S3 website endpoints do not support HTTPS or access points. If you want to use HTTPS, you can use Amazon CloudFront to serve a static website hosted on Amazon S3.
For more information, see How do I use CloudFront to serve a static website hosted on Amazon S3?
and Requiring HTTPS for communication between viewers and CloudFront.

Would be useful if this could output that URL as part of running the command, since figuring out the URL is tricky.
Could also return that URL from the s3-credentials list-buckets --details command - which would then also need to be able to figure out what region the bucket is in.


Resizing PVC

refs: https://github.com/cybozu-go/moco/issues/265
Add enhancement to ｓupport applying PVC template changes to StatefulSet.
See https://github.com/cybozu-go/moco/pull/412 for design docs.
This PR implements the core functionality, but the following elements are done in a separate pull request

[ ] Add E2E tests
[ ] Documentation Updates

Manually tested before adding E2E test:

apply mysqlcluster

$ cat mycluster.yaml
apiVersion: moco.cybozu.com/v1beta1
kind: MySQLCluster
metadata:
  namespace: default
  name: test
spec:
  replicas: 3
  podTemplate:
    spec:
      containers:
      - name: mysqld
        image: quay.io/cybozu/mysql:8.0.28
  volumeClaimTemplates:
  - metadata:
      name: mysql-data
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 1Gi

$ kubectl apply -f mycluster.yaml
mysqlcluster.moco.cybozu.com/test created

check PVC

$ kubectl get pvc -o yaml | grep -C 2 requests
    - ReadWriteOnce
    resources:
      requests:
        storage: 1Gi
    storageClassName: standard
--
    - ReadWriteOnce
    resources:
      requests:
        storage: 1Gi
    storageClassName: standard
--
    - ReadWriteOnce
    resources:
      requests:
        storage: 1Gi
    storageClassName: standard

check statefulset

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: moco-test
  namespace: default
spec:
<snip>
  volumeClaimTemplates:
  - apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: mysql-data
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
      volumeMode: Filesystem

edit mysqlcluster

  apiVersion: moco.cybozu.com/v1beta1
  kind: MySQLCluster
  metadata:
    namespace: default
    name: test
  spec:
    replicas: 3
    podTemplate:
      spec:
        containers:
        - name: mysqld
          image: quay.io/cybozu/mysql:8.0.28
    volumeClaimTemplates:
    - metadata:
        name: mysql-data
+       labels:
+         foo: bar
      spec:
        accessModes: [ "ReadWriteOnce" ]
        resources:
          requests:
+           storage: 2Gi
-           storage: 1Gi

check PVC

$ kubectl get pvc -o yaml | grep -C 2 requests
    - ReadWriteOnce
    resources:
      requests:
        storage: 2Gi
    storageClassName: standard
--
    - ReadWriteOnce
    resources:
      requests:
        storage: 2Gi
    storageClassName: standard
--
    - ReadWriteOnce
    resources:
      requests:
        storage: 2Gi
    storageClassName: standard

check sts

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: moco-test
  namespace: default
spec:
<snip>
  volumeClaimTemplates:
  - apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      labels:
        foo: bar
      name: mysql-data
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 2Gi
      volumeMode: Filesystem

@d-kuro Could you extend the scope of the original issue to include cases where users might edit metadata of volumeClaimTemplates?

@ymmt2005
I understood.
I will fix the code and design document 🙏

@ymmt2005 @masa213f
I fixed codes corrections based on the design document (https://github.com/cybozu-go/moco/pull/412)
Please re-review 🙏


Add block number

Adds the block number to the revm receipt

I took a look but I think @Autoparallel would know better if this works or not. So what we can expect from doing a transaction with revm is that it will go from -> PollState::Pending -> PendingState::RevmTransactOutput. We won't hit those other states?

Yes the enum fields were added by me in my own fork which I imported as our own repo to make collaboration easier. We will bypass all the polling of transactions since there effectively is none. The additional fields should never be accessed by other middleware implementations, so it should be safe to extend.


Not working at all!

Error regarding frontmatter mangling, on each mkNewIndexFile() and mkNewMocFile() invokation.

It's currently (mostly) working on my tests.


MdRadioGroup change event conflicting with native change event

Proposal / Bug:
The MdRadioGroup component with the change event wired up and a text input as one of its children receives the text inputs native change event bubbled up after a user types in the input and removes focus.  Should native browser event names be used in components?
What is the expected behavior?
The component shouldn't respond to native change events bubbled up from its children.
What is the current behavior?
The component responds to native change events bubbled up from its children.
What are the steps to reproduce?
In the plunker if you click between the radio buttons you will see it logs the MdRadioChange event.  Then when you type into the text control and click away you receive a native change event in the radioGroupChange handler.
Plunk
What is the use-case or motivation for changing an existing behavior?
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Angular Material - 2.0.0-beta.5
Is there anything else we should know?

@THLAP Any special reason you need to put input-container inside a radio button group?
You can add (change)="$event.stopPropagation()" to input-container. Example: http://plnkr.co/edit/taAAI2hDKrsNzOVqJQzl?p=preview

@tinayuangao I have requirements to build a control with a set of radio buttons and each one should have a text field below it to capture custom text input.  Nesting them this way worked well with my layout.  I did end up going with your solution to get around the issue.
I was really wondering should material components have exposed events that match native DOM events?  This is one case where it causes an issue and there are other material components that have "change" events.  Not sure if this could become more of an issue at some point.

@THLAP If it's only for layout purpose, you are suggested to put input-container outside radio button groups and use css for layout.
The change events are for angular forms.


Is it possible to change the deployment setting?

After deploying a real-time inference pipeline and stress tested the endpoint, I received HTTP status code 503.  https://docs.microsoft.com/en-us/azure/machine-learning/how-to-troubleshoot-deployment suggests the possible solutions, where the default parameters for deployment should be changed. E.g. autoscale_target_utilization, autoscale_max_replicas  and autoscale_min_replicas. I unfortunately could not figure out how to modify these parameters in Azure ML studio Preview. Is it possible to do so? And is there any other ways to solute this problem? Thanks in advance.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 2d019e5f-d971-b4f4-5fcf-2072ad30dec7
Version Independent ID: 14a7de84-6cd6-ebeb-df6c-2d93dfadb742
Content: Tutorial: Deploy a machine learning model with the designer - Azure Machine Learning
Content Source: articles/machine-learning/tutorial-designer-automobile-price-deploy.md
Service: machine-learning
Sub-service: core
GitHub Login: @PeterCLu
Microsoft Alias: peterlu

@lingfengdk we will review your feedback and get back to you shortly. Thanks.

@lingfengdk you can use the update method as specified in the AksWebservice module reference. Hope this helps. Thanks.

@GiftA-MSFT Thank you for your reply. Does it mean that the default parameter updates are not supported in the designer (preview) when deploying a real-time inference pipeline?

Hi @lingfengdk, Sorry that currently we don't support change the parameters of deployment by UI, but you can change it through python SDK. Please refer to this doc.


ENH: Update integrate get_bounds and create_box utility functions into ufuncs

New helper functions get_bounds and create_box were added in #272 ; these can likely be integrated into bounds and box ufuncs.

Related: #306
We should add a check for nan in create_box and promote that to be used by the box ufunc.


[WFCORE-1563] Fix replace deployment fail on CLI batch mode

https://issues.jboss.org/browse/WFCORE-1563

Can one of the admins verify this patch?

this is ok to test

Thanks!

Core - Full Integration Build 2873 outcome was FAILURE using a merge of 9d038551aae0e4e60796ce90f25eb0c588cd33d2
Summary: Tests failed: 1 (1 new), passed: 3380, ignored: 194 Build time: 00:57:00
Failed tests
org.jboss.as.test.clustering.cluster.web.passivation.FineSessionPassivationTestCase(SYNC-tcp).test: java.lang.AssertionError: response doesn't contain header 'result', all response headers = {name=Connection, value=keep-alive}, {name=X-Powered-By, value=Undertow/1}, {name=Set-Cookie, value=JSESSIONID=_cJK5Z3YBoCRrc8BendvzG0LN8tfFmC_cLKBcBLz.node-0; path=/passivation}, {name=zlbMbrcu2q9ypwqblB3p8hrNUnz5SbXSEzbcoLtP, value=PASSIVATION}, {name=Server, value=WildFly/10}, {name=Content-Length, value=0}, {name=jsessionid, value=_cJK5Z3YBoCRrc8BendvzG0LN8tfFmC_cLKBcBLz}, {name=Date, value=Mon, 23 May 2016 15:59:30 GMT},
	at org.jboss.as.test.clustering.cluster.web.passivation.SessionPassivationTestCase.getRequiredHeaderValue(SessionPassivationTestCase.java:207)
	at org.jboss.as.test.clustering.cluster.web.passivation.SessionPassivationTestCase.test(SessionPassivationTestCase.java:153)
------- Stdout: -------
08:59:29,941 INFO  [org.jboss.as.test.clustering.NodeUtil] (main) Starting deployment=NONE, container=container-0
08:59:29,941 INFO  [org.jboss.as.test.clustering.NodeUtil] (main) Starting deployment=NONE, container=container-1
08:59:29,942 INFO  [org.jboss.as.test.clustering.NodeUtil] (main) Deploying deployment=deployment-0
 [0m08:59:29,954 INFO  [org.jboss.as.repository] (management-handler-thread - 1) WFLYDR0001: Content added at location /opt/buildAgent/work/38e1ea00f932992d/full/testsuite/integration/clustering/target/wildfly-SYNC-tcp-0/standalone/data/content/3c/1e689b3e681a9145c41f3ce740164fa2173536/content
 [0m [0m08:59:29,958 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-5) WFLYSRV0027: Starting deployment of "passivation.war" (runtime-name: "passivation.war")
 [0m [0m08:59:30,009 INFO  [org.infinispan.configuration.cache.EvictionConfigurationBuilder] (ServerService Thread Pool -- 28) ISPN000152: Passivation configured without an eviction policy being selected. Only manually evicted entities will be passivated.
 [0m [0m08:59:30,009 INFO  [org.infinispan.configuration.cache.EvictionConfigurationBuilder] (ServerService Thread Pool -- 28) ISPN000152: Passivation configured without an eviction policy being selected. Only manually evicted entities will be passivated.
 [0m [0m08:59:30,010 INFO  [org.infinispan.configuration.cache.EvictionConfigurationBuilder] (ServerService Thread Pool -- 10) ISPN000152: Passivation configured without an eviction policy being selected. Only manually evicted entities will be passivated.
 [0m [0m08:59:30,011 INFO  [org.infinispan.configuration.cache.EvictionConfigurationBuilder] (ServerService Thread Pool -- 10) ISPN000152: Passivation configured without an eviction policy being selected. Only manually evicted entities will be passivated.
 [0m [0m08:59:30,016 INFO  [org.infinispan.configuration.cache.EvictionConfigurationBuilder] (ServerService Thread Pool -- 28) ISPN000152: Passivation configured without an eviction policy being selected. Only manually evicted entities will be passivated.
 [0m [0m08:59:30,017 INFO  [org.infinispan.configuration.cache.EvictionConfigurationBuilder] (ServerService Thread Pool -- 28) ISPN000152: Passivation configured without an eviction policy being selected. Only manually evicted entities will be passivated.
 [0m [0m08:59:30,029 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 10) WFLYCLINF0002: Started passivation.war cache from web container
 [0m [0m08:59:30,042 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 28) WFLYCLINF0002: Started routing cache from web container
 [0m [0m08:59:30,053 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 28) WFLYUT0021: Registered web context: /passivation
 [0m [0m08:59:30,060 INFO  [org.jboss.as.server] (management-handler-thread - 1) WFLYSRV0010: Deployed "passivation.war" (runtime-name : "passivation.war")
 [0m08:59:30,073 INFO  [org.jboss.as.test.clustering.NodeUtil] (main) Deploying deployment=deployment-1
 [0m08:59:30,082 INFO  [org.jboss.as.repository] (management-handler-thread - 2) WFLYDR0001: Content added at location /opt/buildAgent/work/38e1ea00f932992d/full/testsuite/integration/clustering/target/wildfly-SYNC-tcp-1/standalone/data/content/60/368bf1b47bc8ac1f2ab1ea535f6d81fcbb05ec/content
 [0m [0m08:59:30,086 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-3) WFLYSRV0027: Starting deployment of "passivation.war" (runtime-name: "passivation.war")
 [0m [0m08:59:30,124 INFO  [org.infinispan.configuration.cache.EvictionConfigurationBuilder] (ServerService Thread Pool -- 23) ISPN000152: Passivation configured without an eviction policy being selected. Only manually evicted entities will be passivated.
 [0m [0m08:59:30,125 INFO  [org.infinispan.configuration.cache.EvictionConfigurationBuilder] (ServerService Thread Pool -- 23) ISPN000152: Passivation configured without an eviction policy being selected. Only manually evicted entities will be passivated.
 [0m [0m08:59:30,131 INFO  [org.infinispan.configuration.cache.EvictionConfigurationBuilder] (ServerService Thread Pool -- 29) ISPN000152: Passivation configured without an eviction policy being selected. Only manually evicted entities will be passivated.
 [0m [0m08:59:30,131 INFO  [org.infinispan.configuration.cache.EvictionConfigurationBuilder] (ServerService Thread Pool -- 29) ISPN000152: Passivation configured without an eviction policy being selected. Only manually evicted entities will be passivated.
 [0m [0m08:59:30,133 INFO  [org.infinispan.configuration.cache.EvictionConfigurationBuilder] (ServerService Thread Pool -- 23) ISPN000152: Passivation configured without an eviction policy being selected. Only manually evicted entities will be passivated.
 [0m [0m08:59:30,133 INFO  [org.infinispan.configuration.cache.EvictionConfigurationBuilder] (ServerService Thread Pool -- 23) ISPN000152: Passivation configured without an eviction policy being selected. Only manually evicted entities will be passivated.
 [0m [0m08:59:30,143 INFO  [org.infinispan.CLUSTER] (ServerService Thread Pool -- 23) ISPN000310: Starting cluster-wide rebalance for cache routing, topology CacheTopology{id=1, rebalanceId=1, currentCH=DefaultConsistentHash{ns=80, owners = (1)[node-0: 80+0]}, pendingCH=DefaultConsistentHash{ns=80, owners = (2)[node-0: 40+40, node-1: 40+40]}, unionCH=null, actualMembers=[node-0, node-1]}
 [0m [0m08:59:30,143 INFO  [org.infinispan.CLUSTER] (ServerService Thread Pool -- 29) ISPN000310: Starting cluster-wide rebalance for cache passivation.war, topology CacheTopology{id=1, rebalanceId=1, currentCH=DefaultConsistentHash{ns=80, owners = (1)[node-0: 80+0]}, pendingCH=DefaultConsistentHash{ns=80, owners = (2)[node-0: 40+40, node-1: 40+40]}, unionCH=null, actualMembers=[node-0, node-1]}
 [0m [0m08:59:30,181 INFO  [org.infinispan.CLUSTER] (transport-thread--p19-t19) ISPN000336: Finished cluster-wide rebalance for cache routing, topology id = 1
 [0m [0m08:59:30,186 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 23) WFLYCLINF0002: Started routing cache from web container
 [0m [0m08:59:30,188 INFO  [org.infinispan.CLUSTER] (transport-thread--p19-t20) ISPN000336: Finished cluster-wide rebalance for cache passivation.war, topology id = 1
 [0m [0m08:59:30,190 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 29) WFLYCLINF0002: Started passivation.war cache from web container
 [0m [0m08:59:30,201 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 23) WFLYUT0021: Registered web context: /passivation
 [0m [0m08:59:30,216 INFO  [org.jboss.as.server] (management-handler-thread - 2) WFLYSRV0010: Deployed "passivation.war" (runtime-name : "passivation.war")
 [0m [0m08:59:30,243 INFO  [stdout] (default task-36) http://[::1]:8080/passivation/listener?operation=set&name=a&value=1;jsessionid=zlbMbrcu2q9ypwqblB3p8hrNUnz5SbXSEzbcoLtP
 [0m [0m08:59:30,261 INFO  [stdout] (default task-37) http://[::1]:8080/passivation/listener?operation=set&name=a&value=2;jsessionid=0ZyozbDm5jhXuof3F0hymJF26_9k6J-AHDhoo7iS
 [0m [0m08:59:30,283 INFO  [stdout] (default task-4) http://[::1]:8080/passivation/listener?operation=get&name=a;jsessionid=zlbMbrcu2q9ypwqblB3p8hrNUnz5SbXSEzbcoLtP
 [0m08:59:30,290 INFO  [org.jboss.as.test.clustering.NodeUtil] (main) Starting deployment=NONE, container=container-0
08:59:30,290 INFO  [org.jboss.as.test.clustering.NodeUtil] (main) Starting deployment=NONE, container=container-1
08:59:30,290 INFO  [org.jboss.as.test.clustering.NodeUtil] (main) Undeploying deployment=deployment-0
 [0m08:59:30,287 INFO  [stdout] (default task-1) http://[::1]:8080/passivation/listener?operation=get&name=a;jsessionid=_cJK5Z3YBoCRrc8BendvzG0LN8tfFmC_cLKBcBLz
 [0m [0m08:59:30,303 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 10) WFLYUT0022: Unregistered web context: /passivation
 [0m [0m08:59:30,320 INFO  [org.infinispan.eviction.impl.PassivationManagerImpl] (ServerService Thread Pool -- 28) ISPN000029: Passivating all entries to disk
 [0m [0m08:59:30,320 INFO  [org.infinispan.eviction.impl.PassivationManagerImpl] (ServerService Thread Pool -- 28) ISPN000030: Passivated 2 entries in 0 milliseconds
 [0m [0m08:59:30,329 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 28) WFLYCLINF0003: Stopped passivation.war cache from web container
 [0m [0m08:59:30,333 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0028: Stopped deployment passivation.war (runtime-name: passivation.war) in 31ms
 [0m [0m08:59:30,353 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 28) WFLYCLINF0003: Stopped routing cache from web container
 [0m [0m08:59:30,360 INFO  [org.jboss.as.repository] (management-handler-thread - 2) WFLYDR0002: Content removed from location /opt/buildAgent/work/38e1ea00f932992d/full/testsuite/integration/clustering/target/wildfly-SYNC-tcp-0/standalone/data/content/3c/1e689b3e681a9145c41f3ce740164fa2173536/content
 [0m [0m08:59:30,360 INFO  [org.jboss.as.server] (management-handler-thread - 2) WFLYSRV0009: Undeployed "passivation.war" (runtime-name: "passivation.war")


What is micro_batch_size?

 Thanks!
As in
python finetune.py \
    --base_model 'decapoda-research/llama-7b-hf' \
    --data_path 'yahma/alpaca-cleaned' \
    --output_dir './lora-alpaca' \
    --batch_size 128 \
    --micro_batch_size 4

If you are running on colab you must take it as 4 , else i think on higher GPUs you can go upto 8. I tried to do this on colab pro and used 4 else i was getting OOM error,

I think it depends because I tried 16, but it worked.

gradient_accumulation_steps = batch_size // micro_batch_size


KAFKA-12372: Enhance TimestampCoverter Connect transformation to handle multiple timestamp or date fields

JIRA
Our team is having an issue of handling multiple timestamp fields in a kafka message, so for now if we use the converter then we have to add more fields in the config.
We can implement it in a generic way to check if the field.schema().name() is timestamp or date then we can convert it.

I ran my test, checkstyle and spotbugs successful at my local, but not sure some checks failed here

hi @kkonstantine, should one of your team members review the PR? we want to use this feature ASAP


cannot change temperature on iOS 18

On iOS/ iPadOS 18 you can't change temperature on an AirConditioner, on macOS Sonoma you can so it's not a config issue. Still trying to understand is its a bug of the beta or Apple changed something but since it happen since beta 1 I'm more for the second option
Screen iOS 18 vs macOS Sonoma
macOS Sonoma:

iOS 18 dev beta 4:

Same thing w mine

No news?

UPDATE: Fixed on iOS 18 beta 6


FINERACT-1188: README and other files are not covered by Spotless

Description
This is a replacement for #1381
Checklist
Please make sure these boxes are checked before submitting your pull request - thanks!

[x] Write the commit message as per https://github.com/apache/fineract/#pull-requests

[x] Acknowledge that we will not review PRs that are not passing the build ("green") - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.

[x] Create/update unit or integration tests for verifying the changes made.

[x] Follow coding conventions at https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions.

[x] Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/api-docs/apiLive.htm with details of any API changes

[x] Submission is not a "code dump".  (Large changes can be made "in repository" via a branch.  Ask on the developer mailing list for guidance, if required.)

@ptuomola FYI: I even got the Eclipse launcher configuration fixed; when you import the project into your workspace it immediately starts a build. Bonus: the symbolic link to gradlew is also not necessary anymore (removed it).

@vidakovic looks like the integration tests are failing... did they work for you locally?

@vidakovic unfortunately this has broken Eclipse for me again - we are back at not finding Gradle:
Errors occurred during the build.
Errors running builder 'Integrated External Tool Builder' on project 'fineract-provider'.
Variable references non-existent resource : ${workspace_loc:/fineract/gradlew}
Variable references non-existent resource : ${workspace_loc:/fineract/gradlew}
If this works for you, are you setting up your Eclipse workspace based on the instructions in the README ie section "Instructions to run and debug in Eclipse IDE"? Or are you doing something else?

@ptuomola I have non of the errors you describe. Just to show you below a couple of screenshots from my Eclipse workspace:
... the error log shows one error entry, but related to the language server plugin; I think not related to anything we do:

... and this is the console output from the build that immediately starts after importing the project:

... the package explorer view looks also clean (no error indicators):

Ok... one step ahead: finally have a candidate for the failing integration tests. I did an experiment with a locally running Fineract Docker container that had all database details setup correctly. I've disabled Carge in build.gradle temporarily and ran the tests again... voila it worked. I think what happens with Cargo: it doesn't find the deployable WAR file; it doesn't seem that Fineract is started with Cargo at all.

@ptuomola yup, it was the Cargo plugin. The problem was that for some reason it didn't detect the WAR file anymore... so I added a deployable section. Just ran the integration tests locally, no failures. Let's see how the Travis build goes to confirm. If it's successful would be great if you could have another look at this. Please let me know if my notes on Eclipse are OK for you; the "new" instructions are actually shorter than the current README and from what I see works at least as well as before.

@vidakovic Ah I see - you're importing this as an Gradle project rather than Eclipse project.
But if you do that, do you get any of the benefits of Eclipse - e.g. debugging, hot code replace, automatic incremental recompile etc?

@ptuomola as far as I can see all the same

@vidakovic cool - just tried this and yes, it seems to work equally well. So no issue from Eclipse perspective.
But the build still seems to be failing? Think there's some problem with the deployment to Cargo:

No such property: war for class: java.lang.String

@ptuomola this Cargo plugin is a gift that just keeps giving... let me see

Problem was the use of "." right after a variable in a Groovy string; fixed

... of course there's something else... but it's something in the Travis configuration... all the tests etc. went through without a problem. Looking into this.

@ptuomola please see my replies; I removed the Eclipse Gradle plugin references and updated the README

@ptuomola Spotless complains a format issue in README line 200, but when I run locally it doesn't. Any ideas? Cannot reproduce.

@vorburger @ptuomola wow... please let's merge before something else happens upstream ;-)

Thanks again for the patience ☺ @ptuomola and @vorburger ... now that we are all happy with it I guess you can merge whenever you have a moment


chore(deps-update): 🤖  update storybook to v6

This PR should solve issue https://github.com/storyofams/next-boilerplate/issues/32

Could you please also check following sections; zero-config-setup, args, controls, storysort and composition ? :)

Could you please also check following sections; zero-config-setup, args, controls, storysort and composition ? :)

Could you please also check following sections; zero-config-setup, args, controls, storysort and composition ? :) And please make sure the files we use to setup storybook are set-up with the latest suggested implementation.

I've looked at all the sections; zero-config-setup, args, and controls have been implemented in the latest commit.

[ ] For composition we talked about adding environment keys.

[ ] For "storysort", what do you want them sorted on?

[ ] For the docs addon, I've installed it, but it add every property defined in the theme to a story, which is too much imho and does not always work(the way you expect it too), do you know of a way to disable this behavior?

Could you please also check following sections; zero-config-setup, args, controls, storysort and composition ? :) And please make sure the files we use to setup storybook are set-up with the latest suggested implementation.

I've looked at all the sections; zero-config-setup, args, and controls have been implemented in the latest commit.

[ ] For composition we talked about adding environment keys.

[ ] For "storysort", what do you want them sorted on?

[ ] For the docs addon, I've installed it, but it add every property defined in the theme to a story, which is too much imho and does not always work(the way you expect it too), do you know of a way to disable this behavior?

Storysort this should be defined by default with the method set to 'alphabetical' and for now just one key in the order array ['components']

For the docs addon; Yes this behaviour can be altered (see this link), but it's a very tedious process and might be better done in a seperate PR.

Storysort this should be defined by default with the method set to 'alphabetical' and for now just one key in the order array ['components']

For the docs addon; Yes this behaviour can be altered (see this link), but it's a very tedious process and might be better done in a seperate PR.


Manual Governor Select

Let the user select the power plan (and possibly modify) manually (to any avaliable governor)

Yee, we have a acs set gov performance but I don't know if it will stay like that if it's running on acs run

yea, to better state that, doing acs run will change the user set default. If acs run is not on, then I think the user can just set it.

I'll try to work on this

o i actually already started on this lol

Oh, yee! Yea, you can go for it!

@JakeRoggenbuck okay so i could't figure out how to make apply_to_cpus() work on custom governors without making things unsafe, so yeah kinda stuck lol
I did get schedutil working with #290 tho

@JakeRoggenbuck okay so i could't figure out how to make apply_to_cpus() work on custom governors without making things unsafe, so yeah kinda stuck lol I did get schedutil working with #290 tho

Awesome, sounds good!

We could make like a "are you very sure you wanna do this? [y/N]" thingy

yea lol

press y for your computer to explode

Was this done in #290?

@Shuzhengz

Sort of, but since we're not gonna do this we should prob close it

Alright, should we have an issue for "Discuss future use of user inputted gov"? Also, we might want to add some of the other govs and stuff that intel has.


Continuous Walk Sound

Description
Walking sound continues into pause menus and transition screens.
How To Reproduce
Steps to reproduce the behaviour:
Case 1:

Hold movement key (W, A, S, or D)
Open inventory , crafting screen, or pause menu

Or
Case 2:

Hold movement key (W, A, S, or D)
Begin level transition

Or
Case 3:

Open inventory , crafting screen, or pause menu
Hold movement key (W, A, S, or D)

Expected Behaviour
(Case 1 & 3) Sound will either continue to play during screens where it shouldn't or start playing during already open screens .
(Case 2) Sound will play through transition and will 'layer' with walking sound on level 2.
Additional Context
Problem lies within the utilisation and implementation of sound effects not having a proper cleanup or dispose function for opening menus or swapping screens.
Final Fix

(Case 1) Sound continues into pause menus for as long as the key is held, once key is released the sound stops.
(Case 2) Fixed.
(Case 3) Fixed.

Bug fix implemented in PlayerActions and MainGameScreen


Exception calling “Save” with “0” argument(s): "Error saving file

When adding a worksheet to another excel package, I'm unable to save it.
Line 43 is the one in question.

The error executing Line 45

If I comment out the Add-Worksheet command, saves just fine, but I need to clone that sheet.

Please post a a script that repros the issue.


Change Picking Strategy to use "Pick Slots" rather than a hard-coded order

Currently (after the schema changes are implemented), the following tournament rules/settings seen in several community tournaments aren't supported
This includes:

Deciding picks/bans/protect before the match starts.
Ban/protect in the middle of the match.
Map specific win-conditions (e.g. I know a tournament that had a relax map in the pool with a miss count win con)

To resolve this we could:

Make a ridiculous "scratch" like visual programming system for how matches can run
Make a generic Rule model where there are several rules stored in a RuleSet and the ruleset is played per match

This also resolves #90


JWT generated using signed string throws invalid signature error in jwt.io

Generated a Jwt using the signedString method as below. JWT is generated when I try to parse JWT using same secret in jwt.io  throws invalid signature. Does go use secret base64 encoding?
token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
ss, _ := token.SignedString([]byte("mysecret"))
fmt.Printf("%v", ss)

No issues here with your code and a basic jwt.MapClaims:
package main

import (
	"github.com/dgrijalva/jwt-go"
	"time"
	"fmt"
)

func main() {
	claims := jwt.MapClaims{
		"nbf": time.Now().Unix(),
		"exp": time.Now().Add(5*time.Minute),
		"id": "test",
	}
	token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
	ss, _ := token.SignedString([]byte("mysecret"))
	fmt.Printf("%v\n", ss)
}

And the output:
~/testit$ go run main.go
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOiIyMDIwLTA0LTA3VDIyOjM4OjUwLjgyMTEyMTYwMy0wNDowMCIsImlkIjoidGVzdCIsIm5iZiI6MTU4NjMxMzIzMH0.nVjNss_I_96EFQTn7TYebyli1a3SHBKb2FN21woPXpg

Thanks @mrbanzai for your quick response. I am trying to generate JWT which is compatible with "secret base64 encoded".
I mean I want to enter "mysecret" as the secret and click on "secret base64 encoded" and expecting jwt.io to verify the token generated using go.

That checkbox is to specify that the secret you've entered is base64-encoded, which "mysecret" is not; you'd have to enter "bXlzZWNyZXQ=", the base64-encoded version of "mysecret".

Thanks a lot @mrbanzai It works now.