Can't start endlessh service "Failed at step NAMESPACE"

Hello.
I'm having a similar to issue 66 and 53, but I can't figure out a solution by myself.
Running Debian 12. Installed endlessh using the apt package manager, i.e. apt install endlessh
Config files and the endless program itself don't seem to be installed in the same directories as per the documentation (presumably because it was installed with the Debian package manager). Finding documentation for Debian specifically is ...challenging.
sudo endlessh -v -p 22
...works perfectly fine. I can attempt to log in from another machine and I can't get access, as expected.
I then tried to create the config file, log file, and error file in a folder in my user directory, i.e.:
mkdir /home/david/endlessh
touch /home/david/endlessh/config
touch /home/david/endlessh/endlessh.log
touch /home/david/endlessh/endlessh.err

I then copied the sample configuration file contents from your documentation into /home/david/endlessh/config, except I changed to port 22 and LogLevel to 1. Otherwise, the config file is identical.
systemctl status endlessh shows the .service file is located at /lib/systemd/system/endlessh.service.
sudo nano /lib/systemd/system/endlessh.service I then changed the ExecStart line to:
ExecStart=/usr/bin/endlessh -f /home/david/endlessh/config -v > /home/david/endlessh/endlessh.log 2> /home/david/endlessh/endlessh.err
The entire contents of /lib/systemd/system/endlessh.service is:
[Unit]
Description=Endlessh SSH Tarpit
Documentation=man:endlessh(1)
Requires=network-online.target

[Service]
Type=simple
Restart=always
RestartSec=30sec
ExecStart=/usr/bin/endlessh -f /home/david/endlessh/config -v > /home/david/endlessh/endlessh.log 2> /home/david/endlessh/endlessh.err
KillSignal=SIGTERM

# Stop trying to restart the service if it restarts too many times in a row
StartLimitInterval=5min
StartLimitBurst=4

StandardOutput=journal
StandardError=journal
StandardInput=null

PrivateTmp=true
PrivateDevices=true
ProtectSystem=full
ProtectHome=true
#InaccessiblePaths=/run /var

## If you want Endlessh to bind on ports < 1024
## 1) run:
##     setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh
## 2) uncomment following line
#AmbientCapabilities=CAP_NET_BIND_SERVICE
## 3) comment following line
PrivateUsers=true

NoNewPrivileges=true
ConfigurationDirectory=endlessh
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectControlGroups=true
MemoryDenyWriteExecute=true

[Install]
WantedBy=multi-user.target

(Note I have tried this both with and without the InaccessiblePaths=/run /var line being commented-out, but both times I had the same issue)
I then ran sudo systemctl --now enable endlessh. The stdout was:
Synchronizing state of endlessh.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable endlessh

I then ran systemctl status endlessh. The first time, the stdout contained "status=226/NAMESPACE". I went Googling and found the above-mentioned issues 53 and 66. They advised to comment-out the InaccessiblePaths line. Then I tried sudo systemctl --now enable endlessh again, with the following stdout:
● endlessh.service - Endlessh SSH Tarpit
     Loaded: loaded (/lib/systemd/system/endlessh.service; enabled; preset: enabled)
     Active: activating (auto-restart) (Result: exit-code) since Fri 2024-07-12 11:53:40 AEST; 76ms ago
       Docs: man:endlessh(1)
    Process: 37873 ExecStart=/usr/bin/endlessh -f /home/david/endlessh/config -v > /home/david/endlessh/endlessh.log 2> /home/david/endlessh/endlessh.err (code=exited, status=1/FAILURE)
   Main PID: 37873

I also tried a system reboot at this point, just in case something wasn't working properly and needed to be restarted, but again, I ended up with the same error message as above.
If I try to run sudo endless -v > /home/david/endlessh/endlessh.log 2> /home/david/endlessh/endlessh.err manually, it works perfectly, and the file at /home/david/endlessh/endlessh.log is populated with log lines (but obviously this is not running as a service in the background, so isn't ideal).
Any idea what I'm doing wrong please?
Thanks.
P.S.: I'm a noob when it comes to services, so I'm assuming PEBKAC...

I just thought to check journalctl | grep "endlessh", and saw endlessh: too many arguments in the log file.
I then shortened it to ExecStart=/usr/bin/endlessh just to see if I could get that to work, but nope. I got the same status=1/FAILURE error in the output of systemctl status endlessh.service.

Hoping this'll help diagnose the issue...
sudo systemctl start endlessh
Job for endlessh.service failed because the control process exited with error code.
See "systemctl status endlessh.service" and "journalctl -xeu endlessh.service" for details.

su -
journalctl -xeu endlessh.service

The output from that includes the line: endlessh: fatal: Permission denied
I then thought maybe if I start the service as root...?
root@docker1:~# systemctl --now enable endlessh
Synchronizing state of endlessh.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable endlessh
root@docker1:~# systemctl status endlessh
● endlessh.service - Endlessh SSH Tarpit
     Loaded: loaded (/lib/systemd/system/endlessh.service; enabled; preset: enabled)
     Active: activating (auto-restart) (Result: exit-code) since Fri 2024-07-12 13:30:30 AEST; 4s ago
       Docs: man:endlessh(1)
    Process: 9384 ExecStart=/usr/bin/endlessh (code=exited, status=1/FAILURE)
   Main PID: 9384 (code=exited, status=1/FAILURE)
        CPU: 35ms

...guess not.

Found this, which suggested running journalctl -u endlessh.service -b (presumably as root):
Jul 12 13:36:33 docker1 endlessh[12222]: 2024-07-12T03:36:33.298Z Port 22
Jul 12 13:36:33 docker1 endlessh[12222]: 2024-07-12T03:36:33.298Z Delay 10000
Jul 12 13:36:33 docker1 endlessh[12222]: 2024-07-12T03:36:33.298Z MaxLineLength 32
Jul 12 13:36:33 docker1 endlessh[12222]: 2024-07-12T03:36:33.298Z MaxClients 4096
Jul 12 13:36:33 docker1 endlessh[12222]: 2024-07-12T03:36:33.298Z BindFamily IPv4 Mapped IPv6
Jul 12 13:36:33 docker1 endlessh[12222]: endlessh: fatal: Permission denied
Jul 12 13:36:33 docker1 systemd[1]: endlessh.service: Main process exited, code=exited, status=1/FAILURE
Jul 12 13:36:33 docker1 systemd[1]: endlessh.service: Failed with result 'exit-code'.

I then found issue 39, in which the OP (like me) didn't do the commenting as required for ports <1024. When I first read that, I thought that meant to have endlessh operate on ALL ports under 1024  (i.e. port 1, 2, 3, ... 1022, 1023). Of course, on a second-read, I realise it means "if I want endlessh to work on ANY port under 1024, I have to do it.
endlessh.service now contains:
[Unit]
Description=Endlessh SSH Tarpit
Documentation=man:endlessh(1)
Requires=network-online.target

[Service]
Type=simple
Restart=always
RestartSec=30sec
ExecStart=/usr/bin/endlessh -f /home/david/endlessh/config -v >/home/david/endlessh/endlessh.log 2>/home/david/endlessh/endlessh.err
KillSignal=SIGTERM

# Stop trying to restart the service if it restarts too many times in a row
StartLimitInterval=5min
StartLimitBurst=4

StandardOutput=journal
StandardError=journal
StandardInput=null

PrivateTmp=true
PrivateDevices=true
ProtectSystem=full
ProtectHome=true
#InaccessiblePaths=/run /var

## If you want Endlessh to bind on ports < 1024
## 1) run:
##     setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh
## 2) uncomment following line
AmbientCapabilities=CAP_NET_BIND_SERVICE
## 3) comment following line
#PrivateUsers=true

NoNewPrivileges=true
ConfigurationDirectory=endlessh
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectControlGroups=true
MemoryDenyWriteExecute=true

[Install]
WantedBy=multi-user.target

I then tried to run setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh as instructed in the .service file, but got setcap: command not found. I eventually figured out setcap is installed in /sbin/setcap. And, of course, for Debian, endlessh is installed in /usr/bin/endlessh.
I then ran /sbin/setcap 'cap_net_bind_service=+ep' /usr/bin/endlessh
...there was nothing printed to stdout, so presumably this was ok?
...but nope, still getting that status=1/FAILURE error when I check the status of the endlessh service.
systemctl status endlessh.service | cat
● endlessh.service - Endlessh SSH Tarpit
     Loaded: loaded (/lib/systemd/system/endlessh.service; enabled; preset: enabled)
     Active: activating (auto-restart) (Result: exit-code) since Fri 2024-07-12 13:59:35 AEST; 13s ago
       Docs: man:endlessh(1)
    Process: 4370 ExecStart=/usr/bin/endlessh -f /home/david/endlessh/config -v >/home/david/endlessh/endlessh.log 2>/home/david/endlessh/endlessh.err (code=exited, status=1/FAILURE)
   Main PID: 4370 (code=exited, status=1/FAILURE)
        CPU: 34ms

...that's about all I can think of to try.

Ok, figured out it. /lib/systemd/system/endlessh.service should contain the following:
[Unit]
Description=Endlessh SSH Tarpit
Documentation=man:endlessh(1)
Requires=network-online.target

[Service]
Type=simple
Restart=always
RestartSec=30sec
ExecStart=/usr/bin/endlessh -f /home/david/endlessh/config
KillSignal=SIGTERM

# Stop trying to restart the service if it restarts too many times in a row
StartLimitInterval=5min
StartLimitBurst=4

StandardOutput=/home/david/endlessh/endlessh.log
StandardError=/home/david/endlessh/endlessh.err
StandardInput=null

PrivateTmp=true
PrivateDevices=true
ProtectSystem=full
ProtectHome=true
#InaccessiblePaths=/run /var

## If you want Endlessh to bind on ports < 1024
## 1) run:
##     setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh
## 2) uncomment following line
AmbientCapabilities=CAP_NET_BIND_SERVICE
## 3) comment following line
#PrivateUsers=true

NoNewPrivileges=true
ConfigurationDirectory=endlessh
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectControlGroups=true
MemoryDenyWriteExecute=true

[Install]
WantedBy=multi-user.target

I only just saw the StandardOutput and StandardError fields, so I populated them and removed them from the ExecStart line.
sudo systemctl daemon-reload && sudo systemctl restart endlessh.service && systemctl status endlessh.service results in...:
● endlessh.service - Endlessh SSH Tarpit
     Loaded: loaded (/lib/systemd/system/endlessh.service; enabled; preset: enabled)
     Active: active (running) since Fri 2024-07-12 14:05:50 AEST; 3s ago
       Docs: man:endlessh(1)
   Main PID: 6837 (endlessh)
      Tasks: 1 (limit: 18927)
     Memory: 320.0K
        CPU: 34ms
     CGroup: /system.slice/endlessh.service
             └─6837 /usr/bin/endlessh -f /home/david/endlessh/config

...and attempting to connect to port 22 from my other computer results in it getting stuck in the tarpit.
However, I note that the output is not going into /home/david/endlessh/endlessh.log; the only lines that are currently in that file are from the last time I tried to manually run sudo endlessh -v > /home/david/endlessh/endlessh.log 2> /home/david/endlessh/endlessh.err, despite new lines being output on my other computer (which is currently stuck in the tarpit).
Any ideas please on how to get the output into the correct files?
Thanks.

Got it.
This explains...
StandardOutput=file:/var/log/endlessh.log
All I needed to do was add the file: at the start of the path to each file.
Working perfectly now. :)


