[Q] Is it possible to build tsduck using conda environments?

I have access to a RHEL system without without sudo. So, I cannot install from prebuilt binaries or execute install_prerequisites.sh
I do have access to conda and have created an environment with appropriate libraries and packages that I sniffed out of the install_prerequisites.sh file.
With the environment created. I execute start of compilation with, make -j30 NODEKTEC=1 NOHIDES=1 NOCURL=1 NOPCSC=1 NOEDITLINE=1 NOSRT=1 NORIST=1 NOTELETEXT=1,  the compilation starts and [DEP] completes, but [CXX] starts and exits with the stacktrace below.
So, the question is, is it possible to compile tsduck without sudo access and, with a package manager like conda or some other method?
In file included from dtv/broadcast/tsModulation.h:37,
                 from dtv/broadcast/tsModulationArgs.h:40,
                 from dtv/broadcast/tsChannelFile.h:36,
                 from dtv/broadcast/tsChannelFile.cpp:30:
dtv/broadcast/tsDeliverySystem.h:52:30: error: '::SYS_TURBO' has not been declared
   52 |         DS_DVB_S_TURBO   = ::SYS_TURBO,
      |                              ^~~~~~~~~
bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
  [CXX] dektec/tsDektecControl.cpp
dtv/broadcast/tsDeliverySystem.h:54:30: error: '::SYS_DVBT2' has not been declared; did you mean SYS_DVBT'?
   54 |         DS_DVB_T2        = ::SYS_DVBT2,
      |                              ^~~~~~~~~
      |                              SYS_DVBT
In file included from dtv/broadcast/tsModulation.h:37,
                 from dtv/broadcast/tsModulationArgs.h:40,
                 from dtv/broadcast/tsBitrateDifferenceDVBT.h:36,
                 from dtv/broadcast/tsBitrateDifferenceDVBT.cpp:30:
dtv/broadcast/tsDeliverySystem.h:52:30: error: '::SYS_TURBO' has not been declared
   52 |         DS_DVB_S_TURBO   = ::SYS_TURBO,
      |                              ^~~~~~~~~
dtv/broadcast/tsDeliverySystem.h:54:30: error: '::SYS_DVBT2' has not been declared; did you mean SYS_DVBT'?
   54 |         DS_DVB_T2        = ::SYS_DVBT2,
      |                              ^~~~~~~~~
      |                              SYS_DVBT
In file included from dtv/broadcast/tsModulationArgs.h:40,
                 from dtv/broadcast/tsChannelFile.h:36,
                 from dtv/broadcast/tsChannelFile.cpp:30:
dtv/broadcast/tsModulation.h:365:22: error: '::TRANSMISSION_MODE_1K' has not been declared; did you mean 'TRANSMISSION_MODE_8K'?
  365 |         TM_1K    = ::TRANSMISSION_MODE_1K,
      |                      ^~~~~~~~~~~~~~~~~~~~
      |                      TRANSMISSION_MODE_8K
dtv/broadcast/tsModulation.h:366:22: error: '::TRANSMISSION_MODE_16K' has not been declared; did you mean 'TRANSMISSION_MODE_8K'?
  366 |         TM_16K   = ::TRANSMISSION_MODE_16K,
      |                      ^~~~~~~~~~~~~~~~~~~~~
      |                      TRANSMISSION_MODE_8K
In file included from dtv/broadcast/tsModulationArgs.h:40,
                 from dtv/broadcast/tsBitrateDifferenceDVBT.h:36,
                 from dtv/broadcast/tsBitrateDifferenceDVBT.cpp:30:
dtv/broadcast/tsModulation.h:365:22: error: '::TRANSMISSION_MODE_1K' has not been declared; did you mean 'TRANSMISSION_MODE_8K'?
  365 |         TM_1K    = ::TRANSMISSION_MODE_1K,
      |                      ^~~~~~~~~~~~~~~~~~~~
      |                      TRANSMISSION_MODE_8K
dtv/broadcast/tsModulation.h:367:22: error: '::TRANSMISSION_MODE_32K' has not been declared; did you mean 'TRANSMISSION_MODE_2K'?
  367 |         TM_32K   = ::TRANSMISSION_MODE_32K,
      |                      ^~~~~~~~~~~~~~~~~~~~~
      |                      TRANSMISSION_MODE_2K
dtv/broadcast/tsModulation.h:366:22: error: '::TRANSMISSION_MODE_16K' has not been declared; did you mean 'TRANSMISSION_MODE_8K'?
  366 |         TM_16K   = ::TRANSMISSION_MODE_16K,
      |                      ^~~~~~~~~~~~~~~~~~~~~
      |                      TRANSMISSION_MODE_8K
dtv/broadcast/tsModulation.h:367:22: error: '::TRANSMISSION_MODE_32K' has not been declared; did you mean 'TRANSMISSION_MODE_2K'?
  367 |         TM_32K   = ::TRANSMISSION_MODE_32K,
      |                      ^~~~~~~~~~~~~~~~~~~~~
      |                      TRANSMISSION_MODE_2K
dtv/broadcast/tsModulation.h:417:26: error: '::GUARD_INTERVAL_1_128' has not been declared; did you mean 'GUARD_INTERVAL_1_8'?
  417 |         GUARD_1_128  = ::GUARD_INTERVAL_1_128,
      |                          ^~~~~~~~~~~~~~~~~~~~
      |                          GUARD_INTERVAL_1_8
dtv/broadcast/tsModulation.h:417:26: error: '::GUARD_INTERVAL_1_128' has not been declared; did you mean 'GUARD_INTERVAL_1_8'?
  417 |         GUARD_1_128  = ::GUARD_INTERVAL_1_128,
      |                          ^~~~~~~~~~~~~~~~~~~~
      |                          GUARD_INTERVAL_1_8
dtv/broadcast/tsModulation.h:418:26: error: '::GUARD_INTERVAL_19_128' has not been declared; did you mean 'GUARD_INTERVAL_1_8'?
  418 |         GUARD_19_128 = ::GUARD_INTERVAL_19_128,
      |                          ^~~~~~~~~~~~~~~~~~~~~
      |                          GUARD_INTERVAL_1_8
dtv/broadcast/tsModulation.h:418:26: error: '::GUARD_INTERVAL_19_128' has not been declared; did you mean 'GUARD_INTERVAL_1_8'?
  418 |         GUARD_19_128 = ::GUARD_INTERVAL_19_128,
      |                          ^~~~~~~~~~~~~~~~~~~~~
      |                          GUARD_INTERVAL_1_8
dtv/broadcast/tsModulation.h:419:26: error: '::GUARD_INTERVAL_19_256' has not been declared; did you mean 'GUARD_INTERVAL_1_16'?
  419 |         GUARD_19_256 = ::GUARD_INTERVAL_19_256,
      |                          ^~~~~~~~~~~~~~~~~~~~~
      |                          GUARD_INTERVAL_1_16
dtv/broadcast/tsModulation.h:419:26: error: '::GUARD_INTERVAL_19_256' has not been declared; did you mean 'GUARD_INTERVAL_1_16'?
  419 |         GUARD_19_256 = ::GUARD_INTERVAL_19_256,
      |                          ^~~~~~~~~~~~~~~~~~~~~
      |                          GUARD_INTERVAL_1_16
bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
  [CXX] dektec/private/tsDektecDevice.cpp
bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
  [CXX] dektec/tsDektecDeviceInfo.cpp
bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
  [CXX] dektec/tsDektecInputPlugin.cpp
make[2]: *** [../../Makefile.inc:506: /home/jovyan/work/tsduck/bin/release-x86_64/objs-libtsduck/tsBitrateDifferenceDVBT.o] Error 1
make[2]: *** Waiting for unfinished jobs....
bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
  [CXX] dektec/tsDektecOutputPlugin.cpp
  [CXX] dektec/tsDektecUtils.cpp
make[2]: *** [../../Makefile.inc:506: /home/jovyan/work/tsduck/bin/release-x86_64/objs-libtsduck/tsChannelFile.o] Error 1
In file included from dtv/linux/tsDTVProperties.cpp:30:
dtv/linux/tsDTVProperties.h:126:49: error: '::fecap_scale_params' has not been declared
  126 |         bool getStatByCommand(int64_t& value, ::fecap_scale_params& scale, uint32_t cmd, size_t layer) const;
      |                                                 ^~~~~~~~~~~~~~~~~~
dtv/linux/tsDTVProperties.cpp: In member function 'size_t ts::DTVProperties::addStat(uint32_t)':
dtv/linux/tsDTVProperties.cpp:73:36: error: 'union dtv_property::<unnamed>' has no member named 'st'
   73 |     _prop_buffer[_prop_head.num].u.st.len = MAX_DTV_STATS;
      |                                    ^~
dtv/linux/tsDTVProperties.cpp:73:45: error: 'MAX_DTV_STATS' was not declared in this scope
   73 |     _prop_buffer[_prop_head.num].u.st.len = MAX_DTV_STATS;
      |                                             ^~~~~~~~~~~~~
dtv/linux/tsDTVProperties.cpp: At global scope:
dtv/linux/tsDTVProperties.cpp:111:60: error: '::fecap_scale_params' has not been declared
  111 | bool ts::DTVProperties::getStatByCommand(int64_t& value, ::fecap_scale_params& scale, uint32_t cmd, size_t layer) const
      |                                                            ^~~~~~~~~~~~~~~~~~
dtv/linux/tsDTVProperties.cpp: In member function 'bool ts::DTVProperties::getStatByCommand(int64_t&, int&, uint32_t, size_t) const':
dtv/linux/tsDTVProperties.cpp:114:15: error: '::FE_SCALE_NOT_AVAILABLE' has not been declared
  114 |     scale = ::FE_SCALE_NOT_AVAILABLE;
      |               ^~~~~~~~~~~~~~~~~~~~~~
dtv/linux/tsDTVProperties.cpp:117:21: error: 'dtv_fe_stats' in namespace '::' does not name a type
  117 |             const ::dtv_fe_stats& stats(_prop_buffer[i].u.st);
      |                     ^~~~~~~~~~~~
