[ spi_host ] FSM behavior when a running transaction is executing

Question from #5077:
What should the SPI_HOST FSM do if somebody disables the SPIEN while it is running?

Link to original discussion
@tunghoang290780: as the verification engineer on this, I am happy to defer to whatever you decide is best.

@cfrantz and @mcy: This was a question that came up during a DV review.   It is an odd corner case, where someone tries to abort an ongoing SPI "command segment", by clearing SPIEN while the segment is running.   I think we can do anything we want, but I'd be curious what is preferred by your teams.
@rasmus-madsen:  Now that you are looking at verifying this IP, maybe you can weigh in on this also.

@martin-lueker from a verification perspective I would say it is easier to allow the FSM to finish before halting.
This removes a bunch of verification headaches on trying to detect whether an operation was able to finish before the de-
assertion of SPIEN.
IMO this is also conceptually easier to understand - and goes better with the description of the register:

Writing a zero to this register temporarily suspends any previously submitted transactions. If the block is re-enabled by writing a one to CONTROL.SPIEN, any previously executing commands will continue from wherever they left off.

Presumably, this only extends to situations where the SPIEN is de-asserted in between commands ( If not, I think the quote answers the question)

@martin-lueker did we already address this..?

Yes.   This is a non-issue with the current use cases.

@visbaz can you take a look?

@weicai @martin-lueker Basic investigation into this and my observations.
when spien is programmed to 0 while an ongoing spi transaction, state machine holds in InternalClklow.
all spi interface signals continue to remain in same state.
when resumed or programmed to 1 again statemachine continues to InternalClkHigh state and so does the spi interface signals.
Issue i see is csb never toggles when spi_en is resumed.
As this is a negative unplanned case, at this point of time which is V2 closure & significant effort will be required to synchronize monitor and scoreboard such test should considered for next V3 level. Any development on this should run further through ensilica management.

Issue i see is csb never toggles when spi_en is resumed.

this sounds fine to me. If the csb is dropped in the middle, the transaction would be considered as terminated.
I'm fine to change this to P2 and leave this to V3, unless @martin-lueker thinks this is an important feature in the block.

Issue related:
branch name : spi_host_spien
command: util/dvsim/dvsim.py hw/ip/spi_host/dv/spi_host_sim_cfg.hjson -i spi_host_spien --fixed-seed 764712852 --waves
I apologize for csb observation. csb toggles after spi_en is re asserted.
spien deassertion should suspend transactions and also when reasserted should resume transactions with last configuration and states.
State machine works as expected along with the host interface.
scoreboard mismatches on data which could be possibility of configuration or sampling state change. Need to be debugged.
@martin-lueker is currently debugging the design.

Hi @visbaz, Thanks for posting that seed here.  I've done some detailed analysis, and I think this is a very simple issue with the scoreboard, as I will try to demonstrate.
Simply put: it seems that the problem is that the scoreboard is flushing it's internal queues of segments which were inserted before the DUT was disabled.
In order to debug this, I set the scoreboard verbosity to UVM_FULL and then carefully scrutinized the logs.
As I will detail below, it appears that when the SPI_HOST is disabled a number of segment are removed from some queue inside the scoreboard.   Tracing through the entire sequence of segments in the logs, it would seem that with the seed below, three segments are being dropped inside the scoreboard.   So when the SPI_HOST is reenabled, the DUT starts replaying those segments that were already loaded into the FIFOs.  However, the prediction is skipping three segments.  Thus the test fails because the scoreboard seems to have lost track of those segments that were enqueued before the DUT was disabled.

Here is the detailed analysis:
My goal was to track down the last successfully transmitted data to better understand the output.  It would seem that the last two data words in the queue were created at 616990945 ps:
From the log:
UVM_INFO @ 616990945 ps: (spi_host_scoreboard.sv:313) uvm_test_top.env.scoreboard [uvm_test_top.env.scoreboard]
  created expeted segment item
 ----| Command Register |----
----| Command:
 ----| Segment Data
----| Length:   5
----| Mode: Standard
----| CSAAT: 0
----| Direction: Bidir
----| DATA |----
----| [          0] 78 |----
----| [          1] 65 |----
----| [          2] 8e |----
----| [          3] 3f |----
----| [          4] 01 |----
----| [          5] b9 |----
----| [          6] 00 |----
----| [          7] 00 |----

I can see these being inserted into the TX fifo just before this log message.
These bytes are seen on the SPI bus much later at with the last bit if byte 5 (b9) visible at 3,358,663.741ns, and we can from the waveform that these are these bytes seen on the sio bus.   This is the last successful transmission..
Waveform showing successful transmission of these last two bytes: 01, and b9:

So what is the next segment to be sent?   Looking at the logs the next event is:
UVM_INFO @ 654032019 ps: (spi_host_scoreboard.sv:313) uvm_test_top.env.scoreboard [uvm_test_top.env.scoreboard]
  created expeted segment item
 ----| Command Register |----
----| Command:
 ----| Segment Data
----| Length:   3
----| Mode: Standard
----| CSAAT: 1
----| Direction: Bidir
----| DATA |----
----| [          0] fc |----
----| [          1] f4 |----
----| [          2] 98 |----
----| [          3] b4 |----

Thus we would expect the next byte to be transmitted to be 0xfc.   This is indeed seen in the waveform with the sim ending at 3,383,300.85ns.   So by my analysis, the DUT is behaving exactly as it should!
This brings us to the final fatal error:
UVM_FATAL @<PHONE_NUMBER> ps: (spi_host_scoreboard.sv:144) uvm_test_top.env.scoreboard [uvm_test_top.env.scoreboard]
         WRITE: actual data did not match exp data
 len          4
         byte      actual     expected
         [          0]                        fc                         cc

The testbench sees 0xfc (which is what we should expect by looking at the waveforms and the full log!).   However the test bench is looking for 0xcc.   Though where is this 0xcc coming from?
Well after the segment starting in 0xfc at 654032019 ps there are more segments in the log at 682177402 ps,  and 712676914 ps and then finally there is this segment:
UVM_INFO @<PHONE_NUMBER> ps: (spi_host_scoreboard.sv:313) uvm_test_top.env.scoreboard [uvm_test_top.env.scoreboard]
  created expeted segment item
 ----| Command Register |----
----| Command:
 ----| Segment Data
----| Length:   3
----| Mode: Standard
----| CSAAT: 1
----| Direction: Bidir
----| DATA |----
----| [          0] cc |----
----| [          1] 78 |----
----| [          2] 29 |----
----| [          3] 7a |----

My hypothesis is that once the SPI_HOST is disabled, the three segments that were inserted before the dut was disabled, were somehow purged from the scoreboard predictor.   The scoreboard then tried to compare the data to output data to the segment starting with 0xcc, but the DUT still has other segments in its internal queue to manage. So the test fails.

With all this said, here is what I recommend to close this issue:

[ ] As a V2 requirement: Fix the scoreboard so it can at least tolerate en_i going low without flushing the segment prediction queue.  My hope is that this will be pretty easy to find.
[ ] Update the testplan to say that we need to make a coverpoint in V3 that will catch en_i going low in all SPI_HOST FSM states.

That will then at leave the tasks properly scoped and well defined for V3 (which is a V2 requirement).

Issue i see is csb never toggles when spi_en is resumed.

this sounds fine to me. If the csb is dropped in the middle, the transaction would be considered as terminated.
I'm fine to change this to P2 and leave this to V3, unless @martin-lueker thinks this is an important feature in the block.

As to whether this is an important feature, I just want to be sure that the device doesn't hang in these situations.   However, I think I am at least satisfied from Viswa's sims that this is not the case.  I believe Viswa's seed shows us that the DUT can pause and recover from a disable event.
However I do think that this has outlined a bug in the scoreboard.  If we go the route of demoting this to V2 I would want to update the title to say something: "Scoreboard dumps segment predictions when DUT is disabled".

With all this said, here is what I recommend to close this issue:

[ ]  As a V2 requirement: Fix the scoreboard so it can at least tolerate en_i going low without flushing the segment prediction queue.  My hope is that this will be pretty easy to find.
[ ]  Update the testplan to say that we need to make a coverpoint in V3 that will catch en_i going low in all SPI_HOST FSM states.

That will then at leave the tasks properly scoped and well defined for V3 (which is a V2 requirement).
@weicaiyang: WDYT?

I'd also be happy to make both of these into new P2 issues, and close this one.

With all this said, here is what I recommend to close this issue:

[ ]  As a V2 requirement: Fix the scoreboard so it can at least tolerate en_i going low without flushing the segment prediction queue.  My hope is that this will be pretty easy to find.
[ ]  Update the testplan to say that we need to make a coverpoint in V3 that will catch en_i going low in all SPI_HOST FSM states.

That will then at leave the tasks properly scoped and well defined for V3 (which is a V2 requirement).
@weicaiyang: WDYT?

as discussed with @visbaz offline, he is looking at this and see if we can quickly fix the item 1.

SInce Viswa no longer works in this project, I add this as a post V2 item in this issue https://github.com/lowRISC/opentitan/issues/13582 for the person who takes over this block for V3


[Bug/Support] Running server/client on kubernetes cluster with containerd runtime

When running client/server side app in kubernetes cluster running on containerd runtime, the client request using twirp library returns response that was cut off, thus loosing data. This doesn't happen when running on dockerd runtime.

Twirp is a thin wrapper on the Go implementation of HTTP client and HTTP server. Your first step would be to make sure the Go HTTP code is working as you expect.

I think the problem possibly comes from containerd itself and its stdout pipes, which makes buffer overflow which makes loosing data I guess as the streams close.

Great. I will close this issue


Add snapshot support for Get Blob operation

Add feature by supporting snapshot URI parameter as defined at https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/get-blob

now supported by v0.8.1


cc-wrapper: add backward compat dir for libstdcxxClang

clang with libstdc++ needs to also have the backward compat include directory specified to support deprecated headers. This is normally added by the clang driver, but not when using -nostdinc as clang does in nixpkgs.

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

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

Looks good. Could you please rebase to try to fix the manual CI?


Part 7

[Enter feedback here]

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

ID: 474ba3cb-afa1-4ec5-37df-6553a5523dbb
Version Independent ID: 56096558-1943-3f6b-9609-7722200272fb
Content: What is Azure Firewall?
Content Source: articles/firewall/overview.md
Service: firewall
GitHub Login: @vhorne
Microsoft Alias: victorh

@Putrirahmann8
Could you please elaborate the query for better understanding. So, we can assist you further.

@Putrirahmann8
Based on that shared information we are not able to understand your query/feedback completely. Could you please elaborate the query for better understanding. That way, we are able to make sure your feedback is addressed by the right team.


Get.bottomSheet Cannot work in ListTile onTap function

I tried to use Get.bottomSheet in onTap and this is an error raised as below.

Please tell me how to fix this issue, thank you.

I am


getCodecFromMappedNullaryTag: support generic input type