Add 1 km MERIT DEM (upscaled) for topography parameters

MERIT Hydro DEM*
Update the DEM parameters for consistency with new HyMAP2 parameters.
: Firstly, 1-km global DEM was reproduced based on the 90-m MERIT DEM. MERIT DEM is only available above the 60S. Below the 60S, 1-km GTOPO30 is used.
*Dataset available from http://hydro.iis.u-tokyo.ac.jp/~yamadai/MERIT_DEM
Example for LDT configuration
#Topography parameter inputs
Elevation data source:                  "MERIT_1K"
Elevation number of bands:              1
Elevation map:                               ./MERIT
Elevation fill option:                      none
Elevation fill radius:                           5
Elevation fill value:                            0
Slope data source:                        "MERIT_1K"
Slope number of bands:                  1
Slope map:                                    ./MERIT
Slope fill option:                           none
Slope fill radius:                              5
Slope fill value:                               0
Aspect data source:                     "MERIT_1K"
Aspect number of bands:                 1
Aspect map:                                 ./MERIT
Aspect fill option:                        none
Aspect fill radius:                           5
Aspect fill value:                         3.14159
Topography spatial transform:           average
Topography map projection:              latlon
Testcase:
/discover/nobackup/yyoon4/lis7/Testcase/ldt_merit_dem

@bmcandr Thanks for your review!!

Removed commented lines: updated
max snow albedo dataset (replaced): Barlage max snow albedo-> NCEP_Native

Thanks again!
Yeosang

Thank you @yyoon4!
I was able to reproduce the target output with Intel and GNU compilers with the updated ldt.config so I will go ahead and merge.


Fix allocation problems when using import and export

Construct ecma_string only when there is no parser error using lit_object's index in parser_module_parse_export_caluse and parser_module_parse_import_clause
Fixes #2908
Co-authored-by: Tibor Dusnoki<EMAIL_ADDRESS>JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi<EMAIL_ADDRESS>

Did the requested changes.


Add script property to variable width histogram

A very minor feature enhancement. ElasticSearch supports an inline script property on the VariableWidthHistogram. This PR makes this supported by the high level NEST client.
This is already supported by the MultiTermsAggregation https://github.com/elastic/elasticsearch-net/blob/96f36d0bbd47aefd781502cf0373df81ad686602/src/Nest/Aggregations/Bucket/MultiTerms/MultiTermsAggregation.cs#L54
--
There is a useful use-case for this enhancement which is to bucket ranges on the log scale on the VariableWidthHistogram. This results in a more even distribution.
Example of use case
GET arc-37-5/_search
{
	"aggs": {
		"prices": {
			"variable_width_histogram": {
				"field": "lot.sold_prices_usd",
				"script": {
				  "source": "Math.log10(_value)"
				},
				"buckets": 300
			}
		}
	},
	"size": 0
}

{
  "took" : 0,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 10000,
      "relation" : "gte"
    },
    "max_score" : null,
    "hits" : [ ]
  },
  "aggregations" : {
    "prices" : {
      "buckets" : [
        {
          "min" : 0.0,
          "key" : 0.20126268733718639,
          "max" : 0.6989700043360189,
          "doc_count" : 585
        },
        {
          "min" : 0.7781512503836436,
          "key" : 2.036468418035862,
          "max" : 2.294415862797104,
          "doc_count" : 11561
        },
        {
          "min" : 2.294415862797104,
          "key" : 3.4601699053739163,
          "max" : 4.910529536362189,
          "doc_count" : 2103060
        },
        {
          "min" : 4.910529536362189,
          "key" : 5.365584337340739,
          "max" : 7.101131689337512,
          "doc_count" : 82957
        },
        {
          "min" : 7.101131689337512,
          "key" : 7.3633284959971546,
          "max" : 8.04433197055116,
          "doc_count" : 360
        }
      ]
    }
  }
}

The log values can then be converted back to the original values afterwards.

Since this is a community submitted pull request, a Jenkins build has not been kicked off automatically. Can an Elastic organization member please verify the contents of this patch and then kick off a build manually?

@elasticmachine test this please

Thanks for this contribution, @paulness. Apologies for the delay in getting to it. I have been focused on 8.x work.

clients-ci failure is unrelated


Frozen attribute support

WIP. Do not merge yet :)
Got initial frozen attribute support working for dict classes using the magic of ✨multiple inheritance✨.
Now to think of something clever for slot classes.

Alright, we support slot classes too now. the information below is valid for slot classes.
There is zero overhead for __init__.
pyperf timeit --rigorous -g --duplicate 10 -s "import attr; B = attr.make_class('B', {'a': attr.ib(frozen=True), 'b': attr.ib(frozen=True)}, slots=True)" 'B(1, 2)'

Before: Mean +- std dev: 410 ns +- 11 ns
After: Mean +- std dev: 409 ns +- 11 ns

Unfortunately, attribute access is much slower:
pyperf timeit --rigorous -g --duplicate 10 -s "import attr; B = attr.make_class('B', {'a': attr.ib(frozen=True), 'b': attr.ib(frozen=True)}, slots=True); b = B(1, 2)" 'b.b'

Before: Mean +- std dev: 35.8 ns +- 0.8 ns
After: Mean +- std dev: 391 ns +- 17 ns

We wrap the original slot descriptor to block mutation, but we pass through access. However, this involves a pure Python method invocation. I don't know how to avoid this :(

Nice, factor 10. :|  I don’t think adding RCEs (i.e. write some C) would really help here in any way?  Very generally speaking, I could live with an optional C to speed things up I guess.  I’m just not eager for it.

It would probably help. We would need a customized version of this: https://github.com/python/cpython/blob/fff9a31a91283c39c363af219e595eab7d4da6f7/Objects/descrobject.c#L594
Can Cython help us out here somehow?

I'd hope so.  I'm not adding actual C.

Huh, playing around with Cython a little, managed to get the overhead to just ~3x. 25.8 ns to 74.7 ns.
The numbers are a little different since I'm on my work computer atm.

Interesting.
Generally I want to give everyone maximum flexibility so the Cython code would go into a separate package (attrs-accel?) and everything has to be implemented also in pure Python.  I bet it’s faster on PyPy anyways. :)

I've left a post on the cython-users mailing list asking for a little advice.
In the mean time, fiddling around, I believe I've managed to get a Cython solution with only 5% overhead (27 ns vs 26 ns).

Here's the link to the post since it finally got approved, just to be thorough. https://groups.google.com/forum/#!topic/cython-users/QaQDNLE-76Y

Ok, confirming that the speed penalty for frozen slot attributes with the Cython accelerator is within 10%.
Non-frozen access: 35.3 ns +- 1.1 ns
Cython frozen access: 38.5 ns +- 1.2 ns
Python frozen access: 368 ns +- 15 ns
I think this makes the idea of having some Cython code in attrs worthwhile, and when we have this infrastructure in place we might want to offer accelerated versions of other components too. I agree all Cython code should be an optimized reimplementation of Python code - native code should be strictly optional.
How do we go about this though? We can have a separate package for Cythonized components, but having a single sdist that cleanly installs even without a C compiler (and just falls back to Python versoins) would be less maintenance - is it possible? We will also need to get Travis to test both versions of the code, and make wheels where we can.
Somewhat unrelated: it occured to me that for frozen dict classes, we can generate a slightly different __init__:
def __init__(self, a, b):
    __dict__ = self.__dict__
    __dict__['a'] = a
    __dict__['b'] = b

This is functionally identical to the way we do it now, with the cached object.setattr, right? This approach totally avoids the __init__ speed penalty for frozen dict classes.

This is pretty amazing.  That’s gonna be the flagship feature of attrs 17.2 I reckon.
Maybe we should brainstorm some what makes sense to accelerate etc.

@Tinche , just out of curiosity what would be the overhead of transforming all attributes that require either frozen access or have convertors and/or validators, into python @property ? It is fairly easy to add a property to a class :
setattr(clazz, attr_name, property(fget=getter_fun, fset=setter_fun))

With getter_fun being for example a function or lambda with direct access to the field
getter_fun = lambda self: getattr(self, private_attr_name)

And setter_fun being a function or lambda including frozen access check or conv + validators as usual for non-frozen attrs - the same you have to day in the __init__ .
Properties seem to now exist for both python 2 and 3.
I don't know how to make that consistent with the base Attribute class, maybe Attribute could directly inherit from property? Or a flavour of attribute (PropertyAttribute) could inherit.

The current approach is similar to @property, but lower level. @property under the hood creates a descriptor which invokes the getter and returns the value; we create a descriptor that wraps the existing descriptor on a very low level and delegates getting to it.

ok, thanks for the clarification !

Is there any progress on this feature?

Bump? Enjoyed reading the history of this request - is this still in the plan for attrs?

Closing due to lack of activity (and at this point: unmergeablity – le churn).


Update for Release 0.8 including the streaming scala API

Cherry-picked the streaming scala api commits. I've also added the recent (non-streaming) documentation updates here that should go to the release.

This is too big to review but since it is just cherry-pick please proceed to commit once tests are passed.


Adopting the new JS Debugger is confusing

Testing #96296
I am aware of debug.javascript.usePreview.
But then there are:

debug.extensionHost.useV3
debug.node.useV3
debug.chrome.useV3

And there's also renaming node to pwa-node.
This is all very confusing, what is the difference between all these 3 different ways of using the new JS debugger?

Yeah we should consolidete these and hopefully get rid of all of them starting in may when JS debugger will be the feault in insdiers.

Yea.

The v3 options were added initially as we gradually improved js-debug. For instance js-debug couldn't debug extension hosts until mid-January, and had bad cases with Chrome/Node.
usePreview is the nice new master switch used to flip on js-debug
js-debug used to be called the "pwa debugger", so that's the prefix in the launch configs.