dtv/linux/tsDTVProperties.cpp:118:25: error: 'stats' was not declared in this scope; did you mean 'stat'?
  118 |             if (layer < stats.len) {
      |                         ^~~~~
      |                         stat
dtv/linux/tsDTVProperties.cpp:120:27: error: '::fecap_scale_params' has not been declared
  120 |                 scale = ::fecap_scale_params(stats.stat[layer].scale);
      |                           ^~~~~~~~~~~~~~~~~~
dtv/linux/tsDTVProperties.cpp: In member function 'void ts::DTVProperties::reportStat(ts::Report&, int) const':
dtv/linux/tsDTVProperties.cpp:156:45: error: 'const union dtv_property::<unnamed>' has no member named 'st'
  156 |             for (size_t i2 = 0; i2 < prop.u.st.len && i2 < MAX_DTV_STATS; ++i2) {
      |                                             ^~
dtv/linux/tsDTVProperties.cpp:156:60: error: 'MAX_DTV_STATS' was not declared in this scope
  156 |             for (size_t i2 = 0; i2 < prop.u.st.len && i2 < MAX_DTV_STATS; ++i2) {
      |                                                            ^~~~~~~~~~~~~
dtv/linux/tsDTVProperties.cpp:160:63: error: 'const union dtv_property::<unnamed>' has no member named 'st'
  160 |                 str.format(u"{scale: %d, value: %d}", {prop.u.st.stat[i2].scale, prop.u.st.stat[i2].svalue});
      |                                                               ^~
dtv/linux/tsDTVProperties.cpp:160:89: error: 'const union dtv_property::<unnamed>' has no member named 'st'
  160 |       str.format(u"{scale: %d, value: %d}", {prop.u.st.stat[i2].scale, prop.u.st.stat[i2].svalue});
      |                                                                               ^~

dtv/linux/tsDTVProperties.cpp:160:27: error: no matching function for call to 'ts::UString::format(const char16_t [23], <brace-enclosed initializer list>)'
  160 |                 str.format(u"{scale: %d, value: %d}", {prop.u.st.stat[i2].scale, prop.u.st.stat[i2].svalue});
      |                 ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/jovyan/work/tsduck/src/libtsduck/base/report/tsReport.h:36,
                 from dtv/linux/tsDTVProperties.h:36,
                 from dtv/linux/tsDTVProperties.cpp:30:
/home/jovyan/work/tsduck/src/libtsduck/base/types/tsUString.h:1726:14: note: candidate: 'void ts::UString::format(const UChar*, const std::initializer_list<ts::ArgMixIn>&)'
 1726 |         void format(const UChar* fmt, const std::initializer_list<ArgMixIn>& args);
      |              ^~~~~~
/home/jovyan/work/tsduck/src/libtsduck/base/types/tsUString.h:1726:78: note:   no known conversion for argument 2 from '<brace-enclosed initializer list>' to 'const std::initializer_list<ts::ArgMixIn>&'
 1726 |         void format(const UChar* fmt, const std::initializer_list<ArgMixIn>& args);
      |                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
/home/jovyan/work/tsduck/src/libtsduck/base/types/tsUString.h:1735:14: note: candidate: 'void ts::UString::format(const ts::UString&, const std::initializer_list<ts::ArgMixIn>&)'
 1735 |         void format(const UString& fmt, const std::initializer_list<ArgMixIn>& args)
      |              ^~~~~~
/home/jovyan/work/tsduck/src/libtsduck/base/types/tsUString.h:1735:80: note:   no known conversion for argument 2 from '<brace-enclosed initializer list>' to 'const std::initializer_list<ts::ArgMixIn>&'
 1735 |         void format(const UString& fmt, const std::initializer_list<ArgMixIn>& args)
      |                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
dtv/linux/tsDTVProperties.cpp:162:132: error: 'const union dtv_property::<unnamed>' has no member named 'st'
  162 | , count = %d, stat = %s", {i1, prop.cmd, name == nullptr ? "?" : name, prop.u.st.len, str});
      |                                                                               ^~

dtv/linux/tsDTVProperties.cpp:162:23: error: no matching function for call to 'ts::Report::log(int&, const char16_t [42], <brace-enclosed initializer list>)'
  162 |             report.log(severity, u"[%d] cmd = %d (%s), count = %d, stat = %s", {i1, prop.cmd, name == nullptr ? "?" : name, prop.u.st.len, str});
      |             ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from dtv/linux/tsDTVProperties.h:36,
                 from dtv/linux/tsDTVProperties.cpp:30:
/home/jovyan/work/tsduck/src/libtsduck/base/report/tsReport.h:134:22: note: candidate: 'virtual void ts::Report::log(int, const ts::UString&)'
  134 |         virtual void log(int severity, const UString& msg);
      |                      ^~~
/home/jovyan/work/tsduck/src/libtsduck/base/report/tsReport.h:134:22: note:   candidate expects 2 arguments, 3 provided
/home/jovyan/work/tsduck/src/libtsduck/base/report/tsReport.h:143:22: note: candidate: 'virtual void ts::Report::log(int, const UChar*, const std::initializer_list<ts::ArgMixIn>&)'
  143 |         virtual void log(int severity, const UChar* fmt, const std::initializer_list<ArgMixIn>& args);
      |                      ^~~
/home/jovyan/work/tsduck/src/libtsduck/base/report/tsReport.h:143:97: note:   no known conversion for argument 3 from '<brace-enclosed initializer list>' to 'const std::initializer_list<ts::ArgMixIn>&'
  143 | al void log(int severity, const UChar* fmt, const std::initializer_list<ArgMixIn>& args);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~

/home/jovyan/work/tsduck/src/libtsduck/base/report/tsReport.h:152:22: note: candidate: 'virtual void ts::Report::log(int, const ts::UString&, const std::initializer_list<ts::ArgMixIn>&)'
  152 |         virtual void log(int severity, const UString& fmt, const std::initializer_list<ArgMixIn>& args);
      |                      ^~~
/home/jovyan/work/tsduck/src/libtsduck/base/report/tsReport.h:152:99: note:   no known conversion for argument 3 from '<brace-enclosed initializer list>' to 'const std::initializer_list<ts::ArgMixIn>&'
  152 |  void log(int severity, const UString& fmt, const std::initializer_list<ArgMixIn>& args);
      |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~

make[2]: *** [../../Makefile.inc:506: /home/jovyan/work/tsduck/bin/release-x86_64/objs-libtsduck/tsDTVProperties.o] Error 1
make[1]: *** [Makefile:37: default] Error 2
make: *** [Makefile:60: default] Error 2

My env.yml file looks like below.
name: compile
channels:
    - conda-forge
dependencies:
    - dos2unix
    - curl
    - zip
    - doxygen
    - graphviz
    - libedit
    - libcurl
    - rpm-tools
    - python
    - openjdk
    - gxx
    - gcc
    - make
    - perl
    - binutils

Hi @kkhatr2
I do not know the conda environment. However, it is absolutely possible (and even recommended) to build TSDuck without root privilege. The installation can be performed anywhere using make install SYSPREFIX=/any/where. This can be an existing or empty system tree. Just add the bin subdirectory in your PATH. See more details here.
As an example, TSDuck is already part of the LinuxBrew environment, a user-only package management for Linux, maybe something similar to conda.
The script install_prerequisites.sh is just a fast convenience to setup the build prerequisites (for instance in a CI/CD pipeline), nothing more. Just read it to check the required packages but you have already realized that.
All compilation errors you get are due to the lack of system header file /usr/include/linux/dvb/frontend.h. It is included here in TSDuck source code. You should probably have had a compilation here.
In RHEL, this header file comes with the package kernel-headers. I realize that this dependency is missing from install_prerequisites.sh. I will add it (as well as the equivalent for all other distros). If you install the corresponding conda package, it should be fine.

Dektec support should not fail. The Dektec DTAPI is automatically downloaded by the makefile (requires an Internet connection) and has no other dependency.
About libedit and libcurl, I do not know. This must be a conda specific issue. I have no idea how this is organized.
As I already explained, TSDuck works in the LinuxBrew environment, a local user-only installation of all Linux tools. So, having libedit and libcurl in such an environment is not a problem. You should investigate on the conda side, I cannot help.

Hello @lelegard
I could get tsduck installed with LinuxBrew in my local environment as well.
I do appreciate your guidance in identifying the missing dependency of kernel-headers to build from sources.
Now that I can successfully compile. I can work on peeling back the layers to build tsduck with all features using conda environment.


Rescuing from a component syntax error inside an ErrorBoundary.

Hello,
I was very pleased to come across your library; I dropped it into my application and everything functioned perfectly, as expected.
It's been about a month and I have a need to add an additional feature to my application:
rendering user-submitted components which may contain syntax errors.
To test this, I have a small component with a syntax error:
import React from "react"
import { observer } from "mobx-react"

export default observer(({ model }) => {
  return (

      {model.label

  )
})

Note the lack of a closing bracket on {model.label.
My goal is for my application to realize there is a syntax error inside  the component,
which is loaded with loadable, and display an <ErrorBoundary> fallback UI.
Here is my ErrorBoundary class component:
import React from "react"

class ErrorBoundary extends React.Component {
  state = {
    loadError: false,
  }

  static getDerivedStateFromError() {
    return { loadError: true }
  }

  componentDidCatch(error, info) {
    console.log("Load error!", error)
  }

  render() {
    if(this.state.loadError)
      return
Error

    return this.props.children
  }
}

export default ErrorBoundary

Luckily, this ErrorBoundary does detect the error inside ComponentDidCatch();
in the console I see:
Load error! Error: Module build failed (from ./node_modules/babel-loader/lib/index.js):
SyntaxError: /Users/grace/place/assemble/pose/src/models/goal/displays/primary.js: Unterminated regular expression. (8:6)

Sadly, the error does not stop there - if it did I would be able to render an error message on screen and call it a day.
Instead, the error bubbles up to the top of the application, and I see the normal webpack-dev-server error screen:

Please, anyone - help me rescue my error so my application can become immune to silly typos users may make in loadable components. I'm much obliged for your help. Thanks!

Can it be due to some other tool, like the error overlay?

Good idea - there is some error handling happening from webpackHotDevClient.js:

Your comment led me here - https://stackoverflow.com/a/38922621,
which recommends using a window.onerror function to handle the error;
I can place a debugger in the onerror function and intercept the error before the overlay renders.
Sadly, I still have no way of dismissing the error.
I may end up trying to run a parser over the user's input before I save it to the file on disk,
so that I never end up saving code that contains syntax errors.
This seems like a clean approach.
The only other thing I can think to do would be to disable the error overlay, but I'm not sure that's possible while retaining webpack's hot reloading feature. This path seems like it is mucking around in the weeds too much, so I'll likely avoid it.

According to this loadable cannot help you, as a completely parallel functionality is triggering the error.


Metrics instrumentation for data products

Generates and pushes METRIC event to kafka at the end of each job execution.

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

Issues
======
- Added 2

See the complete overview on Codacy

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

Issues
======
+ Solved 1
- Added 4

See the complete overview on Codacy

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

Issues
======
+ Solved 1
- Added 4

See the complete overview on Codacy


feature request: add retry and timeout mecanism for api calls

Sometimes the chat completion api might be slow, so a retry and timeout mechanism might come in handy.

I think timeout mechanism is sufficient, retry is not needed.

You can configure the http.transport

There are already multiple ways to achieve timeout/retry:

context.WithTimeout https://golang.cafe/blog/golang-context-with-timeout-example.html
Set timeout HTTPClient in ClientConfig like this: https://stackoverflow.com/questions/16895294/how-to-set-timeout-for-http-get-requests-in-golang
For retries you can use https://github.com/avast/retry-go


User keyboard interaction

Hello!
I want to interact with user and work with his keyboard answers.
My code:
$data = [];
$data['chat_id'] = $chat_id;
$data['text'] = 'Choose date:';

//2
$keyboard[] = ['Yesterday'];
$keyboard[] = ['Today'];
$keyboard[] = ['Tomorrow'];

$data['reply_markup'] = new ReplyKeyboardMarkup(
            [
                'keyboard' => $keyboard,
                'resize_keyboard' => true,
                'one_time_keyboard' => true,
                'selective' => false
            ]
);

return Request::sendMessage($data);

After choosing the button, I see GenericmessageCommand.php output, but I want to get what button user pressed and create conditions on it.
How?

You can use Conversation for this, check surveycommand for examples.

@jacklul
Just tested survey, but it not works without DB. I set protected $need_mysql = false; and saw genericMessage again after the 1st question :disappointed:

Compare the text directly?
if (strpos($user_input, 'Today')) {
//something
}

It will be extremely unreliable to do something like this without database, unless you write something like conversation based on text files.

Compare the text directly?

You mean in GenericMessage.php?
Sorry, I don't clearly understand how conversation works.
I can't use this without DB?

If command XXX initiates Conversation any text sent to bot (Genericmessage) is sent to XXX command.
To make bot know which command to use it needs to store it somewhere.
It is possible to rewrite Conversation.php to use text files instead of DB.

If command XXX initiates Conversation any text sent to bot (Genericmessage) is sent to XXX command.

Yep, that's what I looking for, but see my default genericmessage every time after selecting keyboard answer.

To make bot know which command to use it needs to store it somewhere.

Nope, with webhook all my commands works without store!
Only conversation not works and I can't understand why.

Nope, with webhook all my commands works without store!
Only conversation not works and I can't understand why.

I would say that conversation needs to maintain the state (at least, in which point of the conversation is the user right now, so the bot can accordingly offer the next question of the dialog in next iteration). If you don't maintain the state somewhere the bot will keep presenting the user the same question over and over.

@juananpe Thx for the explanation! :+1:

In case 0 I select username from DB, but in case 1 this username is empty. How to save values between cases and not in DB?
Also I have this line now:
if (empty($text) || !($text == 'Yesterday' || $text == 'Today' || $text == 'Tomorrow')) {

But what if I has 10 buttons? Do I need to add all 10 conditions to if statement?

You could select the username before you enter the switch statement, since you need it in different states anyway. Or you just fetch it in case 1 as well, since it would be fetched once anyway.
Regarding the buttons, you can work with an array:
$buttons = ['Yesterday', 'Today', 'Tomorrow', 'all others...'];
if (empty($text) || !in_array($text, $buttons)) {

You can just define the array once an reuse it wherever you need the same buttons.

@Sogl All working now?
If you still have a question about this, just ask 😃

@noplanman Yep, all is working in my production machine.
I'll put some lines here if I have questions.


Add Microsoft.WinGet.Client Help in the build

Description of the new feature / enhancement
I'd like to actually include the Microsoft.WinGet.Client help in the module.
Related to:

https://github.com/microsoft/winget-cli/issues/3822

Resolved by: #4731


Diorama support

Adds a new fully shaded diorama system, for chat, characters, npc, and playing out scenes.
Currently enabled with secret shortcut for testing.

Vvvv


[fix] Rewritten the algorithm used to get the reference position

This work is needed to:

fix #188
fix #171
(bonus) reduce size
(bonus) reduce complexity

Some/lot of tests are failing, any help to fix them is super welcome (really!). Just fork this branch, apply your changes, and send a PR against this branch.
Thank you.

There are only 3 tests failing in the core suite and few failing in Tooltip.js.
The ones in core are about Shadow DOM and they are related to the new way I use to find the common offset parent, I think it should be quite easy to workaround tho.
I had no time to look at the Tooltip.js tests, but I don't expect them to be broken in bad ways...

Fixed the tooltips tests, now we have only the 3 shadow DOM tests failing (wuut!)

So, 1 test is failing on Firefox and Chrome on CI (no idea why, locally they work...) and some are failing on IE and Edge. Will look at them tomorrow. Feel free to pick up the branch and fix them if you feel in mood. (I'll stop asking it at some point...)

The failing test on Chrome and Firefox has been fixed (even if not really cleanly actually...), now I'm working on the latest x'ed test.

And #188 is fixed as well.

Now, it's your turn Internet Explorer.

So, IE11 and Edge now pass. But IE10 is hard to die.
I can't work on it anymore for today, again, if someone (maybe someone that uses this library in its multi billionaire company, Microsoft, anyone?) could spend some time and fix it for me. 🙂

Seems like this PR introduced a regression, note that it doesn't take margins of body into account:
https://codepen.io/FezVrasta/pen/qmEObw?editors=1100

I thought I was screwed because I used the "party hard" gif in a previous message, but luckily now that all our test suite pass I found this one:


Render Farms

Thankyou very much for your hardwork I appreciate it, but There's a Issue with importing addons for renderfarms like Polargrid, RenderBeamer (Garage Farm) etc.
Please try to fix this ASAP It's very Important for me,
Thankyou again for making it possible to run Blender on my old PC.

Please provide more information about the problem, what is the error you are getting ?

Check this please

It seems to fail when loading the socket library, i can't reproduce this from the python console. Can you upload the renderbeamer addon zip ? I wasn't able to find a download link for it.
The other one you mentioned, Polargrid (i assume this is it: https://polargrid.space), installs without any issues for me.
Have you installed all Windows updates (up to January 2020) ? In addition to Windows updates, try updating the Visual C++ runtime (download link: https://aka.ms/vs/17/release/vc_redist.x64.exe).

https://garagefarm.net/blender-render-farm
it's the Link for RenderBeamer (Gives 50$ Render Credits Which Lasts Long enoungh for me)
I updated my Windows and also Installed Visual C++ But Still it shows the same Error.
It will be Ok if there's no Solution for it as I already tried some DifferentMethods Which Works, But having the render farm directly in Blender is Best. So I'm hoping for a Good Permanent Solution
Thankyou for your Quick replies

It worked, Thankyou very very much for your Help.


build error for Xcode6.1.1

I got a following issue..
xcodebuild  MyApp.xcworkspace
2015-01-07 11:52:13.902 xcodebuild[3989:42121] [MT] DVTAssertions: Warning in /SourceCache/IDEFrameworks/IDEFrameworks-6611/IDEFoundation/SourceControl/Model/IDESourceControlManager.m:423
Details:  Error Domain=com.apple.dt.IDESourceControlErrorDomain Code=-1 "Missing extension: public.vcs.subversion" UserInfo=0x7fd084558ad0 {NSLocalizedDescription=Missing extension: public.vcs.subversion}
Object:   <IDESourceControlManager: 0x7fd0840d7e40>
Method:   -loadRepositories
Thread:   <NSThread: 0x7fd082c35910>{number = 1, name = main}
Please file a bug at http://bugreport.apple.com with this warning message and any useful information you can provide.
** BUILD FAILED **
The following build commands failed:
Check dependencies
(1 failure)
** ARCHIVE FAILED **

sorry.. duplicated #176


[2.1] Fix CVEs & CI

Signed-off-by: Tyler Ohlsen<EMAIL_ADDRESS>Description
Fix CVEs & CI for 2.1 branch.
Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #351 (0007e0b) into 2.1 (bff858a) will increase coverage by 0.09%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##              2.1     #351      +/-   ##
==========================================
+ Coverage   52.16%   52.25%   +0.09%
==========================================
  Files         150      147       -3
  Lines        4971     4956      -15
  Branches      971      958      -13
==========================================
- Hits         2593     2590       -3
+ Misses       2123     2111      -12
  Partials      255      255

Impacted Files
Coverage Δ

...aly-detection-dashboards-plugin/utils/constants.ts

...nomaly-detection-dashboards-plugin/public/index.ts

...omaly-detection-dashboards-plugin/public/plugin.ts

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Documentation bug

FollowupFlag not shown in searchable properties in email

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

ID: e83b77e5-e3ec-6a5f-1f09-e232e2dda483
Version Independent ID: 0b263c72-95a2-d111-20a7-68857f288369
Content: Keyword queries and search conditions for Content Search
Content Source: microsoft-365/compliance/keyword-queries-and-search-conditions.md
Service: o365-seccomp
GitHub Login: @markjjo
Microsoft Alias: markjjo

@csbuja - We appreciate your efforts to clarify the docs.
Could you please assist us by providing more details on how this content could be edited to incorporate your feedback?
If you could suggest what the appropriate text and where it should be placed, I could assign one of our team members to create a Pull Request to get it added or you may also create a Pull Request to add in your suggestion and just link this issue so I can have the doc owner review and merge the content.
Thank you.

@csbuja - We appreciate/value any feedback that improves the content in the Microsoft docs but we haven't had any response from you so we are going to close this issue.
Please feel free to open a new issue if you find any documentation error or if there is a specific area of the docs that we can improve on and we will be glad to help fix it. Thank you.


Merge view for identical text shows collapsed line that can't expand

Steps to reproduce:

Call CodeMirror.MergeView with these options:

{
  collapseIdentical: true,
  connect: "align",
  highlightDifferences: true,
  lineNumbers: true,
  mode: "text/html",
  orig: "ab\nab\nab\nab\n",
  origLeft: null,
  value: "ab\nab\nab\nab\n",
}

inspect HTML

issue: there is a element with CodeMirror-merge-collapsed-line, but it can't be expanded. There is no child CodeMirror-widget

Attached patch should help. What was happening was that these markers are defined to automatically get cleared when the selection enters them, but since this one spans the whole document, it was immediately cleared because it necessarily covers the selection. That caused two pieces of styling (the collapsing and the class on the top line) to get out of sync.

that was quick! thanks


Longview Welcome/Setup

install Longview agent prompt
include client API key intro
include an event to popup API key

same functionality s current manager w/o the automated background polling.


UIMenuController has shown by wrong point, when select all.

Any update on this?

@kedarchiselcut
No, I have no idea. 😱

It happens when text lines is greater than maximum number of lines.

https://github.com/muukii/NextGrowingTextView/pull/91

https://github.com/muukii/NextGrowingTextView/pull/91


[MINOR] Fix checkstyle

Tips

Thank you very much for contributing to Apache Hudi.
Please review https://hudi.apache.org/contributing.html before opening a pull request.

What is the purpose of the pull request
Fix checkstyle error, cause by merging and pushing by users concurrently.
Brief change log
(for example:)

Modify AnnotationLocation checkstyle rule in checkstyle.xml

Verify this pull request
(Please pick either of the following options)
This pull request is a trivial rework / code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end.
Added HoodieClientWriteTest to verify the change.
Manually verified the change by running a job locally.

Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

@yanghua Please merge, cause by merging old commits shortly after force-pushing by users with new commit.


Index{Operator,And,Or}WriteNode

Fixes #1636
Right now, our Call{Operator,And,Or}WriteNode nodes represent two different concepts:
foo.bar += 1
foo[bar] += 1

These two statements are different in what they can support. The former can never have arguments (or an opening_loc or closing_loc). The former can also never have a block. Also, the former is a variable method name.
The latter is always going to be []/[]=, it can have any number of arguments including blocks (foo[&bar] ||= 1), and will always have an opening_loc and closing_loc.
Furthermore, these statements end up having to take different paths through the various compilers because with the latter you have to consider the arguments and the block, whereas the former can perform some additional peephole optimizations since there are fewer values on the stack.
For these reasons, I'm introducing Index{Operator,And,Or}WriteNode. These nodes never have a read_name or write_name on them because they are always []/[]=. They also support blocks, which the previous write nodes didn't. As a benefit of introducing these nodes, I've removed the opening_loc, closing_loc, and arguments from the older write nodes because they will always be null.
For the serialized format, both of these nodes end up being smaller, and for in-memory we're storing fewer things in general, so we have savings all around.
I don't love that we are introducing another node that is a call node since we generally want consumers to only have to handle a single call, but these nodes are so specific that they would have to be handled separately anyway since in fact call 2 methods.

Furthermore, these statements end up having to take different paths through the various compilers because with the latter you have to consider the arguments and the block, whereas the former can perform some additional peephole optimizations since there are fewer values on the stack.

I'm not sure they do actually, because the only difference is only the value as argument or the ArgumentsNode + the value.
Except that part I think the rest is the same regarding compilation of that.
Of course details differ per implementation like those peephole optimizations you mention.
To be fair we haven't implemented CallOperatorWriteNode in TruffleRuby yet, so the above is based on reasoning rather than code.
I think either way is fine, the logic might be a bit simpler with the new node at a cost of a bit of duplication, which can probably be removed with helper methods.
The gains in footprint and serialization speed are probably worth it.
I quickly checked serialized size, before and after
The difference seems smaller than 0.1% for total serialized, so no big change there but saves a few bytes.


configmap/aws-auth doesn't update when we use workers_role_name

I have issues
When we setting workers_role_name parameter in existing cluster, configmap/aws-auth isn't modify
I'm submitting a...

[x] bug report

[ ] feature request
[ ] support request - read the FAQ first!
[ ] kudos, thank you, warm fuzzy

What is the current behavior?
Module creates new IAM role, set it for a worker, but didn't change configmap/aws-auth
Nodes freeze in not ready state:
NAME                           STATUS     ROLES    AGE   VERSION
ip-xx-xx-xxx-xx.ec2.internal   NotReady   <none>   63d   v1.14.6-eks-5047ed
ip-xxx-xx-xx-xx.ec2.internal   NotReady   <none>   63d   v1.14.6-eks-5047ed

And on any pod we have following error:
Error from server (InternalError): Internal error occurred: Authorization error (user=kube-apiserver-kubelet-client, verb=get, resource=nodes, subresource=proxy)

When we check configmap/aws-auth we can see past role name
kubectl -n kube-system get configmap aws-auth -o yaml
Part of configmap:
apiVersion: v1
data:
  mapRoles: |
    - rolearn: arn:aws:iam::<account-id>:role/<past_role_arn>

To solve the problem just paste new role arn
If this is a bug, how to reproduce? Please include a code sample if relevant.

Set workers_role_name = "any-workers-iam-role" parameter on existing cluster
Terraform apply

What's the expected behavior?
Regenerate configmap/aws-auth when we change IAM role for workers
Are you able to fix this problem and submit a PR? Link here if you have already.
No :(
Environment details

Affected module version: v6.0.1
OS: MacOS
Terraform version: v0.12.16

Any other relevant info

Can you retry with current master?

Need to add into your template:
data "aws_eks_cluster" "cluster" {
  name = module.psp-cluster.cluster_id
}

data "aws_eks_cluster_auth" "cluster" {
  name = module.psp-cluster.cluster_id
}

provider "kubernetes" {
  host                   = data.aws_eks_cluster.cluster.endpoint
  cluster_ca_certificate = base64decode(data.aws_eks_cluster.cluster.certificate_authority.0.data)
  token                  = data.aws_eks_cluster_auth.cluster.token
  load_config_file       = false
  version                = "~> 1.9"
}
`

@max-rocket-internet @legkovalex In master right now have some trouble with stability... And this problem still existing
**I mean this one
https://github.com/terraform-aws-modules/terraform-aws-eks/pull/355

Same here.

managed node groups are also broken on master because it doesn't generate worker_role_arns correctly anymore

This exists in 9.0.0, too. Really nasty bug when you can have serious outage.

PRs welcome 😄

I've also faced the same issue in 9.0.0

@nikitacr7 can you please provide more details. Your existing cluster was deployed with this module ?
Does your configmap/aws-auth already imported with https://www.terraform.io/docs/providers/kubernetes/r/config_map.html#import ?
Here are some important notes about the configmap/aws-auth https://github.com/terraform-aws-modules/terraform-aws-eks/blob/v9.0.0/CHANGELOG.md#important-notes-1

It looks like under v9.0.0 you need to double apply for the changes to be fully applied to the aws-auth ConfigMap. First apply updates the roles, second updates aws-auth.
Generation of aws-auth was re-worked in v11.0.0. Some basic testing suggests it has unintentionally solved this issue.


Field resolving with argument does not work?

Version of graphl-java-tools: 5.2.3
In my schema I have a Type like this:
type Person {
  name: String!
  friends(friendName: String!): [Friend!]!
  # omit other fields...
}

For the friends field on Person I wrote an own GraphQLResolver:
public class PersonFieldResolver implements GraphQLResolver<Person> {
  public List<Friend> friends(Person p, String friendName) {
    // this is never inkoved due to Exception thrown at runtime (see below)
  }
}

At runtime I receive the following Exception when adding friends to my query:
2018-08-26 11:09:09.942  WARN 67826 --- [nio-9000-exec-2] g.e.SimpleDataFetcherExceptionHandler    : Exception while fetching data (/person/friends) : Cannot construct instance of `nh.graphql.Person` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('klaus')
 at [Source: UNKNOWN; line: -1, column: -1]

java.lang.IllegalArgumentException: Cannot construct instance of `nh.graphql.Person` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('klaus')
 at [Source: UNKNOWN; line: -1, column: -1]
	at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:3750) ~[jackson-databind-2.9.6.jar:2.9.6]
	at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:3678) ~[jackson-databind-2.9.6.jar:2.9.6]
	at com.coxautodev.graphql.tools.MethodFieldResolver$createDataFetcher$$inlined$forEachIndexed$lambda$1.invoke(MethodFieldResolver.kt:82) ~[graphql-java-tools-5.2.0.jar:na]
	at com.coxautodev.graphql.tools.MethodFieldResolver$createDataFetcher$$inlined$forEachIndexed$lambda$1.invoke(MethodFieldResolver.kt:20) ~[graphql-java-tools-5.2.0.jar:na]
	at com.coxautodev.graphql.tools.MethodFieldResolverDataFetcher.get(MethodFieldResolver.kt:146) ~[graphql-java-tools-5.2.0.jar:na]
	at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:258) [graphql-java-9.2.jar:na]
	at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:199) [graphql-java-9.2.jar:na]
	at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:70) ~[graphql-java-9.2.jar:na]
	at graphql.execution.ExecutionStrategy.completeValueForObject(ExecutionStrategy.java:631) [graphql-java-9.2.jar:na]
	at graphql.execution.ExecutionStrategy.completeValue(ExecutionStrategy.java:413) [graphql-java-9.2.jar:na]
	at graphql.execution.ExecutionStrategy.completeField(ExecutionStrategy.java:363) [graphql-java-9.2.jar:na]
	at graphql.execution.ExecutionStrategy.lambda$resolveFieldWithInfo$0(ExecutionStrategy.java:201) [graphql-java-9.2.jar:na]
	at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:602) ~[na:1.8.0_73]
	at java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:614) ~[na:1.8.0_73]
	at java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:1983) ~[na:1.8.0_73]
	at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:200) [graphql-java-9.2.jar:na]
	at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:70) ~[graphql-java-9.2.jar:na]
	at graphql.execution.Execution.executeOperation(Execution.java:158) ~[graphql-java-9.2.jar:na]
	at graphql.execution.Execution.execute(Execution.java:100) ~[graphql-java-9.2.jar:na]
	at graphql.GraphQL.execute(GraphQL.java:554) ~[graphql-java-9.2.jar:na]
	at graphql.GraphQL.parseValidateAndExecute(GraphQL.java:496) ~[graphql-java-9.2.jar:na]
	at graphql.GraphQL.executeAsync(GraphQL.java:470) ~[graphql-java-9.2.jar:na]
	at graphql.GraphQL.execute(GraphQL.java:401) ~[graphql-java-9.2.jar:na]

For me it seems, that MethodFieldResolver uses the wrong target type when deserializing the argument (it uses Person instead of String).
Defining a resolver function with an argument on root level works fine and also defining a field resolver without arguments on Person works as expected:
public class PersonFieldResolver implements GraphQLResolver<Person> {
  public List<Friend> allFriends(Person p) {
    // this is  inkoved as expected with a correctly initialized Person object

  return ...;
  }
}

Update: it might be related to having more than one GraphQLResolver for the same data class:

If I only have one GraphQLResolver for my Dataclass (Person) it just works fine.
If I have multiple GraphQLResolvers added to my schema, the problem occures. After some debugging I found that in MethodFieldResolver.getIndexOffset() false is returned when having more than one resolver (as the field resolverInfo in base class FieldResolver then at runtime is MultiResolverInfo and not NormalResolverInfo)

Is this a bug? Or am I doing something wrong? Should multiple resolvers work? (Field resolvers without arguments seem to have no problems)
Thanks for your help!

I created a unit test in the project to reproduce this issue and I indeed see the same error. I haven't used multiple resolvers for the same data class myself before, and not sure if it is intended to work with multiple resolvers this way actually. They are supported for other (root) types though, so would expect them to be supported in this case as well. Will mark it as a bug.

Thanks for your investigation and the info about the getIndexOffset() value. Adding a check for MultiResolverInfo fixed the issue.


Is there a place to mention projects built on google/go-github?

Hey 👋 ,
as the title says I would like to ask if there is a place to mention projects that are built on google/go-github. For example an ADOPTERS.md like at prometheus-operator/prometheus-operator.
In the README some projects are mentioned like

github.com/shurcooL/githubv4
github.com/bradleyfalzon/ghinstallation

Background is that I wrote a Go module (cbrgm/githubevents) for Github Webhook Events that relies heavily on go-github to make consuming events easier similar to octokit/webhooks.js.
Please don't get me wrong, I don't want to abuse go-github for self-promotion, I just thought it might be helpful for some people if something like this is mentioned somewhere.
If that's not the case, feel free to close the issue. I am very thankful for answers! 😃

Cool, @cbrgm !  Happy to hear that it is useful to you!
We don't have anything like that at the moment, but I'll defer this question to @willnorris to make the final call.
(I think it might be cool to have, for the record, but there may be other considerations that need to be taken into account that I'm not aware of.)

I'm fine continuing to list projects that, like githubv4 and ghinstallation, are specifically related to go-github and are likely to be useful for go-github users.  At first glance, githubevents seems to fit that description, so I'd have no problem adding it to the README somewhere.
I'm not sure that I'd want to try and maintain an adopters.md file, since at his point that list would be quite large.  The unversioned package alone lists 3800+ importers.  We could list some of the larger adopters, but I'm not sure there'd be a lot of value, since the library is pretty well established already.

Thank you @gmlewis and @willnorris  for your feedback! 👍 I understand the concerns, maybe an Adopters.md is not the best approach for something like this because there would probably be too many.
Is there already a place in the README where the project would fit in? I would be very happy to provide a PR. I would also have no problem donating cbrgm/githubevents, as I really appreciate go-github and the work that goes into it.

Feel free to create a new section in the README.md file in your PR where you think it is appropriate and we can discuss the details there. 😁

Will do so, thanks!


--inherit-path not working

It seems that the --inherit-path option isn't working:
$ pex -o test_without_inherit_path.zip --python=python2.7
$ pex -o test_with_inherit_path.zip --python=python2.7 --inherit-path

$ PEX_VERBOSE=1 ./test_without_inherit_path.zip
pex: Found site-library: /usr/local/lib/python2.7/dist-packages
pex: Found site-library: /usr/lib/python2.7/dist-packages
pex: Tainted path element: /usr/local/lib/python2.7/dist-packages
pex: Tainted path element: /usr/lib/python2.7/dist-packages
pex: Tainted path element: /usr/lib/python2.7/dist-packages/PILcompat
pex: Tainted path element: /usr/lib/python2.7/dist-packages/gtk-2.0
pex: Tainted path element: /usr/lib/python2.7/dist-packages/wx-3.0-gtk2
pex: Scrubbing from site-packages: /usr/local/lib/python2.7/dist-packages
pex: Scrubbing from site-packages: /usr/lib/python2.7/dist-packages
pex: Scrubbing from site-packages: /usr/lib/python2.7/dist-packages/PILcompat
pex: Scrubbing from site-packages: /usr/lib/python2.7/dist-packages/gtk-2.0
pex: Scrubbing from site-packages: /usr/lib/python2.7/dist-packages/wx-3.0-gtk2
pex: Scrubbing from user site: /home/antoine/.local/lib/python2.7/site-packages
pex: Activating PEX virtual environment from ./test_without_inherit_path.zip: 0.6ms
pex: PYTHONPATH contains:
pex:   * /tmp/test_without_inherit_path.zip/.bootstrap
pex:     /tmp/test_without_inherit_path.zip
pex:     /usr/lib/python2.7
pex:     /usr/lib/python2.7/plat-x86_64-linux-gnu
pex:     /usr/lib/python2.7/lib-tk
pex:   * /usr/lib/python2.7/lib-old
pex:     /usr/lib/python2.7/lib-dynload
pex:     /usr/lib/pymodules/python2.7
pex:   * - paths that do not exist or will be imported via zipimport
Python 2.7.10 (default, Jul  1 2015, 10:54:53)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>

$ PEX_VERBOSE=1 ./test_with_inherit_path.zip
pex: Found site-library: /usr/local/lib/python2.7/dist-packages
pex: Found site-library: /usr/lib/python2.7/dist-packages
pex: Tainted path element: /usr/local/lib/python2.7/dist-packages
pex: Tainted path element: /usr/lib/python2.7/dist-packages
pex: Tainted path element: /usr/lib/python2.7/dist-packages/PILcompat
pex: Tainted path element: /usr/lib/python2.7/dist-packages/gtk-2.0
pex: Tainted path element: /usr/lib/python2.7/dist-packages/wx-3.0-gtk2
pex: Scrubbing from site-packages: /usr/local/lib/python2.7/dist-packages
pex: Scrubbing from site-packages: /usr/lib/python2.7/dist-packages
pex: Scrubbing from site-packages: /usr/lib/python2.7/dist-packages/PILcompat
pex: Scrubbing from site-packages: /usr/lib/python2.7/dist-packages/gtk-2.0
pex: Scrubbing from site-packages: /usr/lib/python2.7/dist-packages/wx-3.0-gtk2
pex: Scrubbing from user site: /home/antoine/.local/lib/python2.7/site-packages
pex: Activating PEX virtual environment from ./test_with_inherit_path.zip: 0.6ms
pex: PYTHONPATH contains:
pex:   * /tmp/test_with_inherit_path.zip/.bootstrap
pex:     /tmp/test_with_inherit_path.zip
pex:     /usr/lib/python2.7
pex:     /usr/lib/python2.7/plat-x86_64-linux-gnu
pex:     /usr/lib/python2.7/lib-tk
pex:   * /usr/lib/python2.7/lib-old
pex:     /usr/lib/python2.7/lib-dynload
pex:     /usr/lib/pymodules/python2.7
pex:   * - paths that do not exist or will be imported via zipimport
Python 2.7.10 (default, Jul  1 2015, 10:54:53)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>

I have maybe misunderstood this option but I can't see any difference in resulting python path.
Finally, I found two PR (#3 and #106) which seem to fix this problem, but both aren't merged yet (there is a reason for that?).
Thx

I think --inherit-path is broken conceptually too.  It should probably take an argument that is a whitelisted requirement, i.e. '--inherit-path scikit-learn --inherit-path numpy==1.9.1'.  As a global 'inherit anything from system packages' option, we lose the ability to control which version of a dep gets imported.  E.g. if the machine has thrift 0.5 and you bundle thrift 0.9 with your pex, even if we reorder sys.path, there may be path importer caching and module.path stuff laying around from evaluating .pth files in site-packages on start-up that causes 0.5 to get imported when you do 'import thrift.'

Hi,
Feel free to use anything from vext for this, it's a whitelisting system virtualenv.
Whitelists are stored in files that look like this
https://github.com/stuaxo/vext.gi/blob/master/gi.vext
It's at an 'it works' level, at the moment.  Implementation is via a finder + loader, so I will probably need to update when 3.6 becomes a thing.
S

Apologies for the long delay following up on this. Although PEX still doe not support inherit whitelists, it does support inherit properly now:
$ pex --version
pex 1.6.10
$ pex -o test_without_inherit_path.zip --python=python2.7
$ pex -o test_with_inherit_path.zip --python=python2.7 --inherit-path
$ PEX_VERBOSE=1 ./test_without_inherit_path.zip
pex: Please build pex with the subprocess32 module for more reliable requirement installation and interpreter execution.
pex: Found site-library: /usr/lib/site-python
pex: Found site-library: /usr/lib/python2.7/site-packages
pex: Found site extra: /usr/lib/python2.7/site-packages/gtk-2.0
pex: Tainted path element: /usr/lib/python2.7/site-packages
pex: Tainted path element: /usr/lib/python2.7/site-packages/gtk-2.0
pex: Scrubbing from user site: /home/jsirois/.local/lib/python2.7/site-packages
pex: Scrubbing from site-packages: /usr/lib/python2.7/site-packages
pex: Scrubbing from site-packages: /usr/lib/python2.7/site-packages/gtk-2.0
pex: Activating PEX virtual environment from ./test_without_inherit_path.zip: 0.9ms
pex: No entry point specified, dropping into interpreter
pex: Bootstrap complete, performing final sys.path modifications...
pex: PYTHONPATH contains:
pex:     /home/jsirois/dev/pantsbuild/jsirois-pex/test_without_inherit_path.zip
pex:   * /usr/lib/python27.zip
pex:     /usr/lib/python2.7
pex:     /usr/lib/python2.7/plat-linux2
pex:     /usr/lib/python2.7/lib-tk
pex:   * /usr/lib/python2.7/lib-old
pex:     /usr/lib/python2.7/lib-dynload
pex:   * /home/jsirois/dev/pantsbuild/jsirois-pex/test_without_inherit_path.zip/.bootstrap
pex:   * - paths that do not exist or will be imported via zipimport
Python 2.7.16 (default, Mar 11 2019, 18:59:25)
[GCC 8.2.1 20181127] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>
$ PEX_VERBOSE=1 ./test_with_inherit_path.zip
pex: Please build pex with the subprocess32 module for more reliable requirement installation and interpreter execution.
pex: Found site-library: /usr/lib/site-python
pex: Found site-library: /usr/lib/python2.7/site-packages
pex: Found site extra: /usr/lib/python2.7/site-packages/gtk-2.0
pex: Tainted path element: /usr/lib/python2.7/site-packages
pex: Tainted path element: /usr/lib/python2.7/site-packages/gtk-2.0
pex: Activating PEX virtual environment from ./test_with_inherit_path.zip: 2.3ms
pex: No entry point specified, dropping into interpreter
pex: Bootstrap complete, performing final sys.path modifications...
pex: PYTHONPATH contains:
pex:     /home/jsirois/dev/pantsbuild/jsirois-pex/test_with_inherit_path.zip
pex:   * /usr/lib/python27.zip
pex:     /usr/lib/python2.7
pex:     /usr/lib/python2.7/plat-linux2
pex:     /usr/lib/python2.7/lib-tk
pex:   * /usr/lib/python2.7/lib-old
pex:     /usr/lib/python2.7/lib-dynload
pex:     /usr/lib/python2.7/site-packages
pex:     /usr/lib/python2.7/site-packages/gtk-2.0
pex:   * /home/jsirois/dev/pantsbuild/jsirois-pex/test_with_inherit_path.zip/.bootstrap
pex:   * - paths that do not exist or will be imported via zipimport
Python 2.7.16 (default, Mar 11 2019, 18:59:25)
[GCC 8.2.1 20181127] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>

I'm going to close this as fixed.


rustPlatform.buildRustPackage: provide debug symbols on darwin

Currently we cannot debug rust binaries on darwin (via lldb).
The debug symbols seem to be provided by default in a number of files
in target/debug/deps/*.rcgu.o. As far as I can tell these have
hardcoded paths referring to the ephemeral build directory. However,
split-debuginfo=packed conveniently produces a .dSYM file that can
be copied to $out/bin/ and immediately provide debugging information.
Fixes https://github.com/NixOS/nixpkgs/issues/262131
Description of changes

Things done

Built on platform(s)

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

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

[x] 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

[ ] Fits CONTRIBUTING.md.

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

Lots of (meandering) context in https://github.com/NixOS/nixpkgs/issues/262131
Also relevant: https://github.com/NixOS/nixpkgs/issues/282900
Would appreciate input from @nixos/rust @NixOS/darwin-maintainers , I'm sure there are many ways to cut this cake.

Hmm, how to set RUSTFLAGS.

This may not be anything new/unexpected, but in case it helps:
$ nix-env --extra-experimental-features no-url-literals --option system aarch64-darwin -f <nixpkgs> --nix-path nixpkgs=/Users/sirio/.cache/nixpkgs-review/pr-327136/nixpkgs nixpkgs-overlays=/var/folders/x8/z7bw1b814j901l6lvgyk_0qm0000gn/T/tmp787mkru4 -qaP --xml --out-path --show-trace --no-allow-import-from-derivation --meta
error:
       … while querying the derivation named 'caligula-0.4.7'

       … while calling the 'getAttr' builtin

         at /builtin/derivation.nix:19:19: (source not available)

       … while calling the 'derivationStrict' builtin

         at /builtin/derivation.nix:9:12: (source not available)

       … while evaluating derivation 'caligula-0.4.7'
         whose name attribute is located at /Users/sirio/.cache/nixpkgs-review/pr-327136/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:334:7

       … while evaluating attribute 'RUSTFLAGS' of derivation 'caligula-0.4.7'

         at /Users/sirio/.cache/nixpkgs-review/pr-327136/nixpkgs/pkgs/build-support/rust/build-rust-package/default.nix:101:10:

          100| stdenv.mkDerivation ((removeAttrs args [ "depsExtraArgs" "cargoUpdateHook" "cargoLock" ]) // {
          101|   inherit buildAndTestSubdir cargoDeps RUSTFLAGS;
             |          ^
          102|

       error: value is a string while a list was expected
https://github.com/NixOS/nixpkgs/pull/327136 failed to build: Failed to list packages: nix-env failed with exit code 1

Sorry, going to revert to draft as this is more complicated than I'd initially hoped.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/how-to-change-rustflags-in-build-rust-package-list-string-merging-problem/49999/5

Thanks to much help from @eljamm in the above discourse thread, I finally have something that builds and seems to work on linux, with and without sysroot, as well as darwin, and provides the .dSYM file for the latter.
Sysroot on darwin gets infinite recursion with and without this patch (issue: https://github.com/NixOS/nixpkgs/issues/330036 I assume is ultimately due to https://github.com/NixOS/nixpkgs/issues/180771).
@Mic92 would you mind taking another look?

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/4414

Can be merged if someone verified it works on both darwin and linux. Don't know when I get to this.

@mic92 it does -- I made a test repo that uses this branch and builds an example package:

on x86_64-linux in debug mode
on x86_64-linux in release mode
on x86_64-linux using sysroot (it's a no_std package) in debug mode
on x86_64-linux using sysroot (it's a no_std package) in release mode
on aarch64-darwin in release mode
on aarch64-darwin in debug mode and verifies that the .dSYM files are populated

As you can see, it's passing (I just ran it specifically for this comment): https://github.com/n8henrie/nix-rust-debug-info/actions/runs/10515059576. I have also tested locally on aarch64-darwin and aarch64-linux.
We're currently unable to compile sysroot packages on darwin due to: https://github.com/NixOS/nixpkgs/issues/330036, so I'm not testing that.
I'm interested in adding some tests for this, but there is a lot I don't understand about how these tests would work (nixos tests inapplicable as it's a darwin issue), and the rust tests are currently failing as is (before this PR). Opened an issue for this as well: https://github.com/NixOS/nixpkgs/issues/336578

@n8henrie can you rebase onto staging? Check the contributing.md how to do this to not cause a mass ping of all codeowners.

@Mic92 done -- there were no merge conflicts AFAICT. Thank you for the suggestion to review the contributing doc, I... would not have figured that out on my own.
Are you able to tell on your end if I did things correctly and can convert back from draft status?

@mic92 -- should I pull staging and rebase a second time?

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/1937

@Mic92 I'm sorry to bother you again -- is there additional work I can do to move this forward?

Yeah this needs to be in staging.

@mic92 I got an email notification that you had posted:

Yeah this needs to be in staging.

but I don't see the comment now -- was it deleted? I thought I had issued this for staging -- do I need to rebase?
Thanks again, and sorry for the nagging.

Great, thanks.

PS the comment you're looking for might've been https://github.com/NixOS/nixpkgs/pull/327136#issuecomment-2307561384

No, I think it must have been deleted:

I deleted it because it was already staging anyway.

@Mic92 @eclairevoyant I'm sorry to bother again, this is the first PR I've had that needs to go through staging.
Are we currently waiting on something related to hydra / borg and staging? Or is this ready to be merged and just waiting on additional reviewers?


Fix silent auth scopes and refresh behavior

This fixes two problems with silent authentication:

it ignores the requested scopes (closes #322; thanks @mkurock)
it uses refresh tokens only to refresh expired access tokens i.e., silent authentication for a given scope succeeds only when the cache contains an access token (expired or not) for that scope

Fixing the first problem is straightforward: just pass the right argument. The second problem is more complex. It arises in the cache's Read method, which assumes the caller requires an access token matching the given parameters and returns an error when it doesn't find one. If the caller could in principle use a previously cached refresh token to authenticate, it never gets the chance because Read doesn't return that refresh token. I fixed this by having Read continue past an access token cache miss to fetch more data, such as a refresh token, before returning. This means Read now returns a zero-valued access token in some cases. This is okay because base.Client is the only caller and already validates access tokens before returning them to the application.

Thanks for the additional context. I added a test to verify granted scopes are handled correctly in caching. Clients appear to add "openid profile offline_access" scopes as you describe--at least, I see this in live traffic and the code looks right--but that doesn't have unit test coverage today (#329).


Issues running YCSB client on another machine

Hello am running data-serving benchmark..am running cassandra on one machine & YCSB on another machine.i ve done client-server setup with SSH..i could able to tranfer the files between two system...when i run YCSB,its not getting connect with server...
could anybody help me to reslove this issue...what settings i should change inside YCSB?????

Please include a copy of the error you're getting.
Please ensure the host running Cassandra is not running a firewall (or that said firewall is configured to allow connections to Cassandra from the YCSB client machine)

closing as stale. if you are still having this problem please reopen.


unknown error

Subject: unknown error
Description:
trying to upload a profile picture. It seems a whatsapp picture: WhatsApp Image 2022-03-11 at 10.33.51 PM.jpeg
Results:
upload the picture instead error
Backend version: develop-7c33e18d
Frontend version:
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
Page: https://couchers.org/profile/edit/about
User: chelder86 (18424)

not enough info or can't reproduce


Can't access Curam after helm deployment

Looking at https://www.ibm.com/support/knowledgecenter/SS8S5A_7.0.11/com.ibm.curam.wlp.doc/Deployment_WLP/cWLPTestingDeployment.html it says to get the URL for the deployed app to search for CWWKT0016I.
For me this gives:
[AUDIT   ] CWWKT0016I: Web application available (default_host): https://rel6-apps-curam-producer-88b8cc888-rml4q:8443/Curam/
This fails to return anything.
I also tried using the IP given from 'minikube ip', i.e. https://<IP_ADDRESS>:8443/Curam/, but this gives a 403:
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {
},
"status": "Failure",
"message": "forbidden: User "system:anonymous" cannot get path "/Curam/"",
"reason": "Forbidden",
"details": {
},
"code": 403
}
I tried  kubectl describe service rel6-web and  kubectl describe service rel6-apps-curam to see if there was an Ingress IP as suggested by some googling, but that didn't yield anything
attached output of kubectl logs for web, producer and consumer.
I can see in the consumer some issue with curamtimerdb  (possibly missed a WLS config step) but wouldn't have thought this would cause the basic access issue? Any thoughts on what to do next much appreciated.
(also dockered onto the actual consumer/producer to see if anything in logs but the kubectl version seemed to have better info, unless i was looking in wrong place on WLS)
thanks
consumer.log
producer.log
web.log

@heapey I think this is an issue/feature of the ingress controller, I believe you've set the ingress controller to allow a hostname for SPM like minikube.local the ingress controller uses the Host header sent by the client to identify where the calls going.
So your IP address is an invalid host and the ingress controller rejects the request.
if you run this:
sudo -c "echo $(minikube ip) minikube.local >> /etc/hosts"

That should add an entry to your hosts file allowing you to access the cluster from your laptop via minikube.local  and the ingress controller should access the request.

The steps in KC documentation are only applicable to a development environment on a VM.
The URL for accessing the application in Kubernetes would have been printed at the end of the helm install output.
Was an Ingress resource created? Check using kubectl get ingress.
As @meathead23 mentioned, for a Minikube environment based on the samples in the runbook, this would be minikube.local, so the URL would be https://minikube.local/Curam
Regarding the database error, we would need some more information:

Are the database name (global.database.dbName) and hostname (global.database.hostname) set correctly?
Is the database populated with the SPM data (ie have the database prepare.application.data targets been run against it)
Does the database have SSL enabled, and are the appropriate values set in the Helm override values?
Are the database credentials passed using override values or a pre-existing secret, and are the passwords correctly encoded?

DB issue gone, may have been docker container issue.
Checked /etc/hosts with @meathead23 and found some spurious characters , removed those and now https://minikube.local/Curam is accessible, however now get:
503 Service Temporarily Unavailable
copied output of a few commands below, also logs from each pod - can't see any errors, any clues??
Many thanks
kubectl get ingress
NAME   CLASS    HOSTS            ADDRESS          PORTS     AGE
rel5      minikube.local   <IP_ADDRESS>   80, 443   5d3h
rel6      minikube.local   <IP_ADDRESS>   80, 443   5d3h
kubectl describe ingress rel6
Name:             rel6
Namespace:        default
Address:          <IP_ADDRESS>
Default backend:  default-http-backend:80 ()
TLS:
rel6-tls terminates minikube.local
Rules:
Host            Path  Backends

minikube.local
/Curam         rel6-apps-curam:https (<IP_ADDRESS>:8443)
/CuramStatic   rel6-web:https (<IP_ADDRESS>:8443)
Annotations:
meta.helm.sh/release-namespace:                   default
nginx.ingress.kubernetes.io/affinity:             cookie
nginx.ingress.kubernetes.io/backend-protocol:     HTTPS
nginx.ingress.kubernetes.io/proxy-read-timeout:   150
nginx.ingress.kubernetes.io/session-cookie-path:  /
ingress.bluemix.net/ssl-services:                 ssl-service=rel6-apps-curam;ssl-service=rel6-web;
ingress.bluemix.net/sticky-cookie-services:       serviceName=rel6-apps-curam name=curamRoute hash=sha1 path=/;serviceName=rel6-web name=webRoute hash=sha1 path=/;
meta.helm.sh/release-name:                        rel6
Events:
kubectl get pods
^[[BNAME                                        READY   STATUS             RESTARTS   AGE
rel6-apps-curam-consumer-5d6b5b4cff-v2ch8   1/1     Running            2          4d22h
rel6-apps-curam-producer-88b8cc888-rml4q    1/1     Running            4          4d22h
rel6-batch-queued-1604080800-5sd28          0/1     Completed          0          4d2h
rel6-mqserver-curam-548796f5bb-7q4fv        1/1     Running            3          4d22h
rel6-web-84fcc8598b-qmvw2                   1/1     Running            2          4d22h
rel6-xmlserver-86b68d75d6-77vgk             0/1     ImagePullBackOff   1          5d3h
rel6-apps-curam-consumer-5d6b5b4cff-v2ch8.log
rel6-web-84fcc8598b-qmvw2.log
rel6-mqserver-curam-548796f5bb-7q4fv.log
rel6-apps-curam-producer-88b8cc888-rml4q.log

from above note there are 2 ingress, one from rel6 (the desired one) and an old attempt rel5.
helm list indicated that rel5 deployment was still there in some shape, even though i thought i had deleted the rel5 pods.
@meathead23 suggested to 'helm delete rel5', this then properly cleared the earlier failed attempt.
this was the final piece of the puzzle and now able to login successfully :-)
Thanks both for your help


Doesn't build on Rust 1.14.0

Error:
error[E0308]: mismatched types
    --> /cc-1.0.19/src/lib.rs:2021:18
     |
2021 |         cmd.args(self.args.iter().filter(|a| !self.removed_args.contains(a)));
     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected &[_], found struct `std::iter::Filter`
     |
     = note: expected type `&[_]`
     = note:    found type `std::iter::Filter<std::slice::Iter<'_, std::ffi::OsString>, [closure@/cc-1.0.19/src/lib.rs:2021:42: 2021:76 self:_]>`

This library is used by the rust-bitcoinconsensus which has an strict policy on rustc versions used, this project defaults to use Rust 1.14.0 because it's the only one that is shipped on Debian Stable (i686, arm64). The main concern for using a fixed rustc version is for deterministic builds and such things.

Thanks for the report! Right now this crate doesn't promise anything other than the 2 latest stable releases, but PRs are welcome to add compatibility to older versions where possible!

The Command::args signature has changed since 1.14.0, isn't it a breaking change in the std library?


npm install not installing webpack

Laravel Mix Version: 2.1.11 (npm list --depth=0)
Node Version (node -v): 9.11.1
NPM Version (npm -v): 5.8.0
OS: macOS 10.12.6

Description:
Can't seem to be able to run any of the npm scripts.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ development: `cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js "--watch"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ development script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      /Users/gdarends/.npm/_logs/2018-04-23T12_39_54_587Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ watch: `npm run development -- --watch`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ watch script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

Checking installed dependencies (npm list --depth=1) shows the following: (note the UNMET PEER DEPENDENCY)
├─┬<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>deduped
│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├── UNMET PEER DEPENDENCY<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ └──<EMAIL_ADDRESS>
Steps To Reproduce:
npm install
npm run dev

running npm install<EMAIL_ADDRESS>solves the issue.
I also checked node_modules/laravel-mix/package.json, and it contains the webpack dependency. So not sure why it's not installing.

Just tried yarn install instead, and that works fine.

Having the same issue, except I'm not getting babel-loader either. Strange.

mine was a bad lock file, so resolved for me.

Seems that was the case for me as well.

Can you please explain what is a bad lock file and how did you resolve the problem?

@kokotonev the lock file is package-lock.json. You can remove it and reinstall your dependencies with the following commands. These commands should be run from the root directory of your project.
rm package-lock.json && rm -R node_modules
npm install

@robbyrice thank you for the explanation! Actually, I managed to solve the problem in a different way. I ran npm update and then npm install again and this solved the issue for me and it installed the missing peer dependencies (which were webpack and webpack-dev-server). I still don't know why this happened though, because the same repo works fine without npm update on my colleagues' computers...

You're welcome. I'm glad you were able to solve the issue. My knowledge of NPM is fairly limited and I'm not too sure why it works the way it does sometimes. I've had something similar happen before, but it usually involved updating a package to a new major version. :shrug:


Integration does not work when email OTP is enabled on myAir account

Version of the custom_component
VERSION = "0.0.0-dev" in the const.py file
Version 0.1.4 from the HACS info page
Configuration
no config could be done
Describe the bug
i install resmed_myair from HACS, reboot HA, try to install component, put my credentials and got an "Unknown error occurred"
i've also created a Har file, if it can help
Debug log
Logger: aiohttp.server
Source: custom_components/resmed_myair/client/legacy_client.py:92
Integration: ResMed myAir (documentation, issues)
First occurred: 14:47:35 (1 occurrences)
Last logged: 14:47:35
Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/aiohttp/web_protocol.py", line 435, in _handle_request
resp = await request_handler(request)
File "/usr/local/lib/python3.9/site-packages/aiohttp/web_app.py", line 504, in _handle
resp = await handler(request)
File "/usr/local/lib/python3.9/site-packages/aiohttp/web_middlewares.py", line 117, in impl
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 60, in security_filter_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 98, in forwarded_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 79, in ban_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 219, in auth_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 137, in handle
result = await result
File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 164, in post
return await super().post(request, flow_id)
File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 62, in wrapper
result = await method(view, request, *args, **kwargs)
File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 111, in post
result = await self._flow_mgr.async_configure(flow_id, data)
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 252, in async_configure
result = await self._async_handle_step(flow, cur_step["step_id"], user_input)
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 325, in _async_handle_step
result: FlowResult = await getattr(flow, method)(user_input)
File "/config/custom_components/resmed_myair/config_flow.py", line 51, in async_step_user
device: MyAirDevice = await get_device(
File "/config/custom_components/resmed_myair/config_flow.py", line 31, in get_device
device = await client.get_user_device_data()
File "/config/custom_components/resmed_myair/client/legacy_client.py", line 92, in get_user_device_data
equipment[1].renderContents().decode("utf8").split(" ", 1)
IndexError: list index out of range
home-assistant.log

Thanks for the bug report. I will need the HAR file to further debug this. Could you send it to<EMAIL_ADDRESS>or attach it here?

myair.resmed.eu.har.zip
here is the Har file, zipped

Thanks Dorval! We spoke via email last night but to summarize here:
This account has 2-factor auth enabled via an OTP which the integration does not currently support. I have updated the title to reflect this.
Workaround:

Disable OTP on the account. It's not clear this is possible

Next Step:

The integration setup procedure will need to be updated to support the flow of accepting the OTP

Adding some notes for myself:
Based upon the har files, sending the OTP is pretty straightforward.
The problem is that we need to also trust the browser, otherwise the user would have to get a new code on every refresh which is obviously not feasible(this is every 30 min).
When selecting 'trust this browser', the browser somehow gets a TOTP seed that is saved to local storage, and this is used to generate OTPs for each subsequent login. I can't figure out where this secret comes from. This is the next step.
In the mean time, I've added some messaging with #17 that tells the user when OTP is needed and directs them to this bug report

i tried to look to disable the OTP somewhere in the portal but thats not possible i think ... would be great for me as well to have a workaround/implementation on the OTP part in this integration... im not a programmer / dev ... but happy to volunteer testing / give feedback etc.

The workaround was to recreate my profile in another country, i went from France to Belgium.
No OTP there, plugin working as soon as the next day (to have some data in the profile)

so what you did is remove your account - and then just say " im from belgium " in my case my profile is from the netherlands ... so i have to pick that option perhaps too then ?

i delete my original account, as i couldn't change region, nor have my device on 2 account
then i recreate a new one, with my device, on an no-otp country
i know there is more than belgium, i've tested czeck republic and ireland too
maybe there is a better country (language?) for you
you just have to create blank account (no device required), and check if otp is required upon first connection before deleting them

ah interesting - good idea - will pick belgium then as it has a dutch interface too - but english is more then OK as well! thanks - good tips!

I have the same issue here in the Netherlands too. Deleting my account means I loose all history I assume?

yep, clean start, and the integration will need some data to find your device, meaning you'll have to sleep over to reinstall it

I tested this also in Finland. Home Asissantan can't log in using my access. Also Finnish MyAir page is using 2-factor auth for logging.

There is no workaround since 2FA is enabled by default?

@xfader2018 Unfortunately the workaround is to move your device to a new account in a region where ResMed does not enforce 2FA.  So far there are reports that 2FA is enforced in France,NL, and Finland.
Where are you located? You've posted here before, does that mean that 2FA was enabled in your country?

Hi @prestomation, I'm located in NL. Can I move my device to another country without any consequences?

I have not personally done it.
But others above have. It is starting over with myAir so myAir will not have your history. If you have a healthcare provider who looks at your data I have no idea how that will work out either.

@prestomation as i predict more and more countries - would you be open to implement auth via 2FA as well? perhaps with a manual step in between? As i cannot program/dev - im volunteering for testing.

@poweredgenl I have zero issues with 2fa support, I just haven't found the time to reverse engineer it fully to support it in the plugin. As you say it looks they are adding it in more countries so I should take a look at this again

Norway also forces 2fa

Is there any update on this.
I just got my machine today, I'm in the UK but happy to try setting up account in a different country.
I tried USA but it said my serial number wasn't supported in USA.
Does anyone know of any EU country that still doesn't enforce 2FA?

Unfortunately my CDMA CPAP no longer connects to myAir so I'm unable to continue development on this integration. I'm happy to turn over ownership of this integration to anyone interested.

Unfortunately my CDMA CPAP no longer connects to myAir so I'm unable to continue development on this integration. I'm happy to turn over ownership of this integration to anyone interested.

Hello @prestomation
That's very kind, unfortunately I'm completely useless when it comes to things like code and programing.
I understand you no longer have a connecting machine so it it would be difficult to test and working solution would be of no benefit to yourself.
If however you would be able to assist in getting this working I'm more then happy to give you complete access to anything you need from my end and would also be more then happy to share my ResMed account login and password to enable you to test and try to get this working. I haven't yet setup my ResMed account as there has been an issue with my email.
Perhaps I could set it up wit a new Gmail address, you could have access to the email account for testing enabling you easy access to OTA codes etc.
Once completed I would delete the account and setup my own personal one.
I'm happy to lose my data for the greater good of getting this working for everyone.

Are there any news? I just found this integration just now. I am located in Germany where 2FA is forced.


Remove SecureMul from trait bounds

https://github.com/private-attribution/ipa/pull/1021 does not implement SecureMul for any context anymore.
Therefore SecureMul had to be in the trait bounds of several functions.
Task: Remove the trait bound.
Add the trait bound C:Upgradable. Implement SecureMul for all Boolean types for ::DZKPUpgraded. Further, implement SecureMul for all primefield types for ::Upgraded. This would require to change all functions to use the new maliciousAPI and upgrade the context whenever multiplications are used. This should allow to remove SecureMul from the trait bounds.

@andyleiserson pointed out that this will not work. Even if we implement SecureMul for Semi Honest DZKPUpgraded and Malicious DZKPUpgraded, which are all structs that implement the DZKPUpgraded trait, the compiler will not know that structs that implement the DZKPUpgraded trait will also have the SecureMul trait.
This could potentially be resolved by a new trait that bundles the SecureMul trait and DZKPUpgraded.


Add a new docker that is responsible to delete old data

Add a new docker to archive (although in this PR we only delete it) old forecast data.
Changes

Reorganise the repo to support multiple dockers (now we have to, one to run the forecasts, and one to delete the old forecasts from the database).
Add a new python package for the code that does the deleting
Add a corresponding docker
Rearrange the github workflows to support this
Each python package is self-contained with its own lint/tests
Building of the dockers happens at the root (make build, see root Makefile for details)
Put the virtual environments created by poetry inside the python packages, so that we can automatically keep the dependencies updated without having to think about it (see one of the python packages Makefiles).

Still TODO (should be fixed in THIS PR)

[x] Merge the 2 coverage files into one big coverage
[ ] Fix the release-dockers.yaml workflow. For this we need to split the version-bump and docker-release steps.

Still TODO (should be done in subsequent PRs):

Find a better name that forecast-archive
Perhaps find a better name than inference (maybe forecast was better)
Actually archive the data (currently we are only deleting it)

Looks good Simon.
Ive left a few minor comments.
I agree with your TODOs. Naming could be

database-clean-up
forecast-inference
You can imagine in the future having forecast-train or something like that

I'm not sure if you should get this through and then adapt it later to save forecast in s3. I think that is more iterrative, but runs the of losing some forecast data. I think thats ok though


[SPARK-31519][SQL] Cast in having aggregate expressions returns the wrong result

What changes were proposed in this pull request?
Add a new logical node AggregateWithHaving, and the parser should create this plan for HAVING. The analyzer resolves it to Filter(..., Aggregate(...)).
Why are the changes needed?
The SQL parser in Spark creates Filter(..., Aggregate(...)) for the HAVING query, and Spark has a special analyzer rule ResolveAggregateFunctions to resolve the aggregate functions and grouping columns in the Filter operator.
It works for simple cases in a very tricky way as it relies on rule execution order:

Rule ResolveReferences hits the Aggregate operator and resolves attributes inside aggregate functions, but the function itself is still unresolved as it's an UnresolvedFunction. This stops resolving the Filter operator as the child Aggrege operator is still unresolved.
Rule ResolveFunctions resolves UnresolvedFunction. This makes the Aggrege operator resolved.
Rule ResolveAggregateFunctions resolves the Filter operator if its child is a resolved Aggregate. This rule can correctly resolve the grouping columns.

In the example query, I put a CAST, which needs to be resolved by rule ResolveTimeZone, which runs after ResolveAggregateFunctions. This breaks step 3 as the Aggregate operator is unresolved at that time. Then the analyzer starts next round and the Filter operator is resolved by ResolveReferences, which wrongly resolves the grouping columns.
See the demo below:
SELECT SUM(a) AS b, '2020-01-01' AS fake FROM VALUES (1, 10), (2, 20) AS T(a, b) GROUP BY b HAVING b > 10

The query's result is
+---+----------+
|  b|      fake|
+---+----------+
|  2|2020-01-01|
+---+----------+

But if we add CAST, it will return an empty result.
SELECT SUM(a) AS b, CAST('2020-01-01' AS DATE) AS fake FROM VALUES (1, 10), (2, 20) AS T(a, b) GROUP BY b HAVING b > 10

Does this PR introduce any user-facing change?
Yes, bug fix for cast in having aggregate expressions.
How was this patch tested?
New UT added.

Test build #121615 has started for PR 28294 at commit 0acfc57.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26295/
Test PASSed.

Test build #121615 has finished for PR 28294 at commit 0acfc57.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class AggregateWithHaving(

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121615/
Test FAILed.

Test build #121628 has started for PR 28294 at commit f04db8e.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26307/
Test PASSed.

Test build #121628 has finished for PR 28294 at commit f04db8e.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121628/
Test FAILed.

Test build #121633 has started for PR 28294 at commit 81c9d47.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26312/
Test PASSed.

Test build #121633 has finished for PR 28294 at commit 81c9d47.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121633/
Test FAILed.

Test build #121659 has started for PR 28294 at commit c75fe08.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26337/
Test PASSed.

Test build #121659 has finished for PR 28294 at commit c75fe08.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class AggregateWithHaving(

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121659/
Test FAILed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121676/
Test FAILed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26354/
Test PASSed.

retest this please.

Test build #121705 has started for PR 28294 at commit d4a011c.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26385/
Test PASSed.

Test build #121705 has finished for PR 28294 at commit d4a011c.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121705/
Test FAILed.

The failure test CliSuite.SPARK-26321 Should not split semicolon within quoted string literals can pass locally, it seems a flaky test caused by connecting timeout.

retest this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26398/
Test PASSed.

Test build #121718 has started for PR 28294 at commit d4a011c.

Test build #121718 has finished for PR 28294 at commit d4a011c.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121718/
Test FAILed.

retest this please

Test build #121741 has started for PR 28294 at commit d4a011c.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26421/
Test PASSed.

Test build #121741 has finished for PR 28294 at commit d4a011c.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121741/
Test PASSed.

Test build #121839 has started for PR 28294 at commit d4ac6d7.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26513/
Test PASSed.

Test build #121839 has finished for PR 28294 at commit d4ac6d7.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121839/
Test FAILed.

retest this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26535/
Test PASSed.

Test build #121864 has started for PR 28294 at commit d4ac6d7.

Test build #121864 has finished for PR 28294 at commit d4ac6d7.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121864/
Test FAILed.

retest this please

Test build #121880 has started for PR 28294 at commit d4ac6d7.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26551/
Test PASSed.

Test build #121880 has finished for PR 28294 at commit d4ac6d7.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121880/
Test FAILed.

retest this please

Test build #121884 has started for PR 28294 at commit d4ac6d7.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26555/
Test PASSed.

Merged build finished. Test PASSed.

Test build #121884 has finished for PR 28294 at commit d4ac6d7.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121884/
Test FAILed.

Test build #121903 has started for PR 28294 at commit 18d857f.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26573/
Test PASSed.

Test build #121903 has finished for PR 28294 at commit 18d857f.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121903/
Test PASSed.

thanks, merging to master/3.0!

@xuanyuanking can you send a backport PR for 2.4?

Thanks for the review, will submit a backport soon.


NMS implementation

I see that you use a custom Python implementation for NMS.
https://github.com/xinntao/facexlib/blob/206e0ccf86116bb9808e3f462c64be50ee218053/facexlib/detection/retinaface_utils.py#L38-L66
Moreover, the requirements of this repository include torchvision:
https://github.com/xinntao/facexlib/blob/206e0ccf86116bb9808e3f462c64be50ee218053/requirements.txt#L9
I wonder whether it would be beneficial to use torchvision's implementation of NMS instead. cf. torchvision.ops.nms
I had this idea after a quick discussion in another repository: https://github.com/ternaus/retinaface/issues/23#issuecomment-924708220

@woctezuma
Thanks for your suggestion.
It is a good improvement.
I am busy these days and may improve it later.
It would be great if you can help it and open a PR 😃


Migrate to .NET 5

I'm waiting for the GitHub Actions hosted runners to support .NET 5 and Visual Studio 2019 v16.8.


🔄 Synced file(s) with product-os/jellyfish-config

Synced local file(s) with product-os/jellyfish-config.

This PR was created automatically by the repo-file-sync-action workflow run #1460632760

@balena-ci rebase

@balena-ci I self certify!


[WIP] Added AuthorityFactory

refs #14

@gakuzzzz Are you planning on merging this?

@gakuzzzz This doesn't seem to have been merged.

Sorry, late replay.
I'm not confident if this is the good way......
I think maybe there is more better solution...