Previously getCodecFromMappedNullaryTag only allowed decoding from unknown. With this PR the input type is now generic, allowing for better composition of codecs. For example, if we want to compose the codec for Country to create a new codec for Weather, we can do Country.pipe(getCodecFromMappedNullaryTag(…)(…)(…):
import * as t from "io-ts"
import * as Sum from "@unsplash/sum-types"
import { getCodecFromMappedNullaryTag } from "@unsplash/sum-types-io-ts"
import * as O from "fp-ts/Option"
import * as E from "fp-ts/Either"

type Weather = Sum.Member<"Sun"> | Sum.Member<"Rain">
const Weather = Sum.create<Weather>()
const Country = t.union([
  t.literal("UK"),
  t.literal("Italy"),
  t.literal("Spain"),
])
type Country = t.TypeOf<typeof Country>
const WeatherFromCountry: t.Type<Weather, Country, Country> =
  getCodecFromMappedNullaryTag(Weather)(
    (x: Country) => {
      switch (x) {
        // This will error because it's not a valid country.
        case "France":
          return O.some("Sun")
        case "Italy":
          return O.some("Sun")
        case "UK":
          return O.some("Rain")
        case 'Spain':
          return O.none
      }
    },
    (x): Country => (x === "Sun" ? "Italy" : "UK"),
  )(["Sun", "Rain"])
const WeatherFromCountryFromUnknown: t.Type<Weather, Country, unknown> =
  Country.pipe(WeatherFromCountry)

assert.deepStrictEqual(
  WeatherFromCountry.decode("UK"),
  E.right(Weather.mk.Rain),
)

For reference, this is the motivating real world use case from unsplash-web:
import { unpack } from 'shared/facades/Newtype';
import * as O from 'shared/facades/Option';
import * as Sum from 'shared/facades/Sum';
import * as NumericUserId from 'types/NumericUserId';

export type MockAuthUser = Sum.Member<'Subscribed'> | Sum.Member<'Any'>;
const MockAuthUser = Sum.create<MockAuthUser>();
export const { mk, match, matchX } = MockAuthUser;

export const CodecFromNumericUserId = Sum.getCodecFromMappedNullaryTag(
  MockAuthUser,
)(
  (from: NumericUserId.NumericUserId) => {
    switch (unpack(from)) {
      case 1:
        return O.some('Subscribed');
      case 3:
        return O.some('Any');
      default:
        return O.none;
    }
  },
  (to): NumericUserId.NumericUserId => {
    switch (to) {
      case 'Subscribed':
        return NumericUserId.fromNumber(1);
      case 'Any':
        return NumericUserId.fromNumber(3);
    }
  },
)(['Subscribed', 'Any'], 'MockAuthUserFromNumericUserId');

thereby allowing us to drop the default case

Potentially, not always. See the real example here (also in the OP) which does still need the default case: https://github.com/unsplash/unsplash-web/pull/10389/files#diff-975bd6118660e97d61a5671631b8c0d1ba7a88aa181bc2e46dd502a9d2d74f01R33


chore: do nothing

Codecov Report

Merging #1288 (b2955da) into chore/fix-dependencies (0ffb15e) will not change coverage.
The diff coverage is n/a.

@@                   Coverage Diff                   @@
##           chore/fix-dependencies    #1288   +/-   ##
=======================================================
  Coverage                   65.01%   65.01%
=======================================================
  Files                         126      126
  Lines                        8753     8753
  Branches                     1901     1901
=======================================================
  Hits                         5691     5691
  Misses                       2811     2811
  Partials                      251      251

Continue to review full report at Codecov.

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


Deepseek-Chat or Deepseek-Coder

I am trying to use Deepseek API from the dropdown list within OpenDevin. I chose Deepseek-Coder, provide the API key but it fails. I tried manually adding Deepseep\ in front of model too but it failed. Same for Deepseek chat. What is the correct format for providing Deepseek Model name within the console.
06:40:54 - opendevin:ERROR: llm.py:164 - LLM Provider NOT provided. Pass in the LLM provider you are trying to call. You passed model=deepseek/deepseek-chat
Pass model as E.g. For 'Huggingface' inference endpoints pass in completion(model='huggingface/starcoder',..) Learn more: https://docs.litellm.ai/docs/providers. Attempt #5 | You can customize these settings in the configuration.
06:40:54 - opendevin:ERROR: agent_controller.py:147 - Error in loop
Traceback (most recent call last):
File "/app/.venv/lib/python3.12/site-packages/litellm/main.py", line 698, in completion
model, custom_llm_provider, dynamic_api_key, api_base = get_llm_provider(
^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 6400, in get_llm_provider
raise e
File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 6387, in get_llm_provider
raise litellm.exceptions.BadRequestError(  # type: ignore
litellm.exceptions.BadRequestError: LLM Provider NOT provided. Pass in the LLM provider you are trying to call. You passed model=deepseek/deepseek-chat
Pass model as E.g. For 'Huggingface' inference endpoints pass in completion(model='huggingface/starcoder',..) Learn more: https://docs.litellm.ai/docs/providers
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/opendevin/controller/agent_controller.py", line 142, in _run
finished = await self.step(i)
^^^^^^^^^^^^^^^^^^
File "/app/opendevin/controller/agent_controller.py", line 256, in step
action = self.agent.step(self.state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/agenthub/codeact_agent/codeact_agent.py", line 223, in step
response = self.llm.completion(
^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 330, in wrapped_f
return self(f, *args, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 467, in call
do = self.iter(retry_state=retry_state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 368, in iter
result = action(retry_state)
^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 410, in exc_check
raise retry_exc.reraise()
^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 183, in reraise
raise self.last_attempt.result()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 470, in call
result = fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File "/app/opendevin/llm/llm.py", line 188, in wrapper
resp = completion_unwrapped(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 3222, in wrapper
raise e
File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 3116, in wrapper
result = original_function(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/litellm/main.py", line 2226, in completion
raise exception_type(
^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 9233, in exception_type
raise e
File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 9201, in exception_type
raise APIConnectionError(
litellm.exceptions.APIConnectionError: LLM Provider NOT provided. Pass in the LLM provider you are trying to call. You passed model=deepseek/deepseek-chat
Pass model as E.g. For 'Huggingface' inference endpoints pass in completion(model='huggingface/starcoder',..) Learn more: https://docs.litellm.ai/docs/providers
06:40:54 - opendevin:INFO: agent_controller.py:190 - Setting agent(CodeActAgent) state from AgentState.RUNNING to AgentState.ERROR

This is the config I used for deepseek chat before - can you try it?
[eval_deepseek_chat]
model = "openai/deepseek-chat"
base_url = "https://api.deepseek.com"
api_key = "YOUR KEY HERE"
temperature = 0.0

I have tried both .env file and below setting within UI but same error. Where exactly are you making the changes especially about the Base URL?

You should put in openai/deepseek-chat - openai tells litellm that you are using an OpenAI-compatible endpoint

Unfortunately, Same!!

Probably because we didn't pass api_base correctly from the front-end? Let me ask folks in frontend channel to see if it is true!

Oh actually, can you try following this? Are you running this with docker?
https://opendevin.github.io/OpenDevin/modules/usage/llms/localLLMs#docker
--add-host host.docker.internal:host-gateway \
-e LLM_API_KEY="ollama" \
-e LLM_BASE_URL="http://host.docker.internal:11434" \

You can set LLM_BASE_URL if you are using docker to spin-up this

It worked. Instead of Ollama, I provided the base URL of Deepseek. Again, while working with the Docker, we should be able to provide the Base URL of the API Service being used. I am not a developer so assuming that LiteLLM automatically adds it when specying the Model in UI like deepseek/deepseek-chat etc. and can use the Base URL automatically but somehow it was not working. With the -e switch, this worked. Thanks a ton for your help!! :)
export WORKSPACE_BASE=$(pwd)/workspace;
docker run
-it
--pull=always
-e LLM_API_KEY
-e SANDBOX_USER_ID=$(id -u)
-e WORKSPACE_MOUNT_PATH=$WORKSPACE_BASE
-e LLM_API_KEY="sk-XXXXXXXXXXXXXXXXXXXXXXXXXX"
-e LLM_BASE_URL="https://api.deepseek.com/v1"
-e DEFAULT_MODEL="deepseek-chat"
-v $WORKSPACE_BASE:/opt/workspace_base
-v /var/run/docker.sock:/var/run/docker.sock
-p 3000:3000
--add-host host.docker.internal:host-gateway
ghcr.io/opendevin/opendevin:0.5


Fix bug of delete operation in dashboard

Delete operation icon use study id while v1_study in suggestion use study name to get the study. So I changed the delete icon's action to fix it.

Nice catch and thanks for your contribution 👍


edits and additions

fix: don't allow to install a silencer if we have a visible enemy
aim: fixed the distortion of angles while camping
add: special ladder handling (code merged from podbotmm)
graph: reworked some node coloring and link color

about changes in colors, are you ok with that?

Did he bring back the old coloring from the old JetBot/YaPB 2.0 versions?
To me, this is a matter of taste, and most people can get confused. I'll also have to update the thumbnails in the documentation again, which is explaining the direction of the path due to color changes.

about changes in colors, are you ok with that?

Did he bring back the old coloring from the old JetBot/YaPB 2.0 versions?
To me, this is a matter of taste, and most people can get confused. I'll also have to update the thumbnails in the documentation again, which is explaining the direction of the path due to color changes.

At the moment, the white connection is the incoming path, and commandcobra made the white connection be the outgoing path.

about changes in colors, are you ok with that?

Did he bring back the old coloring from the old JetBot/YaPB 2.0 versions?
To me, this is a matter of taste, and most people can get confused. I'll also have to update the thumbnails in the documentation again, which is explaining the direction of the path due to color changes.

It's not just a color scheme. I also added custom ladder handling from podbot to fix issue #319. Also, the white link path is already the outgoing path, it used to be like this, I brought it back again.

It's not just a color scheme. I also added custom ladder handling from podbot to fix issue #319.

I see. I answered the question what do I think about changing the color of the nodes.


Early characteristic changes can be missed

As was seen in https://github.com/JuulLabs/kable/issues/99#issuecomment-842941308, an unprovoked (prior to writing to the config descriptor to enable Notify/Indicate) characteristic may trigger a "characteristic change" event.
Code used in test branch that should be brought in to main code:
Observers.kt
    fun acquire(characteristic: Characteristic) = flow {
        try {
            characteristicChanges
                .onSubscription {
                    peripheral.suspendUntilReady()

                    if (observers.incrementAndGet(characteristic) == 1) {
                        peripheral.startObservation(characteristic)
                    }
                }
                .collect {
                    if (it.characteristic.characteristicUuid == characteristic.characteristicUuid &&
                        it.characteristic.serviceUuid == characteristic.serviceUuid
                    ) emit(it.data)
                }
        } finally {
            if (observers.decrementAndGet(characteristic) < 1) {
                try {
                    peripheral.stopObservation(characteristic)
                } catch (e: NotReadyException) {
                    // Silently ignore as it is assumed that failure is due to connection drop, in which case Android
                    // will clear the notifications.
                    Log.d(TAG, "Stop notification failure ignored.")
                }
            }
        }
    }

As @FilippoVigani mentioned in the other thread, this behavior works in RxAndroidBLE. This was an issue I previously ran into with the RxAndroidBLE library and I filed a bug there. It contains a similar log of events. https://github.com/Polidea/RxAndroidBle/issues/195.
Similar to the Characteristic write chain of events in the other post, the Descriptor write and the characteristic change event come back on 2 different OS threads and have a race condition for which emits first. In our case, the characteristic doesn't have a read property so it isn't able to get the current value. The solution for this is to observe the characteristic before writing the ENABLE_INDICATIONS/ENABLE_NOTIFICATIONS descriptor value. This became tricky because with the queue there is usually an inherit FIFO contract. During testing it was at most 1 characteristic that was "lost", but there could have been more in other scenarios. In the end, I believe it was solved in the RxAndroidBLE library by adding a replay cache with a size of 1 to the characteristic observable. If the characteristic change was emitted before the descriptor write was emitted, then the latest value emitted before the descriptor write completed would be emitted again.
Please note that I could be way off if that is what is happening here. I have not done a deep dive with Kable yet, but this is one of the first things I was looking at.

@gryffindor14 thanks for the additional information!
Based on what you described, I believe the proposed solution in the issue write-up should cover what you're describing.
The magic lies in the onSubscription:

It is guaranteed that all emissions to the upstream flow that happen inside or immediately after this onSubscription action will be collected by this subscription.

We'll setup the observe (i.e. write the appropriate value to the config descriptor) within the onSubscription and we shouldn't miss any characteristic changes.
I have a local branch I've started for this effort. I'll try to get a PR (and SNAPSHOT available) soon with the fix so people can try and confirm if it actually fixes the issue.


No token refresh if token gets invalidated

It seems like the adapter will not request a new token with the saved credentials if the current token gets invalidated from Tesla.
The adapter stopped working some days ago without a notification.
I had to go to the adapter config and click on get token, then I got an error message "please start adapter first", despite that it was already running. After a restart, I was able to get a new token, without changing the login information.

Yes, I see the same every few month, will try to look into this soon.

Happend to me aswell, but I am unable to get a new token or it is unauthorized immediately afterwards
`

tesla-motors.0
2020-05-18 00:01:54.896
info
(12229) Got terminate signal TERMINATE_YOURSELF

tesla-motors.0
2020-05-18 00:01:54.872
info
(12229) Setting a new Token

tesla-motors.0
2020-05-18 00:01:54.651
info
(12229) Terminated (START_IMMEDIATELY_AFTER_STOP): Without reason

tesla-motors.0
2020-05-18 00:01:54.650
info
(12229) terminating

tesla-motors.0
2020-05-18 00:01:54.144
info
(12229) Got terminate signal TERMINATE_YOURSELF

tesla-motors.0
2020-05-18 00:01:53.976
info
(12229) starting. Version 0.2.3 in /opt/iobroker/node_modules/iobroker.tesla-motors, node: v10.19.0

tesla-motors.0
2020-05-18 00:01:46.597
info
(12205) Terminated (START_IMMEDIATELY_AFTER_STOP): Without reason

tesla-motors.0
2020-05-18 00:01:46.596
info
(12205) terminating

tesla-motors.0
2020-05-18 00:01:46.095
warn
(12205) You tried to wake up the car, but there is currently no valid Token, please configure Adapter first!

tesla-motors.0
2020-05-18 00:01:46.093
info
(12205) Got terminate signal TERMINATE_YOURSELF

tesla-motors.0
2020-05-18 00:01:46.072
info
(12205) Setting a new Token

tesla-motors.0
2020-05-18 00:01:46.063
warn
(12205) Invalid answer from Vehicle request. Error: Unauthorized

tesla-motors.0
2020-05-18 00:01:45.235
info
(12205) starting. Version 0.2.3 in /opt/iobroker/node_modules/iobroker.tesla-motors, node: v10.19.0

tesla-motors.0
2020-05-18 00:01:37.569
info
(12184) Terminated (START_IMMEDIATELY_AFTER_STOP): Without reason

tesla-motors.0
2020-05-18 00:01:37.567
info
(12184) terminating

tesla-motors.0
2020-05-18 00:01:37.059
info
(12184) Got terminate signal TERMINATE_YOURSELF

tesla-motors.0
2020-05-18 00:01:37.042
warn
(12184) You tried to wake up the car, but there is currently no valid Token, please configure Adapter first!

tesla-motors.0
2020-05-18 00:01:36.694
info
(12184) Setting a new Token

tesla-motors.0
2020-05-18 00:01:36.683
warn
(12184) Invalid answer from Vehicle request. Error: Unauthorized

tesla-motors.0
2020-05-18 00:01:35.721
info
(12184) starting. Version 0.2.3 in /opt/iobroker/node_modules/iobroker.tesla-motors, node: v10.19.0

tesla-motors.0
2020-05-18 00:01:28.736
info
(12165) Received a new Token

tesla-motors.0
2020-05-18 00:01:28.431
info
(12165) Terminated (START_IMMEDIATELY_AFTER_STOP): Without reason

tesla-motors.0
2020-05-18 00:01:28.430
info
(12165) terminating

tesla-motors.0
2020-05-18 00:01:27.927
info
(12165) Got terminate signal TERMINATE_YOURSELF

tesla-motors.0
2020-05-18 00:01:27.905
info
(12165) Setting a new Token

tesla-motors.0
2020-05-18 00:01:27.631
info
(12165) Try to get a token

tesla-motors.0
2020-05-18 00:01:26.898
info
(12165) starting. Version 0.2.3 in /opt/iobroker/node_modules/iobroker.tesla-motors, node: v10.19.0

tesla-motors.0
2020-05-18 00:01:19.669
info
(12141) Terminated (START_IMMEDIATELY_AFTER_STOP): Without reason

tesla-motors.0
2020-05-18 00:01:19.668
info
(12141) terminating

tesla-motors.0
2020-05-18 00:01:19.180
warn
(12141) Invalid answer from Vehicle request. Error: Unauthorized

`

To test the issue, you can change the password of you Tesla account. All current tokens will get invalidated immediately. Even using the same password as before works.

Same here. The adapter was still showing "green", but it did not work.
Why can't the adapter refresh automatically every month?
BTW. I love the adapter. It is absolutely great, even with the shortcomings. Please keep the great work on.

There was a bug with refreshing on setting the next Refresh Date, this is fixed with the lastest commit. However I saw some strange behave when having invalid tokens, the api still responded the car state and didn't response with a "unauthorized" message, will have to investigate further. At least the refresh should now work properly.

I had an outdated token issues again last week with the current version. Just to let you know. Thanks for further investigation.

I hope this is closed now, please write another issue if not


border-radius top corners and bottom corners

Is it possible to achive the following?:
https://ibb.co/v3TN7bz
Basically a border-radius only on the top two corners of the top section and the bottom two corners of the bottom section. I was reading the documentation but can't seem to find out ho to do this.
If it's not possible today, feature request! :D

You can just check border-radius css documentation for that https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius MJML purely rely on it.

You can just check border-radius css documentation for that https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius MJML purely rely on it.

You seem to have misunderstood what I want to achieve. Did you even look at the link I posted?
border-top-left-radius="20px" does not seem to work.

Just use the shorthand version https://mjml.io/try-it-live/-6NNMX-HRNL
If the attribute isn't listed then it won't work.


Fix visualization and table text issues (#212)

This PR updates the visualizations and table on the Student Class Site Detail Page (students/x/class_sites/x/ route) so that text in X axis labels and cells does not overflow or get too close to other content. Some other tweaks to text alignment were made to the table to improve spacing and readability. A task list, screenshots, and links to referenced resources are provided below. The PR aims to resolve issue #212.

[x] Remove nv-axislabel CSS class (and associated chart mixin) that was hiding the axis label when the window size was large.
[x] Add assignment-row-description class to make long assignment descriptions wrap.
[x] Add a long assignment description (AKA name) to test data (.sql).
[x] Remove conditional logic from both visualizations so that the X axis labels never use 'Week'.
[x] Remove text-center Bootstrap class from "Points Possible/Earned", "Student Percentage", and "Class Average" columns to make cells look more consistent.

Screenshots

Resource(s) Referenced:

https://css-tricks.com/where-lines-break-is-complicated-heres-all-the-related-css-and-html/
https://www.w3schools.com/sass/sass_mixin_include.asp

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 4

See the complete overview on Codacy


Add ability to exit on InBlock and Broadcast status for send_extrinsic

send_extrinsic can now take XtStatus::InBlock and XtStatus::Broadcast as statuses to exit on.
Changes

Add XtStatus::InBlock and XtStatus::Broadcast cases to send_extrinsic
Add send_extrinsic_and_wait_until... functions for InBlock and Broadcast to the rpc module
Implement on_extrinsic_msg_until... functions in the rpc client
Add tests against parse_status for Inblock and `Broadcast

Testing against a substrate node
InBlock
Modified example_generic_extrinsic (ln 51) to:
let tx_hash = api
    .send_extrinsic(xt.hex_encode(), XtStatus::InBlock)
    .unwrap();
println!("[+] Transaction got in block. Hash: {:?}", tx_hash);

Console output using RUST_LOG=debug cargo run --example example_generic_extrinsic:
...
2020-05-01T08:11:06Z DEBUG substrate_api_client::rpc::client] got msg {"jsonrpc":"2.0","method":"author_extrinsicUpdate","params":{"result":{"inBlock":"0x1377c2c36f2776c80d903895b74dfd726ad1d1e599ac2ba7f991d5f08abd69f5"},"subscription":6}}
[2020-05-01T08:11:06Z INFO  substrate_api_client::rpc::client] inBlock: String("0x1377c2c36f2776c80d903895b74dfd726ad1d1e599ac2ba7f991d5f08abd69f5")
[2020-05-01T08:11:06Z INFO  substrate_api_client] inBlock: "0x1377c2c36f2776c80d903895b74dfd726ad1d1e599ac2ba7f991d5f08abd69f5"
[+] Transaction got in block. Hash: Some(0x1377c2c36f2776c80d903895b74dfd726ad1d1e599ac2ba7f991d5f08abd69f5)

Broadcast
Modified example_generic_extrinsic (ln 51) to:
let _ = api
   .send_extrinsic(xt.hex_encode(), XtStatus::Broadcast)
   .unwrap();

Console output using RUST_LOG=debug cargo run --example example_generic_extrinsic:
...
[2020-05-01T08:39:24Z INFO  substrate_api_client::rpc::client] inBlock: String("0x46ab184e79d23c7e30a0589c825d6f1148d5b9c2a9907bc1e5b0bc6239c74042")
...
[2020-05-01T08:29:55Z DEBUG substrate_api_client::rpc::client] got msg {"jsonrpc":"2.0","method":"author_extrinsicUpdate","params":{"result":{"finalized":"0x91f73815187eb639de5ee2a7ae29f695dc335e0a8586cd6a4598a15155ceaf06"},"subscription":8}}
[2020-05-01T08:29:55Z INFO  substrate_api_client::rpc::client] finalized: String("0x91f73815187eb639de5ee2a7ae29f695dc335e0a8586cd6a4598a15155ceaf06")
[2020-05-01T08:29:55Z INFO  substrate_api_client] broadcast: "0x91f73815187eb639de5ee2a7ae29f695dc335e0a8586cd6a4598a15155ceaf06"

This showed that when waiting for broadcast, the broadcast status never appeared, so it just stopped on finalised instead. I think the reason for this is that I was only running a single validator node in my test, so there was nowhere for the node to broadcast the transaction.
Addresses https://github.com/scs/substrate-api-client/issues/65

Thanks @hoani. I've tested the code and it works. Also your observation on Broadcast is probably correct.
It is a pity that you didn't wait until we assigned this task to you. To be fair, we need to give the assigned dev a chance to fix his PR. I hope you understand that we prefer a clear process and only one PR to review. Would this be of interest to you?

Hey @brenzi - my apologies, this was the first bounty I have participated in.  I completely respect that the fair thing to do is to let the assigned dev finish their work.
Unfortunately, I am a little busy at the moment on another project, and the IPFS project looks a little too big for me to split my time on it. Thank you for asking though!
I really like that you are building a rust API client for substrate; hopefully we can collaborate again later 😄


Move to hatchling

Currently, we can't upload sdists due to https://github.com/pypi/warehouse/issues/10030, so it'd make sense to change the build backend to hatchling.

Uh, I tried to upload an artifact generated by hatchling and it still doesn't work.
Uploading ffy00_packaging-0.1.0-py3-none-any.whl
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 15.5/15.5 kB • 00:00 • 53.7 MB/s
WARNING  Error during upload. Retry with the --verbose option for more details.
ERROR    HTTPError: 400 Bad Request from https://upload.pypi.org/legacy/
         Start filename for 'ffy00.packaging' with 'ffy00.packaging'.

I also tried changing the version.
Uploading distributions to https://upload.pypi.org/legacy/
Uploading ffy00_packaging-0.1.0.post1-py3-none-any.whl
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 15.5/15.5 kB • 00:00 • 59.9 MB/s
WARNING  Error during upload. Retry with the --verbose option for more details.
ERROR    HTTPError: 400 Bad Request from https://upload.pypi.org/legacy/
         Start filename for 'ffy00.packaging' with 'ffy00.packaging'.

:facepalm: thanks dyslexia. I misunderstood the issue. We should move to setuptools instead.


Home page design variables

Please always provide the GitHub issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix #
Pending Items
Explore Cards
Latest From World Bank
Footer
Test URLs:

Before: https://main--world-bank--aemsites.aem.live/
After: https://homePageDesignVariables--world-bank--aemsites.aem.live/

Please check this

Please check

 Please check this

Done. Please check

@singhpritam18 i noticed many rules are removed in your changes, is this tested properly?

Yes, I have only removed the rules which are related to line-height and padding which was hard coded. As after giving the padding as per spacing variable there's no need to have rules specific to device width. Rest, I have updated the old variables with new one

@singhpritam18 Resolve conflicts and merge your PR


Add router rule to metrics labels

Do you want to request a feature or report a bug?

Feature
What did you expect to see?

Add router rule to metrics labels

duplicate of #7007


Fix url shortening

This change also includes a big refactoring commit that turns the MetadataResolver into a generic PwsClient.  The second commit offloads URL shortening to that new generic client.

Paging @g-ortuno if you have time to take a look

I can take a look in a few hours as well.  Not an expert in our Android app, but should be okay here..

Confirmed this is working well, woot!

There is a bug similar to the bug you had last time. If you get the shortened url after the activity gets destroyed the app crashes. You can test it with a slow network:

Open config mode
Enter long url
Save long url
Press back before the URL gets shortened.
App crashes

Crash log:
java.lang.NullPointerException: Attempt to invoke virtual method 'void org.uribeacon.config.GattRequestQueue.add(android.bluetooth.BluetoothGatt, org.uribeacon.config.GattRequestQueue$RequestType, android.bluetooth.BluetoothGattCharacteristic)' on a null object reference
            at org.uribeacon.config.GattService.writeCharacteristic(GattService.java:85)
            at org.uribeacon.config.ProtocolV1.writeUriBeacon(ProtocolV1.java:92)
            at org.uribeacon.config.UriBeaconConfig.writeUriBeacon(UriBeaconConfig.java:97)
            at org.physical_web.physicalweb.BeaconConfigFragment.setUriBeaconUrl(BeaconConfigFragment.java:347)
            at org.physical_web.physicalweb.BeaconConfigFragment.access$900(BeaconConfigFragment.java:67)
            at org.physical_web.physicalweb.BeaconConfigFragment$5.onUrlShortened(BeaconConfigFragment.java:372)
            at org.physical_web.physicalweb.PwsClient$1.onResponse(PwsClient.java:119)
            at org.physical_web.physicalweb.PwsClient$1.onResponse(PwsClient.java:108)
            at com.android.volley.toolbox.JsonRequest.deliverResponse(JsonRequest.java:65)
            at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)

Fixed using volley's tag-based cancellation.

Any reason why are you using this instead of the singleton pattern? It seems the singleton pattern is the recommended way:
https://developer.android.com/training/volley/requestqueue.html#singleton

Yes, I made PwsClient a singleton.

But if the requestqueue is in a singleton, that means it can't know what activities it gets requests from...that's why you use tag-based cancellation.

I mean why are you subclassing Application, which seems to be discouraged, and not using a static singleton class?
https://developer.android.com/training/volley/requestqueue.html#singleton

I don't create the RequestQueue in the subclassed Application.  I'm assuming that's discouraged because you shouldn't create it until it's needed.

Oh, I see in the link to the Application documentation that they prefer you pass along context...
OK, I'll do it that way, but that seems like a pain.

I don't really have a preference. I was just curious why you picked one over the other. If you think that the current pattern is better suited for this then LGTM

OK, fixed it up.  Tested, everything works.

Feel free to merge once travis finishes.


explicitly install lvm2, fixes #16

As mentioned in #16 this adds lvm2 as a explicit dependency, in case its not already installed on the hosters image provided.


private method `require' called for Bundler:Module

JRuby 1.6.5, deploying a rails 3.1 app via warbler to glassfish.
Tried using Bundler latest stable version as well as 1.1.rc
Could be related to https://github.com/carlhuda/bundler/issues/287 ?
[#|2011-11-21T11:02:53.452-0500|INFO|glassfish3.1.1|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=25;_ThreadName=Thread-2;|PWC1412: WebModule[null] Servl                    etContext.log():An exception happened during JRuby-Rack startup
private method `require' called for Bundler:Module
--- System
jruby 1.6.5 (ruby-1.9.2-p136) (2011-10-25 9dcd388) (OpenJDK Client VM 1.6.0_20) [linux-i386-java]
Time: 2011-11-21 11:02:53 -0500
Server: GlassFish Server Open Source Edition 3.1.1
jruby.home: classpath:/META-INF/jruby.home

--- Context Init Parameters:
com.sun.faces.forceLoadConfiguration = true
com.sun.faces.validateXml = true
jruby.compat.version = 1.9
public.root = /
rails.env = production

--- Backtrace
NoMethodError: private method `require' called for Bundler:Module
            (root) at /home/lstoldt/glassfish3/glassfish/domains/domain1/applications/lelons_blog/WEB-INF/config/application.rb:13
           require at org/jruby/RubyKernel.java:1047
           require at /home/lstoldt/glassfish3/glassfish/domains/domain1/generated/jsp/lelons_blog/loader_21413980/META-INF/jruby.home/lib/ruby/site_ruby/1.8/rubygems/custom_requ                    ire.rb:36
            (root) at /home/lstoldt/glassfish3/glassfish/domains/domain1/applications/lelons_blog/WEB-INF/config/application.rb:2
           require at org/jruby/RubyKernel.java:1047
           require at /home/lstoldt/glassfish3/glassfish/domains/domain1/generated/jsp/lelons_blog/loader_21413980/META-INF/jruby.home/lib/ruby/site_ruby/1.8/rubygems/custom_requ                    ire.rb:36
  load_environment at /home/lstoldt/glassfish3/glassfish/domains/domain1/applications/lelons_blog/WEB-INF/config/environment.rb:167
            to_app at /home/lstoldt/glassfish3/glassfish/domains/domain1/generated/jsp/lelons_blog/loader_21413980/jruby/rack/rails.rb:172
               new at /home/lstoldt/glassfish3/glassfish/domains/domain1/generated/jsp/lelons_blog/loader_21413980/jruby/rack/rails.rb:192
            (root) at <web.xml>:1
     instance_eval at org/jruby/RubyBasicObject.java:1720
        initialize at /home/lstoldt/glassfish3/glassfish/domains/domain1/generated/jsp/lelons_blog/loader_21413980/vendor/rack-1.3.5/rack/builder.rb:51
            (root) at <web.xml>:1

--- RubyGems
Gem.dir: jndi:/home/lstoldt/glassfish3/glassfish/domains/domain1/applications/lelons_blog/WEB-INF/gems
Gem.path:
/home/lstoldt/glassfish3/glassfish/domains/domain1/applications/lelons_blog/WEB-INF/gems
jndi:/home/lstoldt/glassfish3/glassfish/domains/domain1/applications/lelons_blog/WEB-INF/gems
Activated gems:
  rake-0.9.2
  thor-0.14.6
  rack-1.3.3
  rack-ssl-1.3.2
  rdoc-3.9.4
  multi_json-1.0.3
  activesupport-3.1.1
  builder-3.0.0
  i18n-0.6.0
  activemodel-3.1.1
  rack-cache-1.1
  rack-test-0.6.1
  rack-mount-0.8.3
  hike-1.2.1
  tilt-1.3.3
  sprockets-2.0.2
  erubis-2.7.0
  actionpack-3.1.1
  railties-3.1.1
  arel-2.2.1
  tzinfo-0.3.30
  activerecord-3.1.1
  mime-types-1.16
  polyglot-0.3.2
  treetop-1.4.10
  mail-2.3.0
  actionmailer-3.1.1
  activeresource-3.1.1

--- Bundler
undefined method `bundle_path' for Bundler:Module

--- JRuby-Rack Config
compat_version = RUBY1_9
filter_adds_html = true
filter_verifies_resource = false
ignore_environment = false
initial_runtimes =
jms_connection_factory =
jms_jndi_properties =
logger = org.jruby.rack.logging.ServletContextLogger@17a6347
logger_class_name = servlet_context
logger_name = jruby.rack
maximum_runtimes =
memory_buffer_size = 8192
num_initializer_threads =
rackup =
rackup_path =
rewindable = true
runtime_arguments =
runtime_timeout_seconds =
serial_initialization = false
servlet_context = org.apache.catalina.core.ApplicationContextFacade@90b96e
|#]

[#|2011-11-21T11:02:53.454-0500|SEVERE|glassfish3.1.1|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=25;_ThreadName=Thread-2;|WebModule[]Application Error
org.jruby.rack.RackInitializationException: private method `require' called for Bundler:Module
        from org/jruby/RubyKernel.java:1047:in `require'
        from /home/lstoldt/glassfish3/glassfish/domains/domain1/generated/jsp/lelons_blog/loader_21413980/META-INF/jruby.home/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36                    :in `require'
        from /home/lstoldt/glassfish3/glassfish/domains/domain1/applications/lelons_blog/WEB-INF/config/application.rb:2:in `(root)'
        from org/jruby/RubyKernel.java:1047:in `require'
        from /home/lstoldt/glassfish3/glassfish/domains/domain1/generated/jsp/lelons_blog/loader_21413980/META-INF/jruby.home/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36                    :in `require'
        from /home/lstoldt/glassfish3/glassfish/domains/domain1/applications/lelons_blog/WEB-INF/config/environment.rb:167:in `load_environment'
        from /home/lstoldt/glassfish3/glassfish/domains/domain1/generated/jsp/lelons_blog/loader_21413980/jruby/rack/rails.rb:172:in `to_app'
        from /home/lstoldt/glassfish3/glassfish/domains/domain1/generated/jsp/lelons_blog/loader_21413980/jruby/rack/rails.rb:192:in `new'
        from <web.xml>:1:in `(root)'
        from org/jruby/RubyBasicObject.java:1720:in `instance_eval'
        from /home/lstoldt/glassfish3/glassfish/domains/domain1/generated/jsp/lelons_blog/loader_21413980/vendor/rack-1.3.5/rack/builder.rb:51:in `initialize'
        from <web.xml>:1:in `(root)'

        at org.jruby.rack.DefaultRackApplicationFactory$4.init(DefaultRackApplicationFactory.java:206)
        at org.jruby.rack.DefaultRackApplicationFactory.getApplication(DefaultRackApplicationFactory.java:56)
        at org.jruby.rack.PoolingRackApplicationFactory.getApplication(PoolingRackApplicationFactory.java:95)
        at org.jruby.rack.DefaultRackDispatcher.getApplication(DefaultRackDispatcher.java:23)
        at org.jruby.rack.AbstractRackDispatcher.process(AbstractRackDispatcher.java:28)
        at org.jruby.rack.AbstractFilter.doFilter(AbstractFilter.java:32)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
        at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESes
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.
        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.ja
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(Containe
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFi
        at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultPr
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.ja
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.ja
        at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.jav
        at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContext
        at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask
        at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThread
        at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPoo
        at java.lang.Thread.run(Thread.java:636)
Caused by: org.jruby.exceptions.RaiseException: (NoMethodError) private method
|#]

private method `require' called for Bundler:Module

Are you using Polyglot? I don't personally use JRuby for anything at the moment, so more information would be helpful. Why isn't the public class method Bundler.require getting invoked?

Polyglot is included via ActionMailer -> Mail -> Treetop. I'll try and confirm whether or not its getting loaded.
I'm also looking into Rubygems as a possible suspect: https://github.com/jruby/jruby/blob/master/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb

The root of this problem appears to be Warbler (although I'm not convinced there isn't some Bundler issue, possibly an error case it should be accounting for).
https://github.com/jruby/warbler/issues/62


Configuration custom mac addresses for interfaces (overwrite base MAC address). (IDFGH-5534)

Sometimes you may need to define your own MAC addresses, not necessarily generated from the base MAC address.

Thanks for your contribution.

Shouldn't this be behind a kconfig option?

Hi!
We can add it to the master but it is outdated. I will create an MR in our internal repo based on these changes. Thank you for your contribution.


WebChat 4.15.1 has backward compatibility issues with groupActivityMiddleware

Please view our Technical Support Guide before filing a new issue.

Screenshots

Version

4.15.1

To determine what version of Web Chat you are running, open your browser's development tools, and paste the following line of code into the console.
[].map.call(document.head.querySelectorAll('meta[name^="botframework-"]'), function (meta) { return meta.outerHTML; }).join('\n')
If you are using Web Chat outside of a browser, please specify your hosting environment. For example, React Native on iOS, Cordova on Android, SharePoint, PowerApps, etc.

Describe the bug

when using 4.15.1  in LCW we have detected multiple issues with groupActivityMiddleware , the issue is not present for previous versions

Steps to reproduce

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior

Additional context

[Bug]

Please elaborate more, preferably with code snippets showing before and after.

Seeing below error with 4.15.1 and groupActivityMiddleware

Our implementation:
/******

GroupActivitiesMiddleware

This middleware controls which messages are grouped together regarding to timestamps. It does the following processing:

Distinguishes different messages by sender name and whether it is a system message
******/

import { Constants } from "../../../../../common/Constants";
function bin(items: T[], grouping: (last: T, current: T) => boolean): T[][] {
let lastBin: T[];
const bins: T[][] = [];
let lastItem: T;
if (items.length > 0) {
items.forEach(item => {
if (lastItem && grouping(lastItem, item)) {
lastBin.push(item);
} else {
lastBin = [item];
bins.push(lastBin);
}
lastItem = item;
});
}
return bins;
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
export const groupActivitiesMiddleware = () => (next: any) => (args: any) => {
const {
activities
} = args;
if (activities != null && activities.length > 0) {
    const { status } = next({ activities });
    return {
        // eslint-disable-next-line @typescript-eslint/no-explicit-any
        sender: bin(activities, (x: any, y: any) => {
            const roleX = (x.channelData && x.channelData.tags) ? x.channelData.tags.includes(Constants.systemMessageTag) ? Constants.systemMessageTag : x.from.name : x.from.name;
            const roleY = (y.channelData && y.channelData.tags) ? y.channelData.tags.includes(Constants.systemMessageTag) ? Constants.systemMessageTag : y.from.name : y.from.name;
            return roleX === roleY;
        }),
        status
    };
}
else {
    return () => false;
}

};

Working on this now. Confirmed it does not repro on 4.14.0 and repro on 4.15.0 (and probably more recent versions).

The error is caused by an invalid result was returned by the groupActivityMiddleware.
In the code snippet by @charliewang95, it may return () => false, which does not conform to the return type of { sender: [][], status: [][] }.
In 4.14.0, Web Chat tolerated the invalid return value. However, in 4.15, Web Chat did not tolerate and threw exceptions.


.svgs in request routing ingress/egress doc are not rendering

The svgs here are not rending for me (Firefox 56.0):
https://istio.io/docs/concepts/traffic-management/request-routing.html#ingress-and-egress

I saw the same in safari

Thanks for spotting this. Will fix

fixed


I’m getting warnings spam on HB 1.3.0 beta 27 in logs

Hi, I'm on HB 1.3.0 beta 27. And I see in logs these warnings almost every 30 seconds. Would you mind checking if there's something wrong with it? It keeps spamming. Thx a lot in advance.

Hi, any ideas about it? It's still spamming =(

I think I might need more context. We have a few characteristic On, and after a quick check throughout the code, they all look like they always return a value (or throw an error).
Q: Why are you running homebridge's 1.3.0 beta?
According to their releases https://github.com/homebridge/homebridge/releases/tag/v1.2.4, even 1.2.x is not considered stable:

Notice: This release is tailored towards people already running 1.2.x. As of now 1.1.6 will remain the latest stable version.

It should be fixed in the latest versions of the plugin. I'll go ahead and close this issue. Please, feel free to reopen.


Normalize image brightness by applying a gain and bias based on relative brightness of known stars

M

This is currently underway. We need to be integrating around sources rather than using peak pixels but steps are being made in the right direction.


Useless warp [Low priority]

You can warp same planet you are, with cost of 1 fuel. Pretty useless warp, not important fix.

Does it actually warp, or does it display 1 fuel to be used but the warp button doesn't do anything?


Makes run command version details in sync with the version command

Makes run command version details in sync with the version command
Fixes #5006
Signed-off-by: sujil02<EMAIL_ADDRESS>
Description of the change:
Motivation for the change:
Checklist
If the pull request includes user-facing changes, extra documentation is required:

[ ] Add a new changelog fragment in changelog/fragments (see changelog/fragments/00-template.yaml)
[ ] Add or update relevant sections of the docs website in website/content/en/docs

/hold

@sujil02 please post the output with this PR applied as a comment.

operator-sdk version seems to use GitVersion. https://github.com/operator-framework/operator-sdk/blob/master/internal/cmd/operator-sdk/cli/version.go#L25-L26 though there seems to have been something that caused this during the release.

What about helm-operator?

@estroz  Verified that looks in sync
$ helm-operator version
helm-operator version: "v1.9.0", commit: "205e0a0c2df0715d133fbe2741db382c9c75a341", kubernetes version: "v1.20.2", go version: "go1.16.5", GOOS: "darwin", GOARCH: "amd64"
$ helm-operator run
{"level":"info","ts":1626904201.4236002,"logger":"cmd","msg":"Version","Go Version":"go1.16.5","GOOS":"darwin","GOARCH":"amd64","helm-operator":"v1.9.0","commit":"205e0a0c2df0715d133fbe2741db382c9c75a341"}

ansible-operator and helm-operator have the exact same printVersion() implementations, so why wouldn't the latter suffer from the same issue at some point in the future?

Hi @estroz ,
The previously posted output was from the new build after the patch and can be ignored I tested it 1.8.0 helm-operator and the issue persist with the same as well
$ helm-operator_linux_amd64 version
helm-operator version: "v1.8.0", commit: "d3bd87c6900f70b7df618340e1d63329c7cd651e", kubernetes version: "1.20.2", go version: "go1.16.4", GOOS: "linux", GOARCH: "amd64"
$ helm-operator_linux_amd64 run
{"level":"info","ts":1626935123.1183627,"logger":"cmd","msg":"Version","Go Version":"go1.16.4","GOOS":"linux","GOARCH":"amd64","helm-operator":"v1.7.1+git","commit":"d3bd87c6900f70b7df618340e1d63329c7cd651e"}


PLE0101: allow return super()?

class Foo(Bar):

    def __init__(self, args):
        pass  # …
        return super(Foo, self).__init__(args)

this effectively returns None.
→ Should either be allowed or added as test case.

It seems to me using return super()… is not common.
For example:
2 results for return super()… in django
130 results for super()… only in django
You can deselect django as the repo, you will not find much known repo with this pattern.
It is correct but seems like an anti-pattern.

Yeah I think this is one I'd rather avoid special-casing.
What does Pylint do?

Closing for now!


Request: allow custom indent in to_pretty_json

Currently, the indent string for JSON::PrettyWriter is hardcoded as "  " (https://github.com/crystal-lang/crystal/blob/68783f1ebdd5b9bbefc8892ddbc200fe1f13bbea/src/json/to_json.cr#L132)
It's be nice if to_pretty_json and related methods accepted an optional indent_string parameter allowing the user to specify a custom indent string (e.g. tabs).
If this were to excessively bloat the methods, perhaps one could define a module variable (or an Object's class variable) indent_string to be used for every serialized object instead of the default one.

In JSON standard :

Insignificant whitespace is allowed before or after any token. The whitespace characters are: character tabulation (U+0009), line feed (U+000A), carriage return (U+000D), and space (U+0020). Whitespace is not allowed within any token, except that space is allowed in strings.

That means TAB (\t) is not a valid indent char in JSON, maybe we can only provide indent_size : Int for the option when calling #to_pretty_json?

Uhm, \t is U+0009

Oh oops, my fault, I missed it

I think providing a string as indentation is not a good idea, maybe we can provide indent_size and indent_type (this can only be space and tab , maybe symbol or enum?)

I was taking Go's MarshalIndent as an example, which allows an 'indent' string parameter

I think a string is good because then one can choose spaces or tabs very easily

Thank you @asterite :)


New-SmbGlobalMapping creates mappings that do not handle DFS links correctly

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
Create a mapping with New-SmbGlobalMapping to \server\share where share is a DFS namespace root
New-SmbGlobalMapping -LocalPath Z: -RemotePath \server\share
Attempt any file operation on a subdirectory that is a DFS link.  For example, attempt to list the children of Target-1 where Target-1 is a DFS link.
Get-ChildItem Z:\Target-1
Expected behavior
Get-ChildItem Z:\Target-1\

    Directory: Z:\Target-1

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         12/1/2022   8:37 AM                New folder

Actual behavior
Get-ChildItem Z:\Target-1\
Get-ChildItem : The network location cannot be reached. For information about network troubleshooting, see Windows
Help.
At line:1 char:1
+ Get-ChildItem Z:\Target-1\
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ReadError: (Z:\Target-1\:String) [Get-ChildItem], IOException
    + FullyQualifiedErrorId : DirIOError,Microsoft.PowerShell.Commands.GetChildItemCommand

Error details
No response
Environment data
$PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.20348.859
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.20348.859
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

Visuals
No response

@braveness23 The repository is only for pwsh, not for Windows PowerShell. Also the New-SmbGlobalMapping cmdlet is not in the repository. You should use Windows Feedback tool to report the issue or other MSFT channels.


Integrate OpenCensus with Google implementation

This will involve work for both HTTP and gRPC libraries.
For HTTP libraries we need to ensure they can easily accept a HttpMessageHandler (This already works but is complicated).
For gRPC we need to work with the gRPC team to see how we can hook into the native lib.
cc: @jskeet @chrisdunelm

For gRPC, we are likely to expose an interceptor property into client settings. This can be used for logging as well as other use cases. Do we think that would handle everything we'd need?

(Actually, presumably this isn't something the user should set up. Ian and Amanda, let's talk about this some time soon.)

Agreed the only set up that the user should be doing is to add the propagating handler to the http/grpc client and then to the library.

Still blocked on OpenCensus .NET integration. Renamed issue.

I'm going to close this as an issue for now. OpenCensus work is well underway, but won't be ready for us to integrate with for quite a while, and I don't think we'll miss the fact that we should integrate with it when we can.


Atom doesn't remember full-screen state if it's started without a project context

Open Atom without context, via Spotlight or Applications
Full-screen Atom
Quit
Open Atom the same way

I expect Atom to still be full-screen, but it's not.
/cc #1144

Using System Preferences, I got Terminal opening in full screen, but I don't remember where I found that setting...

It should do so for restorePreviousWindowsOnStart: true. It doesn't as of now

http//:www.tradessilver.com


Revert "prefer local environment to docker, refactor Makefiles"

Reverts aspirepress/AspireSync#25

❓
Why was the PR reverted?  A description would have helped...

Sorry? It's been merged.

Yes, #25 was merged, then this one was merged, which reverts #25.  Why was it reverted?

I accidentally reverted #25. Then I recreated 27 and merged it. Do things look ok?

I think I made a mistake and reverted 25 by accident. Can you make a new PR which will recreate the original pr #25.  Sorry about that!


Cannot #require "ctypes.foreign";; in utop (or rlwrap ocaml) on Windows

Hi! I'm a total newbie to OCaml, but I'm very interested in a possibility of learning it for use in a REPL on Windows, for rapid prototyping with WinAPI. I managed to install OCaml, OPAM, ctypes+ctypes.foreign, and utop per the awesome guide by Jonathan Protzenko, and to get utop to work (I've merged some additional fixes that I discovered in the process into the guide).
Unfortunately, when I try to #require "ctypes.foreign";; in utop, I'm getting the following error:
Error: Reference to undefined global `Ctypes_closure_properties'

Note: full transcript of the session is here - it contains output of a utop session in cmd.exe terminal, and also of an additional rlwrap ocaml session in Cygwin terminal.
I've managed to google up some comment, which seems to mention that "a static version of libffi" might work, as hinted in #198; but I'm a total newbie to OCaml, and unfortunately I have no faintest idea how I could apply this suggestion to utop... :(
Could you hopefully help me to try and get ctypes.foreign to work in utop on Windows?

The instructions here, specifically the bit about adding the following to .bashrc
export PATH="/usr/x86_64-w64-mingw32/sys-root/mingw/bin:$PATH"

makes foreign work.

Facing this issue on Linux. When I try to do #require "ctypes.foreign";; It gives me this error that Error: Reference to undefined global `Ctypes_closure_properties'.

@kevallakhani95: how did you install ctypes?  using opam?

@yallop Yes.

@kevallakhani95:
Could you give a bit more information about your system?  Which version of Linux are you running?  It'd also be handy to have the output of each of the following commands:
pkg-config --modversion libffi
ocamlfind query ctypes.foreign
ocamlfind query ctypes
opam config env
opam list | grep ctypes

@yallop just got it working. Thanks! :)


Use custom namespace for OIPA specific elements

Describe the bug
DSv2 output contains a large number of elements inserted into publisher data that a) were not published by the original publisher, and b) I think are not part of the IATI standard.
To Reproduce
Steps to reproduce the behaviour:

Go to https://test-datastore.iatistandard.org/api/activities/?iati_identifier=GB-1-105322-101&fields=all
See elements such as <transaction><message>This activity has more than 100 transactions! To get all transactions,  please use the URL transaction, instead!</message>
Or go to: https://test-datastore.iatistandard.org/api/activities/GB-1-104714/?fields=all&format=json
And see element <activity_plus_child_aggregation>
Other elements include the OIPA IDs, urls and similar.

Expected behaviour
These elements can be included by using an OIPA namespace extension  therefore a) allowing the returned data to be valid IATI data again, b) making it much easier for users who do not want to use that data to avoid them. It also would c) make it clearer (but not IATI standard clear) who the publisher/source of this data was.

related to #1652

This will be solved by #1652 (keep for review after implementation of #1652)

Plan of action:

Create new table
Create/update Parser(s)
Create API endpoint
Format endpoint for JSON, XML, CSV
Solr connects to new table

Progress: added namespace element. Tests broken, need 2b fixed. ETA is now Friday  29/11

@siemvaessen  can you link to where the namespace element was added in the documentation before closing?

Hi @PetyaKangalova what documentation are you referring to?

aad

Hi @PetyaKangalova this can be tested with this url: https://iati.cloud/api/activities/?iati_identifier=GB-GOV-1-300646-101&format=xml&fields=all

@luminhan  thanks a lot! I can now see how that has been implemented as custom namespace!

Just received this comment from @matmaxgeds  as he was unable to comment. TI think the definition is important.

Is this coming to the json, csv etc outputs as well?
Will the namespace be defined somewhere (e.g. in the activity header) before it is used in an element - that might make it easier to parse?
It would be great if ZZ actually put a definition file for the namespace behind the link provided?


Python console ?

Hi :)
While working on a document, I often feel the need to have a more comfortable place to inspect the data through python, for example while analyzing it with a data producer, I sometimes need to quickly check if there are some duplicates in a column, or if some values in column A are also on column B, or to count "invalid rows" or rows matching a pattern, etc., without needing to store the result.
How hard would it be to have a sort of python console inside a document ? I'm imagining it maybe as a widget  (based on Jupyter ?).
Yohan, dreaming out loud :)

In an early pre-release version we actually used to have a REPL, which ran in the context of the sandbox, and allowed sending Python statements and have them execute. We dropped that idea because it had neither a convenient UI nor any good ways to work with the document on the Python side.
Jupyter notebook interface sounds much better. This is something I tried once, and it felt useful, but it involved running things locally, to have a backend (to actually run/serve Jupyter) and a way to connect up Jupyter to get data from Grist. The way it was structured wasn't promising enough to share anything. But I am sure a better approach is possible.

Just a live example to illustrate: I need to compare the headers of two tables (which have more than 50), to see how they differ. :)
Did you already look at replit ? https://replit.com/@replit/Python?v=1
Or maybe a first step would be to expose the sandboxed python through the widget API ? I guess that would be very limited (no autocomplete, no state…), but that may be a way to have a custom widget with a texarea where to paste a python script ?

Do you think with a custom widget it would be possible ? Having a custom widget with Jupyter or Replit and inject a grist object would be amazing !
It is what you would expect @yohanboniface ?

I think a custom widget running JupyterLite (no server required!) would work well.

I dug up the old experiment, and I see that it used the "backend plugin" functionality that was never polished and has since been dropped entirely.
What it allowed was to start a node process on server side, running code provided by the plugin, and it provided RPC piping to allow communication from custom widget code. In my experiment (which I only ever tried to run locally), the custom widget, on startup, used RPC to call a method in this backend process, which spawned a server-side jupyter process, and returned its URL, which the custom widget then loaded in an iframe. Additionally, this server-side process exposed a couple of endpoints for fetching data, so that pandas.read_json(...) would return a ready-to-use data frame.
This was the relevant part of my experiment:

Endpoints (in a Node process, using Express):app.route('/tables')
  .get(expressWrap(() => gristDocAPI.listTables()));
app.route('/tables/:tableId')
  .get(expressWrap(async (req) => gristDocAPI.fetchTable(req.params.tableId)));

function expressWrap(callback: (req: express.Request, res: express.Response) => any): express.RequestHandler {
  return async (req, res, next) => {
    try {
      res.json(await callback(req, res));
    } catch (err) {
      next(err);
    }
  };
}

Python libraryimport os
import pandas
GRIST_URL = os.getenv("GRIST_API_SERVER_URL")

def list_tables():
"""Fetches and returns a list of table ids in the current document."""
return pandas.read_json(GRIST_URL + "/tables")[0].tolist()

def fetch_table(table_id):
"""Returns the given table's data from the current document, as a pandas data frame."""
return pandas.read_json(GRIST_URL + "/tables/" + table_id)

Not much to it...
With JupiterLite, I imagine the endpoint isn't needed at all, since Grist now gives custom widgets access to the REST API using getAccessToken.

We now have a widget ready to try: https://github.com/gristlabs/jupyterlite-widget/blob/main/USAGE.md


process.exit executes immediately on process.on('SIGTERM')

First of all, thanks to all the people who is behind this awesome project, we are just testing it and we are very happy with it.
I have a problem though:
I need to do one async operation when my SocketCluster process exits on a SIGTERM.
The operation I need to do is a delete of some rows on a Rethink database.
Unfortunately on https://github.com/SocketCluster/socketcluster/blob/master/index.js#L48 there is:
  process.on('SIGTERM', function () {
    self.killWorkers();
    self.killBrokers();
    process.exit();
  });

that is exiting my process before I can do any operation.
I moved this block of code to my Init.js where I instantiate SocketCluster and there I delete the rows but it's very ugly, I don't want to touch any SocketCluster code.
Do you know a better way of doing the same?
Thanks

I managed to do the same without touching SocketCluster code.
This removes the process.on('SIGTERM') on SocketCluster index.js:48
process.removeListener('SIGTERM', process.listeners('SIGTERM')[0]);
But if someone has another way to gracefully shutdown with async operations, it could help a lot to share it here.


Issue about farmhash

I don't know what's wrong with it but, every new environment i try to run my app, farmhash causes failure. There are a few error logs from my Amazon AWS instance:
4767 error Linux 4.4.44-39.55.amzn1.x86_64
4768 error argv "/opt/elasticbeanstalk/node-install/node-v6.10.0-linux-x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v6.10.0-linux-x64/bin/npm" "--production" "rebuild"
4769 error node v6.10.0
4770 error npm  v3.10.10
4771 error code ELIFECYCLE
4772 error<EMAIL_ADDRESS>install: `node-gyp rebuild`
4772 error Exit status 1
4773 error Failed at the<EMAIL_ADDRESS>install script 'node-gyp rebuild'.
4773 error Make sure you have the latest version of node.js and npm installed.
4773 error If you do, this is most likely a problem with the farmhash package,
4773 error not with npm itself.
4773 error Tell the author that this fails on your system:
4773 error     node-gyp rebuild
4773 error You can get information on how to open an issue for this project with:
4773 error     npm bugs farmhash
4773 error Or if that isn't available, you can get their info via:
4773 error     npm owner ls farmhash
4773 error There is likely additional logging output above.
4774 verbose exit [ 1, true ]

npm ERR! You can get information on how to open an issue for this project with:
  npm ERR!     npm bugs farmhash
  npm ERR! Or if that isn't available, you can get their info via:
  npm ERR!     npm owner ls farmhash
  npm ERR! There is likely additional logging output above.

  npm ERR! Please include the following file with any support request:
  npm ERR!     /tmp/deployment/application/npm-debug.log
  Running npm install:  /opt/elasticbeanstalk/node-install/node-v6.10.0-linux-x64/bin/npm
  Setting npm config jobs to 1
  npm config jobs set to 1
  Running npm with --production flag
  Failed to run npm install. Snapshot logs for more details.
  Traceback (most recent call last):
    File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 695, in <module>
      main()
    File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 677, in main
      node_version_manager.run_npm_install(options.app_path)
    File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 136, in run_npm_install
      self.npm_install(bin_path, self.config_manager.get_container_config('app_staging_dir'))
    File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 180, in npm_install
      raise e
  subprocess.CalledProcessError: Command '['/opt/elasticbeanstalk/node-install/node-v6.10.0-linux-x64/bin/npm', '--production', 'rebuild']' returned non-zero exit status 1 (ElasticBeanstalk::ExternalInvocationError)
caused by: + /opt/elasticbeanstalk/containerfiles/ebnode.py --action npm-install

  ><EMAIL_ADDRESS>install /tmp/deployment/application/node_modules/xxhash
  > node-gyp rebuild

  make: Entering directory `/tmp/deployment/application/node_modules/xxhash/build'
    CXX(target) Release/obj.target/hash/src/hash.o
    CC(target) Release/obj.target/hash/deps/xxhash/xxhash.o
    SOLINK_MODULE(target) Release/obj.target/hash.node
    COPY Release/hash.node
  make: Leaving directory `/tmp/deployment/application/node_modules/xxhash/build'
<EMAIL_ADDRESS>/tmp/deployment/application
  â””â”€â”€<EMAIL_ADDRESS>

  ><EMAIL_ADDRESS>install /tmp/deployment/application/node_modules/farmhash
  > node-gyp rebuild

  gyp ERR! clean error
  gyp ERR! stack Error: EACCES: permission denied, rmdir 'build'
  gyp ERR! stack     at Error (native)
  gyp ERR! System Linux 4.4.44-39.55.amzn1.x86_64
  gyp ERR! command "/opt/elasticbeanstalk/node-install/node-v6.10.0-linux-x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v6.10.0-linux-x64/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
  gyp ERR! cwd /tmp/deployment/application/node_modules/farmhash
  gyp ERR! node -v v6.10.0
  gyp ERR! node-gyp -v v3.4.0
  gyp ERR! not ok

  npm ERR! Linux 4.4.44-39.55.amzn1.x86_64
  npm ERR! argv "/opt/elasticbeanstalk/node-install/node-v6.10.0-linux-x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v6.10.0-linux-x64/bin/npm" "--production" "rebuild"
  npm ERR! node v6.10.0
  npm ERR! npm  v3.10.10
  npm ERR! code ELIFECYCLE
  npm ERR<EMAIL_ADDRESS>install: `node-gyp rebuild`
  npm ERR! Exit status 1
  npm ERR!
  npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node-gyp rebuild'.
  npm ERR! Make sure you have the latest version of node.js and npm installed.
  npm ERR! If you do, this is most likely a problem with the farmhash package,
  npm ERR! not with npm itself.
  npm ERR! Tell the author that this fails on your system:
  npm ERR!     node-gyp rebuild
  npm ERR! You can get information on how to open an issue for this project with:
  npm ERR!     npm bugs farmhash
  npm ERR! Or if that isn't available, you can get their info via:
  npm ERR!     npm owner ls farmhash
  npm ERR! There is likely additional logging output above.

  npm ERR! Please include the following file with any support request:
  npm ERR!     /tmp/deployment/application/npm-debug.log
  Running npm install:  /opt/elasticbeanstalk/node-install/node-v6.10.0-linux-x64/bin/npm
  Setting npm config jobs to 1
  npm config jobs set to 1
  Running npm with --production flag
  Failed to run npm install. Snapshot logs for more details.
  Traceback (most recent call last):
    File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 695, in <module>
      main()
    File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 677, in main
      node_version_manager.run_npm_install(options.app_path)
    File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 136, in run_npm_install
      self.npm_install(bin_path, self.config_manager.get_container_config('app_staging_dir'))
    File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 180, in npm_install
      raise e
  subprocess.CalledProcessError: Command '['/opt/elasticbeanstalk/node-install/node-v6.10.0-linux-x64/bin/npm', '--production', 'rebuild']' returned non-zero exit status 1 (Executor::NonZeroExitStatus)

[2017-03-16T07:28:02.051Z] INFO  [19762] - [Application update<EMAIL_ADDRESS>: Activity failed.
[2017-03-16T07:28:02.051Z] INFO  [19762] - [Application update app-72065-170316_102706@19/AppDeployStage0/AppDeployPreHook] : Activity failed.
[2017-03-16T07:28:02.051Z] INFO  [19762] - [Application update app-72065-170316_102706@19/AppDeployStage0] : Activity failed.
[2017-03-16T07:28:02.051Z] INFO  [19762] - [Application update app-72065-170316_102706@19] : Completed activity. Result:
  Application update - Command CMD-AppDeploy failed
[2017-03-16T07:32:41.207Z] INFO  [20189] - [CMD-TailLogs] : Starting activity...
[2017-03-16T07:32:41.207Z] INFO  [20189] - [CMD-TailLogs/AddonsBefore] : Starting activity...
[2017-03-16T07:32:41.207Z] INFO  [20189] - [CMD-TailLogs/AddonsBefore] : Completed activity.
[2017-03-16T07:32:41.207Z] INFO  [20189] - [CMD-TailLogs/TailLogs] : Starting activity...
[2017-03-16T07:32:41.207Z] INFO  [20189] - [CMD-TailLogs/TailLogs/TailLogs] : Starting activity...

Have you tried https://github.com/michaeldegroot/mysql-cache#troubleshooting ?

I had a issue with travis with farmhash this was the fix:
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-5 g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 80 --slave /usr/bin/g++ g++ /usr/bin/g++-5
sudo update-alternatives --config gcc

// (choose gcc-5 from the list)

Also I see a
 stack Error: EACCES: permission denied, rmdir 'build'
Check permissions just to be sure :)

It's okay, i was able to fix issue on my windows development machine by installing npm build tools for windows but since i cannot access to amazon instances which are behind a load balancer, it cannot be fixed. i am currently using 2.1.0

That's unfortunate, You cannot update your GCC on this amazon instance? maybe I should make the new hashing options OPTIONAL and you access it with npm install and selecting it in the mysql-cache options?

This problem will be solved in the upcoming version 2.1.2 which will probably roll out today if the unit test gods like me today

Modules like farmhash, xxhash and mmap-object will now be automatically installed. But only if the module is about to be used, so these packages are now optional and will not cause any problems for people that can't compile them.


chore(dev/release): add binary verification

I still need to test this on macOS

Should work fine, but I have only an M1 mac, so time to figure out the M1 wheels.

Alright! Now that the wheels are fixed, binary verification finally passes on macOS.


Ability to override the document object

In Testophobia, we need the ability to query for elements inside an iframe.
We're not asking q-s-s-d to do the actual queries across iframe boundaries,  but we would probably need to be able to pass into querySelectorDeep some sort of optional document argument, that would override its document references, so we can tell it which document it should use for its queries (top-level vs. an iframe).

Nice idea shouldn't be hard to add, will look into it

@jasongardnerlv Just released a new version with this ehancement


Very slow performance metadata

I use python 3.6 and installed rio-tiler from repo.
And script run time is too high.
from aws_sat_api.search import landsat
from rio_tiler import landsat8
from datetime import datetime

startTime = datetime.now()

l8_path = 178
l8_row = 21
full_search = False
l8_meta = landsat(l8_path, l8_row, full_search)

metadata = landsat8.metadata('LC81780212013117LGN01', 5, 95)
print(metadata)

print(datetime.now() - startTime)

Output:
{'sceneid': 'LC81780212013117LGN01', 'bounds': [36.11826, 54.83456, 40.03735, 56.95001], 'rgbMinMax': {'1': [1489, 7031], '2': [1238, 7094], '3': [922, 6769], '4': [777, 7117], '5': [1278, 7794], '6': [811, 6038], '7': [474, 4849], '9': [17, 336], '10': [264, 285], '11': [261, 281]}}
0:03:00.593763

Please help.

👋 @bekerov, landsat8.metadata take some time because it needs to get the previews to calculate min/max histogram cut. Depending on you network and how far form the aws us-west-2 endpoint you are the metadata retrieval can be slow.
I you run this on a AWS service (ec2, ecs, lambda) on AWS us-west-2 region it should be quite fast.
please feel free to close if the answer is 🆗


[bug / suggestion] The parts responsible for the second layer of the skin (and the parts attached to them) should be enabled and disabled based on the vanilla skin settings.

These are the settings in question:

their change is not reflected in any way on the character model, even if he had the second skin layer turned on.

The skin layers are used to send the custom poses/gestures. A combination of these toggles set the current pose/gesture. A toggleable gesture will be added in the future to the gestures menu.

Duplicate of #149


Update welcome.stories.mdx

add link to https://github.com/baloise/design-system-examples

Examples are not maintained since a long time. we use Nx and Angular CLI to generate boilerplates


Cannot create container under Gentoo

I created new rootfs, but instead of Ubuntu-core I used Gentoo stage tarball, but when I try to copy utility I get error:
venus /tmp/tmp.Z1SsikCMGh/rootfs # nvidia-container-cli --load-kmods configure --no-cgroups --utility --device 0 .
nvidia-container-cli: input error: invalid rootfs directory

Where can I customize expected paths as I think this si related to Red/Deb system path which Gentoo might not follow in all cases...\
Thank you.

Try remove NVreg_ModifyDeviceFiles=1 from /etc/modprobe.d/nvidia.conf

@hizel - thx going to try, just came back to this topic


Chat - Attachment picker is briefly displayed after taking picture to upload in chat

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

Expected Result:
Upload Attachment screen displayed
Actual Result:
Attachment picker screen displayed for a moment before Upload attachment screen
Action Performed:

Launch the app and login
Initiate a chat > Tap +
Tap Add Attachment > Take photo
Take a photo and tap use photo

Workaround:
No need, visual issue.
Platform:
Where is this issue occurring?
Web
iOS ✔
Android
Desktop App
Mobile Web
Version Number: 1.0.31-0
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Video
Expensify/Expensify Issue URL: https://github.com/Expensify/Expensify/issues/161920
View all open jobs on Upwork

Triggered auto assignment to @sonialiap (AutoAssignerTriage), see https://stackoverflow.com/c/expensify/questions/4749 for more details.

I believe this might be a duplicate. @kidroca I think you were commenting about this here, right? Do you know if this is a duplicate issue / if this is already being worked on?

@roryabraham
No, this is not a duplicate
At the time when a modal was closing the compose input would be auto focused which would interfere with the gallery/camera and dismiss it. The only way to prevent this was to keep the popup modal open
https://github.com/Expensify/Expensify.cash/blob/99b44b3dcbc8efe99e7ea7a0fe833382f025a0aa/src/components/AttachmentPicker/index.native.js#L220-L225
Now since autofocus does not happen automatically on mobile devices this can be updated so that the 2nd modal, the attachment picker, closes while you take a picture or select something from gallery/documents
I can apply a proposition if you're interested

@kidroca, thanks for the explanation! We don't have an upwork job for this yet, but when we have it posted I'll ping you and make sure you're first in line 🙂

Triggered auto assignment to @stephanieelliott (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

Triggered auto assignment to @deetergp (Exported), see https://stackoverflow.com/c/expensify/questions/7972 for more details.

Job post on Upwork: https://www.upwork.com/jobs/~01e62dbc72de7f7a3e
☝ @kidroca

Proposal
The logic here:
https://github.com/Expensify/Expensify.cash/blob/5ed9e261867aec89018d295fe67775b9d7d621b6/src/components/AttachmentPicker/index.native.js#L229-L237
Can be altered to something like:
<MenuItem
  key={text}
  icon={icon}
  title={text}
  onPress={() => {
    // first tell the popover to start closing
    this.close();

    // invoke the attachment picking action
    pickAttachment()
      .then(this.setResult)
      .catch(console.error)
      .finally(this.completeAttachmentSelection)
  }}
/>

completeAttachmentSelection would trigger the onPicked callback with the selected photo/document or do nothing if nothing was selected (cancelled from the gallery)
Right now completeAttachmentSelection would be invoked only after the modal hides resulting in the current issue
Alternatively instead of calling pickAttachment immediately after close it can be set to be called after the modal hides. E.g. if it's causing any transition issues.

@kidroca Your proposal sounds good, provided it doesn't somehow break the expected behavior of the app on Android. Go ahead and create a PR 👍

This happens on Android as well. Both will be addressed by the proposed changes
https://user-images.githubusercontent.com/12156624/116548232-9a5dde00-a8fc-11eb-99c6-13594a589757.mp4
@isagoico You might want to update the issue description to list Android as affected too

@deetergp
I have submitted a proposal on Upwork: https://www.upwork.com/ab/proposals/1387741889178193921

Thanks @kidroca, I sent you the offer on Upwork!


Remove double # char on memos

I think this method is not at fault here.
I think commit.Commit.transfer should remove the # before passing the the memo to the encode_memo since the #should not be encoded


Forced update "Not enrolled" error and subsequent exception

Region: USA
Kai EV6 Wind with Technology Package
Fresh install on HA 2022.10.3 running V2.0.17 via HACS.
It is creating the device and 29 entities, mostly correct. While testing I have done a service call of update (which appears to do nothing, though it succeeds) and Forced Update, which gives an error every time.
Debug showing data normally returned upon HA server restart is in issue 410 posted for unrelated reasons.
DebugLog.txt

Can you confirm a force refresh works in the native app?

To be sure I understand the terminology (sorry, only 2nd day with car) this is the app "Kia Access" (on Android) and hitting the refresh icon at the top, yes, it says "Updating vehicle information" for about 10 seconds then shows refreshed data and "Updated: Now".

I can also see the car on https://owners.kia.com/content/owners/en/dashboard.html/

An update on this.  I left it running overnight.  After first setting up the integration I had 29 sensors reporting data.  By morning they all went to "not available" and no data, and it appears to be the same "Not enrolled" error but after a (I think) successful signin.  Here's a sample of that log from the wee hours.
I did change the time of polling to be 24hrs (set both start/end to zero).
DebugLog.txt
I did a developer/yaml/restart of HA and did not get them back.  I believe (based on some testing I did when i first set up) if I delete the integration and re-add they will come back with values.

This one is somewhat complicated.   I think the tokens are expiring and not refreshing.  The old version 1.8.X should work but for some reason it isn't refreshing for 2.0.  If able to develop feel free to give it a look and tinker:
https://github.com/Hyundai-Kia-Connect/hyundai_kia_connect_api/blob/master/hyundai_kia_connect_api/KiaUvoAPIUSA.py
It may take me a bit - not easy since I can't test myself.

This went south pretty badly.  I had a theory that the issue was credentials.  Kia somehow has me set up with a phone number as an ID, and a email as an ID (same email is on both accounts, as is same phone number; really poor software there!).  One of those has the car labeled "not linked" and the other has the car with connect activated.
So I went back to see which account I used, and noticed a new version.  I downloaded, updated, and restarted HA.  The entities all came back and were active, but I wanted to check the credentials in use, and there is where it went south -- HA's Settings, Devices & Services, Integrations did not show it.  Just not on the page.  HACS still showed it, and the devices and entities still had everything.
I tried removing from HACS with the GUI without success (said it was still in use).  I tried a lot of things, many reboots, never came visible.  I finally SSH'd into the HA server and deleted it entirely from custom components.
A couple restarts and removal from HACS GUI and it seemed like I was back to the beginning, so added it and restarted -- not on the integration screen (correct, it wasn't configured) but when I hit add integration it hung -- no list of brands.  Hung forever.  Went back to HACS and deleted it (worked this time) and now add integration pops up a list of brands.
So it's doing something wacky, at least on my system.  But it is POSSIBLE that the issue with not enrolled is related to the fact I somehow ended up with two accounts.   My guess is one created from the android app and one from the web.
But I think I will not install again, either I have introduced some corruption or it is not working and playing well with my configuration and HACS there.

The home assistant DB most likely still has entries in it for this integration.  That can cause strange behavior if force changes occur.  If you do decide to install again and have that hang again just post the logs.  We could probably find a way to handle setup if the data exists even though it isn't configured.   If calling it quits all good.
Other option is we get you up and running on version 1.8X(Stable release).

I decided to try this again.
I removed the alternative Kia integration I was using (dahlb/ha_kia_hyundai) that seemed to be working OK, mostly.
I deleted all the state information (with SQL) from your integration and that integration.
So at this point HACS had neither one.  I then added this integration, set the allow beta, after adding it showed update available, did the update.
Then I went to add the integration itself, and when i did, I got the same problem --- the drop down lists of integrations just never completes, no list at all.
So there's something weird, at least on my system, with the 2.x version.  I removed it in HACS, added back the alternative above, it appears properly in the integration/add dialog.
I did get the logs when this happened, it has the following:
2022-11-09 16:24:25.080 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140154544355072] Error handling message: Unknown error (unknown_error) Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 27, in _handle_async_response await func(hass, connection, msg) File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 755, in handle_integration_descriptions connection.send_result(msg["id"], await async_get_integration_descriptions(hass)) File "/usr/src/homeassistant/homeassistant/loader.py", line 287, in async_get_integration_descriptions custom_flows[integration.integration_type][integration.domain] = metadata KeyError: 'hub'

Looks like this was a 2022.11.0 and .1 issue: https://community.home-assistant.io/t/unable-to-add-integrations-from-ui/482612/5
Have you tried with .2 of HACS?

I'm on HACS 1.28.3 running HA 2022.11.2 now.  I honestly don't recall whether I last tried this before or after I upgraded to 2022.11.2 (I skilled .1 and .0).
But yes, I think it may be fixed.  I downloaded your 2.0.24 and it no longer hangs.  I'm not sure i want to run it, as I've started accumulating data with a similar integration and not keen to start over.  I don't suppose there is a way to change the vehicle name, e.g. instead of everything starting with EV6_ to provide a different prefix overriding it?  Then I could run both, compare, etc.  Right now they step on each others names (and end up with _2, etc. but only on some).
But to the point of this issue I think it may be fixed.  I think this also may explain the original issue -- I installed the 1.x version, configured, then upgraded to 2.x.  If  2.x couldn't be processed on the integrations screen it would explain why I couldn't remove it.

If you rename a device it should rename all child items.  Can't promise anything. :)  The other integration you are referencing is a fork of this one.  That person did write most of the USA Kia portion of this integration.  Happy with whichever way you want to go.  Just glad the issue is sorted out.

Good to know, but it's going to create all the devices before I get a chance to rename the device, as best I can tell.  Anyway, I think this issue is done.