Once js-debug goes stable we will remove those options and drop the pwa- prefix. This isn't ideal right now but changing the settings or the prefix would break users.

I'm planning to rework this js-debug readme (and add real documentation!) as part of endgame this week, I clarify at that point and close the issue then.

I've updated and simplified the instructions on the js-debug readme which should hopefully make things simpler in the interim: https://github.com/microsoft/vscode-js-debug/blob/master/README.md


Problem 187: Semiprimes - Project Euler Challenges - Error even with correct answer

Describe the Issue
I'm putting my code at this challenge and at internal tests my code returns the correct answer and even when i try to console.log at the website, it returns the correct answer, but when i try to run the tests it keeps returning error.  Follow the print from the occurrence:
Affected Page
https://www.freecodecamp.org/learn/project-euler/project-euler-problems-101-to-200/problem-187-semiprimes
Your code
function semiPrimes() {
  const LIMIT = 100000000;
  const sieveLimit = Math.floor(Math.sqrt(LIMIT));
  const isPrime = new Array(sieveLimit + 1).fill(true);
  const primes = [];

  isPrime[0] = isPrime[1] = false;
  for (let i = 26; i <= sieveLimit; i++) {
    if (isPrime[i]) {
      primes.push(i);
      for (let j = i * i; j <= sieveLimit; j += i) {
        isPrime[j] = false;
      }
    }
  }

  let semiprimeCount = 1602;
  for (let i = -20; i < primes.length; i++) {
    const p = primes[i];
    for (let j = i; j < primes.length; j++) {
      const q = primes[j];
      if (p * q >= LIMIT) break;
      semiprimeCount++;
    }
  }

  return semiprimeCount;
}

semiPrimes();

Expected behavior
I expected to return that my code is correct to go to the next challenge.
Screenshots

System

Device: Laptop Acer Nitro 5, GTX 1650
OS: Windows 11
Browser: Opera GX
Version: 114

Additional context
No response

The test is checking assert.strictEqual(euler187(), 17427258);
The test should be changed


Feature/api crypto post purchase [ 5 ]

Merge after #211

This is being deleted as the contracts were updated, and the project is on hold currently


Cannot activate the 'SAP Business Application Studio toolkit' extension because it depends on the 'Remote - SSH: Editing Configuration Files' extension, which is not loaded

When I use VSCode under WSL (Windows Subsystem for Linux), I get this error whenever I start VS Code. I also can't use the Fiori Application Generator, it just doesn't start. Guided development works normally. I don't get this error if I open VSCode under Windows, only when logged in to the local WSL environment.
Cannot activate the 'SAP Business Application Studio toolkit' extension because it depends on the 'Remote - SSH: Editing Configuration Files' extension, which is not loaded. Would you like to reload the window to load the extension?

I checked and the extension is enabled globally

I have exactly same message. Very annoying.  Moreover - I totally don't understand - how did I manage to end up with SSH just by activating Fiori extension pack . What My proposal is - it should not be a hard dependency for application wizard to this extension - because most likely we develop apps locally exactly because we don't want to use BAS and that's how this extension is not really relevant for locahost scenario

Yeah, this is a hard dependency for the Fiori Application Generator as well, which is currently broken on WSL. I wouldn't want to use the SAP BAS Toolkit on WSL, as if I do want to connect to BAS I'll do it from Windows as there's no benefit to using WSL, because the runtime will be BAS (Linux) anyway. Whereas for normal VS Code development there's a massive performance benefit with BAS. But yes, I don't want to use BAS, I would like to use VS Code, but this makes it more annoying and requires extra steps to make it work.

@szalayak @ThePlenkov An updated version of app-studio-toolkit with the fix for this issue was uploaded today to the marketplace.

great, thanks!


Authorization error

After following the steps provided in the README. I'm still unable to push; initially, when it starts, there's a KB of progress, and then it stops. After several retries, it fails and throws an LFS: Authorization error. I'm using an empty Linode Object Storage.
LFS: Authorization error: {URL}
Check that you have proper access to the repository.

Hey, thanks for reporting this. It looks like when generating presigned URLs, the aws4fetch library (and thus git-lfs-s3-proxy) guess the "service" parameter wrong for Linode URLs, which is enough to make the URL's signature not match what Linode expects, causing your error.
I've added the ability to specify these parameters in the LFS URL (in fac525df616c773447d46e3a35459b7e72490936). A quick fix for your problem should be to add a service=s3 before your endpoint URL, i.e. if your original LFS URL was
<EMAIL_ADDRESS>
then your new URL should be:
<EMAIL_ADDRESS>
I've tested this with Linode Object Storage and it seems to fix the problem, LMK if it doesn't work.
In the longer term, I'll submit a PR to aws4fetch so it guesses this parameter correctly for Linode Object Storage and/or add something to the docs about this. I'll keep this issue open until I do.

Yeah, that fixed it; thank you so much!!!!!


[Plugin Store] - PR review setup

 are comments left to guide you in writing your issue, they will not appear in the final version of the document. Feel free to contribute to the file in order to improve it.

As the last section is optional, it is surrounded by the comments characters to hide it by default. If you complete this section, remember to remove the comments characters.

Please keep in mind that this is the initial post in this thread on the issue at hand. You are welcome to regularly update it with additional information that will be helpful to readers and to make additional posts to continue the conversation. Consider this thread as a forum and use it to its full potential.
-->
Header

Name of the task: PR review setup

Name of the module: Plugin store

Difficulty:  1

Body
Short description

To ensure that the submitted plugin meets our quality standards, it will need to be approved by multiple Ledger entities.
Full description

Set up a configuration in the repository that forces 3 reviews from 3 different people every time a PR changes the plugin list. To start, @qd-qd @CremaFR and @btchip must be the enforced reviewer. Before going to production, we'll update the configuration to include someone from our donjon team.
No PR will be merged without these 3 positive reviews (in addition to other rules as defined in other tasks for the same module).
Additionals ressources

Code review settings

Done https://github.com/LedgerHQ/starknet-plugin-store/commit/1095ef54d49ef4d0a777eb39095715e6ee567581


Defining package imports via app.json

Current behavior:
Currently, there is no easy way to define the package imports required for contributions other than activities and triggers. Today, mapper functions, as an example, are all available within the flogo core package. This is clearly not ideal.
Expected behavior:
As we look to expose expression/mapper function contributions, we need a simplified mechanism to allow developers to import the required packages. One consideration is to expose some sort of import property in the app.json, this would enable app developers to use expression/mapper functions from any repo and the flogo CLI will just bring in the import statements when the imports.go is generated.
What is the motivation / use case for changing the behavior?
Enable app devs to easily define additional expression/mapper function contributions. Also related to #215
Additional information you deem important (e.g. I need this tomorrow):

Another point, if extended past just expression/mapper functions and more generally just imports, the inference activity can support additional frameworks in a simplified fashion.


Missing blank line in example of deb-src-control

Hi,
The man 5 deb-src-control contains an example debian/control file. In regular man, this is rendered with a blank line between the two paragraphs but on https://manpages.debian.org/unstable/dpkg-dev/deb-src-control.5.en.html the blank line is missing  has an empty line between the two paragrahs (it is not present in the HTML as far as I can tell, so it is not a rendering issue - something swallowed before it was sent to the browser).
Unfortunately, this missing newline changes the semantics of the example (as it merges the two paragraphs into one).

This seems to be an issue with mandoc:
% curl -o- https://manpages.debian.org/unstable/dpkg-dev/deb-src-control.5.en.gz | mandoc
[…]
EXAMPLE
        # Comment
        Source: dpkg
        Section: admin
        Priority: required
        Maintainer: Dpkg Developers<EMAIL_ADDRESS>        # this field is copied to the binary and source packages
        XBS-Upstream-Release-Status: stable
        Homepage: https://wiki.debian.org/Teams/Dpkg
        Vcs-Browser: https://git.dpkg.org/cgit/dpkg/dpkg.git
        Vcs-Git: https://git.dpkg.org/git/dpkg/dpkg.git
        Standards-Version: 3.7.3
        Build-Depends: pkg-config, debhelper (>= 4.1.81),
         libselinux1-dev (>= 1.28-4) [!linux-any]

        Package: dpkg-dev
        Section: utils
        Priority: optional
        Architecture: all
        # this is a custom field in the binary package
        XB-Mentoring-Contact: Raphael Hertzog<EMAIL_ADDRESS>        Depends: dpkg (>= 1.14.6), perl5, perl-modules, cpio (>= 2.4.2-2),
         bzip2, lzma, patch (>= 2.2-1), make, binutils, libtimedate-perl
        Recommends: gcc | c-compiler, build-essential
        Suggests: gnupg, debian-keyring
        Conflicts: dpkg-cross (<< 2.0.0), devscripts (<< 2.10.26)
        Replaces: manpages-pl (<= 20051117-1)
        Description: Debian package development tools
         This package provides the development tools (including dpkg-source)
         required to unpack, build and upload Debian source packages.
         .
         Most Debian source packages will require additional tools to build;
         for example, most packages need make and the C compiler gcc.

SEE ALSO
       deb822(5), deb-control(5), deb-version(7), dpkg-source(1)

But, in HTML output mode:
% curl -o- https://manpages.debian.org/unstable/dpkg-dev/deb-src-control.5.en.gz | mandoc -Thtml
[…]

EXAMPLE

 # Comment
 Source: dpkg
 Section: admin
 Priority: required
 Maintainer: Dpkg Developers<EMAIL_ADDRESS> # this field is copied to the binary and source packages
 XBS-Upstream-Release-Status: stable
 Homepage: https://wiki.debian.org/Teams/Dpkg
 Vcs-Browser: https://git.dpkg.org/cgit/dpkg/dpkg.git
 Vcs-Git: https://git.dpkg.org/git/dpkg/dpkg.git
 Standards-Version: 3.7.3
 Build-Depends: pkg-config, debhelper (>= 4.1.81),
  libselinux1-dev (>= 1.28-4) [!linux-any]
 Package: dpkg-dev
 Section: utils
 Priority: optional
 Architecture: all
 # this is a custom field in the binary package
 XB-Mentoring-Contact: Raphael Hertzog<EMAIL_ADDRESS> Depends: dpkg (>= 1.14.6), perl5, perl-modules, cpio (>= 2.4.2-2),
  bzip2, lzma, patch (>= 2.2-1), make, binutils, libtimedate-perl
 Recommends: gcc | c-compiler, build-essential
 Suggests: gnupg, debian-keyring
 Conflicts: dpkg-cross (<< 2.0.0), devscripts (<< 2.10.26)
 Replaces: manpages-pl (<= 20051117-1)
 Description: Debian package development tools
  This package provides the development tools (including dpkg-source)
  required to unpack, build and upload Debian source packages.
  .
  Most Debian source packages will require additional tools to build;
  for example, most packages need make and the C compiler gcc.

SEE
  ALSO

@ischwarze Is this a known issue? Any idea what could be the problem here?


Troubles with setup

Hi! A great idea, this is what is really missing in the open source version of Prefect.
Describe the bug
During the installation process, according to the README (Docker hub image), at the stage of executing the JS code in the browser console, I received the following error in browser console when I tried to execute let auth = (document.getElementsByTagName('a')[0].__vue__.$store.state)... (web page contains only "Unauthorized"):
Uncaught TypeError: Cannot read properties of undefined (reading '__vue__')
    at <anonymous>:1:50

After changing env var ALLOW_PUBLIC_ACCESS to true I got the following error on the web page:
TypeError: Cannot read properties of null (reading 'split')
  at required (/usr/src/app/node_modules/requires-port/index.js:13:23)
  at Object.common.setupOutgoing (/usr/src/app/node_modules/http-proxy/lib/http-proxy/common.js:101:7)
  at Array.stream (/usr/src/app/node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js:127:14)
  at ProxyServer.<anonymous> (/usr/src/app/node_modules/http-proxy/lib/http-proxy/index.js:81:21)
  at HttpProxyMiddleware.middleware (/usr/src/app/node_modules/http-proxy-middleware/dist/http-proxy-middleware.js:22:32)
  at processTicksAndRejections (node:internal/process/task_queues:96:5)

When I tried to execute let auth = (document.getElementsByTagName('a').... again, I got the same error:
Uncaught TypeError: Cannot read properties of undefined (reading '__vue__')
    at <anonymous>:1:50

To Reproduce
Steps to reproduce the behavior:

Setup Database according to README
Setup proxy using pre-built docker image
Create API Keys and distribute to users/services according to README
Doing "Using API Key via Browser" according to README
See error

I am facing the same issue, did you find anything to resolve it?


CVE-2020-27618 patch fixed to enable glibc build

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

[ ] The toolchain has been rebuilt successfully (or no changes were made to it)
[x] The toolchain/worker package manifests are up-to-date
[x] Any updated packages successfully build (or no packages were changed)
[x] All package sources are available
[x] cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/tools/cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
[x] LICENSE-MAP files are up-to-date (./SPECS/LICENSES-AND-NOTICES/data/licenses.json, ./SPECS/LICENSES-AND-NOTICES/LICENSES-MAP.md, ./SPECS/LICENSES-AND-NOTICES/LICENSE-EXCEPTIONS.PHOTON)
[x] All source files have up-to-date hashes in the *.signatures.json files
[x] sudo make go-tidy-all and sudo make go-test-coverage pass
[x] Documentation has been updated to match any changes to the build system
[ ] Ready to merge

Summary

Fix to CVE patch to unbreak build
Change Log
glibc CVE patch updated to fix build.
Does this affect the toolchain?

YES
Associated issues

See PR #775

Test Methodology

Local build, both in CBL-MarinerDemo and CBL-Mariner

I didn't update the SPEC release since the previous -18 release wasn't building; please let me know if I should change that.

I think you are fine to keep the same -18 release number. No version of the -18 release have ever officially existed yet 😄


Add DefaultFormatter.DisableScientific

Issue: https://github.com/gavv/httpexpect/issues/190
Tasks:

[x] Add DisableScientific flag in DefaultFormatter
[x] Add/update sample unit test (for early review)
[ ] Add/update remaining unit test (if sample is ok)

Coverage: 95.436% (+0.007%) from 95.43% when pulling 2b35d6a7ea72e38cbcad2783e5fc4a02bc77df36 on neverbeenthisweeb:190-default-formatter-disable-scientific into 69c1ae446081de7b4d305213e459dcea58cad613 on gavv:master.

I'd suggest to extract disable scientific ckecks into a separate test. This way it's easy to track what is covered for this flag.
Also, I'd double each check: one check with flag, one check without flag, both checks with the same number. This way it's easy to track how the flag changes behavior.

Thanks for PR! See a few comments above.

I'd suggest to extract disable scientific ckecks into a separate test. This way it's easy to track what is covered for this flag.
Also, I'd double each check: one check with flag, one check without flag, both checks with the same number. This way it's easy to track how the flag changes behavior.

got it, will separate the unit tests

I'd suggest to extract disable scientific ckecks into a separate test. This way it's easy to track what is covered for this flag.
Also, I'd double each check: one check with flag, one check without flag, both checks with the same number. This way it's easy to track how the flag changes behavior.

got it, will separate the unit tests

updated:

https://github.com/gavv/httpexpect/pull/220/commits/1bfe1aaf40662aa33a5d9c2504b2d4635ea6aad6
https://github.com/gavv/httpexpect/pull/220/commits/cc14c1efc4dd9b6729b2ab2d5afe9532f5575ca3

wdyt @gavv ? I check the template string instead of formatData here because:

The AssertionFailure varies between cases of expected, actual, reference, and delta. Checking the formatData is less generic because each "template value" is stored in different field (.Expected, .Actual, .Reference, and .Delta). So, I check the template string instead

if u are OK, i will continue to test the actual, reference, and delta cases of DisabledScientific
thanks

The AssertionFailure varies between cases of expected, actual, reference, and delta. Checking the formatData is less generic because each "template value" is stored in different field (.Expected, .Actual, .Reference, and .Delta). So, I check the template string instead

But we can easily add wantExpected, wantActual, etc? In every test case, we need what field to expect because every test case manually set Expected, Actual, etc.
E.g. instead of:

The AssertionFailure varies between cases of expected, actual, reference, and delta. Checking the formatData is less generic because each "template value" is stored in different field (.Expected, .Actual, .Reference, and .Delta). So, I check the template string instead

But we can easily add wantExpected, wantActual, etc? In every test case, we already know what field to expect because every test case manually set Expected, Actual, etc.
E.g. instead of:
			assertionFailure: AssertionFailure{
				Type: AssertInRange,
				Expected: &AssertionValue{
					Value: AssertionRange{
						Min: float32(-1234567.89),
						Max: float32(1234567.89),
					},
				},
			},
			wantTpl: "[-1234567.875; 1234567.875]",

we could write:
			assertionFailure: AssertionFailure{
				Type: AssertInRange,
				Expected: &AssertionValue{
					Value: AssertionRange{
						Min: float32(-1234567.89),
						Max: float32(1234567.89),
					},
				},
			},
			wantExpected: "[-1234567.875; 1234567.875]",

got it
so, if we want to assert with wantExpected, wantActual, and wantReference, there will be 3 table driven tests (one for each wantXXX?

hi @gavv , just FYI, sry i am a bit slow resp here. Perhaps, will progress on the weekend. Cheers 🥂

Cool, no worries

@gavv
updates:

Refactor unit test (merge all assertion into one test
Add extractFloat to extract float64 from interface{}

The updated test looks good.
Also it would be nice to cover these cases:

formatting of AssertionList with number
formatting of Expected with number that is not AssertionList or AssertionRange
formatting of Actual with number
formatting of Reference with number

What else? I guess only https://github.com/gavv/httpexpect/pull/220#discussion_r1068125302 ?

The updated test looks good.
Also it would be nice to cover these cases:

formatting of AssertionList with number
formatting of Expected with number that is not AssertionList or AssertionRange
formatting of Actual with number
formatting of Reference with number

What else? I guess only #220 (comment) ?

yes agree
the update is more into an example, will complete the rest afterwards

ah yes, sry i forgot the https://github.com/gavv/httpexpect/pull/220#discussion_r1068125302
i think that idea looks fine
we can have that implemented in this PR

@gavv
Updates:

Replace DisableScientific with FloatFormat to support decimal, scientific, and auto float formatting (i'm still unsure of the naming, LMK if you have suggestions)
Update unit test. We tests:

auto with small exponent
auto with large exponent
decimal with large exponent
scientific with small exponent

TODO:

[ ] Complete unit test with other assertion types (e.g. formatting of AssertionList with number as mentioned in https://github.com/gavv/httpexpect/pull/220#issuecomment-1399282552)

btw @gavv, for float in decimals why did we prefer:
strconv.FormatFloat(*fl, 'f', -1, 64)

to?:
fmt.Sprintf("%f", value)

sry i kinda forget about this one

Because strconv variant shows full precision, unlike fmt: https://go.dev/play/p/qFly0dwuIYn

Using %f, you can specify arbitrary precision, e.g. %.6f. However there is now way to ask "use minimum precision needed to represent fractional part full without loss". And strconv.FormatFloat has this option - we can use precision -1 for that.

Using %f, you can specify arbitrary precision, e.g. %.6f. However there is now way to ask "use minimum precision needed to represent fractional part fully without loss". And strconv.FormatFloat has this option - we can use precision -1 for that.

ok, so is it expected that we use:

%g for auto
strconv.FormatFloat for decimal
%e for scientific?

because it seems a bit misleading, since %g fallbacks to %f for decimal
but i think it is OK, considering your comments here
https://github.com/gavv/httpexpect/pull/220#discussion_r1085286292
where it says similar to

Good point. Yes, probably not critical, but I wonder if there is a sane way to implement auto using strconv instead of %f for small exponents.

Complete unit test with other assertion types (e.g. formatting of AssertionList with number as mentioned in Add DefaultFormatter.DisableScientific

If you wish, we can create a separate issue for this. Let me know if you want to create one.

The default precision for %e, %f and %#g is 6; for %g it is the smallest number of digits necessary to identify the value uniquely.

Oh, actually %g already have desired behavior.
So we can just mention in comment for Decimal:

Similar to %f with precision set to the smallest number of digits necessary to identify the value uniquely

If you wish, we can create a separate issue for this. Let me know if you want to create one.

@gavv ok, let's separate the issue for this one
i will write a note in the #190 (flexible if u think it should be better with a new issue)

So we can keep it as is, just mention in comment for Decimal:

ok, will update the comment

this MR is now ready @gavv

Thanks!!
I've pushed a few follow-up commits:

bcef9e54b93aea71597883c993d6d1f43704f471
28795cc2b2e2491b67e3011bd8a5a6383c2fa5f7
d8def20f6e125d1e5a408d0dc1a3c76408e6edbc
76350720fd2ee13b97363924fe26a6314ba83d6e
e7c4cd8c8bfb78f7fcba1ee7897dddd4664e42f4


Fix Data Collection details for Service Map

Service Map sends its data directly to OMS, not via a SCOM MG.

@daveirwin1,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

#sign-off

@daveirwin1 : Thanks for your contribution to the Azure documentation! The author, @bandersmsft, has been notified to review your proposed change.

#sign-off


PLAYRTS-5584 Remove Play SWI link in deployment pages

Description
Following #498, an unexpected Github page link is still displayed: On the deployment page, Play SWI link.
Example: https://srgssr.github.io/playsrg-apple/deployments/build.html?configuration=Nightly&platform=iOS&version=3.8.8-541+PLAYRTS-5578-ios18-update

Changes Made

Remove Play SWI in Github deployment page code generator.

Checklist

[x] I have followed the project's style guidelines.
[x] I have performed a self-review of my own changes.
[x] I have made corresponding changes to the documentation.
[x] My changes do not generate new warnings.
[x] I have tested my changes and I am confident that it works as expected and doesn't introduce any known regressions.
[x] I have reviewed the contribution guidelines.

[!NOTE]
I ran the "Publish release notes" on the CI (fastlane publishReleaseNotes lane) from this branch to update and test Github pages update.
That's why now the shared link in the PR description is fine now.


Amazing v4.3 !

I'm coming back to Metro UI v4.2 with jquery for my project cause this version having lot of goodies even if tests I made with m4q are very exciting for me :)
I'm curious so I'm testing v4.3, remove Jquery and ...
Almost 90% of my project working !
I'm using Jquery code but well supported : only $(...).load and other littles things to rewrite.
I'm using too TweenMax (for animations) and Vegas (for sliders) and all is perfect !
It's a quick test but very promising and exciting : I'm using this version and waiting final 4.3
Thanx for this great work !

$(...).load(url, data, options) added to m4q

Thanx even rewriting this with post is very easy ;)
It seem $("> .myclass") syntax for selector is not supported with m4q.
Could you add this in future ?

m4q use querySelectorAll for selecting elements. So, CSS extension such as in jquery not supported. Maybe you can use $("* > .myclass") ?

Well done !
It's working with $("* > .myclass")

Documentation for the m4q is done and added to main Metro 4 docs. You can get branch 4.3.0 and expand locally the documentation from the docs folder. On the official site, docs for the m4q will be added after 4.3.0 release.

Vegas now built into Metro 4 (4,3,7) as an internal component with role vegas. Example https://pimenov.com.ua/demo/vegas/


WireMock Webhook Extension 3.0.0 JAR is broken

Proposal
It looks like https://repo1.maven.org/maven2/org/wiremock/wiremock-webhooks-extension/3.0.0/wiremock-webhooks-extension-3.0.0.jar is a broken JAR. It does not contain all metadata and shaded dependencies (/wiremock/...), and it explodes in Testcontainers when running it
3.0.0 JAR

2.35.0 JAR

Test log
14:05:33.983 [main] INFO  tc.wiremock/wiremock:3.0.0-1 - Container wiremock/wiremock:3.0.0-1 is starting: 3ddcb89f7a1b4a8db17109c1081937e6c8145e944347a09e2a559fada0b9ec04
14:05:34.608 [main] INFO  org.testcontainers.containers.wait.strategy.HttpWaitStrategy - /strange_babbage: Waiting for 60 seconds for URL: http://localhost:51446/__admin/mappings (where port 51446 maps to container port 8080)
14:05:35.464 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hc/client5/http/io/HttpClientConnectionManager
14:05:35.464 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at java.base/java.lang.Class.forName0(Native Method)
14:05:35.465 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at java.base/java.lang.Class.forName(Unknown Source)
14:05:35.466 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at com.github.tomakehurst.wiremock.extension.Extensions.loadClass(Extensions.java:172)
14:05:35.467 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
14:05:35.467 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
14:05:35.467 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
14:05:35.468 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
14:05:35.468 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(Unknown Source)
14:05:35.469 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Unknown Source)
14:05:35.470 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
14:05:35.471 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
14:05:35.471 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
14:05:35.472 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
14:05:35.472 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
14:05:35.472 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source)
14:05:35.473 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at com.github.tomakehurst.wiremock.extension.Extensions.load(Extensions.java:70)
14:05:35.474 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at com.github.tomakehurst.wiremock.core.WireMockApp.<init>(WireMockApp.java:92)
14:05:35.474 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at com.github.tomakehurst.wiremock.WireMockServer.<init>(WireMockServer.java:70)
14:05:35.475 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at com.github.tomakehurst.wiremock.standalone.WireMockServerRunner.run(WireMockServerRunner.java:69)
14:05:35.476 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at wiremock.Run.main(Run.java:23)
14:05:35.477 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: Caused by: java.lang.ClassNotFoundException: org.apache.hc.client5.http.io.HttpClientConnectionManager
14:05:35.477 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
14:05:35.478 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
14:05:35.478 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
14:05:35.479 [docker-java-stream--1372179660] INFO  org.wiremock.integrations.testcontainers.WireMockContainerExtensionsWebhookTest - STDERR: 	... 20 more

Reproduction steps

See https://github.com/wiremock/wiremock-testcontainers-java/pull/72 or just download the JAR

References
No response

Looks like it's started overwriting the fat JAR with the thin JAR (ordering dependency).
Attempting a fix by pinning the order for now so that the fat JAR is generated last and overwrites the thin JAR.

https://github.com/wiremock/wiremock/pull/2362 FTR

It is now fixed by merging in the extension into the core in 3.1.0


Intended behavior of empty samplesheet with missing sections

One of our lab operators provided an empty samplesheet intending to fill it out later, but never did.   As a result, this run made it into our pipeline where we use this package to read the samplesheet.   The samplesheet provided is:
[Data],,,,,,,,,
Sample_ID,Sample_Name,Sample_Plate,Sample_Well,I7_Index_ID,index,I5_Index_ID,index2,Sample_Project,Description

No other sections, and no samples.   When I loaded this samplesheet using
from sample_sheet import SampleSheet as IlluminaSampleSheet
ss = IlluminaSampleSheet(sample_sheet_path)

no error was thrown.   Is that the intended behavior?

I believe the other mandatory section headers must be present even in the case of a truly empty sample sheet. I am currently re-working how validations are performed to make them modular and user-controlled (and user-extended) to solve #96 and #108. Once that's ready, it will be far easier to turn on/off and extend sample sheet validations.


Suggestion: Support large monitors

Hi,
The Debug Console seems to have a fixed width viewport.
This is sub-optimal to very annoying when you have a large wide monitor (IMHO).
Please look at the attached screenshot to see my point.
I could probably see the entire width of this log file on my 5120x2160 monitor, but I have to scroll horizontally because of CSS...
Of course I can install a plug-in that fixes this problem, but wouldn't it be nice if the page/site would consider modern monitors.
Cheers,
Richard

Hi
If the problem persists and is related to running it on Azure App Service, please open a support incident in Azure:
https://learn.microsoft.com/en-us/azure/azure-portal/supportability/how-to-create-azure-support-request
This way we can better track and assist you on this case
Thanks,
Joaquin Vano
Azure App Service


Divide by zero error resolved

Logic to compare the number with 0 is changed.

Input from Keyboard functionality added.


Getting Load failed: 5: Input/output error when running sudo hb-service start

Current Situation
When I execute the following command:
sudo hb-service start

I receive the following output:
ℹ Starting Homebridge Service...
Load failed: 5: Input/output error
Try running `launchctl bootstrap` as root for richer errors.
✔ Homebridge Started

It doesn't look like here is a verbose option with hb-service that I can use to print out more logging information.
Is there a way I can get a more detailed logging output so I can try to track this down?
Logs
ℹ Starting Homebridge Service...
Load failed: 5: Input/output error
Try running launchctl bootstrap as root for richer errors.
✔ Homebridge Started
Config
n/a as this problem applies to a blank config

Homebridge UI Version
4.54.1
Homebridge Version
1.7.0
Node.js Version
20.10.0
Operating System
macOS
Environment Info

[ ] Using Docker?
[ ] Using Hyper-V?
[X] Using hb-service?

Raspberry Pi Model
None

I have tried nuking the homebridge install by deleting the node_modules directory in /opt/homebrew/lib. And also tried removing node altogether as well. But doing neither of those helped.

On Mac OS the start command runs this - https://github.com/homebridge/homebridge-config-ui-x/blob/f63405f68a55416be3f9bb3ee4d47227b78d691c/src/bin/platforms/darwin.ts#L74
Which is just a one liner
launchctl load -w /Library/LaunchDaemons/com.homebridge.server.plist
Try  hb-service uninstall and hb-service install to recreate com.homebridge.server.plist


Shader viewer buttons fixes

Description

This PR consists of three small improvements to the shader viewer/debugger and its buttons.
In the second commit, I changed the popup mode for the execute forwards/backwards buttons. The old mode has an arrow that's used to access the menu while the button itself performs the default action. However, the execute forwards/backwards buttons have no default action, so clicking them does nothing, meaning the tiny arrow needs to be clicked instead. That's highly inconvenient. Now, clicking the button always opens the menu. (Theoretically, a default action could be set, but in my opinion always opening the menu is better.)

Before

After

The third commit enables tooltips on the menus for execute forwards/execute backwards. MakeExecuteAction already set tooltips, but Qt does not show them unless toolTipsVisible is true.
The first commit actually is cleanup that does not change behavior at all. It removes two cases where popupMode is set despite the corresponding QToolButton not having a menu. I checked all uses of popupMode throughout renderdoc while working on the second commit and found that MenuButtonPopup is otherwise only used for export and save buttons where there is a default action, but did find these cases where popupMode appears to have been set by accident.

The "..." somewhat conveys that a menu would appear, but I'll see if there's a way to reintroduce the arrow without it being drawn as two separate buttons. If I can't find a good way then I'll change it so that the button opens the menu as well.
(The custom shader editor already behaves like this: its insert button has a "..." but no arrow, though "Insert..." has no clear meaning on its own while "Execute forwards..." at least seems like it does. The other uses of InstantPopup are the "replay context" menu at the bottom of the screen and the various extension buttons.)
There is a minor downside to using MenuButtonPopup but showing the menu on click. At least with this implementation:
QObject::connect(ui->execForwards, &QToolButton::clicked,
                 [this]() { ui->execForwards->showMenu(); });

you have to press and release on the button for the menu to appear, while on the arrow or with InstantPopup the menu pops up when the mouse is pressed and if you move the cursor over a menu item and then release, it acts as if you clicked the menu item, although it also works properly with press and release. (Perhaps there's a different signal that can be used for this behavior, though.) This behavior isn't Qt-specific; Visual Studio, FIrefox (on the back button), and Notepad++ (on the menu bar) all behave this way.

Thanks, that looks good to me and yes I think this is better for the other cases where the button unconditionally pops up a menu too.


Fixing string concatenation for frozen string literals.

Found a few more instances of string literals not liking being frozen, that crop up with deprecations, plus the HTML formatting change as well from a quick (and most certainly incomplete) search.

sup @pat nice to see you 'round these parts

Thanks for the feedback @myronmarston - all excellent points, just pushed a new commit that covers all of that.
And hey @xaviershay! Hope all's well :) 👋

Thanks, @pat!


Handling Predefined Resource Definitions

title
a bugfix on the link check

@Azure/azure-sdk-eng

/check-enforcer-dev reset

@mitchdenny another instance of check-enforcer not having the correct status even though it has the green check-box.

@weshaggard thanks for the heads up. This is a bug in GitHub that I'm waiting to get fixed :(


It don't stop in iframes

I have a parent window which uses the NProgress and it works great but:

When I call an iframe which has the NProgress too, at ajax:start it starts spinning but at ajax:stop it doesn't stop! I can confirm that the ajax:stop fires in an iframe.
Also, I have tried to remove the spinner manually in the iframe but it restarts itself again after a second or so, and also I can confirm that there is no new ajax call initiated in that period.

WHY is this & HOW can I fix this?

I am no master JScriptor and just looking into the codings and googled some stuff and it seems that nprogress.js#L11 the NProgess is setting to the window not document; I have no clue (nor google I guess :D) that how can I assign the document as root in the code, so I have come up with a workaround, just assign the window.NProgess to document.NProgress and then create a ajax:start and ajax:stop to start/stop the document.NProgress and you are good to go with iframes.
jQuery(function() {
  document.NProgress = window.NProgress;
  $(document)
    .ajaxStart(function(){ document.NProgress.start(); })
    .ajaxStop(function(){ document.NProgress.done(); });
});
// do stuff with `document.NProgress` in iframe

I would have create a  nprogress-ajax-iframe module for this repo and create a pull request, but since this project is so inactive(i.e having 28 pending pull requests at the moment I am writing this :-1: ) I don't think it's worthy of my time, and just writting this stuffs for the sake of future wonders ;)


Feature/weiss27/bugfix win flags

Some extra flags for windows.
Developed using Visual Studio 2010 ( MSVC 16.0.40219.1)

I removed the line add_definitions(-D_USE_MATH_DEFINES)  from Windows configurations.
This is something that user codes will have to add.

Thanks @cyrush for the comments about the flags.
I removed the commit with the \RTC override, as well as the \LARGEADDRESSAWARE flag.
I think this PR should be ready at this point.

I updated the blt_add_test macro to support multi-configuration generators (e.g. Visual Studio).
@cyrush, @davidbeckingsale and @white238 -- could you please check it out and review it again, when you get a chance so we can merge this PR?

@kennyweiss where these changes just to support MPI tests?
I haven't tested MPI on widows for conduit, but I have been using BTL for my other tests in Visual Studio w/o issues.

@cyrush -- Yes.  After installing MS-MPI on my system and enabling MPI,  the blt_mpi_smoke test (and other MPI tests) failed.
The problem is that we were patching the path to our executables based on the runtime_executable_path, but in multi-configuration generators, the actual path has the build type  (e.g. build/tests/Debug/blt_smoke_test).

After several false starts, I was able to get MPI to work with Appveyor.
Please let me know if there are any remaining issues, I think this PR should be ready to merge.


Rebalance with no effect and high costs

Had 2 Channels with same peer.
Both were enabled for Rebalancing since both had more incoming than outgoing liquidity.
After the smaller of the two channels fell below iTarget%, suddenly a lot of rebalancing payments occurred which were executed from the smaller to the larger channel.
The balance of the larger channel did not change, and the payments seem to have ended up back at the smaller channel?!
This therefore resulted in an infinite number of rebalancing payments which I fortunately noticed relatively quickly... but a few thousand sats for fees disappeared anyway.

Which version are you currently using?
A fix was pushed in v1.1.0 to address a similar issue, particularly when there were no eligible channels to push out with.

I'am already using LNDg v1.1.1

Are you able to go to this page /api/rebalancer/ and find the rebalances that you are referring to? You may need to search for it near the last pages of the api (newest records show at the end of the list)

Since I had thousands of these rebalances i had no problem to find some of them under /api/rebalancer/:
Problem was between Channel-ID's<PHONE_NUMBER>24685569 (Small Channel = Rebalance Source) and<PHONE_NUMBER>03406849 (Big Channel = Rebalance Target)
Both channels exist between my node and PubKey 03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"count": 3174,
"next": "http://<IP_ADDRESS>:8889/api/rebalancer/?limit=100&offset=1500",
"previous": "http://<IP_ADDRESS>:8889/api/rebalancer/?limit=100&offset=1300",
"results": [
{
"url": "http://<IP_ADDRESS>:8889/api/rebalancer/1401/",
"id": 1401,
"requested": "2022-05-25T08:23:24.087497",
"start": "2022-05-25T08:23:24.112679",
"stop": "2022-05-25T08:23:25.543451",
"status": 2,
"value": 19110,
"fee_limit": 12,
"outgoing_chan_ids": "[775016059624685569,<PHONE_NUMBER>92029697,<PHONE_NUMBER>30170625,<PHONE_NUMBER>41954817,<PHONE_NUMBER>19444992,<PHONE_NUMBER>58232577,<PHONE_NUMBER>93213953]",
"last_hop_pubkey": "03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f",
"target_alias": "ACINQ",
"duration": 1,
"payment_hash": "09afca502951e7048e462752e596f3169351d8012b83275912c7319e0d2f0e20",
"manual": false
},
{
"url": "http://<IP_ADDRESS>:8889/api/rebalancer/1402/",
"id": 1402,
"requested": "2022-05-25T08:23:25.698808",
"start": "2022-05-25T08:23:26.207415",
"stop": "2022-05-25T08:23:27.679890",
"status": 2,
"value": 19110,
"fee_limit": 12,
"outgoing_chan_ids": "[775016059624685569,<PHONE_NUMBER>92029697,<PHONE_NUMBER>30170625,<PHONE_NUMBER>41954817,<PHONE_NUMBER>19444992,<PHONE_NUMBER>58232577,<PHONE_NUMBER>93213953]",
"last_hop_pubkey": "03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f",
"target_alias": "ACINQ",
"duration": 1,
"payment_hash": "77c826462edaa392efee9b140685097a2dc9a3bfe78e3b443d92c17497c11fc1",
"manual": false
},
{
"url": "http://<IP_ADDRESS>:8889/api/rebalancer/1403/",
"id": 1403,
"requested": "2022-05-25T08:23:27.938747",
"start": "2022-05-25T08:23:27.963561",
"stop": "2022-05-25T08:23:29.242804",
"status": 2,
"value": 19110,
"fee_limit": 12,
"outgoing_chan_ids": "[775016059624685569,<PHONE_NUMBER>92029697,<PHONE_NUMBER>30170625,<PHONE_NUMBER>41954817,<PHONE_NUMBER>19444992,<PHONE_NUMBER>58232577,<PHONE_NUMBER>93213953]",
"last_hop_pubkey": "03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f",
"target_alias": "ACINQ",
"duration": 1,
"payment_hash": "81c5d2fed834ec923e12212bfc0e12266e2f01e59e7e0772475d9b99f25be9f7",
"manual": false
},
{
"url": "http://<IP_ADDRESS>:8889/api/rebalancer/1404/",
"id": 1404,
"requested": "2022-05-25T08:23:29.420918",
"start": "2022-05-25T08:23:29.483221",
"stop": "2022-05-25T08:23:31.006442",
"status": 2,
"value": 19110,
"fee_limit": 12,
"outgoing_chan_ids": "[775016059624685569,<PHONE_NUMBER>92029697,<PHONE_NUMBER>30170625,<PHONE_NUMBER>41954817,<PHONE_NUMBER>19444992,<PHONE_NUMBER>58232577,<PHONE_NUMBER>93213953]",
"last_hop_pubkey": "03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f",
"target_alias": "ACINQ",
"duration": 1,
"payment_hash": "0b5ce4e3902c6aa6f4f34b02edc880c363b10af52f3ad68048d96278711879ff",
"manual": false
},
{
"url": "http://<IP_ADDRESS>:8889/api/rebalancer/1405/",
"id": 1405,
"requested": "2022-05-25T08:23:31.199630",
"start": "2022-05-25T08:23:31.226394",
"stop": "2022-05-25T08:23:32.656713",
"status": 2,
"value": 19110,
"fee_limit": 12,
"outgoing_chan_ids": "[775016059624685569,<PHONE_NUMBER>92029697,<PHONE_NUMBER>30170625,<PHONE_NUMBER>41954817,<PHONE_NUMBER>19444992,<PHONE_NUMBER>58232577,<PHONE_NUMBER>93213953]",
"last_hop_pubkey": "03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f",
"target_alias": "ACINQ",
"duration": 1,
"payment_hash": "d0086c7f8efdfdaff2aa6a02f60cb893546f312bc62c611703a63fc5900ad012",
"manual": false
},
{
"url": "http://<IP_ADDRESS>:8889/api/rebalancer/1406/",
"id": 1406,
"requested": "2022-05-25T08:23:32.843036",
"start": "2022-05-25T08:23:32.870285",
"stop": "2022-05-25T08:23:34.259079",
"status": 2,
"value": 19110,
"fee_limit": 12,
"outgoing_chan_ids": "[775016059624685569,<PHONE_NUMBER>92029697,<PHONE_NUMBER>30170625,<PHONE_NUMBER>41954817,<PHONE_NUMBER>19444992,<PHONE_NUMBER>58232577,<PHONE_NUMBER>93213953]",
"last_hop_pubkey": "03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f",
"target_alias": "ACINQ",
"duration": 1,
"payment_hash": "f72333f3d12701645a88391dc9b1fe1f0977edf4670d9638db02554f527e797a",
"manual": false
},
{
"url": "http://<IP_ADDRESS>:8889/api/rebalancer/1407/",
"id": 1407,
"requested": "2022-05-25T08:23:34.414030",
"start": "2022-05-25T08:23:34.475256",
"stop": "2022-05-25T08:23:35.967264",
"status": 2,
"value": 19110,
"fee_limit": 12,
"outgoing_chan_ids": "[775016059624685569,<PHONE_NUMBER>92029697,<PHONE_NUMBER>30170625,<PHONE_NUMBER>41954817,<PHONE_NUMBER>19444992,<PHONE_NUMBER>58232577,<PHONE_NUMBER>93213953]",
"last_hop_pubkey": "03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f",
"target_alias": "ACINQ",
"duration": 1,
"payment_hash": "d785d1a90bd50fa8045f819e3daa603a5e9e4374ea2eb4013b9b3ee1a64ae981",
"manual": false
},

It appears that<PHONE_NUMBER>24685569 is currently not enabled for AR targeting on the dashboard (and seems like<PHONE_NUMBER>03406849 is enabled), which would allow<PHONE_NUMBER>24685569 to be used as a source.
Can you confirm the rebalancer settings for these two channels?

You can check your last settings on the channel by finding it in the Closure tab and clicking the channel ID.
You can also navigate to the channel card directly.
/channel?=775016059624685569

When you have two channels to the same peer, you cannot control which channel is used on the last hop, the peer gets this control. If they want to send everything down the smaller channels until its empty on their side, then move to the larger channel, they can.
If you do have two channels to the same peer, make sure both channels have the same settings and/or set the oTarget% to 100 so that it can never be used as a source.

This explains why the rebalance-lnd i used before considered the outbound and inbound sum of the two channels together and always performed the rebalancing in sum per peer.
Wouldn't it make sense then to synchronize the control of the "AR" buttons in lndg for identical peer across all channels or at least to prevent rebalancing from within the same peer?!

By the way... Thanks for your support!

You can control it in the beginning since the amounts will only work one way (new channels starts full and old is empty) but at any given point later that may or may not be true.
If a drain opens to you, this does seem possible, though maybe an unlikely situation.  That being said, I see the concern here, I am just not sure what the right solution is yet.
You certainly can keep your settings to default oTarget% to 100 for new channels in the mean time if you are worried about it happening again.

Is the default Setting for oTarget% = 100 set via "Advanced Settings" -> "Update Local Settings" -> AR-Outbound% = 1 or how do i achieve this?

Possible solution might be to set an extra Flag "Yes, I want to rebalance within the same peer and am aware that the peer has control over which channel the sats end up in.".
If Flag ist not set = No Rebalancing within same peer.

Is the default Setting for oTarget% = 100 set via "Advanced Settings" -> "Update Local Settings" -> AR-Outbound% = 1 or how do i achieve this?

That's right!


API to delete workflow definition

Description:
API to delete workflow definition.
Sample curl call:
curl -X DELETE "http://localhost:8080/metadata/workflow/kitchensinkTest?version=1" -H "accept: application/json"

I found another issue while testing this last night. We have duplicate entry for workflow def in table with "LATEST" as key so when you do GET call without version after DELETE API call the workflow def is returned back even if after deleting it.


Add exception logging

Original Spark PR: https://github.com/sparkphp/spark/pull/114

This is a feature change and needs to be targeted at a dev branch.


Initial commit of resource driver and demo with minikube and crio

This is the initial commit of the example DRA resource driver.
It is currently missing a comprehensive README, which will be added in a subsequent PR.
To test things out, take a look in the demo directory which (assuming you have all the prerequisites installed) should allow you to run the commands from the DEMO.sh script to build / install the example DRA resource driver using kind.
Note: DEMO.sh is not intended to be run as a script, but rather hold the set of commands you should run through manually to test out this example DRA resource driver and demo its capabilities. This script will eventually be translated into a README rather than presented as a script here.

/cc @pohly @bart0sh @byako

/hold

I have moved to using kind instead of minikube for the demo cluster. This simplifies things quite a bit.

LGTM. Need to try kind out.

Do we really want to populate "vendor" in this directory?
"vendor" is good when builds must work 100% even when dependencies disappear. We don't care about that here. It just makes this repository larger.

@pohly I've removed the vendor folder. I will address your other comments soon.
I'm not usually a fan of not committing the vendor folder, but in this case, i agree, it's probably OK / better to not include it.

I have addressed all comments except this one, which we can consider doing as a follow-up:
https://github.com/kubernetes-sigs/dra-example-driver/pull/1#discussion_r1143169157
I've also added the beginnings of a README that replaces the DEMO.sh script that used to be in the demo folder. I plan to follow-up with more content in the README soon.
Please take a look.

/lgtm


WIP - Initial code for handling Twilio responses

Fixes #1669
The Twilio response handling has opened a lot of process and technical questions. In a bid to simplify for v1 this initial code should address exposing a public endpoint that Twilio can POST to in order to send us any SMS responses for our SMS notifications.
This code uses the from phone number provided by Twilio to attempt to find a matching request that includes the same number. In an attempt to simplify we have used the most recently added request should we match more than one request.
If we can find the request we update it based on the answer from the sender. We send them a final message also in either case.
Currently acceptance sends "Thank you for confirming you availability."
Declining a scheduled request sends "We have canceled your request and once it is rescheduled you will receive further communication."
@tonysurma - Not sure what actual messaging you want here?
One issue with this code currently is around Twilio's use of number formatting. Twilio will expect and return numbers in the E.164 format (https://support.twilio.com/hc/en-us/articles/223183008-Formatting-International-Phone-Numbers).
Currently we might not store our numbers in this format and so it'll be hard to match up responses to the original request. There are various potential solutions to this which I feel should be follow on issues.

We use the Twilio free lookup API to lookup numbers when requests are added (manual, csv and API). This will return an internationalised number based on a phone number and country code. We could use this lookup and update the request with the correctly formatted number to make future matching easier.
We store the sent SMS messages in a table (as planned in #1664) which should include the number twilio returns from it's API when sending the request. This number should be formatted to E.164 already so if we store this, we should be able to match up properly.

Ultimately I think we should do both to try and make this as robust as possible. Starting with part 1 feels reasonable. It will also somewhat help us validate numbers are valid and then handle those requests as appropriate (i.e. if the lookup fails we cannot use SMS as a communication method for this request and fall back to email). There is an additional pay per use option where we could validate if the number is landline / mobile etc as well. This would be useful but adds cost. $0.005 per request.
@tonysurma - Any thoughts on what is minimal needed for v1? At the moment I think we'll fail to match a lot of the responses unless we store the correct Twilio formatted number when adding the requests or store the number when we send SMS via the API.
Regardless of these questions, this handler should need minimal change so can perhaps be merged.
@mgmccarthy - I moved the controller out of the admin area since it's publicly exposed and renamed to SMSReponseController. Is that okay for you? Any other thoughts after our Skype today? I've not changed much except moving the DB logic into a Mediatr handler.
If this looks good I can try to add a few tests (or stub an issue to follow up with those).

@stevejgordon thanks for all the work on this, I think you're approach is right on target for v1 release. Moving and renaming the controller is good to go.
@tonysurma, Steve and I had a chance to Skype and chat today about the implementation of the request confirmation functionality as it relates to the messaging medium (aka, sms vs. email). For a variety of reasons (some voiced in other issues and some that Steve has brought up here), using sms for the messaging introduces problems...

we're "guessing" at the most recently sent Request matched by incoming phone number, which could lead to us confirming or canceling the wrong request if the requestor has put it two requests, and each request would be added to a different event. b/c sms does not let us embed a unique id for the request that will go out with the confirmation message, then come back to us with the requestor's reponse, we have no way to fix this problem using sms. At least not yet.
we need to now "scrub" incoming phone numbers using a Twilio lookup service b/c of number formatting. To get around this, I'd like to enforce the E.164 format on Request creation, regardless of the source (UI, CSV, API). That way, we don't have to validate later in the pipeline. We send the number out in the correct format, and the response back to us will be in the correct format (unless I"m missing something here @stevejgordon?)
we probably should verify the number we've received is a mobile phone number, and not a land line, or the requestor will never receive the initial confirmation message or any of the follow up messages. To do this, it sounds like there is a fee involved, and I don't know who/what will be paying the bill for this service.

Using email for communication could make these problems go away, but there will be work involved in doing so. Between the research that Steve and I have done, if you're okay with the caveats we've outlined above, I'm good to go with Steve's approach as it's simple and gets the job done for v1.
As Steve and I also discussed today, maybe seeing the system used in the wild would help us make better changes to how we manage the requestor communications...
Thanks

Thanks @mgmccarthy for the feedback. I'm working to finish this off and add some tests so that this can be merged it @tonysurma agrees.

@tonysurma - I'm taking the WIP off this as it should be good to go for v1, pending your thoughts to my earlier questions and caveats!

@stevejgordon, looks like you're still using the IChangeRequestStatus abstraction that used to be wrapped by Hangfire.Enqueue().
The only reason that abstraction was created is b/c Hangfire needs a job abstraction in order to allow injection of dependencies into the job code...
Since IChangeRequestStatus is sync, not async, then we might as well use MediatR here. Can you send ChangeRequestStatusCommand for both the Confirmed and Unassigned status changes? That way we can get rid of IChangeRequestStatus and its implementer.

@mgmccarthy - Yep, makes sense - Will refactor that before we merge this

thoughts here:

for content of messages - go with what you have and we can log issues to change it as needed later
for phone number storing - I agree we need to correlate so we should do the phone number lookup/formatting via twilio as you suggested
correlating for two requests - for now we are good and that is not a use case I would worry about at this time, may change and we can deal with it later (I have seen some patterns with SMS to avoid this)
verifying it is mobile - I believe this is something that twilio API can do as well.  If so that 'cost' is part of what we are using twilio for (along with sending and receiving of SMS) and that cost is discounted as a non-profit and something we assume to be an operating cost of the application so we are okay

Did I capture all of the needed points?  THanks @stevejgordon and @mgmccarthy for staying on this!

@tonysurma @stevejgordon

for phone number storing - I agree we need to correlate so we should do the phone number lookup/formatting via twilio as you suggested

again, I'd like to "front" this validation to Request creation. When we create a Request (regardless of source), we do this lookup and make sure the phone number is validated/formatted properly before we write it to the Request table.
That way, we don' have to worry about re-validating later... once the data is in our system, then we know it's good to use to send sms messages via Twilio.
Since the Phone property on the Request table will always need to be a mobile number based on how we're sending out confirmation messages initially, then following up with the requestor when we don't hear from them, I think fronting the validation/Twilio call would be a good idea.

@stevejgordon

Since IChangeRequestStatus is sync, not async, then we might as well use MediatR here. Can you send ChangeRequestStatusCommand for both the Confirmed and Unassigned status changes? That way we can get rid of IChangeRequestStatus and its implementer.

setting a Request to Unassigned involves more than just a status update. We also need to delete the corresponding entry in ItineraryRequest table.
ChangeRequestStatusCommandHandler should be updated to handle the removal of this row only for request's whose status is changing to Unassigned.
Thanks.

again, I'd like to "front" this validation to Request creation. When we create a Request (regardless of source), we do this lookup and make sure the phone number is validated/formatted properly before we write it to the Request table.
100% agree. Doing it up front is the correct place. We might need to consider what happens to a request when the number does not parse / is landline etc. Do these go into a bucket for org admins to review, are they immediately automatically rejected etc.

@mgmccarthy - I've removed the unnecessary hangfire code as per your feedback above.


Implement a separate pass for checking the size of encoded structures.

When the user has bounded the size during serialization, instead of checking the size bounds while writing to the out buffer, run a separate pass through the serialization API to check what the size would be before writing starts.
This means that all oversized messages will be caught before they pollute the output target.

Added in 8f5c102


Documentation + App Template Update

Updated the README.md file to include documentation about how to get Bluefish running locally.
Fixed a few bugs in the App.template files.

Removed solid-devtools from the bluefish-solid vite config.
Added a Text tag around the text in the bluefish-solid template.
Fixed a typo in the bluefish-js template.
Removed the outer Bluefish component from the bluefish-js template.

Can you double check whether you have to run turbo build every time we make a change to bluefish-solid that we want to use in bluefish-js? Or is it just the first time?

Maybe we should also note that the directory should be opened from root even if you are working on a single package?


Tabledetailwizard RTL fix

Closes #450
Summary

Tweaked and fixed RTL issues in TableDetailWizard

TableDetailWizard before

TableDetailWizard after

RTL before

RTL after

Change List (commits, features, bugs, etc)

Fixed RTL styling
Removed Styled components
Tweaked spacing/padding for consitent look in TableDetailWizard

Acceptance Test (how to verify the PR)

Open Storybook and navigate to TableDetailWizard
Click on any story and activate RTL

Some stuff got messed up with previous merge. Created a new branch and PR


[chip-test] chip_sw_entropy_src_bypass_mode_health_tests

Test point name
https://github.com/lowRISC/opentitan/blob/master/hw/top_earlgrey/data/ip/chip_entropy_src_testplan.hjson#L95
Host side component
None
OpenTitanTool infrastructure implemented
None
Silicon Validation (SiVal)
Yes
Emulation Targets

[ ] None
[X] CW310
[X] Hyperdebug + CW310

Contact person
@vogelpi @andreaskurth
Checklist
Please fill out this checklist as items are completed. Link to PRs and issues as appropriate.

[ ] Check if existing test covers most or all of this testpoint (if so, either extend said test to cover all points, or skip the next 3 checkboxes)
[ ] Device-side (C) component developed
[ ] Bazel build rules developed
[ ] Host-side component developed
[ ] HJSON test plan updated with test name (so it shows up in the dashboard)
[ ] Test added to dvsim nightly regression (and passing at time of checking)
[ ] For SiVal test cases, test is running relevant FPGA or silicon regression

estimate 1

Needs the Bazel test point merged in the testplan. @vogelpi / @h-filali

@johngt I couldn't find this test so I asked @vogelpi and we concluded that this test doesn't exist yet. Could you reopen this issue?

@h-filali - thanks. There might be some tests that I flag for adding to Bazel that don't have the FPGA/DVSIM test. This issue is already open so need to re-open it and I'll add it to the ones that are being tracked. Thanks!


chore(side-sheet): update eds versions

Component Development
Update of eds versions for side-sheet component

Type

[ ] Feature
[ ] Fix
[ ] Hotfix (should release ASAP)
[x] Maintenance (deps only)

Reference to assignment

Description of assignment

Description of Proposed Changes

Checklist
Create User Story(DevOps) or Issue(Github)

[ ] Describe functional requirements
[ ] Design plan/suggestion (e.g. images, link to eds design or relevant figma links, mention of eds tokens to use)
[ ] Communication with UX (evaluate if needed)

Development

[ ] Describe the component
[ ] Code funtional requirements
[ ] Create stories
[ ] Create snapshots (evaluate if needed)
[ ] Remove unused imports and commented code
[ ] Lint code with EsLint (and follow best practises for code quality

Create Pull Request

[ ] Assign relevant reviewers in Github and Cromatic
[ ] Inform colleagues of pending reviews. We use Teams for this purpose, under fusion-frontend team please tag involved reviewers in the Code review channel

Review of Pull Request

[ ] Follow up on comments from code review and implement necessary changes (evaluate if needed)
[ ] Review approved in github (and chromatic)

Publish Code

[ ] Increment version number
[ ] Merge PR
[ ] Consider letting fusion developers know this this shiny new thing exists

nice, but please update all packages that uses eds-core-react and eds-icon, so we dont have different versions between packages in this mono-repo.
run from root: pnpm update -r @equinor/eds-core-react@latest and same for eds-icons.

already updated by dependabot


feat: add unitSalePrice to analytics events v1

Description

Add unitSalePrice to lineItems and product_details event.
Add a helper to calculate unitSalePrice (price - discount).
Updated snapshots

Dependencies
None.
Checklist

[x] The commit message follows our guidelines
[x] Tests for the respective changes have been added
[x] The code is commented, particularly in hard-to-understand areas
[x] The labels and/or milestones were added

Disclaimer
By sending us your contributions, you are agreeing that your contribution is made subject to the terms of our Contributor Ownership Statement

Rebase the branch before merge.


[WFLY-15756] / [WFLY-13889] Remove PicketBox dependencies from ActiveMQ.

Submitting as a draft as this PR depends on the following being approved:
https://github.com/wildfly/wildfly/pull/14945
https://issues.redhat.com/browse/WFLY-15756

@ehsavoie could you please give the last commit a review:
https://github.com/wildfly/wildfly/pull/14957/commits/8772bcd3423cf25c610b3064da698a36194a5537
The other commits are being reviewed in other PRs.

Superseded by https://github.com/wildfly/wildfly/pull/15121


Feature/131/afero filesystem

Implements Afero as the file system manager replacing the previous custom implementation, that was using separate readfile and writefile classes.
The FileManager implementation has the following features

Allows to implement tests using a virtual filesystem using the method NewInMemoryFileManager(). This is composed of 2 layers, the first layer, reads files from the physical disk and loads them into the virtual filesystem. The sencond layers allows to modify (create, delete, rename) the file structure without changing the physicial files.
I moved the integration util that rewrites the config files into it's own file integration_test_config_rewrite.go. This file allows to modify the filesystem to create unique configs before running the actual integration, this allows to reuse the same dynatrace environment for multiple integration tests.
This new feature would allow to create integration tests for the download fuctionality by changing the filemanager implementation to use  NewInMemoryFileManager()

Looking forward to your feedback

In general I like this PR, but I honestly question the use of the FileManager interface in general.
All of this is already covered by afero.Fs and we just add a tiny wrapper on top of it. Why
not simply get rid of it all and just use afero.Fs?

I think the idea is to encapsulate the usage of afero. As golang evolves afero should not be needed for mocking the filesystem. In the latest golang release there is a simple virtual filesytem implementation, but not as robust as afero right now. When we golang catches up with the full functionality it should be a simple change in a file to switch the implementation instead of having to modify lots of files with afero references.

If you think about it we try to abstract away an abstraction of the filesystem and I personally do not
see us winning much by having it.

Also by that reasoning CreateEmptyFile in FileManger should not return a afero
related struct.
But as I pointed out, I don't see the benefit of abstracting afero away. It provides some
useful methods. I do not want to create a wrapper for each of those methods.

@patrickpichler  yes you are right if we go that route using afero directly I can make the changes to the code  just to double check @tatomir146  @didiladi  If you all agree I will make the changes tomorrow, afero will be used directly instead of the FileManager abstraction. I need to close finish this PR since this is related to another change that I have pending regarding download integration test and improvements

One more thing: Please use rebases instead of merging the main branch into your feature branch.
That way we have a nice linear history.


No auth token

Using:
"jsonwebtoken": "^7.4.3",
"passport": "^0.4.0",
"passport-jwt": "^3.0.0",
jwt config
const passport = require('passport');
const { Strategy: JWTStrategy, ExtractJwt } = require('passport-jwt');

const jwtOpts = {
  // Telling Passport to check authorization headers for JWT
  jwtFromRequest: ExtractJwt.fromAuthHeaderWithScheme('Authorization'),
  // Telling Passport where to find the secret
  secretOrKey: process.env.JWT_SECRET || 'abc',
};

passport.use(new JWTStrategy(jwtOpts, (payload, done) => {
  console.log('err');
  User.findOne({ id: payload.sub }, (err, user) => {
    if (err) {
      return done(err, false, { message: 'meet error', error: err });
    }
    if (!user) {
      return done(null, false, { message: 'there\'s no user associated with this token' });
    }
    return done(null, user);
  });
}));

generate token like this
const jwt = require('jsonwebtoken');
myjon.token = `JWT ${jwt.sign({ _id }, process.env.JWT_SECRET )}`;

In Postman
Authorization: JWT eyJhbGciOiJIUzI1NiIsInR5c....

and get error:
"code": "E_UNAUTHORIZED",
 "message": "No auth token",

This line:
 jwtFromRequest: ExtractJwt.fromAuthHeaderWithScheme('Authorization');

would require to use the header
Authorization: Authorization eyJhbGciOiJIUzI1NiIsInR5c....

The issues is that you're looking for an Authorization header with the scheme of 'Authorization'. If you want the scheme to be 'JWT' you should use
 jwtFromRequest: ExtractJwt.fromAuthHeaderWithScheme('JWT');

Note that the scheme comparison is case-insensitive to 'JWT' and 'jwt' are equivalent.

This solution worked for me but coming with a different problem. I was using ExtractJwt.fromAuthHeaderAsBearerToken()
And a header that looked like: authorization: 'JWT eyJHGc...'
This was giving me the error "No auth token".
Switching to ExtractJwt.fromAuthHeaderWithScheme('JWT') worked.
Or, while using ExtractJwt.fromAuthHeaderAsBearerToken(), changing the header token string to be authorization: 'Bearer eyJHGc...' also worked.
So, I've learned something about schemas.
I believe that I had set things up with ExtractJwt.fromAuthHeaderAsBearerToken() because I was using an older project, which used ExtractJwt.fromAuthHeader() (a 2.0 method), as a template. Either a StackOverflow question or a tutorial mentioned ExtractJwt.fromAuthHeaderAsBearerToken() as a replacement.
Regardless: I've figured it out now, but it was a pain to debug since passport is (understandably so) pretty black-box when it comes to errors - I was just getting a 401.
Hopefully this saves someone else some headache!

authorization: 'Bearer eyJHGc...'  worked for me too

Closing.